High Ping Kicker(измененный), Баним лаггеров |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
High Ping Kicker(измененный), Баним лаггеров |
pike
|
21.5.2009, 21:18
Сообщение
|
![]() |
Изменил плагин High Ping Kicker оригинал http://forums.alliedmods.net
Кикает за высокий пинг, указанный в amxx.cfg Код amx_hpk_ping Банит по IP на 60 минут лаггеров(потери(loss) более 11),измените кому как нужно. Код /* AMX Mod X script.
***************************************************************************** * Original plugin: http://forums.alliedmods.net * * Modified plugin: * Pike pike@warclan.dn.ua */ #include <amxmodx> #include <amxmisc> // Feel free to change this flag #define HPK_IMMUNE ADMIN_RESERVATION // PCvars new hpk_ping, hpk_check, hpk_tests, hpk_delay new g_Ping[33] new g_Samples[33] public plugin_init() { register_plugin("High Ping Kicker","0.1","Shadow/Bo0m!/Pike") register_concmd("amx_hpk","cmdHpk",ADMIN_CVAR,"- configures high ping kicker") hpk_ping = register_cvar("amx_hpk_ping","200") hpk_check = register_cvar("amx_hpk_check","12") hpk_tests = register_cvar("amx_hpk_tests","5") hpk_delay = register_cvar("amx_hpk_delay","60") 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( 10.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,"* Максимальный пинг %dms", 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], ip[32] new ping, loss get_user_name(id,name,31) get_user_ip(id, ip, 31, 1) get_user_authid(id,authid,35) get_user_ping(id, ping, loss) if(((ping > 200) && (loss > 11)) || (loss > 11)) { server_cmd("amx_banip 60 %s Lagger: ping %d loss %d", ip, ping, loss) log_amx("HPK: ^"%s<%d>^" was banned due high ping (Average Ping ^"%d^" Loss ^"%d^")", name, get_user_userid(id), ping, loss) } else { client_print(0,print_chat,"* %s отключен за высокий пинг. (ping %d)", name, ping) server_cmd("kick #%d ^"Извините, Ваш пинг слишком высок...^"",get_user_userid(id)) log_amx("HPK: ^"%s<%d><%s>^" was kicked due high ping (Average Ping ^"%d^")", name,get_user_userid(id), ping, loss) } return PLUGIN_CONTINUE } 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 ) { remove_task(id) client_print(id, print_chat, "[Пинг контроль] У администрации иммунитет.") 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() < 5) { console_print(id,"Usage: amx_hpk <max ping> <total ping checks> <time between checks> <delay before starting checks>") console_print(id,"Current High Ping Kicker Settings:") console_print(id,"Max Ping: %d | Ping Checks: %d | Check Frequency: %d | Start Delay: %d",get_pcvar_num(hpk_ping),get_pcvar_num(hpk_tests),get_pcvar_num(hpk_check),get_pcvar_num(hpk_delay)) 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] read_argv(1,ping_arg,4) read_argv(2,tests_arg,4) read_argv(3,check_arg,4) read_argv(4,delay_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) 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) console_print(id,"The following HPK Settings have been set:") console_print(id,"Max Ping: %d | Ping Checks: %d | Check Frequency: %d | Start Delay: %d",get_pcvar_num(hpk_ping),get_pcvar_num(hpk_tests),get_pcvar_num(hpk_check),get_pcvar_num(hpk_delay)) log_amx("HPK: ^"%s<%d><%s>^" has configured the HPK - Max Ping: %d | Ping Checks: %d | Check Frequency: %d | Start Delay: %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)) return PLUGIN_HANDLED }
Отредактировал: pike z, - 21.5.2009, 21:20
|
|
|
|
![]() ![]() |