Łap nie testowałem 
 
 
    #include <amxmodx>
    #include <amxmisc>
    #include <engine>
    #include <cstrike>
     
    #define PLUGIN "m_afk_guard"
    #define VERSION "0.1"
    #define AUTHOR "Miczu"
     
    new Float: p_time[33]
    new Float: angle[33]
     
    public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_cvar("m_afk_kontrol_mode","2") //0 - off
    //1 - afk time -> kick
    //2 - afk time -> spec ->afk time 2 ->kick
    register_cvar("m_afk_kontrol_time","30")
    register_cvar("m_afk_kontrol_time2","255")
    register_think("Afk_Guard","g_think")
    make_guard()
    }
     
    public make_guard()
    {
    new ent = create_entity("info_target")
    entity_set_string(ent, EV_SZ_classname,"Afk_Guard")
    entity_set_float(ent,EV_FL_nextthink,halflife_time() + 1.0)
    }
     
    public client_PreThink(id)
    {
    if(get_user_button(id)!=get_user_oldbutton(id)) p_time[id]=get_gametime()
    }
     
    public g_think(ent)
    {
    if(get_cvar_num("m_afk_kontrol_mode"))
    {
    new players[32],num
    new time1 = get_cvar_num("m_afk_kontrol_time")
    new time2 = get_cvar_num("m_afk_kontrol_time2")
    new mode = get_cvar_num("m_afk_kontrol_mode")
    get_players(players,num)
    for(new i=0;i<num;i++)
    {
    if(!is_user_connected(players[i]) || is_user_bot(players[i]) || is_user_hltv(players[i])) continue
    new Float:a[3]
    entity_get_vector(players[i],EV_VEC_angles,a)
    if(a[0]!=angle[players[i]]) p_time[players[i]] = get_gametime()
    angle[players[i]] = a[0]
    if((p_time[players[i]]+time1)<get_gametime())
    {
    if(mode==1) remove_him(players[i])
    else
    {
    if(cs_get_user_team(players[i])!= CS_TEAM_SPECTATOR)
    {
    if(is_user_alive(players[i])) user_silentkill(players[i])
    cs_set_user_team(players[i],CS_TEAM_SPECTATOR)
    }
    else if((p_time[players[i]]+time1+time2)<get_gametime())
    {
    remove_him(players[i])
    }
    }
    }
    }
    entity_set_float(ent,EV_FL_nextthink,get_gametime() + 1.0)
    }
    else entity_set_float(ent,EV_FL_nextthink,halflife_time() + 10.0)
    }
     
    public remove_him(id)
    {
    server_cmd("kick #%d ^"Zostalesz wyzucony za AFK!^"", get_user_userid(id))
    }
     
    public client_putinserver(id)
    {
    p_time[id] = get_gametime()
    }