PDA

Просмотр полной версии : [Вопрос] Некорректно работают таймеры (плагин timerfix от KashCherry)



oukibt
18.09.2020, 04:44
Приветствую, уважаемые пользователи форума. У меня возникла небольшая проблема касаемо таймера на хостинге.
В игровом моде есть таймер, который создается через функцию плагина timer_fix (by Kash Cherry)
Он должен срабатывать в xx:00:00, но на хостинге этого почему-то работает неправильно, таймер рассчитывается по этой формуле.



#define int:%0(%1) \
forward %0(%1); \
public %0(%1)


public OnGameModeInit()
{
SetCustomTimer("OnFlatTime", (3600 - (gettime()%3600)) * 1000, 0, 1);
}

int:OnFlatTime()
{
SetCustomTimer("OnFlatTime", 3600*1000, 0, 1);
new s, m, h, string[90];
gettime(h, m, s);
printf("[%02d:%02d:%02d] - FlatTimer", h, m, s);
}


лог:

[07:00:00] [07:00:00] - FlatTimer
[07:05:51] [07:05:51] - FlatTimer
[07:41:39] [07:41:39] - FlatTimer
[08:17:26] [08:17:26] - FlatTimer
[08:53:14] [08:53:14] - FlatTimer
[09:29:01] [09:29:01] - FlatTimer
[10:04:49] [10:04:49] - FlatTimer
[10:40:36] [10:40:36] - FlatTimer
[11:16:24] [11:16:24] - FlatTimer
[11:52:11] [11:52:11] - FlatTimer
[12:27:59] [12:27:59] - FlatTimer
[13:03:46] [13:03:46] - FlatTimer
[13:39:34] [13:39:34] - FlatTimer
[14:15:21] [14:15:21] - FlatTimer


Забыл упомянуть, что на localhost (виндовс) всё работает отлично

Также пробовал использовать такую формулу


public OnGameModeInit()
{
new minute, second;
gettime(.minute = minute, .second = second);
SetCustomTimer("OnHourTimer", 0, ((60-minute) * 60 + (60-second)) * 1000, 1);
}


Когда совсем отчаялся, попробовал так


new bool: FlatTimer;

public OnGameModeInit()
{
SetCustomTimer("TSecondUpdate", 1000, 0, 1000000);
}

int:TSecondUpdate()
{
if(ValidFlatTimer == false)
{
new minute, second;
gettime(.minute = minute, .second = second);
if(minute == 0 && second == 0)
{
ValidFlatTimer = true;
SetCustomTimer("OnFlatTime", 3600*1000, 0, 100000);
}
}
return 1;
}

лог:

[01:35:23] [01:35:23] - FlatTimer
[02:11:11] [02:11:11] - FlatTimer
[02:46:58] [02:46:58] - FlatTimer
[03:22:46] [03:22:46] - FlatTimer


Я без понятия с чем это может быть связано.
К слову это уже второй хостинг, и вряд ли проблема в нём.
:dance: *просит помощи*

DeimoS
18.09.2020, 04:51
Формула вызывает вопросы, но, для начала, я бы советовал поставить плагин от udan11 (https://github.com/udan11/samp-plugin-timerfix) вместо плагина от KashCherry. Со вторым тоже были какие-то проблемы давно, а вот первый проверен временем и работает стабильно.

DeimoS
18.09.2020, 18:44
Проблема решилась, как я понимаю?

oukibt
18.09.2020, 20:57
Да, решилась. Спасибо еще раз!