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

    • Noobik
      By Noobik
      Доброго времени суток, сталкнулся с такой проблемой, что ипри запуске сервере режим Uncnown, смотрел много гайдов, но ничего не помогло. Добавил к плагинам .so, но ничего не помогло.
      Вот логи:
       
    • Jose
      By Jose
      Добрый день, хочу рассказать про хостинг игровых серверов https://hostfy.ru
       
      • Игровой сервер в один клик!
      • Панель управления сервером;
      • Базу данных MySQL
      • Системы управления банами: AmxBans, СS:Bans, SourceBans;
      • Системы статистики сервера: CsStats, AStats;
      • Надежную защиту от DDOS-атак;
      • Пополнение баланса без комиссии! 0%
      • CS GO
      • CS 1.6
      • CS: Source
      • CS: Source v34
      • GTA: SAMP
      • GTA: CRMP
      • GTA: RAGE MP
      • Minecraft
       
      У нас Вы можете заказать хостинг игровых серверов множества игр, по самым адекватным ценам в интернете.
       
       
       
    • Mason
      By Mason
      Всем привет задаюсь один вопросом как сделать так чтобы отображалось московское время в тексте в маппинге
      SetDynamicObjectMaterialText(mapping, 0, "%d:%d", 130, "Tahoma", 190, 0, 0xFFFFFFFFFF00FF00, 0, 1); Как сделать так чтобы в тексте было время по москве?