High Ping Kicker, Плагин для контроля пинга |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
High Ping Kicker, Плагин для контроля пинга |
STR@TEG
|
27.8.2010, 23:41
Сообщение
|
|
|
|
Поблагодарили 1 раз
|
|
vkontakte
|
21.9.2010, 21:10
Сообщение
|
![]() |
выложи конфиг сюда
второе, после запуска сервера нужно прописывать рестарт, вот тогда все квары вступят в силу |
|
|
|
vkontakte
|
12.10.2010, 20:22
Сообщение
|
![]() |
|
|
|
|
STR@TEG
|
13.10.2010, 0:31
Сообщение
|
|
|
|
Поблагодарили 1 раз
|
|
vkontakte
|
13.10.2010, 0:35
Сообщение
|
![]() |
а какой из плагинов именно тот что этот юзер переделывал? |
|
|
|
STR@TEG
|
13.10.2010, 11:51
Сообщение
|
|
|
vkontakte,
Этого тебе хватит, чтобы сделать самому: https://c-s.net.ua/forum/topic100.html?view...st&p=161842 https://c-s.net.ua/forum/topic100.html?view...st&p=161916 |
Поблагодарили 1 раз
|
|
vkontakte
|
13.10.2010, 11:58
Сообщение
|
![]() |
vkontakte, Этого тебе хватит, чтобы сделать самому: https://c-s.net.ua/forum/topic100.html?view...st&p=161842 https://c-s.net.ua/forum/topic100.html?view...st&p=161916 цц ![]() Код /* 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 (Steam)","0.16.2","OLO/shadow") register_concmd("amx_hpk","cmdHpk",ADMIN_KICK,"- configures high_ping_kicker plugin") register_cvar("amx_hpk_ping","200") register_cvar("amx_hpk_check","12") register_cvar("amx_hpk_tests","5") register_cvar("amx_hpk_delay","60") if ( get_cvar_num( "amx_hpk_check" ) < 5 ) set_cvar_num( "amx_hpk_check" , 5 ) if ( get_cvar_num( "amx_hpk_tests" ) < 3 ) set_cvar_num( "amx_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_cvar_num("amx_hpk_tests") != 0) { set_task( float(get_cvar_num("amx_hpk_delay")), "taskSetting", id, param , 1) } else { set_task( float(get_cvar_num( "amx_hpk_tests" )) , "checkPing" , id , param , 1 , "b" ) } } } public showWarn(param[0]) ColorChat(param[0], GREEN, "^x04[GCN] ^x01Игроки с пингом выше ^x03%d ^x01будут кикнуты!", get_cvar_num("amx_hpk_ping")) public taskSetting(param[]) { new name[32] get_user_name(param[0],name,31) set_task( float(get_cvar_num( "amx_hpk_tests" )) , "checkPing" , param[0] , param , 1 , "b" ) } kickPlayer( id ) { new name[32],authid[32] get_user_name(id,name,31) get_user_authid(id,authid,31) СolorChat(param[0], GREEN, "^x04[GCN] ^x01Игрок ^x03%s ^x01был отключён за высокий пинг",name) server_cmd("kick #%d ^"Ваш пинг слишком высокий^"",get_user_userid(id)) log_amx("Highpingkick: ^"%s<%d><%s>^" was kicked due highping (Average Ping ^"%d^")", name,get_user_userid(id),authid,(g_Ping[id] / g_Samples[id])) } public checkPing(param[]) { new id = param[ 0 ] if ( get_user_flags(id) & ADMIN_IMMUNITY ) return new p, l get_user_ping( id , p , l ) g_Ping[ id ] += p ++g_Samples[ id ] if ( (g_Samples[ id ] > 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 < 5 ) check = 5 if ( tests < 3 ) 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 } |
|
|
|
STR@TEG
|
13.10.2010, 12:38
Сообщение
|
|
|
|
Поблагодарили 1 раз
|
|
STR@TEG
|
13.10.2010, 16:01
Сообщение
|
|
|
Rejiser,
Ничего не мешает экспериментировать. Думаю должно работать. |
|
|
|
Rejiser
|
13.10.2010, 16:39
Сообщение
|
![]() |
|
|
|
|
STR@TEG
|
13.10.2010, 17:26
Сообщение
|
|
|
|
|
|
|
ehd2347
|
1.2.2011, 9:42
Сообщение
|
|
|
High Ping Kicker v2.9
High Ping Kicker Описание: Этот плагин был написан, чтобы помочь администраторам серверов обеспечить контроль пинга игроков, которые играют. Он принимает во внимание cmdrate игроков и tickrate серверов, когда делает проверки. Она не будет проверять игроков, которые в настоящее время подключаются или не находятся в команде. Требования: Этот плагин был подготовлен и испытан на Orange Box и не Orange Box серверах, он требует, SM 1.0.x или 1.1.x , которые могут быть загружены по ссылке: http://www.sourcemod.net/snapshots.php Установка: Скопируйте плагин (или скомпилируйте из исходника в случае возникновения проблем) в каталог addons\sourcemod\plugins на вашем сервере. После этого пропишите в консоли сервера sm plugins load hpk или перезапустите сервер. Редактируете конфигурационный файл в директории <mod>/cfg/sourcemod/hpk.cfg , установите в нём максимально приемлемый пинг (По умолчанию 150). Этот файл автоматически генерируется при первом запуске плагина. Настройки: CVars: sm_checkping "1" – Проверять пинг игроков. 1 = вкл, 0 = выкл. sm_checkchoke "1" -- Проверять choke игроков. 1 = вкл, 0 = выкл. sm_checkloss "1" – Проверять потерянные пакеты (loss) у игроков. 1 = вкл, 0 = выкл. sm_checkpackets "1" – Проверять пакеты отсылаемые игроками. 1 = вкл. 0 = выкл. sm_maxping "150" – Максимальный разрешенный пинг на сервере. sm_maxchoke "30.0" – Максимальный разрешенный choke у игроков. sm_maxloss "30.0" – Максимальные потери (loss) разрешенные игрокам . sm_minpacketin "30.0" – Минимальное количество пакетов входящих игроку. sm_minpacketout "55.0" – Минимальное количество пакетов исходящих от игрока. sm_ping_admins_immune "1" – Использовать админский иммунитет. 1 = Да, 2 = Нет
Прикрепленные файлы:
|
|
|
|
ehd2347
|
1.2.2011, 10:20
Сообщение
|
|
|
как сделать чтоб банил на 5минут через amxbans5
CODE /* AMX Mod script
Better High Ping Kicker © 2009 by Lev This file is provided as is (no warranties). URL: http://forums.alliedmods.net/showthread.php?t=85911 This is mainly a modification of HPK by DynAstY. Thanks to all other HPK authors (OLO, DynAstY, shadow, EKS) - your plugins provided the base. Features: Players with immunity and slot reservations won't be checked. At night max ping defined by different CVAR (so usually it will be higher). By default keeps min 3 players (bots and hltv are not included) at server if they are not exceed night max ping twice. Player is banned for 1 minute, not just simply kicked. CVARs (Supplied values are defaults): hpk_ping_max 175 ; maximim ping to check for at day time hpk_ping_max_night 180 ; maximim ping to check for at night time hpk_ping_time 10 ; interval at which ping will be checked hpk_ping_tests 5 ; number of violations of maximum ping at which to kick hpk_min_players 3 ; don't kick player if there is this count or less players (bots and hltv are not included) at server and player's ping doesn't exceed night ping twice. hpk_night_start_hour 3 ; night period start hour (hour included) hpk_night_end_hour 9 ; night period end hour (hour excluded) How it is different from other HPK plugins: using pointers to CVARs; code flow is optimized; there is night period when ping defined by different CVAR, period also defined by CVARs; changes to max pings applies immediately; immunity for admins and slot reservations players; keeps min players at server (count defined by CVAR) if their ping is not too high (double night max ping); ChangeLog: v2.4 [2009.03.01] Initial release. v2.5 [2009.10.02] ! Change: bots and hltv are now excluded from players count for comparision with hpk_min_players. v2.6 [2009.10.10] ! Change: changed from ban ID to ban IP. */ #pragma semicolon 1 #pragma ctrlchar '\' #include <amxmodx> #include <amxmisc> #define AUTHOR "Lev" #define PLUGIN "Better High Ping Kicker" #define VERSION "2.6" #define VERSION_CVAR "bhpk_version" #define ALWAYS_KICK_MULTIPLIER 2 // Player will be kicked even there is less then or equal min_players // if player's ping exceed night max ping by this factor. #define DELAY_BEFORE_START_TESTING 20.0 // Delay before showing warning and start ping checking. //Real testing starts after hpk_ping_time also passed. const TASK_ID_BASE = 52635; // random number const min_hpk_ping_max = 10; const min_hpk_ping_time = 10; const min_hpk_ping_tests = 4; new pcvar_hpk_ping_max; new pcvar_hpk_ping_max_night; new pcvar_hpk_ping_time; new pcvar_hpk_ping_tests; new pcvar_hpk_min_players; new pcvar_hpk_night_start_hour; new pcvar_hpk_night_end_hour; new ping_violations[33]; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_cvar(VERSION_CVAR, VERSION, FCVAR_SERVER); pcvar_hpk_ping_max = register_cvar("hpk_ping_max", "175"); pcvar_hpk_ping_max_night = register_cvar("hpk_ping_max_night", "180"); pcvar_hpk_ping_time = register_cvar("hpk_ping_time", "10"); pcvar_hpk_ping_tests = register_cvar("hpk_ping_tests", "5"); pcvar_hpk_min_players = register_cvar("hpk_min_players", "3"); pcvar_hpk_night_start_hour = register_cvar("hpk_night_start_hour", "3"); pcvar_hpk_night_end_hour = register_cvar("hpk_night_end_hour", "9"); } public client_putinserver(plrid) { ping_violations[plrid] = 0; if (!is_user_bot(plrid) && !is_user_hltv(plrid)) set_task(DELAY_BEFORE_START_TESTING, "showInfo", TASK_ID_BASE + plrid); return PLUGIN_CONTINUE; } public client_infochanged(plrid) { remove_task(TASK_ID_BASE + plrid); if (!is_user_bot(plrid) && !is_user_hltv(plrid)) set_task(DELAY_BEFORE_START_TESTING, "showInfo", TASK_ID_BASE + plrid); return PLUGIN_CONTINUE; } public client_disconnect(plrid) { remove_task(TASK_ID_BASE + plrid); return PLUGIN_CONTINUE; } public showInfo(taskid) { new plrid = taskid - TASK_ID_BASE; if (access(plrid, ADMIN_IMMUNITY) || access(plrid, ADMIN_RESERVATION)) client_print(plrid, print_chat, "[BHPK] Ping checking disabled due to immunity..."); else { client_print(plrid, print_chat, "[BHPK] Players with ping higher than %dms will be kicked!", get_hpk_ping_max()); set_task(float(get_hpk_ping_time()), "checkPing", TASK_ID_BASE + plrid, _, _, "b"); } return PLUGIN_CONTINUE; } public checkPing(taskid) { new plrid = taskid - TASK_ID_BASE; new ping, loss; get_user_ping(plrid, ping, loss); if (ping > get_hpk_ping_max()) ping_violations[plrid]++; else if (ping_violations[plrid] > 0) ping_violations[plrid]--; new hpk_ping_tests = get_hpk_ping_tests(); if (ping_violations[plrid] >= hpk_ping_tests) { static players[32]; new playerCount; get_players(players, playerCount, "ch"); // Allow player to stay if there is less or equal than 'min_players' players and player ping is not too high. if (playerCount <= get_pcvar_num(pcvar_hpk_min_players) && ping < get_pcvar_num(pcvar_hpk_ping_max_night) * ALWAYS_KICK_MULTIPLIER) { ping_violations[plrid] = hpk_ping_tests; return PLUGIN_CONTINUE; } kickPlayer(plrid); } return PLUGIN_CONTINUE; } kickPlayer(plrid) { new name[33], ip[15]; get_user_name(plrid, name, sizeof(name) - 1); get_user_ip(plrid, ip, charsmax(ip), 1); client_cmd(plrid, "echo \"[BHPK] Sorry but you have high ping, try later...\"; disconnect"); server_cmd("addip 1 %s", ip); client_print(0, print_chat, "[BHPK] %s was disconnected due to high ping!", name); return PLUGIN_CONTINUE; } get_hpk_ping_max() { new ping_max; new hour, minute, second; time(hour, minute, second); // At night we use different CVAR if (hour >= get_pcvar_num(pcvar_hpk_night_start_hour) && hour < get_pcvar_num(pcvar_hpk_night_end_hour)) ping_max = get_pcvar_num(pcvar_hpk_ping_max_night); else ping_max = get_pcvar_num(pcvar_hpk_ping_max); // Check to be no less then minimum value if (ping_max < min_hpk_ping_max) return min_hpk_ping_max; return ping_max; } get_hpk_ping_time() { new time = get_pcvar_num(pcvar_hpk_ping_time); // Check to be no less then minimum value if (time < min_hpk_ping_time) return min_hpk_ping_time; return time; } get_hpk_ping_tests() { new tests = get_pcvar_num(pcvar_hpk_ping_tests); // Check to be no less then minimum value if (tests < min_hpk_ping_tests) return min_hpk_ping_tests; return tests; } |
|
|
|
![]() ![]() |