Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Уникальная система загрузки

AndreY.eXe

Специалист
Привет!

Ловите, наверно, самую уникальную систему загрузки. Я использовал её в качестве загрузки текстур, вы же можете использовать её как пожелаете!
Приступим:

Для начала нам нужны textdraw'ы:
В начало мода:
PHP:
new PlayerText: ltexture[MAX_PLAYERS][6];
В OnPlayerConnect:
PHP:
	ltexture[playerid][0] = CreatePlayerTextDraw(playerid, 230.6665, 182.5332, "Box"); // Фон
	PlayerTextDrawLetterSize(playerid, ltexture[playerid][0], 0.0000, 8.6436);
	PlayerTextDrawTextSize(playerid, ltexture[playerid][0], 412.0000, 0.0000);
	PlayerTextDrawAlignment(playerid, ltexture[playerid][0], 1);
	PlayerTextDrawColor(playerid, ltexture[playerid][0], -1);
	PlayerTextDrawUseBox(playerid, ltexture[playerid][0], 1);
	PlayerTextDrawBoxColor(playerid, ltexture[playerid][0], 140);
	PlayerTextDrawBackgroundColor(playerid, ltexture[playerid][0], 255);
	PlayerTextDrawFont(playerid, ltexture[playerid][0], 1);
	PlayerTextDrawSetProportional(playerid, ltexture[playerid][0], 1);
	PlayerTextDrawSetShadow(playerid, ltexture[playerid][0], 0);

	ltexture[playerid][1] = CreatePlayerTextDraw(playerid, 319.6998, 185.0000, "Loading_Texture"); // Оповещение
	PlayerTextDrawLetterSize(playerid, ltexture[playerid][1], 0.5799, 2.0399);
	PlayerTextDrawAlignment(playerid, ltexture[playerid][1], 2);
	PlayerTextDrawColor(playerid, ltexture[playerid][1], 255);
	PlayerTextDrawSetOutline(playerid, ltexture[playerid][1], -1);
	PlayerTextDrawBackgroundColor(playerid, ltexture[playerid][1], -1);
	PlayerTextDrawFont(playerid, ltexture[playerid][1], 0);
	PlayerTextDrawSetProportional(playerid, ltexture[playerid][1], 1);
	PlayerTextDrawSetShadow(playerid, ltexture[playerid][1], 0);

	ltexture[playerid][2] = CreatePlayerTextDraw(playerid, 237.4998, 237.0000, "LD_SPAC:white"); // Фон загрузки
	PlayerTextDrawTextSize(playerid, ltexture[playerid][2], 166.0000, 15.0000);
	PlayerTextDrawAlignment(playerid, ltexture[playerid][2], 1);
	PlayerTextDrawColor(playerid, ltexture[playerid][2], -2139062017);
	PlayerTextDrawBackgroundColor(playerid, ltexture[playerid][2], 255);
	PlayerTextDrawFont(playerid, ltexture[playerid][2], 4);
	PlayerTextDrawSetProportional(playerid, ltexture[playerid][2], 0);
	PlayerTextDrawSetShadow(playerid, ltexture[playerid][2], 0);

	ltexture[playerid][3] = CreatePlayerTextDraw(playerid, 306.2999, 205.0998, "LD_BEAT:chit"); // Фон отсчета
	PlayerTextDrawTextSize(playerid, ltexture[playerid][3], 32.0499, 31.8199);
	PlayerTextDrawAlignment(playerid, ltexture[playerid][3], 1);
	PlayerTextDrawColor(playerid, ltexture[playerid][3], 9211135);
	PlayerTextDrawBackgroundColor(playerid, ltexture[playerid][3], 255);
	PlayerTextDrawFont(playerid, ltexture[playerid][3], 4);
	PlayerTextDrawSetProportional(playerid, ltexture[playerid][3], 0);
	PlayerTextDrawSetShadow(playerid, ltexture[playerid][3], 0);

	ltexture[playerid][4] = CreatePlayerTextDraw(playerid, 237.3666, 236.9259, "LD_SPAC:white"); // Загрузка
	PlayerTextDrawTextSize(playerid, ltexture[playerid][4], 166.0000, 15.0000);
	PlayerTextDrawAlignment(playerid, ltexture[playerid][4], 1);
	PlayerTextDrawColor(playerid, ltexture[playerid][4], 9211135);
	PlayerTextDrawBackgroundColor(playerid, ltexture[playerid][4], 255);
	PlayerTextDrawFont(playerid, ltexture[playerid][4], 4);
	PlayerTextDrawSetProportional(playerid, ltexture[playerid][4], 0);
	PlayerTextDrawSetShadow(playerid, ltexture[playerid][4], 0);

	ltexture[playerid][5] = CreatePlayerTextDraw(playerid, 322.6000, 213.6999, "100%"); // Отсчет
	PlayerTextDrawLetterSize(playerid, ltexture[playerid][5], 0.1699, 1.4041);
	PlayerTextDrawAlignment(playerid, ltexture[playerid][5], 2);
	PlayerTextDrawColor(playerid, ltexture[playerid][5], -1);
	PlayerTextDrawBackgroundColor(playerid, ltexture[playerid][5], 255);
	PlayerTextDrawFont(playerid, ltexture[playerid][5], 2);
	PlayerTextDrawSetProportional(playerid, ltexture[playerid][5], 1);
	PlayerTextDrawSetShadow(playerid, ltexture[playerid][5], 0);

Теперь к самой системе:
В начало мода:
PHP:
new bool: TextureStatus[MAX_PLAYERS]; // Проверят, запущена ли загрузка или нет
new TextureTimer[MAX_PLAYERS]; // Таймер
new TextureCount[MAX_PLAYERS]; // Отсчет (см. в текстдравах)
В OnPlayerConnect (OnPlayerDisconnect):
PHP:
	KillTimer(TextureTimer[playerid]);
	TextureStatus[playerid] = false;
	TextureCount[playerid] = 0;
В конец мода:
PHP:
stock LoadTexture(playerid)
{
	if(!TextureStatus[playerid])
	{
	    PlayerTextDrawSetString(playerid, ltexture[playerid][5], "0%");
	    PlayerTextDrawTextSize(playerid, ltexture[playerid][4], 0.0000, 15.0000);
	    for(new i; i < 6; i ++) PlayerTextDrawShow(playerid, ltexture[playerid][i]);
	    TextureTimer[playerid] = SetTimerEx("Load_Texture", 50, true, "d", playerid);
	    TextureStatus[playerid] = true;
	}
	return true;
}
forward Load_Texture(playerid);
public Load_Texture(playerid)
{
	if(++ TextureCount[playerid] <= 100)
	{
		PlayerTextDrawTextSize(playerid, ltexture[playerid][4], TextureCount[playerid]*1.66, 15.0000);
	 	PlayerTextDrawShow(playerid, ltexture[playerid][4]);
	 	new str_lt[4];
	 	format(str_lt, 4, "%d%%", TextureCount[playerid]);
	 	PlayerTextDrawSetString(playerid, ltexture[playerid][5], str_lt);
	}
	else
	{
	    KillTimer(TextureTimer[playerid]);
 	    TextureStatus[playerid] = false;
 	    TextureCount[playerid] = 0;
 	    for(new i; i < 6; i ++) PlayerTextDrawHide(playerid, ltexture[playerid][i]);
	}
	return true;
}
Вот и все! Если Вы захотите показать загрузку игроку, то используйте
PHP:
LoadTexture(playerid);
​
 
Сверху Снизу