- #include <amxmodx>  
- #include <amxmisc> 
-   
- new const PLUGIN[]  = "High Ping Kicker" 
- new const VERSION[] = "1.0" 
- new const AUTHOR[]  = "Shadow/Bo0m!" 
-   
- // Feel free to change this flag 
- #define HPK_IMMUNE ADMIN_IMMUNITY 
-   
- // PCvars 
- new hpk_ping, hpk_check, hpk_tests, hpk_delay, hpk_immunity 
-   
- new g_Ping[33] 
- new g_Samples[33] 
-   
- public plugin_init() { 
-   
- 	register_plugin(PLUGIN, VERSION, AUTHOR) 
-   
- 	register_concmd("amx_hpk","cmdHpk",ADMIN_CVAR,"- configures high ping kicker") 
-   
- 	hpk_ping = register_cvar("amx_hpk_ping","90") 
- 	hpk_check = register_cvar("amx_hpk_check","10") 
- 	hpk_tests = register_cvar("amx_hpk_tests","3") 
- 	hpk_delay = register_cvar("amx_hpk_delay","30") 
- 	hpk_immunity = register_cvar("amx_hpk_immunity","0") 
-   
- 	if (get_pcvar_num(hpk_check) < 5) set_pcvar_num(hpk_check,5) 
- 	if (get_pcvar_num(hpk_tests) < 3) set_pcvar_num(hpk_tests,3) 
- } 
-   
- public client_disconnect(id)  
- 	remove_task(id) 
-   
- public client_putinserver(id) {     
- 	g_Ping[id] = 0  
- 	g_Samples[id] = 0 
-   
- 	if ( !is_user_bot(id) )  
- 	{ 
- 		new param[1] 
- 		param[0] = id  
- 		set_task( 15.0 , "showWarn" , id , param , 1 ) 
-   
- 		if (get_pcvar_num(hpk_delay) != 0) { 
- 			set_task( float(get_pcvar_num(hpk_delay)), "taskSetting", id, param , 1) 
- 		} 
- 		else {	     
- 			set_task( float(get_pcvar_num(hpk_check)) , "checkPing" , id , param , 1 , "b" ) 
- 		} 
- 	} 
- } 
-   
- public showWarn(param[]) 
- 	client_print( param[0] ,print_chat,"[HPK] Akinek magasabb a ping-je %d -nel a szerver kirugja automatikusan!", get_cvar_num( "amx_hpk_ping" ) ) 
-   
- public taskSetting(param[]) { 
- 	new name[32] 
- 	get_user_name(param[0],name,31) 
- 	set_task( float(get_pcvar_num(hpk_check)) , "checkPing" , param[0] , param , 1 , "b" ) 
- } 
-   
- kickPlayer(id) {  
- 	new name[32],authid[36] 
- 	get_user_name(id,name,31) 
- 	get_user_authid(id,authid,35) 
- 	client_print(0,print_chat,"[HPK] Jatekos %s kirugva magas ping miatt!!",name) 
- 	server_cmd("kick #%d ^"A pinged tul magas.Ne torrentezz!!...^"",get_user_userid(id)) 
- 	log_amx("HPK: ^"%s<%d><%s>^" kirugva magas ping miatt (Atlagos Ping ^"%d^")", name,get_user_userid(id),authid,(g_Ping[id] / g_Samples[id])) 
- } 
-   
- public checkPing(param[]) {  
-   
- 	if (get_pcvar_num(hpk_tests) < 3) 
- 		set_pcvar_num(hpk_tests,3) 
-   
- 	new id = param[ 0 ]  
-   
- 	if ( get_user_flags(id) & HPK_IMMUNE && get_pcvar_num(hpk_immunity) == 1 ) { 
- 		remove_task(id) 
- 		client_print(id, print_chat, "[HPK] Ping ellenorzes leallitva mert admin van fent a szerveren!") 
- 		return PLUGIN_CONTINUE 
- 	} 
-   
- 	new ping, loss 
-   
- 	get_user_ping(id,ping,loss)  
-   
- 	g_Ping[ id ] += ping 
- 	++g_Samples[ id ] 
-   
- 	if ( (g_Samples[ id ] > get_pcvar_num(hpk_tests)) && (g_Ping[id] / g_Samples[id] > get_pcvar_num(hpk_ping))  )     
- 		kickPlayer(id) 
-   
- 	return PLUGIN_CONTINUE 
- } 
-   
-   
- public cmdHpk(id,level,cid) { 
- 	if (!cmd_access(id,level,cid,1)) 
- 		return PLUGIN_HANDLED 
-   
- 	if (read_argc() < 6) { 
- 		console_print(id,"Hasznalat: amx_hpk <max ping> <total ping checks> <time between checks> <delay before starting checks> <1 to allow immunity|0 to disallow") 
- 		console_print(id,"A kovetkezo HPK beallitasok:") 
- 		console_print(id,"Max Ping: %d | Ping ellenorzesek: %d | Ellenorzesek szama: %d | Ellenorzes inditasa: %d | Admin vedetseg: %d",get_pcvar_num(hpk_ping),get_pcvar_num(hpk_tests),get_pcvar_num(hpk_check),get_pcvar_num(hpk_delay),get_pcvar_num(hpk_immunity)) 
- 		return PLUGIN_HANDLED 
- 	} 
-   
- 	new name[32], authid[36] 
- 	get_user_name(id,name,31) 
- 	get_user_authid(id,authid,35) 
-   
- 	new ping_arg[5], check_arg[5], tests_arg[5], delay_arg[5], immune_arg[5] 
- 	read_argv(1,ping_arg,4) 
- 	read_argv(2,tests_arg,4) 
- 	read_argv(3,check_arg,4) 
- 	read_argv(4,delay_arg,4) 
- 	read_argv(5,immune_arg,4) 
-   
- 	new ping = str_to_num(ping_arg) 
- 	new tests = str_to_num(tests_arg) 
- 	new check = str_to_num(check_arg) 
- 	new delay = str_to_num(delay_arg) 
- 	new immune = str_to_num(immune_arg) 
-   
- 	if ( check < 5 ) check = 5 
- 	if ( tests < 3 ) tests = 3 
-   
- 	set_pcvar_num(hpk_ping,ping) 
- 	set_pcvar_num(hpk_tests,tests) 
- 	set_pcvar_num(hpk_check,check) 
- 	set_pcvar_num(hpk_delay,delay) 
- 	set_pcvar_num(hpk_immunity,immune) 
-   
- 	console_print(id,"A kovetkezo HPK beallitasok:") 
- 	console_print(id,"Max Ping: %d | Ping ellenorzesek: %d | Ellenorzesek szama: %d | Ellenorzes inditasa: %d | Admin vedetseg: %d",get_pcvar_num(hpk_ping),get_pcvar_num(hpk_tests),get_pcvar_num(hpk_check),get_pcvar_num(hpk_delay),get_pcvar_num(hpk_immunity)) 
- 	log_amx("HPK: ^"%s<%d><%s>^" igy lettek beallitva - Max Ping: %d | Ping ellenorzesek: %d | Ellenorzesek szama: %d | Ellenorzes inditasa: %d | Admin vedetseg: %d", name,get_user_userid(id),authid,get_pcvar_num(hpk_ping),get_pcvar_num(hpk_tests),get_pcvar_num(hpk_check),get_pcvar_num(hpk_delay),get_pcvar_num(hpk_immunity)) 
-   
- 	return PLUGIN_HANDLED     
- } 
-   
-   
-