Перейти к содержанию
Авторизация  
#Pawno

Система Loading

Рекомендуемые сообщения

#Pawno

Доброго времени суток , решил выложить свою работу на форум.

Так как более она не актуальна на моем старом сервере , так что ловите.

 

Система 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]uvrMqZ1.png

 

 

Автор работы:  #pawno(Artem_Storn)

При копирование темы на другой портал , указывать автора. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

@#Pawno, не стоит простые переменные называть заглавными буквами. Прежде всего это вводит заблуждение, ведь заглавными обозначаются константы (MAX_PLAYERS, MAX_VEHICLES).

 

 


Далее в OnPlayerConnect  loading[playerid] = 0;

 

 


А также в OnPlayerDisconect loading[playerid] = 0;

 

А зачем в двух пабликах аннулировать? Лишние действия по сути. В одном каком-нибудь достаточно (предлагаю в OnPlayerDisconnect, поскольку в OnPlayerConnect и так предостаточно кода в большинстве игровых модов).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.