Andrei_Morozov

Шлагбаум по графику!

3 posts in this topic

Всем привет участники PR.RP!

Сегодня я покажу как сделать систему открывание и закрывание шлагбаума по графику!

 

Для начало создадим переменные:

 

Спойлер

new ShlakMoveGIBDD[0], // Значение для шлакбаума
	ParkovkaGIBDD; // Значение для графика по времини!
    
new Text3D:ParkGIBDD; // Тект который будет обновляться по графику шлакбаума!

 

 

Далее вставляем в OnPlayerConnect и в OnPlayerDisconnect

 

Спойлер

	ShlakMoveGIBDD[0] 				=
	ParkovkaGIBDD					= 0;
// Приравниваем все значение при входе и выходе с сервера!

 

 

Далее добавляем в OnGameModeInit

 

Спойлер

	ParkGIBDD = Create3DTextLabel(
	"Парковка для гражданского транспорта!\n\n\
		\t\tРежим работы:\n\
	Парковка открыта - с 7:30 до 22:00 часов!\n\
	Парковка закрыта - с 22:00 до 7:30 часов!", COLOR_SERVER, 133.5267,1270.2351, 13.5000, 20.0, 0, 0);
// текст при подключении

ShlakGIBDD[1] = CreateObject(968, 133.6143, 1270.8362, 11.8204, 0.00000, -90.00000, -11.50000);

// Добавляем сам объект - помните что в данном примере положение шлакбаума - (Открыт он или Закрыт) не учитываеться так как действие происходит в таймере! 
// И все примеры вы можете заменить на свои!

 

 

Добавляем в сам таймер!

 

Спойлер

	if(hour >= 7 || hour <= 22 && minute == 30 && second >= 10 && second <= 40) // Открыта
	{
	    if(ParkovkaGIBDD == 0) ParkovkaGIBDD = 1;
		if(ShlakMoveGIBDD[1] == 0)
		{
		    ShlakMoveGIBDD[1] = 1;
		    MoveObject(ShlakGIBDD[1], 133.6143, 1270.8362, 11.8204-0.012, 0.003, 0.0, -0.0, -11.5);
		    Update3DTextLabelText(ParkGIBDD, COLOR_SERVER,
			"Парковка для гражданского транспорта!\n\n\
				\t\t{FFFFFF}Режим работы:\n\
			{63BD4E}Октрыта - с 7:30 до 22:00 часов!");
		}
	}
 	if(hour >= 22 || hour <= 7 && minute == 30 && second >= 10 && second <= 40)  // Закрыта
 	{
 	    if(ParkovkaGIBDD == 1) ParkovkaGIBDD = 0;
		if(ShlakMoveGIBDD[1] == 1)
		{
			ShlakMoveGIBDD[1] = 0;
			MoveObject(ShlakGIBDD[1], 133.6143, 1270.8362, 11.8204+0.012, 0.003, 0.0, -90.0, -11.5);
			Update3DTextLabelText(ParkGIBDD, COLOR_SERVER,
			"Парковка для гражданского транспорта!\n\n\
				\t\t{FFFFFF}Режим работы:\n\
			{FF0000}Закрыта - с 22:00 до 7:30 часов!");
		}
 	}
    
    // Как Вы уже поняли где hour это время в часах, а minute и second.
    // Если будут ошибки из-за переменных gettime(), то добавьте в начяло таймера! 
    /*
    new hour,minute,second;
	gettime(hour,minute,second);
    */

 

 

Сриншет смотри тут: *кликабельно*

 

Автор: Andrey_Akkerman - (Я)!

 

Edited by Andrey_Akkerman
Причина: Не добавил автора!

Share this post


Link to post
Share on other sites

Годно, но можно код подправить. Переменная "ShlakGIBDD[1]" не объявлена, для объекта можно создать просто переменную, без массива. Переменные, которые имеют только значения 0 и 1 лучше создавать с типом "bool". Зачем в секундный? Можно добавить таймер, например с частотой обновления ~15-20 сек. Запутанный код, зачем обнулять переменные при коннекте?

new shlag_object,
	shlag_check
	Text3D: ParkGIBDD;

OnGameModeInit:

Спойлер

ParkGIBDD = Create3DTextLabel(
	"Парковка для гражданского транспорта!\n\n\
	\t\tРежим работы:\n\
	Парковка открыта - с 7:30 до 22:00 часов!\n\
	Парковка закрыта - с 22:00 до 7:30 часов!", 
	COLOR_SERVER, 133.5267,1270.2351, 13.5000, 20.0, 0, 0);
shlag_object = CreateObject(968, 133.6143, 1270.8362, 11.8204, 0.00000, -90.00000, -11.50000);

SetTimer("@_Shlag_check_timer", 20_000, false);

 

Паблик с таймером:

Спойлер

@_Shlag_check_timer();
@_Shlag_check_timer
{
	new hour,
        minute;
	gettime(hour, minute);

	if(hour >= 7 || hour <= 22 && minute >= 30) // Открыта
	{
      		if(shlag_check == true) return true;
      		shlag_check = true;
		    MoveObject(shlag_object, 133.6143, 1270.8362, 11.8204-0.012, 0.003, 0.0, -0.0, -11.5);
		    Update3DTextLabelText(ParkGIBDD, COLOR_SERVER,
			"Парковка для гражданского транспорта!\n\n\
				\t\t{FFFFFF}Режим работы:\n\
			{63BD4E}Октрыта - с 7:30 до 22:00 часов!");
	}
 	if(hour >= 22 || hour <= 7 && minute >= 30)  // Закрыта
 	{
      		if(shlag_check == false) return true;
      		shlag_check = false;
			MoveObject(shlag_object, 133.6143, 1270.8362, 11.8204+0.012, 0.003, 0.0, -90.0, -11.5);
			Update3DTextLabelText(ParkGIBDD, COLOR_SERVER,
			"Парковка для гражданского транспорта!\n\n\
				\t\t{FFFFFF}Режим работы:\n\
			{FF0000}Закрыта - с 22:00 до 7:30 часов!");
	}
	SetTimer("@_Shlag_check_timer", 20_000, false);
}

 

В теории должно работать.

Share this post


Link to post
Share on other sites
1 час назад, SCRIPTMAN сказал:

Годно, но можно код подправить. Переменная "ShlakGIBDD[1]" не объявлена, для объекта можно создать просто переменную, без массива. Переменные, которые имеют только значения 0 и 1 лучше создавать с типом "bool". Зачем в секундный? Можно добавить таймер, например с частотой обновления ~15-20 сек. Запутанный код, зачем обнулять переменные при коннекте?


new shlag_object,
	shlag_check
	Text3D: ParkGIBDD;

OnGameModeInit:

  OnGameModeInit (открыть спойлер)


ParkGIBDD = Create3DTextLabel(
	"Парковка для гражданского транспорта!\n\n\
	\t\tРежим работы:\n\
	Парковка открыта - с 7:30 до 22:00 часов!\n\
	Парковка закрыта - с 22:00 до 7:30 часов!", 
	COLOR_SERVER, 133.5267,1270.2351, 13.5000, 20.0, 0, 0);
shlag_object = CreateObject(968, 133.6143, 1270.8362, 11.8204, 0.00000, -90.00000, -11.50000);

SetTimer("@_Shlag_check_timer", 20_000, false);

 

Паблик с таймером:

  Пабл (закрыть спойлер)


@_Shlag_check_timer();
@_Shlag_check_timer
{
	new hour,
        minute;
	gettime(hour, minute);

	if(hour >= 7 || hour <= 22 && minute >= 30) // Открыта
	{
      		if(shlag_check == true) return true;
      		shlag_check = true;
		    MoveObject(shlag_object, 133.6143, 1270.8362, 11.8204-0.012, 0.003, 0.0, -0.0, -11.5);
		    Update3DTextLabelText(ParkGIBDD, COLOR_SERVER,
			"Парковка для гражданского транспорта!\n\n\
				\t\t{FFFFFF}Режим работы:\n\
			{63BD4E}Октрыта - с 7:30 до 22:00 часов!");
	}
 	if(hour >= 22 || hour <= 7 && minute >= 30)  // Закрыта
 	{
      		if(shlag_check == false) return true;
      		shlag_check = false;
			MoveObject(shlag_object, 133.6143, 1270.8362, 11.8204+0.012, 0.003, 0.0, -90.0, -11.5);
			Update3DTextLabelText(ParkGIBDD, COLOR_SERVER,
			"Парковка для гражданского транспорта!\n\n\
				\t\t{FFFFFF}Режим работы:\n\
			{FF0000}Закрыта - с 22:00 до 7:30 часов!");
	}
	SetTimer("@_Shlag_check_timer", 20_000, false);
}

 

В теории должно работать.

 

Логично! Спс за направленность!

Кстати далее планирую данную систему перевести на динамический уровень!

 

Так что ждите версии 2.0!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • axvvpq
      By axvvpq
      Всех приветствую, меня интересует мод проекта AMAZING, если он есть у кого то с системой транспортных компаний и/или таксопарков - прошу скинуть. Если же вы его продаёте, то цену и связь с Вами.
    • 0s1pov
      By 0s1pov
      Мод полный оригинал 11 REGION RP
      Просмотр файла Здравствуйте дорогие пользователи pawnorus. На продаже оригинальный мод проекта 11 REGION RP
      В моде присутствует:
      CEF:
      - Авторизация/регистрация на CEF
      - Главное меню на CEF
      - Магазин одежды на CEF
      - Худ CEF
      - Меню управления фракцией на CEF
      - Спидометр на CEF
      - Документы по типу паспорта, военного билета и так далее на CEF

      Системная составляющая:
      - Система спортзала (FULL 11 REGION)
      - Система подъездов (FULL 11 REGION)
      - Система усталости, для понижения усталости Вам требуется ввести команду, и Ваш персонаж будет отдыхать (FULL 11 REGION)
      - Система динамического авторынка, администрация из игры выставляет автомобили на продажу (FULL 11 REGION)
      - Система позволяющая создать фракционный транспорт прямо из игры с сохранением (FULL 11 REGION)
      - Система тонировки автомобиля (FULL 11 REGION)
      - Система различных образований, (полицейское, и тд) (FULL 11 REGION)
      - Система реалистичных номерных знаков с возможностью изменения региона (4 типа: гражданский, полицейский, военный, такси) (FULL 11 REGION)
      - Система закрытой регистрации способом подачи заявки прямо из игры прямиком администрации, с дальнейшей возможность отклонения/одобрения её (FULL 11 REGION)
      - Много различных работ, например: развозчик песка, развозчик пиццы, машинист поезда) (FULL 11 REGION)
      - Система сохранения всех действий в базу данных MySQL (FULL 11 REGION)
      - Система выдачи своего звания(сами пишите название)
      - Система подорганизаций во фракции (FULL 11 REGION)
      - Система мигалок с интерфейсом (FULL 11 REGION)

      И многое другое. К моду прилагается также база данных, приятного использования.
      Добавил 0s1pov Добавлено 04.12.2022 Категория Моды Автор 11 region  
    • 0s1pov
      By 0s1pov
      Здравствуйте дорогие пользователи pawnorus. На продаже оригинальный мод проекта 11 REGION RP
      В моде присутствует:
      CEF:
      - Авторизация/регистрация на CEF
      - Главное меню на CEF
      - Магазин одежды на CEF
      - Худ CEF
      - Меню управления фракцией на CEF
      - Спидометр на CEF
      - Документы по типу паспорта, военного билета и так далее на CEF

      Системная составляющая:
      - Система спортзала (FULL 11 REGION)
      - Система подъездов (FULL 11 REGION)
      - Система усталости, для понижения усталости Вам требуется ввести команду, и Ваш персонаж будет отдыхать (FULL 11 REGION)
      - Система динамического авторынка, администрация из игры выставляет автомобили на продажу (FULL 11 REGION)
      - Система позволяющая создать фракционный транспорт прямо из игры с сохранением (FULL 11 REGION)
      - Система тонировки автомобиля (FULL 11 REGION)
      - Система различных образований, (полицейское, и тд) (FULL 11 REGION)
      - Система реалистичных номерных знаков с возможностью изменения региона (4 типа: гражданский, полицейский, военный, такси) (FULL 11 REGION)
      - Система закрытой регистрации способом подачи заявки прямо из игры прямиком администрации, с дальнейшей возможность отклонения/одобрения её (FULL 11 REGION)
      - Много различных работ, например: развозчик песка, развозчик пиццы, машинист поезда) (FULL 11 REGION)
      - Система сохранения всех действий в базу данных MySQL (FULL 11 REGION)
      - Система выдачи своего звания(сами пишите название)
      - Система подорганизаций во фракции (FULL 11 REGION)
      - Система мигалок с интерфейсом (FULL 11 REGION)

      И многое другое. К моду прилагается также база данных, приятного использования.
    • tranquilsevenaura
      By tranquilsevenaura
      Добрый вечер дорогие друзья, не работает команда /apanel. По началу, как только запустил мод и выдал себе админку все было хорошо и все работало, но после сделав несколько манипуляций (явно не связанных с /apanel НИКАКИМ образом, как мне кажется). В server log ничего толкового найти не смог. Уровень моего скриптинга "качабок, который эдитит простые команды и дополняет диалоги".
       
      Буду очень благодарен, если поможете, репликом ниже предоставлю код /apanel
      CMD:apanel(playerid, const params[]) {     if(PI[playerid][pAdmin] < 1 || dostup[playerid] == 0) return true;     new string[1612];     switch(PI[playerid][pAdmin]) {         case 1: format(string,sizeof(string),""P"1."W" Àäìèíèñòðàöèÿ\n"P"2."W" Çàñïàâíèòüñÿ\n"P"3."W" Óñòðîèòüñÿ íà ðàáîòó\n"P"4."W" Èãðîêè â òþðüìå\n"P"5."W" Èãðîêè ñ áàíîì ÷àòà\n"P"6."W" Àäìèí èíôîðìàöèÿ %s\n"P"7."W" Kill List %s",(!PI[playerid][pAdmMSG]) ? ("{FF182D}[OFF]") : ("{33AA33}[ONN]"),(!PI[playerid][pAdmKL]) ? ("{FF182D}[OFF]") : ("{33AA33}[ONN]"));         case 2: format(string,sizeof(string),""P"1."W" Àäìèíèñòðàöèÿ\n"P"2."W" Çàñïàâíèòüñÿ\n"P"3."W" Óñòðîèòüñÿ íà ðàáîòó\n"P"4."W" Èãðîêè â òþðüìå\n"P"5."W" Èãðîêè ñ áàíîì ÷àòà\n"P"6."W" Àäìèí èíôîðìàöèÿ %s\n"P"7."W" Kill List %s\n"P"8."W" Îíëàéí îðãàíèçàöèé\n"P"9."W" Ïî÷èíèòü àâòîìîáèëü",(!PI[playerid][pAdmMSG]) ? ("{FF182D}[OFF]") : ("{33AA33}[ONN]"),(!PI[playerid][pAdmKL]) ? ("{FF182D}[OFF]") : ("{33AA33}[ONN]"));         case 3: format(string,sizeof(string),""P"1."W" Àäìèíèñòðàöèÿ\n"P"2."W" Çàñïàâíèòüñÿ\n"P"3."W" Óñòðîèòüñÿ íà ðàáîòó\n"P"4."W" Èãðîêè â òþðüìå\n"P"5."W" Èãðîêè ñ áàíîì ÷àòà\n"P"6."W" Àäìèí èíôîðìàöèÿ %s\n"P"7."W" Kill List %s\n"P"8."W" Îíëàéí îðãàíèçàöèé\n"P"9."W" Ïî÷èíèòü àâòîìîáèëü\n"P"10."W" Ñîñòîÿíèå ñêëàäîâ\n"P"11."W" Óçíàòü çàìîðîçêè áàíä/ìàôèé",(!PI[playerid][pAdmMSG]) ? ("{FF182D}[OFF]") : ("{33AA33}[ONN]"),(!PI[playerid][pAdmKL]) ? ("{FF182D}[OFF]") : ("{33AA33}[ONN]"));         case 4: format(string,sizeof(string),""P"1."W" Àäìèíèñòðàöèÿ\n"P"2."W" Çàñïàâíèòüñÿ\n"P"3."W" Óñòðîèòüñÿ íà ðàáîòó\n"P"4."W" Èãðîêè â òþðüìå\n"P"5."W" Èãðîêè ñ áàíîì ÷àòà\n"P"6."W" Àäìèí èíôîðìàöèÿ %s\n"P"7."W" Kill List %s\n"P"8."W" Îíëàéí îðãàíèçàöèé\n"P"9."W" Ïî÷èíèòü àâòîìîáèëü\n"P"10."W" Ñîñòîÿíèå ñêëàäîâ\n"P"11."W" Óçíàòü çàìîðîçêè áàíä/ìàôèé\n"P"12."W" Áàíëèñò\n"P"13."W" Âîçìîæíî âçëîìàíû\n"P"14."W" Áèëáîðäû\n"P"15."W" Äóýëè %s",(!PI[playerid][pAdmMSG]) ? ("{FF182D}[OFF]") : ("{33AA33}[ONN]"),(!PI[playerid][pAdmKL]) ? ("{FF182D}[OFF]") : ("{33AA33}[ONN]"),(!duels) ? ("{FF182D}[OFF]") : ("{33AA33}[ON]"));         case 5: format(string,sizeof(string),""P"1."W" Àäìèíèñòðàöèÿ\n"P"2."W" Çàñïàâíèòüñÿ\n"P"3."W" Óñòðîèòüñÿ íà ðàáîòó\n"P"4."W" Èãðîêè â òþðüìå\n"P"5."W" Èãðîêè ñ áàíîì ÷àòà\n"P"6."W" Àäìèí èíôîðìàöèÿ %s\n"P"7."W" Kill List %s\n"P"8."W" Îíëàéí îðãàíèçàöèé\n"P"9."W" Ïî÷èíèòü àâòîìîáèëü\n"P"10."W" Ñîñòîÿíèå ñêëàäîâ\n"P"11."W" Óçíàòü çàìîðîçêè áàíä/ìàôèé\n"P"12."W" Áàíëèñò\n"P"13."W" Âîçìîæíî âçëîìàíû\n"P"14."W" Áèëáîðäû\n"P"15."W" Äóýëè %s\n"P"16."W" Àíòè÷èò\n"P"17."W" Êàçèíî %s\n"P"18."W" Ðåïîðò %s\n"P"19."W" Çàïîëíèòü ñêëàäû áàíä/ìàôèé\n"P"20."W" Îãðàíè÷åíèå Invite",(!PI[playerid][pAdmMSG]) ? ("{FF182D}[OFF]") : ("{33AA33}[ONN]"),(!PI[playerid][pAdmKL]) ? ("{FF182D}[OFF]") : ("{33AA33}[ONN]"),(!duels) ? ("{FF182D}[OFF]") : ("{33AA33}[ON]"),(!casino) ? ("{FF182D}[OFF]") : ("{33AA33}[ON]"),(!rep_system) ? ("{FF182D}[OLD]") : ("{33AA33}[NEW]"));         case 6,7: format(string,sizeof(string),""P"1."W" Àäìèíèñòðàöèÿ\n"P"2."W" Çàñïàâíèòüñÿ\n"P"3."W" Óñòðîèòüñÿ íà ðàáîòó\n"P"4."W" Èãðîêè â òþðüìå\n"P"5."W" Èãðîêè ñ áàíîì ÷àòà\n"P"6."W" Àäìèí èíôîðìàöèÿ %s\n"P"7."W" Kill List %s\n"P"8."W" Îíëàéí îðãàíèçàöèé\n"P"9."W" Ïî÷èíèòü àâòîìîáèëü\n"P"10."W" Ñîñòîÿíèå ñêëàäîâ\n"P"11."W" Óçíàòü çàìîðîçêè áàíä/ìàôèé\n"P"12."W" Áàíëèñò\n"P"13."W" Âîçìîæíî âçëîìàíû\n"P"14."W" Áèëáîðäû\n"P"15."W" Äóýëè %s\n"P"16."W" Àíòè÷èò\n"P"17."W" Êàçèíî %s\n"P"18."W" Ðåïîðò %s\n"P"19."W" Çàïîëíèòü ñêëàäû áàíä/ìàôèé\n"P"20."W" Îãðàíè÷åíèå Invite\n"P"21."W" Äàëüíîáîéùèêè\n"P"22."W" Ïðîìîêîäû\n"P"23."W" Áîíóñû\n"P"24."W" Ïîïîëíèòü ïðîäóêòû â áèçíåñ(ñêîëüêî çàêàçàë âëàäåëåö)\n"P"25."W" Àíòè ÒÊ %s",(!PI[playerid][pAdmMSG]) ? ("{FF182D}[OFF]") : ("{33AA33}[ONN]"),(!PI[playerid][pAdmKL]) ? ("{FF182D}[OFF]") : ("{33AA33}[ONN]"),(!duels) ? ("{FF182D}[OFF]") : ("{33AA33}[ON]"),(!casino) ? ("{FF182D}[OFF]") : ("{33AA33}[ON]"),(!rep_system) ? ("{FF182D}[OLD]") : ("{33AA33}[NEW]"),(!anti_tk) ? ("{FF182D}[OFF]") : ("{33AA33}[ON]"));     }     D(playerid,D_ADMIN_PANEL,DSL,""P"Àäìèí ïàíåëü",string,"Âûáðàòü","Îòìåíà");     return true; }