Смотрите какая проблема. Писал афк систему и не могу понять в чем ошибка. Значит если игрок свернулся над головой у него горит текст (AFK blalalala) все прекрасно все показывает, но работа таймера меня пугает, секунды летят, в прямом смысле слова ЛЕТЯТ, одна за две и отображается это все над головой, допустим простоял человек в афк 10 секунд, над головой пишет 50:03 как будто он уже 50 минут стоит... Прошу помощи у бородатых скриптеров...
Собственно сам функционал афк системы, система работает в секундном таймере....
PHP код:
foreach(new i: Player)
{
if(PlayerAFK[i] == 0) PlayerAFK[i] = -1;
else if(PlayerAFK[i] == -1)
{
PlayerAFK[i] = 1;
f("AFK: {FFFFFF}[%s]", Convert(PlayerAFK[i]));
SetPlayerChatBubble(i, string, COLOR_GREEN, 20.0, 1200);
}
else if(PlayerAFK[i] > 0)
{
PlayerAFK[i]+=1;
f("AFK: {FFFFFF}[%s]", Convert(PlayerAFK[i]));
SetPlayerChatBubble(i, string, COLOR_GREEN, 20.0, 1200);
if(PlayerAFK[i] > 6000)
{
if(Pl[i][pAdmin] == 0)
{
SCM(i, COLOR_RED, "Âû ñëèøêîì äîëãî ïðîñòîÿëè â AFK!");
SetTimerEx("kick", 50, false, "i", i);
}
}
}
}
Связано ли это с моим кодом или проблема в чем то другом? up help me
---------- Post added at 15:12 ---------- Previous post was at 15:08 ----------
Небольшое вложение, это буквально спустя минуты 3.
Вы скажите, что кидай суда свой конвертер, скажу сразу дело не в нем... Но если это кому то поможет - пожалуйста!
PHP код:
Convert(number)
{
new hours = 0, mins = 0, secs = 0, string[100];
hours = floatround(number / 3600);
mins = floatround((number / 60) - (hours * 60));
secs = floatround(number - ((hours * 3600) + (mins * 60)));
if(hours > 0) { format(string, 100, "%i:%02d?:%02d?", hours, mins, secs); }
else { format(string, 100, "%i:%02d", mins, secs); }
return string;
}