搜索
楼主: wtswangba

[发布]BAN在一定时间内retry的玩家

[复制链接]
发表于 2006-12-16 00:07:24 | 显示全部楼层 来自 中国–陕西–西安

回复: [发布]BAN在一定时间内retry的玩家

public client_connect(id) {
if ((!is_user_bot(id)) && ( !(get_user_flags(id) & ADMIN_IMMUNITY) ) && (get_cvar_num("amx_retryban")==1)) {

这个使用不正确,因为在 client_connect 事件里,玩家都还没有任何权限的,本来此玩家应该有免疫权限,但在这里并还没生效。
应该改成在 client_authorized 事件里判断。
回复

使用道具 举报

发表于 2009-1-11 20:29:28 | 显示全部楼层 来自 中国–广东–韶关
555 下载的源码是空白的
回复

使用道具 举报

发表于 2009-1-11 21:32:30 | 显示全部楼层 来自 中国–江苏–南京
骗钱,下的源码是空的
回复

使用道具 举报

发表于 2009-1-11 21:47:52 | 显示全部楼层 来自 中国–广东–佛山
占位待编辑
回复

使用道具 举报

发表于 2009-1-14 16:44:35 | 显示全部楼层 来自 中国–河南–三门峡
支持共享精神
回复

使用道具 举报

发表于 2009-1-14 19:06:46 | 显示全部楼层 来自 中国–安徽–合肥
骗钱,下的源码是空的
回复

使用道具 举报

发表于 2009-1-15 10:13:12 | 显示全部楼层 来自 中国–湖北–黄冈
  1. /* AMX Mod script.
  2. *
  3. * ========================Ban retry player Version 1.1============================
  4. *
  5. * (c) Copyright 2006, C@mp3R based on SYZo's AMX plugin
  6. * This file is provided as is (no warranties).
  7. *
  8. *
  9. *
  10. *        NEWS
  11. *        11 Jan 2006       
  12. *        - Add 2 new cvars
  13. *                amx_retrytimetoban
  14. *                amx_retrycounttoban : (if you retry "amx_retrycounttoban" times in "amx_retrytimetoban" minute(s), you will be banned)
  15. *        - Fixed ADMIN_IMMUNITY problem, now admin with access level a will not be banned
  16. *
  17. *        10 Jan 2006
  18. *        - Rename the plugin from no_reconnect to banretryplayer
  19. *        - Fixed the wrong spelling Embarassed
  20. *
  21. *
  22. *
  23. *        amx_retryban = 1
  24. *        amx_retrybanduration = 3
  25. *        amx_retrychat = 1
  26. *
  27. *        amx_retrytimetoban = 10
  28. *        amx_retrycounttoban = 2 (if you retry 3 times in amx_retrytimetoban minute(s), you will be banned)
  29. *       
  30. *        amx_retrybankmsg = "Ban %s %m min(s) because retry %d times in %m2 min(s)"
  31. *        amx_retrychatmsg = "You were using command RETRY %d time(s) in %d minute(s) so you has been banned from this server in %d minutes. Come back later please!"
  32. *
  33. */

  34. #include <amxmodx>
  35. #include <amxmisc>
  36. #define MAX_PLAYERS 32

  37. new pip[MAX_PLAYERS+1][22]
  38. new markedIp[MAX_PLAYERS+1]


  39. public client_connect(id) {
  40.     if ((!is_user_bot(id)) && ( !(get_user_flags(id) & ADMIN_IMMUNITY) ) && (get_cvar_num("amx_retryban")==1)) {

  41.         new userip[21+1]
  42.         new uname[33+1]
  43.         get_user_ip(id, userip, 21, 0)
  44.         get_user_name(id, uname, 33)
  45.         for(new i = 1; i <= MAX_PLAYERS; i++) {
  46.             if (equal(userip, pip[i], 21)) {
  47.                 new userid[1]
  48.                 userid[0] = get_user_userid(id)               
  49.                 if ( !(get_user_flags(id) & ADMIN_IMMUNITY) ) {            
  50.                     //--------------------------------------------
  51.                     if (markedIp[i] < get_cvar_num("amx_retrycounttoban"))
  52.                     {                       
  53.                         return PLUGIN_CONTINUE
  54.                     }
  55.                     //--------------------------------------------
  56.                     
  57.                     new txt[128]
  58.                     get_cvar_string("amx_retrybanmsg", txt, 127)
  59.                     new min[6]
  60.                     new min2[6]
  61.                     new retryCount[3]

  62.                     num_to_str(get_cvar_num("amx_retrybanduration"),min, 5)                               
  63.                     num_to_str(get_cvar_num("amx_retrytimetoban"),min2, 5)
  64.                     num_to_str(get_cvar_num("amx_retrycounttoban"),retryCount, 2)

  65.                     replace(txt, 127, "%s", uname)
  66.                     replace(txt, 127, "%m", min)       
  67.                     replace(txt, 127, "%m2", min2)
  68.                     replace(txt, 127, "%d", retryCount)
  69.                     
  70.                     server_cmd("say %s",txt)
  71.                     set_hudmessage(255, 0, 0, 0.05, 0.70, 0, 5.0, 6.0, 6.0, 0.15, 3)
  72.                     show_hudmessage(0,"%s",txt)                    
  73.                     
  74.                     if        (get_cvar_num("amx_retrychat")==1)
  75.                     {
  76.                         new sTemp[128]
  77.                         new text[128]
  78.                         get_cvar_string("amx_retrychatmsg", sTemp, 127)
  79.                         format(text, 128, sTemp, get_cvar_num("amx_retrycounttoban"), get_cvar_num("amx_retrytimetoban"), get_cvar_num("amx_retrybanduration"))
  80.                         client_cmd(id,"echo %s",text)
  81.                     }                    
  82.                     server_cmd("addip %d ^"%s^";wait;writeip",get_cvar_num("amx_retrybanduration"),userip)
  83.                     markedIp[i] = 0
  84.                     pip[i][0] = 0

  85.                 }
  86.                 return PLUGIN_CONTINUE
  87.             }
  88.         }
  89.        
  90.     }   
  91.     return PLUGIN_CONTINUE
  92. }

  93. public client_disconnect(id) {
  94.     if ((!is_user_bot(id)) && ( !(get_user_flags(id) & ADMIN_IMMUNITY) ) && (get_cvar_num("amx_retryban")==1)) {
  95.         for(new i = 1; i <= MAX_PLAYERS; i++) {
  96.             if(pip[i][0] == 0) {
  97.                 markedIp[i]++;
  98.                 server_print("say ----Markip[%d] = %d----", i, markedIp[i])
  99.                 //--------------------------------------------
  100.                 if (markedIp[i] == 1) // First time retry
  101.                 {               
  102.                         new para[3]
  103.                         format(para, 2, "%d", i)
  104.                         set_task(60.0 * get_cvar_num("amx_retrytimetoban"), "clean_markedip", 0, para, 1)                       
  105.                 }
  106.                 //----------------------------------       
  107.                 else if (markedIp[i] == get_cvar_num("amx_retrycounttoban"))  // Reached the retry time count
  108.                 {
  109.                         new userip[21+1]
  110.                         get_user_ip(id, userip, 21, 0)
  111.                         copy(pip[i], 21, userip)                       
  112.                 }
  113.                 return PLUGIN_CONTINUE
  114.             }
  115.         }
  116.     }
  117.     return PLUGIN_CONTINUE
  118. }
  119. public clean_markedip(index[]) {

  120.     markedIp[str_to_num(index)]=0;
  121. }


  122. public plugin_init() {
  123.         register_plugin("Ban retry player","1.1","C@mp3r.vn")  
  124.         register_cvar("amx_retryban","1")
  125.         register_cvar("amx_retrybanduration","3")
  126.         register_cvar("amx_retrychat","1")
  127.         register_cvar("amx_retrytimetoban","10")
  128.         register_cvar("amx_retrycounttoban","2")
  129.        
  130.         // %s is the player name, %m is amx_retrybanduration in minutes
  131.        
  132.         register_cvar("amx_retrybanmsg","Ban %s %m min(s) because retry %d time(s) in %m2 min(s)")
  133.         register_cvar("amx_retrychatmsg","You were using command RETRY %d time(s) in %d minute(s) so you has been banned from this server in %d minutes. Come back later please!")
  134.         for(new i=0; i< MAX_PLAYERS; i++)
  135.         {
  136.                 markedIp[i]=0;
  137.         }

  138.         return PLUGIN_CONTINUE
  139. }

复制代码
没有钱下载的 可以看看这个源码
回复

使用道具 举报

发表于 2009-7-24 04:54:49 | 显示全部楼层 来自 中国–河南–南阳
ban了是不是太邪恶了点```
回复

使用道具 举报

发表于 2009-7-24 04:56:07 | 显示全部楼层 来自 中国–河南–南阳
ban了是不是太邪恶了点```
回复

使用道具 举报

发表于 2009-12-11 16:44:52 | 显示全部楼层 来自 中国–湖北–武汉
好又学到点东西
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表