AndreY.eXe
Специалист
Привет!
Ловите, наверно, самую уникальную систему загрузки. Я использовал её в качестве загрузки текстур, вы же можете использовать её как пожелаете!
Приступим:
Для начала нам нужны textdraw'ы:
Теперь к самой системе:
В начало мода:
В OnPlayerConnect (OnPlayerDisconnect):
В конец мода:
Вот и все! Если Вы захотите показать загрузку игроку, то используйте
Ловите, наверно, самую уникальную систему загрузки. Я использовал её в качестве загрузки текстур, вы же можете использовать её как пожелаете!
Приступим:
Для начала нам нужны textdraw'ы:
В начало мода:
В OnPlayerConnect:
PHP:
new PlayerText: ltexture[MAX_PLAYERS][6];
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]; // Отсчет (см. в текстдравах)
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);
