Для отображения загрузки: ShowPlayerLoadScreen(playerid, time);
- Код
Код: Выделить всё
new Text:LoadScreenText[6];
new PlayerText:LoadScreenPText[MAX_PLAYERS];
new playerLSString[MAX_PLAYERS][20];
new playerLSTimerID[MAX_PLAYERS];
public OnGameModeInit()
{
new Text:textid;
LoadScreenText[0] = textid = TextDrawCreate(641.531494, 1.500000, "usebox");
TextDrawLetterSize(textid, 0.000000, 49.396297);
TextDrawTextSize(textid, -2.000000, 0.000000);
TextDrawAlignment(textid, 1);
TextDrawColor(textid, 0);
TextDrawUseBox(textid, true);
TextDrawBoxColor(textid, 255);
TextDrawSetShadow(textid, 0);
TextDrawFont(textid, 0);
LoadScreenText[1] = textid = TextDrawCreate(397.900665, 184.666580, "usebox");
TextDrawLetterSize(textid, 0.000000, 2.093318);
TextDrawTextSize(textid, 229.449493, 0.000000);
TextDrawAlignment(textid, 1);
TextDrawColor(textid, 0);
TextDrawUseBox(textid, true);
TextDrawBoxColor(textid, 3289855);
TextDrawSetShadow(textid, 0);
TextDrawFont(textid, 0);
LoadScreenText[2] = textid = TextDrawCreate(397.963562, 210.749969, "usebox");
TextDrawLetterSize(textid, 0.000000, 14.509128);
TextDrawTextSize(textid, 229.449493, 0.000000);
TextDrawAlignment(textid, 1);
TextDrawColor(textid, 0);
TextDrawUseBox(textid, true);
TextDrawBoxColor(textid, 3289855);
TextDrawSetShadow(textid, 0);
TextDrawFont(textid, 0);
LoadScreenText[3] = textid = TextDrawCreate(395.089294, 213.250000, "usebox");
TextDrawLetterSize(textid, 0.000000, 2.016666);
TextDrawTextSize(textid, 231.792098, 0.000000);
TextDrawAlignment(textid, 1);
TextDrawColor(textid, 0);
TextDrawUseBox(textid, true);
TextDrawBoxColor(textid, 190);
TextDrawSetShadow(textid, 0);
TextDrawFont(textid, 0);
LoadScreenText[4] = textid = TextDrawCreate(244.099395, 186.666641, "Load Textures");
TextDrawLetterSize(textid, 0.449999, 1.600000);
TextDrawAlignment(textid, 1);
TextDrawColor(textid, -1061109505);
TextDrawSetShadow(textid, 0);
TextDrawBackgroundColor(textid, 51);
TextDrawFont(textid, 3);
TextDrawSetProportional(textid, 1);
LoadScreenText[5] = textid = TextDrawCreate(234.260620, 237.416641, "loadsuk:loadsc6");
TextDrawLetterSize(textid, 0.000000, 0.000000);
TextDrawTextSize(textid, 159.297210, 102.083305);
TextDrawAlignment(textid, 1);
TextDrawColor(textid, -1);
TextDrawSetShadow(textid, 0);
TextDrawFont(textid, 4);
return 1;
}
public OnPlayerConnect(playerid)
{
new PlayerText:textid;
LoadScreenPText[playerid] = textid = CreatePlayerTextDraw(playerid, 236.603088, 214.666702, "_");
PlayerTextDrawLetterSize(playerid, textid, 0.308975, 2.060834);
PlayerTextDrawAlignment(playerid, textid, 1);
PlayerTextDrawColor(playerid, textid, 8663807);
PlayerTextDrawUseBox(playerid, textid, true);
PlayerTextDrawBoxColor(playerid, textid, 0);
PlayerTextDrawSetShadow(playerid, textid, 0);
PlayerTextDrawBackgroundColor(playerid, textid, 51);
PlayerTextDrawFont(playerid, textid, 2);
PlayerTextDrawSetProportional(playerid, textid, 1);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if(playerLSTimerID[playerid]) KillTimer(playerLSTimerID[playerid]);
playerLSTimerID[playerid] = 0;
return 1;
}
forward LoadScreenCallBack(playerid, rate, count);
public LoadScreenCallBack(playerid, rate, count)
{
if(count >= 17)
{
playerLSTimerID[playerid] = 0;
for(new i; i < sizeof(LoadScreenText); i++) TextDrawHideForPlayer(playerid, LoadScreenText[i]);
PlayerTextDrawHide(playerid, LoadScreenPText[playerid]);
TogglePlayerControllable(playerid, 1);
}
else
{
if(playerLSTimerID[playerid]) playerLSTimerID[playerid] = SetTimerEx("LoadScreenCallBack", rate, 0, "iii", playerid, rate, (count + 1));
strcat(playerLSString[playerid], "|");
PlayerTextDrawSetString(playerid, LoadScreenPText[playerid], playerLSString[playerid]);
}
}
stock ShowPlayerLoadScreen(playerid, time)
{
if(playerLSTimerID[playerid]) KillTimer(playerLSTimerID[playerid]);
playerLSTimerID[playerid] = 0;
playerLSString[playerid] = "";
PlayerTextDrawSetString(playerid, LoadScreenPText[playerid], "");
for(new i; i < sizeof(LoadScreenText); i++) TextDrawShowForPlayer(playerid, LoadScreenText[i]);
PlayerTextDrawShow(playerid, LoadScreenPText[playerid]);
TogglePlayerControllable(playerid, 0);
playerLSTimerID[playerid] = SetTimerEx("LoadScreenCallBack", (1000 * time) / 17, 0, "iii", playerid, (1000 * time) / 17, 0);
}
stock HidePlayerLoadScreen(playerid)
{
if(!playerLSTimerID[playerid]) return;
KillTimer(playerLSTimerID[playerid]);
playerLSTimerID[playerid] = 0;
for(new i; i < sizeof(LoadScreenText); i++) TextDrawHideForPlayer(playerid, LoadScreenText[i]);
PlayerTextDrawHide(playerid, LoadScreenPText[playerid]);
TogglePlayerControllable(playerid, 1);
}