AndreY.eXe
Специалист
Загрузка текстур [ALL]
Всем привет! Не нашел мануала такого типа и решил написать сам. Вообщем, приступип:
Для начала добавим сами TextDraw
В начало мода:
В OnPlayerConnect:
Куда нибудь в конец мода:
Вот что получится:
Теперь когда Вы захотите показать игроку загрузку текстур вставьте LoadTexture(playerid);
Вот и все! Это мой первый Мануал для паблика, так что могут быть не значительные ошибки. Систему тестил сам и все прекрасно работает.
Автор: Я
Всем привет! Не нашел мануала такого типа и решил написать сам. Вообщем, приступип:
Для начала добавим сами TextDraw
PHP:
new Text: loadtext[6]; // В начало мода
new PlayerText: loadtextplayer[MAX_PLAYERS];
// В ongamemodeinit
loadtext[0] = TextDrawCreate(641.531494, 1.500000, "usebox");
TextDrawLetterSize(loadtext[0], 0.000000, 49.396297);
TextDrawTextSize(loadtext[0], -2.000000, 0.000000);
TextDrawAlignment(loadtext[0], 1);
TextDrawColor(loadtext[0], 0);
TextDrawUseBox(loadtext[0], true);
TextDrawBoxColor(loadtext[0], 255);
TextDrawSetShadow(loadtext[0], 0);
TextDrawSetOutline(loadtext[0], 0);
TextDrawFont(loadtext[0], 0);
loadtext[1] = TextDrawCreate(397.900665, 184.666580, "usebox");
TextDrawLetterSize(loadtext[1], 0.000000, 2.093318);
TextDrawTextSize(loadtext[1], 229.449493, 0.000000);
TextDrawAlignment(loadtext[1], 1);
TextDrawColor(loadtext[1], 0);
TextDrawUseBox(loadtext[1], true);
TextDrawBoxColor(loadtext[1], 3289855);
TextDrawSetShadow(loadtext[1], 0);
TextDrawSetOutline(loadtext[1], 0);
TextDrawFont(loadtext[1], 0);
loadtext[2] = TextDrawCreate(397.963562, 210.749969, "usebox");
TextDrawLetterSize(loadtext[2], 0.000000, 14.509128);
TextDrawTextSize(loadtext[2], 229.449493, 0.000000);
TextDrawAlignment(loadtext[2], 1);
TextDrawColor(loadtext[2], 0);
TextDrawUseBox(loadtext[2], true);
TextDrawBoxColor(loadtext[2], 3289855);
TextDrawSetShadow(loadtext[2], 0);
TextDrawSetOutline(loadtext[2], 0);
TextDrawFont(loadtext[2], 0);
loadtext[3] = TextDrawCreate(395.089294, 213.250000, "usebox");
TextDrawLetterSize(loadtext[3], 0.000000, 2.016666);
TextDrawTextSize(loadtext[3], 231.792098, 0.000000);
TextDrawAlignment(loadtext[3], 1);
TextDrawColor(loadtext[3], 0);
TextDrawUseBox(loadtext[3], true);
TextDrawBoxColor(loadtext[3], 190);
TextDrawSetShadow(loadtext[3], 0);
TextDrawSetOutline(loadtext[3], 0);
TextDrawFont(loadtext[3], 0);
loadtext[4] = TextDrawCreate(244.099395, 186.666641, "Load Textures");
TextDrawLetterSize(loadtext[4], 0.449999, 1.600000);
TextDrawAlignment(loadtext[4], 1);
TextDrawColor(loadtext[4], -1061109505);
TextDrawSetShadow(loadtext[4], 0);
TextDrawSetOutline(loadtext[4], 0);
TextDrawBackgroundColor(loadtext[4], 51);
TextDrawFont(loadtext[4], 3);
TextDrawSetProportional(loadtext[4], 1);
loadtext[5] = TextDrawCreate(234.260620, 237.416641, "loadsuk:loadsc6");
TextDrawLetterSize(loadtext[5], 0.000000, 0.000000);
TextDrawTextSize(loadtext[5], 159.297210, 102.083305);
TextDrawAlignment(loadtext[5], 1);
TextDrawColor(loadtext[5], -1);
TextDrawSetShadow(loadtext[5], 0);
TextDrawSetOutline(loadtext[5], 0);
TextDrawFont(loadtext[5], 4);
// В onplayerconnect
loadtextplayer[playerid] = CreatePlayerTextDraw(playerid, 236.603088, 214.666702, "_");
PlayerTextDrawLetterSize(playerid, loadtextplayer[playerid], 0.308975, 2.060834);
PlayerTextDrawAlignment(playerid, loadtextplayer[playerid], 1);
PlayerTextDrawColor(playerid, loadtextplayer[playerid], 8663807);
PlayerTextDrawUseBox(playerid, loadtextplayer[playerid], true);
PlayerTextDrawBoxColor(playerid, loadtextplayer[playerid], 0);
PlayerTextDrawSetShadow(playerid, loadtextplayer[playerid], 0);
PlayerTextDrawBackgroundColor(playerid, loadtextplayer[playerid], 51);
PlayerTextDrawFont(playerid, loadtextplayer[playerid], 2);
PlayerTextDrawSetProportional(playerid, loadtextplayer[playerid], 1);
PHP:
new LoadTime[MAX_PLAYERS]; // Таймер загрузки текстур.
new LoadTimer[MAX_PLAYERS]; // Тоже для таймера, дальше поймете для чего
new loadstring[MAX_PLAYERS][20]; // String который позволит нам показать так называемые "Палочки" (TextDraw)
PHP:
KillTimer(LoadTime[playerid]); // Удаление таймера при заходе игрока
PHP:
forward LoadingTexture(playerid);
public LoadingTexture(playerid)
{
LoadTimer[playerid]++; // Считываем, сколько секунд прошло
format(loadstring[playerid], 20, "%s||", loadstring[playerid]); // Показываем игроку "Палочки" (Загрузку)
PlayerTextDrawSetString(playerid, loadtextplayer[playerid], loadstring[playerid]); // Изменяем TextDraw
if(LoadTimer[playerid] >= 9) // Проверка
{
PlayerTextDrawSetString(playerid, loadtextplayer[playerid], ""); // Очищаем TextDraw
for(new i; i < 6; i ++) TextDrawHideForPlayer(playerid, loadtext[i]); // Закрываем TextDraw'ы
PlayerTextDrawHide(playerid, loadtextplayer[playerid]);
TogglePlayerControllable(playerid, true); // Размораживаем игрока
KillTimer(LoadTime[playerid]); // Удаляем таймер
LoadTimer[playerid] = 0; // Обнуляем
loadstring[playerid] = ""; // Обнуляем
}
}
stock LoadTexture(playerid)
{
if(GetPVarInt(playerid, "timeloadtext") > gettime())return true; // Если время после которого запустилась загрузка текстур не прошло, то не показываем новую. (Сделано, чтобы не было багов с Таймером)
for(new i; i < 6; i ++) TextDrawShowForPlayer(playerid, loadtext[i]); // Показываем TextDraw'ы
PlayerTextDrawShow(playerid, loadtextplayer[playerid]);
TogglePlayerControllable(playerid, false); // Замораживаем игрока
LoadTime[playerid] = SetTimerEx("LoadingTexture", 500, true, "i", playerid); // Запускаем таймер
SetPVarInt(playerid, "timeloadtext", gettime()+4); // Выше
return true;
}
Вот и все! Это мой первый Мануал для паблика, так что могут быть не значительные ошибки. Систему тестил сам и все прекрасно работает.
Автор: Я
Последнее редактирование:
