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

Your content will need to be approved by a moderator

Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   You have pasted content with formatting.   Remove formatting

  Only 75 emoticons maximum are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • glvde.
      By glvde.
      Матрешка РП | Слив мода с продажи
      Просмотр файла МАТРЕШКА РП
       
      Хранение данных (версия MySQL): R41-3.
      Командный процессор: Pawn.CMD.
      Количество строк в моде (без маппинга): 49192.
      Анти-чит: Nexius-AC v1.9.53.
      Автор доработки: Антон Нолмадов.
       
      Стоило бы немного поговорить о том, почему этот мод сливается.
      Данный мод покупался у Антона Нолмадова напрямую.
      Отдали мы около 1.000 рублей, с некоторыми доработками (о них попозже).

      О каких доработках идет речь:

      У данного кадра мы купили: Мод, сборка(ПК) + 700 рублей - адаптирование клиента мобильного под игровой мод.
      Мы все оплатили, он выставил сроки до пятницы (24.09.21), на дворе - воскресенье (26.09.21).
      Спустя день мы добились того, что нам предоставят сборку на ПК (скрин. ниже):

      Сборку предоставили, а теперь начинается самое интересное.
      Как утверждалось в теме с продажей - основа мода Brilliant.
      Открыв код я понял, что основа мода далеко не Brilliant.
      Архив с игровым модом предоставили без .sql файла (базы данных).
      Соответственно, никаких адаптированных клиентов предоставлено не было.

      Остальные ссылки:

      Уважаемая администрация портала Pawno-Rus - @DEST, @keyl, @Jawn.
      Попрошу обратить внимание на данного персонажа - @Антон Нолмадов 
      P.S: архив предоставил таким, как он и был на yadi.sk (прямой линк - *клик*).

      Лучшая благодарность для меня - подписка на группу моей студии: vk.link/way_dev
      Всем спасибо за внимание.
      Добавил glvde. Добавлено 26.09.2021 Категория Моды Автор Антон Нолмадов  
    • glvde.
      By glvde.
      МАТРЕШКА РП
       
      Хранение данных (версия MySQL): R41-3.
      Командный процессор: Pawn.CMD.
      Количество строк в моде (без маппинга): 49192.
      Анти-чит: Nexius-AC v1.9.53.
      Автор доработки: Антон Нолмадов.
       
      Стоило бы немного поговорить о том, почему этот мод сливается.
      Данный мод покупался у Антона Нолмадова напрямую.
      Отдали мы около 1.000 рублей, с некоторыми доработками (о них попозже).

      О каких доработках идет речь:

      У данного кадра мы купили: Мод, сборка(ПК) + 700 рублей - адаптирование клиента мобильного под игровой мод.
      Мы все оплатили, он выставил сроки до пятницы (24.09.21), на дворе - воскресенье (26.09.21).
      Спустя день мы добились того, что нам предоставят сборку на ПК (скрин. ниже):

      Сборку предоставили, а теперь начинается самое интересное.
      Как утверждалось в теме с продажей - основа мода Brilliant.
      Открыв код я понял, что основа мода далеко не Brilliant.
      Архив с игровым модом предоставили без .sql файла (базы данных).
      Соответственно, никаких адаптированных клиентов предоставлено не было.

      Остальные ссылки:

      Уважаемая администрация портала Pawno-Rus - @DEST, @keyl, @Jawn.
      Попрошу обратить внимание на данного персонажа - @Антон Нолмадов 
      P.S: архив предоставил таким, как он и был на yadi.sk (прямой линк - *клик*).

      Лучшая благодарность для меня - подписка на группу моей студии: vk.link/way_dev
      Всем спасибо за внимание.
    • brodgie
      By brodgie
      Include - m_mail
      Просмотр файла m_mail - Отправляет письмо на электронную почту из игры.
       
      Описание:

      • Поддержка русского текста;
      • Доступно 2 типа отправки письма (обычный и HTML).

      Пример использования:
       
      #define M_MAIL_URL "example.com/m_mail.php" #define M_MAIL_ADDRESS "mymail@example.com" #include <m_mail> public OnPlayerConnect(playerid) { Mail_Send(playerid, Mail:EXAMPLE_EMAIL, "pawnocoder@mail.ru", "Название", "Тема сообщения", "Текст сообщения"); return 1; } Mail_Response:EXAMPLE_EMAIL(playerid, response_code, const data[]) { switch (response_code) { case 200: { // Почта успешно отправлена } default: { // Не удалось отправить почту } } return 1; }  
      Автор: NoName (Pawno_Coder) | Взято с соседнего борда
      Добавил brodgie Добавлено 25.09.2021 Категория Плагины / инклуды Автор Pawno_Coder Совместимость с версией мультиплеера  
    • brodgie
      By brodgie
      m_mail - Отправляет письмо на электронную почту из игры.
       
      Описание:

      • Поддержка русского текста;
      • Доступно 2 типа отправки письма (обычный и HTML).

      Пример использования:
       
      #define M_MAIL_URL "example.com/m_mail.php" #define M_MAIL_ADDRESS "mymail@example.com" #include <m_mail> public OnPlayerConnect(playerid) { Mail_Send(playerid, Mail:EXAMPLE_EMAIL, "pawnocoder@mail.ru", "Название", "Тема сообщения", "Текст сообщения"); return 1; } Mail_Response:EXAMPLE_EMAIL(playerid, response_code, const data[]) { switch (response_code) { case 200: { // Почта успешно отправлена } default: { // Не удалось отправить почту } } return 1; }  
      Автор: NoName (Pawno_Coder) | Взято с соседнего борда