# Descripción:

Este plugin expulsa a cualquier jugador, administradores poseen inmunidad, que supere el ping permitido (definido por cvar).

# Créditos: OLO/shadow

# Imagen:




Comandos:
• amx_hpk - Muestra en consola los valores de las cvars

Cvars:
• amx_hpk_ping "120" - Establece al máximo de ping permitido.
• amx_hpk_tests "4" - Cantidad de chequeos que se hará a cada jugador.
• amx_hpk_check "2" - Retraso entre cada chequeo.
• amx_hpk_delay "60" - Retraso del chequeo cuando un jugador se conecta.

Código PHP:
/* AMX Mod script. 

* (c) 2002-2003, OLO 
* modified by shadow
* This file is provided as is (no warranties). 

* Players with immunity won't be checked 
*/ 

#include <amxmodx> 
#include <amxmisc>

new g_Ping[33]
new 
g_Samples[33]

public 
plugin_init()
{
    
register_plugin("High Ping Kicker (WON)","0.16.2","OLO/shadow")
    
register_concmd("amx_hpk","cmdHpk",ADMIN_KICK,"- configures high_ping_kicker plugin")
    
register_cvar("amx_hpk_ping","120")
    
register_cvar("amx_hpk_check","2")
    
register_cvar("amx_hpk_tests","4")
    
register_cvar("amx_hpk_delay","60")
    
    if ( 
get_cvar_num"amx_hpk_check" ) < set_cvar_num"amx_hpk_check" )
    if ( 
get_cvar_num"amx_hpk_tests" ) < set_cvar_num"amx_hpk_tests" )
}

public 
client_disconnect(id
    
remove_taskid )

public 
client_putinserver(id
{    
    
g_Ping[id] = 
    g_Samples
[id] = 0
    
    
if ( !is_user_bot(id) ) 
    {
        new 
param[1]
        
param[0] = id 
        set_task
10.0 "showWarn" id param )
        
        if (
get_cvar_num("amx_hpk_tests") != 0) {
            
set_taskfloat(get_cvar_num("amx_hpk_delay")), "taskSetting"idparam 1)
        }
        else {        
            
set_taskfloat(get_cvar_num"amx_hpk_tests" )) , "checkPing" id param "b" )
        }
        
    }


public 
showWarn(param[])
    
client_printparam[0] ,print_chat,"[AMXX] Jugadores con mas de %d de ping seran expulsados automaticamente."get_cvar_num"amx_hpk_ping" ) )

public 
taskSetting(param[]) {
    new 
name[32]
    
get_user_name(param[0],name,31)
    
set_taskfloat(get_cvar_num"amx_hpk_tests" )) , "checkPing" param[0] , param "b" )
}

kickPlayerid 

    new 
name[32],authid[32]
    
get_user_name(id,name,31)
    
get_user_authid(id,authid,31)

    
client_print(0,print_chat,"[AMXX] El jugador %s fue desconectado por superar el ping permitido.",name)
    
client_cmd(id,"echo ^"Lo sentimostienes demaciado pingintenta mas tarde...^";disconnect")
    
remove_task(id)
    
log_amx("Highpingkick: ^"%s<%d><%s>^" fue expulsado por lag (Promedio de Ping ^"%d^")"name,get_user_userid(id),authid,(g_Ping[id] / g_Samples[id]))



public 
checkPing(param[]) 

    new 
id param

    if ( 
get_user_flags(id) & ADMIN_BAN ) return

    new 
p

    get_user_ping
id 

    
g_Pingid ] += p
    
++g_Samplesid ]

    if ( (
g_Samplesid ] > get_cvar_num"amx_hpk_tests" )) && (g_Ping[id] / g_Samples[id] > get_cvar_num"amx_hpk_ping" ))  )    
        
kickPlayer(id
    }


public 
cmdHpk(id,level,cid){
    if (!
cmd_access(id,level,cid,1))
        return 
PLUGIN_HANDLED
    
    
new ping[5]
    new 
check_arr[5]
    new 
tests_arr[5]
    new 
delay_arr[5]
    
read_argv(1,ping,4)
    
read_argv(2,check_arr,4)
    
read_argv(3,tests_arr,4)
    
read_argv(4,delay_arr,4)
    
    new 
check str_to_num(check_arr)
    new 
tests str_to_num(tests_arr)
    new 
delay str_to_num(delay_arr)
    
    
    if ( 
check check 5
    
if ( tests tests 3
    
    
    
if (read_argc() > 1){
        
set_cvar_string("amx_hpk_ping",ping)
    }
    if (
read_argc() > 2) {
        
set_cvar_num("amx_hpk_check",check)
    }
    if (
read_argc() > 3) {
        
set_cvar_num("amx_hpk_tests",tests)
    }
    if (
read_argc() > 4) {
        
set_cvar_num("amx_hpk_delay",delay)
    }
    
    
console_print(id,"Syntax: amx_hpk <ping to get kicked> <checks before kicks> <time between checks> <delay before first check in sec.>")
    
console_print(id,"Current High_Ping_Kicker Settings:")
    
console_print(id,"Maxping: %d  Time between checks: %d Checkcount: %d Delay: %d",get_cvar_num("amx_hpk_ping"),get_cvar_num("amx_hpk_check"),get_cvar_num("amx_hpk_tests"),get_cvar_num("amx_hpk_delay"))
    return 
PLUGIN_HANDLED    
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3082\\ f0\\ fs16 \n\\ par }
*/ 
# Fuente: https://forums.alliedmods.net