#Pawno 306 Опубликовано 20 февраля, 2018 Доброго времени суток , решил выложить свою работу на форум.Так как более она не актуальна на моем старом сервере , так что ловите. Система Loading , красивый загрузочный экран при входе и выходе с интерьеров, может кто видел подобное в SA-MP на Arizone. Приступим к написанию/вшиванию системы в ваш мод. Ко всем глобальным переменным добавим new PlayerText:LOADING[MAX_PLAYERS][9];// отвечает за кол-во TD new loading[MAX_PLAYERS] = 0; // для timera Далее в конец мода , или как вам удобно создаем forward и pablic forward Loading(playerid);// объявление паблика public Loading(playerid) { loading[playerid] ++;// связано с timer switch(loading[playerid]) { case 0..1: PlayerTextDrawSetString(playerid, LOADING[playerid][8], "~g~IIIII~w~~h~IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII"); case 2..4: PlayerTextDrawSetString(playerid, LOADING[playerid][8], "~g~IIIIIIIIIIIIIIIII~w~~h~IIIIIIIIIIIIIIIIIIIIIIIIIIIII"); case 5..6: PlayerTextDrawSetString(playerid, LOADING[playerid][8], "~g~IIIIIIIIIIIIIIIIIIIIIIIIIII~w~~h~IIIIIIIIIIIIIIIIIII"); case 7..8: PlayerTextDrawSetString(playerid, LOADING[playerid][8], "~g~IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII~w~~h~IIIII"); case 9: { PlayerTextDrawSetString(playerid, LOADING[playerid][8],"~g~IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII~w~~h~"); // Полностью загружаем экран for(new i; i < 9; i++) PlayerTextDrawHide(playerid, LOADING[playerid][i]);// Скрываем экран loading[playerid] = 0; } }// case 0 - 9 это кол-во секунд загрузочного экрана , после которого он пропадет return 1; } После этого добавляем сам TD , который довольна таки интересный. В паблик CreateTextdraws , если его нету , то в OnPlayerConnect LOADING[playerid][0] = CreatePlayerTextDraw(playerid, -0.333333, -0.829629, "LD_SPAC:white"); PlayerTextDrawLetterSize(playerid, LOADING[playerid][0], 0.000000, 0.000000); PlayerTextDrawTextSize(playerid, LOADING[playerid][0], 641.666625, 450.074096); PlayerTextDrawAlignment(playerid, LOADING[playerid][0], 1); PlayerTextDrawColor(playerid, LOADING[playerid][0], 255); PlayerTextDrawSetShadow(playerid, LOADING[playerid][0], 0); PlayerTextDrawSetOutline(playerid, LOADING[playerid][0], 0); PlayerTextDrawFont(playerid, LOADING[playerid][0], 4); LOADING[playerid][1] = CreatePlayerTextDraw(playerid, 220.666671, 131.911102, "LD_SPAC:white"); PlayerTextDrawLetterSize(playerid, LOADING[playerid][1], 0.000000, 0.000000); PlayerTextDrawTextSize(playerid, LOADING[playerid][1], 209.333328, 244.740753); PlayerTextDrawAlignment(playerid, LOADING[playerid][1], 1); PlayerTextDrawColor(playerid, LOADING[playerid][1], -2139062017); PlayerTextDrawSetShadow(playerid, LOADING[playerid][1], 0); PlayerTextDrawSetOutline(playerid, LOADING[playerid][1], 0); PlayerTextDrawFont(playerid, LOADING[playerid][1], 4); LOADING[playerid][2] = CreatePlayerTextDraw(playerid, 221.333358, 157.214828, "loadsc6:loadsc6"); PlayerTextDrawLetterSize(playerid, LOADING[playerid][2], 0.000000, 0.000000); PlayerTextDrawTextSize(playerid, LOADING[playerid][2], 102.333328, 107.437011); PlayerTextDrawAlignment(playerid, LOADING[playerid][2], 1); PlayerTextDrawColor(playerid, LOADING[playerid][2], -1); PlayerTextDrawSetShadow(playerid, LOADING[playerid][2], 0); PlayerTextDrawSetOutline(playerid, LOADING[playerid][2], 0); PlayerTextDrawFont(playerid, LOADING[playerid][2], 4); LOADING[playerid][3] = CreatePlayerTextDraw(playerid, 327.333618, 269.385070, "loadsc8:loadsc8"); PlayerTextDrawLetterSize(playerid, LOADING[playerid][3], 0.000000, 0.000000); PlayerTextDrawTextSize(playerid, LOADING[playerid][3], 102.333328, 107.437011); PlayerTextDrawAlignment(playerid, LOADING[playerid][3], 1); PlayerTextDrawColor(playerid, LOADING[playerid][3], -1); PlayerTextDrawSetShadow(playerid, LOADING[playerid][3], 0); PlayerTextDrawSetOutline(playerid, LOADING[playerid][3], 0); PlayerTextDrawFont(playerid, LOADING[playerid][3], 4); LOADING[playerid][4] = CreatePlayerTextDraw(playerid, 327.666656, 157.385177, "loadsc0:loadsc0"); PlayerTextDrawLetterSize(playerid, LOADING[playerid][4], 0.000000, 0.000000); PlayerTextDrawTextSize(playerid, LOADING[playerid][4], 102.333328, 107.437011); PlayerTextDrawAlignment(playerid, LOADING[playerid][4], 1); PlayerTextDrawColor(playerid, LOADING[playerid][4], -1); PlayerTextDrawSetShadow(playerid, LOADING[playerid][4], 0); PlayerTextDrawSetOutline(playerid, LOADING[playerid][4], 0); PlayerTextDrawFont(playerid, LOADING[playerid][4], 4); LOADING[playerid][5] = CreatePlayerTextDraw(playerid, 221.333221, 269.555786, "loadsc1:loadsc1"); PlayerTextDrawLetterSize(playerid, LOADING[playerid][5], 0.000000, 0.000000); PlayerTextDrawTextSize(playerid, LOADING[playerid][5], 102.333328, 107.437011); PlayerTextDrawAlignment(playerid, LOADING[playerid][5], 1); PlayerTextDrawColor(playerid, LOADING[playerid][5], -1); PlayerTextDrawSetShadow(playerid, LOADING[playerid][5], 0); PlayerTextDrawSetOutline(playerid, LOADING[playerid][5], 0); PlayerTextDrawFont(playerid, LOADING[playerid][5], 4); LOADING[playerid][6] = CreatePlayerTextDraw(playerid, 241.333236, 129.837051, "LOADING TEXTURE"); PlayerTextDrawLetterSize(playerid, LOADING[playerid][6], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, LOADING[playerid][6], 1); PlayerTextDrawColor(playerid, LOADING[playerid][6], 255); PlayerTextDrawSetShadow(playerid, LOADING[playerid][6], 0); PlayerTextDrawSetOutline(playerid, LOADING[playerid][6], 1); PlayerTextDrawBackgroundColor(playerid, LOADING[playerid][6], 16777215); PlayerTextDrawFont(playerid, LOADING[playerid][6], 2); PlayerTextDrawSetProportional(playerid, LOADING[playerid][6], 1); LOADING[playerid][7] = CreatePlayerTextDraw(playerid, 220.666717, 142.696319, "LD_SPAC:white"); PlayerTextDrawLetterSize(playerid, LOADING[playerid][7], 0.000000, 0.000000); PlayerTextDrawTextSize(playerid, LOADING[playerid][7], 209.666641, 14.933323); PlayerTextDrawAlignment(playerid, LOADING[playerid][7], 1); PlayerTextDrawColor(playerid, LOADING[playerid][7], 255); PlayerTextDrawSetShadow(playerid, LOADING[playerid][7], 0); PlayerTextDrawSetOutline(playerid, LOADING[playerid][7], 0); PlayerTextDrawFont(playerid, LOADING[playerid][7], 4); LOADING[playerid][8] = CreatePlayerTextDraw(playerid, 222.999954, 142.281463, "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII"); PlayerTextDrawLetterSize(playerid, LOADING[playerid][8], 0.449999, 1.600000); PlayerTextDrawAlignment(playerid, LOADING[playerid][8], 1); PlayerTextDrawColor(playerid, LOADING[playerid][8], -1); PlayerTextDrawSetShadow(playerid, LOADING[playerid][8], 0); PlayerTextDrawSetOutline(playerid, LOADING[playerid][8], 1); PlayerTextDrawBackgroundColor(playerid, LOADING[playerid][8], 51); PlayerTextDrawFont(playerid, LOADING[playerid][8], 2); PlayerTextDrawSetProportional(playerid, LOADING[playerid][8], 1); Далее в OnPlayerConnect loading[playerid] = 0; А также в OnPlayerDisconect loading[playerid] = 0; for(new i; i < 9; i++) PlayerTextDrawDestroy(playerid, LOADING[playerid][i]); Пример работы с данной системой , ищем вход и выход с интерьеров.Пример: if(pickupid == stolovkapick[0]) // медики вход { for(new i; i < 9; i++) PlayerTextDrawShow(playerid, LOADING[playerid][i]); FreezePlayer(playerid, 5000); SetPlayerInterior(playerid,0); SetPlayerPos(playerid,341.2714,2962.2874,1.7659); SetPlayerFacingAngle(playerid, 51.1457); SetPlayerVirtualWorld(playerid, 0); } if(pickupid == stolovkapick[1]) // медики выход { FreezePlayer(playerid, 2000); SetPlayerInterior(playerid,0); SetPlayerPos(playerid,345.6590,2952.8816,1.7659); SetPlayerFacingAngle(playerid, 180.1457); SetPlayerVirtualWorld(playerid, 0); } И в начале каждого входа или выхода интерьер , сами решайте где юзать. for(new i; i [spoiler=TD Loading] Автор работы: #pawno(Artem_Storn) При копирование темы на другой портал , указывать автора. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
noname_idk 150 Опубликовано 20 февраля, 2018 @#Pawno, не стоит простые переменные называть заглавными буквами. Прежде всего это вводит заблуждение, ведь заглавными обозначаются константы (MAX_PLAYERS, MAX_VEHICLES). Далее в OnPlayerConnect loading[playerid] = 0; А также в OnPlayerDisconect loading[playerid] = 0; А зачем в двух пабликах аннулировать? Лишние действия по сути. В одном каком-нибудь достаточно (предлагаю в OnPlayerDisconnect, поскольку в OnPlayerConnect и так предостаточно кода в большинстве игровых модов). Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты