#include <sdktools_functions>
float fCP[MAXPLAYERS +1][3], fCI[MAXPLAYERS +1][3];
bool bStop; // Надо, иначе игроков может в один момент убить. Поэтому - запрещаем, а потом разрешаем и уже только потом снова проверяем.
public Plugin myinfo = {name = "AntiAfkLite", author = "Drumanid", version = "1.0", url = "http://vk.com/drumanid"}
public void OnPluginStart()
{
HookEvent("round_freeze_end", RoundFreezeEnd);
}
public void OnMapStart()
{
CreateTimer(15.0, CheckPlayers, _, TIMER_REPEAT | TIMER_FLAG_NO_MAPCHANGE); // меняйте под себя(время)
}
public Action RoundFreezeEnd(Event event, const char[] name, bool dbc)
{
bStop = false;
for (int i = 1; i <= MaxClients; i++)
{
if(IsClientInGame(i) && IsPlayerAlive(i) && !IsFakeClient(i))
{
GetClientAbsOrigin(i, fCP[i]);
}
}
}
public Action CheckPlayers(Handle timer)
{
if(bStop)
{
for (int i = 1; i <= MaxClients; i++)
{
if(IsClientInGame(i) && IsPlayerAlive(i) && !IsFakeClient(i))
{
GetClientAbsOrigin(i, fCI[i]);
if(fCP[i][0] == fCI[i][0] && fCP[i][1] == fCI[i][1])
{
ForcePlayerSuicide(i);
PrintToChat(i, " \x02Не стойте в афк и вы не будете убиты!");
//LogToFile("addons/sourcemod/logs/afklog.txt", "%N - был убит, т.к долго находился в афк", i);
}
}
}
}
bStop = true;
}