HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <amxmisc>
  3.  
  4. new const PLUGIN[] = "High Ping Kicker"
  5. new const VERSION[] = "1.0"
  6. new const AUTHOR[] = "Shadow/Bo0m!"
  7.  
  8. // Feel free to change this flag
  9. #define HPK_IMMUNE ADMIN_IMMUNITY
  10.  
  11. // PCvars
  12. new hpk_ping, hpk_check, hpk_tests, hpk_delay, hpk_immunity
  13.  
  14. new g_Ping[33]
  15. new g_Samples[33]
  16.  
  17. public plugin_init() {
  18.  
  19. register_plugin(PLUGIN, VERSION, AUTHOR)
  20.  
  21. register_concmd("amx_hpk","cmdHpk",ADMIN_CVAR,"- configures high ping kicker")
  22.  
  23. hpk_ping = register_cvar("amx_hpk_ping","90")
  24. hpk_check = register_cvar("amx_hpk_check","10")
  25. hpk_tests = register_cvar("amx_hpk_tests","3")
  26. hpk_delay = register_cvar("amx_hpk_delay","30")
  27. hpk_immunity = register_cvar("amx_hpk_immunity","0")
  28.  
  29. if (get_pcvar_num(hpk_check) < 5) set_pcvar_num(hpk_check,5)
  30. if (get_pcvar_num(hpk_tests) < 3) set_pcvar_num(hpk_tests,3)
  31. }
  32.  
  33. public client_disconnect(id)
  34. remove_task(id)
  35.  
  36. public client_putinserver(id) {
  37. g_Ping[id] = 0
  38. g_Samples[id] = 0
  39.  
  40. if ( !is_user_bot(id) )
  41. {
  42. new param[1]
  43. param[0] = id
  44. set_task( 15.0 , "showWarn" , id , param , 1 )
  45.  
  46. if (get_pcvar_num(hpk_delay) != 0) {
  47. set_task( float(get_pcvar_num(hpk_delay)), "taskSetting", id, param , 1)
  48. }
  49. else {
  50. set_task( float(get_pcvar_num(hpk_check)) , "checkPing" , id , param , 1 , "b" )
  51. }
  52. }
  53. }
  54.  
  55. public showWarn(param[])
  56. client_print( param[0] ,print_chat,"[HPK] Akinek magasabb a ping-je %d -nel a szerver kirugja automatikusan!", get_cvar_num( "amx_hpk_ping" ) )
  57.  
  58. public taskSetting(param[]) {
  59. new name[32]
  60. get_user_name(param[0],name,31)
  61. set_task( float(get_pcvar_num(hpk_check)) , "checkPing" , param[0] , param , 1 , "b" )
  62. }
  63.  
  64. kickPlayer(id) {
  65. new name[32],authid[36]
  66. get_user_name(id,name,31)
  67. get_user_authid(id,authid,35)
  68. client_print(0,print_chat,"[HPK] Jatekos %s kirugva magas ping miatt!!",name)
  69. server_cmd("kick #%d ^"A pinged tul magas.Ne torrentezz!!...^"",get_user_userid(id))
  70. 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]))
  71. }
  72.  
  73. public checkPing(param[]) {
  74.  
  75. if (get_pcvar_num(hpk_tests) < 3)
  76. set_pcvar_num(hpk_tests,3)
  77.  
  78. new id = param[ 0 ]
  79.  
  80. if ( get_user_flags(id) & HPK_IMMUNE && get_pcvar_num(hpk_immunity) == 1 ) {
  81. remove_task(id)
  82. client_print(id, print_chat, "[HPK] Ping ellenorzes leallitva mert admin van fent a szerveren!")
  83. return PLUGIN_CONTINUE
  84. }
  85.  
  86. new ping, loss
  87.  
  88. get_user_ping(id,ping,loss)
  89.  
  90. g_Ping[ id ] += ping
  91. ++g_Samples[ id ]
  92.  
  93. if ( (g_Samples[ id ] > get_pcvar_num(hpk_tests)) && (g_Ping[id] / g_Samples[id] > get_pcvar_num(hpk_ping)) )
  94. kickPlayer(id)
  95.  
  96. return PLUGIN_CONTINUE
  97. }
  98.  
  99.  
  100. public cmdHpk(id,level,cid) {
  101. if (!cmd_access(id,level,cid,1))
  102. return PLUGIN_HANDLED
  103.  
  104. if (read_argc() < 6) {
  105. 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")
  106. console_print(id,"A kovetkezo HPK beallitasok:")
  107. 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))
  108. return PLUGIN_HANDLED
  109. }
  110.  
  111. new name[32], authid[36]
  112. get_user_name(id,name,31)
  113. get_user_authid(id,authid,35)
  114.  
  115. new ping_arg[5], check_arg[5], tests_arg[5], delay_arg[5], immune_arg[5]
  116. read_argv(1,ping_arg,4)
  117. read_argv(2,tests_arg,4)
  118. read_argv(3,check_arg,4)
  119. read_argv(4,delay_arg,4)
  120. read_argv(5,immune_arg,4)
  121.  
  122. new ping = str_to_num(ping_arg)
  123. new tests = str_to_num(tests_arg)
  124. new check = str_to_num(check_arg)
  125. new delay = str_to_num(delay_arg)
  126. new immune = str_to_num(immune_arg)
  127.  
  128. if ( check < 5 ) check = 5
  129. if ( tests < 3 ) tests = 3
  130.  
  131. set_pcvar_num(hpk_ping,ping)
  132. set_pcvar_num(hpk_tests,tests)
  133. set_pcvar_num(hpk_check,check)
  134. set_pcvar_num(hpk_delay,delay)
  135. set_pcvar_num(hpk_immunity,immune)
  136.  
  137. console_print(id,"A kovetkezo HPK beallitasok:")
  138. 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))
  139. 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))
  140.  
  141. return PLUGIN_HANDLED
  142. }
  143.  
  144.  
  145.