- Регистрация
- 5 Июн 2019
- Сообщения
- 372
- Лучшие ответы
- 2
- Репутация
- 60
Написал команду /mute, работающую на таймере.
Выдаю себе мут на 1 минуту, включаю /timestamp для того, чтобы отследить точное время и разница во времени между выдачей наказания и его снятием равна 1 минуте и 2 секундам. После чего выдаю наказание на 3 минуты - разница уже 1 мин и 8 секунд, на 5 минут - 1 мин 12 секунд. С чем может быть связана данная проблема и как её пофиксить? Код команды ниже:
В OnGameModeInit:
OneSecondTimer:
В OnGameModeExit:
Выдаю себе мут на 1 минуту, включаю /timestamp для того, чтобы отследить точное время и разница во времени между выдачей наказания и его снятием равна 1 минуте и 2 секундам. После чего выдаю наказание на 3 минуты - разница уже 1 мин и 8 секунд, на 5 минут - 1 мин 12 секунд. С чем может быть связана данная проблема и как её пофиксить? Код команды ниже:
PHP:
cmd:mute(playerid, params[])
{
if(Player[params[0]][pMute] <= 0)
{
Player[params[0]][pMute] = params[1]*60;
strmid(Player[params[0]][pMuteReason], params[2], 0, strlen(params[2]), 64);
new string[62 + MAX_PLAYER_NAME * 2 + 3 + 80];
format(string, sizeof(string), "Администратор %s заблокировал чат игрока %s на %d мин. Причина: %s", Player[playerid][pCurrentAdminNick], Player[params[0]][pName], params[1], params[2]);
SendClientMessageToAll(COLOR_LIGHTRED, string);
Muted(params[0], 1);
}
else
SendClientMessage(playerid, COLOR_LIGHTRED, "У игрока уже имеется бан чата.");
return 1;
}
PHP:
stock Muted(playerid, type)
{
switch(type)
{
case 1:
{
SendClientMessage(playerid, COLOR_LIGHTRED, "Возможность писать в чат временно заблокирована.");
SetPlayerChatBubble(playerid, "Блокировка чата", COLOR_WHITE, 20.0, 5000);
}
case 2:
{
SendClientMessage(playerid, COLOR_LIGHTRED, "Возможность писать в OOC чат временно заблокирована.");
}
}
return 1;
}
PHP:
onesecondtimer = SetTimer("OneSecondTimer", 1000, 1);
PHP:
public OneSecondTimer()
{
foreach(Player, i)
{
if(Player[i][pMute] > 0)
{
Player[i][pMute]--;
if(Player[i][pMute] <= 0)
{
Player[i][pMute] = 0;
SendClientMessage(i, COLOR_GREEN, "Бан чата был снят.");
new qwery[54 + 64 + MAX_PLAYER_NAME];
format(qwery,sizeof(qwery),"UPDATE `accounts` SET `MuteReason`='%s' WHERE `Name`='%s'","", Player[i][pName]);
mysql_tquery(dbHandle, qwery);
continue;
}
}
}
}
PHP:
KillTimer(onesecondtimer);