Сообщение в определенное время

MIV

Участник
Сообщения
613
Реакции
32
Возможно ли вывести сообщения через sm_say в определенное время к примеру в 8.30 ч. сообщение предупреждающее о рестарте сервера.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
[Любая игра] Единоразовый показ сообщения в определенное время

через sm_say в определенное время к примеру в 8.30 ч. сообщение предупреждающее о рестарте сервера
Хотя бы так:
PHP:
#define HOUR_TIME		8
#define MIN_TIME		30
#define SEC_TIME		00


#define MESSAGE_TIME HOUR_TIME*3600+MIN_TIME*60+SEC_TIME
public OnPluginStart()
{
	decl String:time[7], result, String:mins[3], String:seconds[3];
	FormatTime(time, 7, "%H%M%S");
	strcopy(seconds, 3, time[4]);
	time[4] = '\0';
	strcopy(mins, 3, time[2]);
	time[2] = '\0';
	CreateTimer(0 >(result=MESSAGE_TIME-(StringToInt(time)*3600+StringToInt(mins)*60+StringToInt(seconds))) ? float(86399+result):float(result-1), Message);
}

public Action:Message(Handle:timer) 
{
	ServerCommand("sm_say Скоро перезагрузка сервера!");
	return Plugin_Stop; 
}
Указание времени:
HOUR_TIME - час для сообщения;
MIN_TIME - минута для сообщения;
SEC_TIME - секунда времени сообщения.
У кода относительно малая точность времени. Сработка - 1 раз (нужна перезагрузка сервера/плагина).
 
Последнее редактирование:

MIV

Участник
Сообщения
613
Реакции
32
Спасибо!):friends:

Но сообщение не выводит(
 
Последнее редактирование:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #4
MIV, твое время может не совпадать с серверным если сервер не на твоем компе, учти это.
 

Саша Шеин

Кому костылей?
Сообщения
1,697
Реакции
621
Раз тут идут разговоры про время:
1) Как перевести GetTime() в такой формат: 03.06.2010 21:18:32 (В FormatTime это %G
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #6
Саша Шеин, в шопе посмотри. Я оттуда в вип брал. А так, в гугле есть много инфы.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Но сообщение не выводит(
У меня выводит. Сам попробуй задать пару минут и посидеть на сервере.
Другое дело, выводит не вовремя, ибо разброс от таймера (неточность) всё же большой. Оффтоп

P.S. Переделал. Заполнять всё отдельно - у тебя уже установлено на 8:30:00.
 

MIV

Участник
Сообщения
613
Реакции
32
Проверяю по thetime на серве, по нему точно должно?
 

TWRP

Участник
Сообщения
317
Реакции
44
Re: [Любая игра] Единоразовый показ сообщения в определенное время

Хотя бы так:
PHP:
#define HOUR_TIME		8
#define MIN_TIME		30
#define SEC_TIME		00


#define MESSAGE_TIME HOUR_TIME*3600+MIN_TIME*60+SEC_TIME
public OnPluginStart()
{
	decl String:time[7], result, String:mins[3], String:seconds[3];
	FormatTime(time, 7, "%H%M%S");
	strcopy(seconds, 3, time[4]);
	time[4] = '\0';
	strcopy(mins, 3, time[2]);
	time[2] = '\0';
	CreateTimer(0 >(result=MESSAGE_TIME-(StringToInt(time)*3600+StringToInt(mins)*60+StringToInt(seconds))) ? float(86399+result):float(result-1), Message);
}

public Action:Message(Handle:timer) 
{
	ServerCommand("sm_say Скоро перезагрузка сервера!");
	return Plugin_Stop; 
}
Указание времени:
HOUR_TIME - час для сообщения;
MIN_TIME - минута для сообщения;
SEC_TIME - секунда времени сообщения.
У кода относительно малая точность времени. Сработка - 1 раз (нужна перезагрузка сервера/плагина).
смена карты будет достаточно ?
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
по нему точно должно
Приблизительно. Секунда в секунду не получится при длительном ожидании до сообщения.
смена карты будет достаточно ?
Чтобы плагин сработал, достаточно загрузить его любым известным способом.
 
  • Мне нравится
Реакции: MIV
Сверху Снизу