Por si a alguien le sirve:
Código PHP:
/*
mp_afk_timecheck --> Cada en cuanto tiempo se hará una verificación. (3.0)
mp_afk_timekick ---> Tiempo (en segundos) límite para ser kickeado. (60.0)
*/
#include <amxmodx>
#include <fakemeta>
#define VERSION "0.0.1"
#define MAX_PLAYERS 32
new Float:flAfkTimeCheck, Float:flAfkTimeKick
new Float:g_flPlayerTime[MAX_PLAYERS + 1]
public plugin_init()
{
register_plugin("AFK", VERSION, "YoYo [PER]")
flAfkTimeCheck = get_pcvar_float( register_cvar("mp_afk_timecheck", "3.0") )
flAfkTimeKick = get_pcvar_float( register_cvar("mp_afk_timekick", "60.0") )
if(flAfkTimeCheck > flAfkTimeKick)
{
flAfkTimeCheck = flAfkTimeKick
}
}
public client_putinserver(id)
{
if( !is_user_bot(id) && !is_user_hltv(id) )
{
set_task(flAfkTimeCheck, "CheckMovements", id, _, _, "b")
}
}
public CheckMovements(id)
{
if( is_user_alive(id) )
{
if( !IsMoving(id) )
{
if( (g_flPlayerTime[id] += flAfkTimeCheck) >= flAfkTimeKick )
{
server_cmd("kick #%i ^"Inactividad por %.2f segundos^"", get_user_userid(id), flAfkTimeKick)
}
}
else
{
g_flPlayerTime[id] = 0.0
}
}
}
public client_disconnect(id)
{
if( task_exists(id) )
{
remove_task(id)
}
g_flPlayerTime[id] = 0.0
}
stock bool:IsMoving(index)
{
static Float:vecVelocity[3]
pev(index, pev_velocity, vecVelocity)
return ( !vecVelocity[0] && !vecVelocity[1] && !vecVelocity[2] ) ? false : true
}