На примере GTO...
Code
static playerIdle[MAX_PLAYERS];
static Float:playerIdlePos[MAX_PLAYERS][3];
public OnGameModeInit()
{
SetTimer("AntiIdle", 30000, 1);
return 1;
}
forward AntiIdle();
public AntiIdle()
{
new Float:x,Float:y,Float:z;
for(new playerid=0; playerid<MAX_PLAYERS; playerid++)
{
if(IsPlayerConnected(playerid))
{
GetPlayerPos(playerid, x, y, z);
if(x == playerIdlePos[playerid][0] && y == playerIdlePos[playerid][1] && z == playerIdlePos[playerid][2])
{
playerIdle[playerid]++;
if(playerIdle[playerid] > 10)
{
SendClientMessage(playerid,0xAA3333AA, "You have been idle for 10 minutes.");
SendClientMessage(playerid,0xAA3333AA, "If you dont move in the next 30sec you will be auto kicked.");
}
if(playerIdle[playerid] > 11)
{
SendClientMessage(playerid,0xAA3333AA, "You have automaticly been kicked for being idle/afk for too long");
playerIdle[playerid] = 0;
Kick(playerid);
}
}
else
{
playerIdle[playerid] = 0;
}
playerIdlePos[playerid][0] = x;
playerIdlePos[playerid][1] = y;
playerIdlePos[playerid][2] = z;
}
}
}