#include <amxmodx>
#include <cstrike>
#include <colorchat>
// AFK Task offset
const afk_task = 4000
// pcvars
new cvar_afktime
new cvar_afkimmunity
// player origins
new last_origins[33][3]
public plugin_init()
{
register_plugin("AFK to Spectator", "0.1", "MeRcyLeZZ")
// AFK time in seconds, before player is transferred
cvar_afktime = register_cvar("amx_afktime", "60")
// Admin immunity?
cvar_afkimmunity = register_cvar("amx_afkimmunity", "0")
}
public client_putinserver(id)
{
remove_task(id+afk_task)
set_task(get_pcvar_float(cvar_afktime), "check_afk", id+afk_task)
}
public client_disconnect(id)
{
remove_task(id+afk_task)
}
public check_afk(taskid)
{
new id = taskid - afk_task;
if (!is_user_alive(id))
{
set_task(get_pcvar_float(cvar_afktime), "check_afk", taskid)
return;
}
new origin[3] // get origin
get_user_origin(id, origin)
if(origin[0] == last_origins[id][0] && origin[1] == last_origins[id][1] && origin[2] == last_origins[id][2])
{
if (get_user_flags(id) & ADMIN_IMMUNITY && get_pcvar_num(cvar_afkimmunity))
{
client_print(id, print_chat, "")
}
else
{
new name[32]
get_user_name( id , name , sizeof name - 1)
ColorChat(0,GREEN,"^4[R.T.M] ^1%s ^3AFK miatt Spectatorba helyezve ",name)
user_kill(id, 1)
cs_set_user_team(id, CS_TEAM_SPECTATOR)
}
}
// save new origin
last_origins[id][0] = origin[0]
last_origins[id][1] = origin[1]
last_origins[id][2] = origin[2]
set_task(get_pcvar_float(cvar_afktime), "check_afk", taskid) // keep checking
}