PDA

Просмотр полной версии : [Вопрос] Авторестарт



_lizard
01.03.2017, 15:16
Не могу понять в чём причина, рестартит два раза, хотя должен один (логи прикрепил)

OnGameModeInit:


SetTimer("CheckServerTime", 1*1000*60, true);


Сам рестарт:


forward CheckServerTime();
public CheckServerTime()
{
new hour, minute;
gettime(hour, minute, _);
if(minute == 0)
{
IsWasPayDay[hour] = 1;
printf("PAY DAY");
}
else if(minute == 1)
{
if(IsWasPayDay[hour] != 1) printf("PAY DAY");
}
else if(minute == 2)
{
SetWorldTime(hour);
if(hour == 5)
{
print("=============== [ S A V I N G D A T A ] ===============");
SetTimer("RestartServer", 10*1000, false);
}
}
return 1;
}
forward RestartServer();
public RestartServer()
{
printf("=============== [ S E R V E R R E S T A R T I N G ] ===============");
mysql_close();
SendRconCommand("gmx");
return 1;
}


Логи:


[05:00:36] PAY DAY

----------
Loaded log file: "server_log.txt".
----------

SA-MP Dedicated Server
----------------------
v0.3.7-R2, (C)2005-2015 SA-MP Team

[05:01:12] filterscripts = "" (string)
[05:01:12]
[05:01:12] Server Plugins
[05:01:12] --------------
[05:01:12] Loading plugin: crashdetect.so
[05:01:12] CrashDetect v4.17 is OK.
[05:01:12] Loaded.
[05:01:12] Loading plugin: streamer.so
[05:01:12]

*** Streamer Plugin v2.8.2 by Incognito loaded ***

[05:01:12] Loaded.
[05:01:12] Loading plugin: mysql.so
[05:01:12] >> plugin.mysql: R41-2 successfully loaded.
[05:01:12] Loaded.
[05:01:12] Loading plugin: dc_cmd.so
[05:01:12] Daniel''s CMD plugin v2.8
[05:01:12] (c) 2014 Daniel_Cortez
[05:01:12] www.pro-pawn.ru
[05:01:12] Loaded.
[05:01:12] Loading plugin: gvar.so
[05:01:12]

*** GVar Plugin v1.3 by Incognito loaded ***

[05:01:12] Loaded.
[05:01:12] Loading plugin: sscanf.so
[05:01:12]

[05:01:12] ===============================

[05:01:12] sscanf plugin loaded.

[05:01:12] Version: 2.8.2

[05:01:12] (c) 2012 Alex "Y_Less" Cole

[05:01:12] ===============================

[05:01:12] Loaded.
[05:01:12] Loaded 6 plugins.

[05:01:12]
[05:01:12] Filterscripts
[05:01:12] ---------------
[05:01:12] Loaded 0 filterscripts.
[05:01:12] [... Loading ...] Сервер успешно загружен.
[05:01:12] Number of vehicle models: 2 // 1 раз
[05:02:15] =============== [ S A V I N G D A T A ] ===============
[05:02:25] =============== [ S E R V E R R E S T A R T I N G ] ===============
[05:02:38] [... Loading ...] Сервер успешно загружен.
[05:02:38] Number of vehicle models: 2 // 2 раз, причём не понятно, почему плагины не загружаются снова, если он уж 2 раза рестартит

vasyok28
01.03.2017, 17:42
Смотрите может наколдовали с OnGameModeExit()

И еще мне не понятно как работает ваша конструкция, так как вы запускаете таймер чтобы сработал через 1 час, и стоит условия на время, по идее условия попадет только лишь в первой проверке

if(minute == 0) если не учесть что в сампе есть баг с таймерами, исключение если исправили.

А так советую сделать это все в секундный общий таймер если таково имеется, так как при повторном вызове таймера время запуска паблика будет не точным.

_lizard
01.03.2017, 17:51
И еще мне не понятно как работает ваша конструкция, так как вы запускаете таймер чтобы сработал через 1 час

Не час, а минута, в мс же