Ко всем forward'ам:
Code: Select all
forward KickTimer(playerid);
В начало OnPlayerDisconnect:
Code: Select all
if(GetPVarInt(playerid, "Kick") != 0) KillTimer(GetPVarInt(playerid, "Kick"));
В начало OnPlayerUpdate:
Code: Select all
if(GetPVarInt(playerid, "Kick") != 0) GKick(playerid);
В конец мода или другое подходящее место:
Code: Select all
public KickTimer(playerid) return GKick(playerid);
stock GKick(playerid, time = 5000)
{
if(GetPVarInt(playerid, "Kick") == -1) Kick(playerid);
else if(!GetPVarInt(playerid, "Kick")) SetPVarInt(playerid, "Kick", SetTimerEx("KickTimer", time, 0, "d", playerid));
else
{
KillTimer(GetPVarInt(playerid, "Kick"));
SetPVarInt(playerid, "Kick", -1);
GKick(playerid);
}
return 1;
}
Теперь если вы захотите кикнуть игрока, то нужно использовать функцию GKick(playerid, time).
playerid - это ID игрока, которого вы хотите кикнуть.
time (не обязательно) - время, через которое игрока кикнет если он будет в AFK (по умолчанию 5 секунд).
Если игрок не находится в AFK его кикнет сразу же после доставки всех нужных пакетов с данными.
На этом всё, удачного программирования!
Автор: Wiki