搜索
查看: 5936|回复: 10

[AMXX 带源码] 【源】[NO-sXe-I]玩家转移

[复制链接]
发表于 2013-4-4 13:13:31 | 显示全部楼层 |阅读模式 来自 中国–河北–保定
本帖最后由 刘半仙【仙】 于 2013-5-29 21:50 编辑

服务器强制SXE担心人气不好!
                        晚上玩家多又给不了XE玩家通道
、               No SXE 玩家占位子
                      OP让NO sxe玩家转移到别的服务器
                            PS: 你自己的二服也好!朋友服务器也罢
                                 冷清的论坛!
                                                                  新手求鼓励!求测试

   参数:     "amx_kyo_server","127.0.0.1" //要转向的目的服务器.
        "amx_kyo_serverport","27015" //端口
                 say cnm  呼出菜单  
          插件测试中  呼出菜单权限为所有玩家!
                  不喜勿喷

         
  




DT 无源就人权!
源码:
  1. /****************************************************************************\
  2. *                        [No-sXe-I]玩家控制                                     *       
  3. *           服务器白天玩家不多,晚上XE玩家多但是没有好的通道                     *
  4. *          由管理员手动控制 传送非SXE玩家到指定服务器 同盟服&&二服&&三服     *
  5. *                    kyo is half of god                                             *
  6.    
  7. \****************************************************************************/

  8. #include <amxmodx>
  9. #include <amxmisc>

  10. #define PLUGIN_NAME        "menu everybody!"
  11. #define PLUGIN_VERSION        "1.0"
  12. #define PLUGIN_AUTHOR        "kyo!"
  13. #define TASKID_READY        1340
  14. new g_userPosition[33]
  15. new g_userPlayers[33][32]
  16. new g_readysend[33]  = "[NO-sXe-I]"
  17. new ReadyTime[33]
  18. new Readysend[33]

  19. public plugin_init()
  20. {
  21.         register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
  22.         register_clcmd("say cnm","SHowOPmenu",0,"- 显示截图菜单")  //   0 改成你要的权限
  23.         register_menucmd(register_menuid("传送No_XE玩家"),1023,"actionStatsMenu")

  24.         register_cvar("amx_kyo_server","119.135.184.222") //要转向的目的服务器.
  25.         register_cvar("amx_kyo_serverport","27017") //端口
  26. }
  27. public SHowOPmenu(id)
  28. {
  29.         //showMenu(id,g_userPosition[id]=0)
  30.         new menu = menu_create("\r转移玩家 \d(选择转移类型)", "Select");
  31.         /* 菜单选项*/
  32.         menu_additem(menu, "\w单个玩家转移 ", "1", 0);
  33.         menu_additem(menu, "\w全体玩家转移", "2", 0);
  34.        
  35.         /*end*/
  36.         menu_setprop(menu, MPROP_EXITNAME, "\d让他们再呆会");
  37.         menu_display(id, menu, 0);
  38.         return PLUGIN_HANDLED;
  39. }
  40. public Select(id, menu, item)
  41. {
  42.         new data[9], iName[64];
  43.         new access, callback;
  44.        
  45.         menu_item_getinfo(menu, item, access, data,9, iName, 63, callback);
  46.         new key = str_to_num(data);
  47.         switch(key)
  48.         {
  49.                 case 1:
  50.                         {
  51.                         showMenu(id,g_userPosition[id]=0)       
  52.                                
  53.                         }
  54.                 case 2:
  55.                         {
  56.                         sendallp()       
  57.                         }

  58.         }
  59.         return PLUGIN_HANDLED;
  60. }
  61. sendallp()
  62. {
  63.                  for(new i=0;i<=32;i++)
  64.         {
  65.                          if(is_user_connect(id)){
  66.                 new name[32]
  67.                 get_user_name(i,name,31)
  68.                 if(contain(name,g_readysend) == -1)
  69.                         {
  70.                                 Sendplayer(i)       
  71.                         }
  72.                  }
  73.         }
  74.         return PLUGIN_HANDLED;
  75.         
  76. }
  77. public Sendplayer(id)
  78. {
  79.                 ReadyTime[id] = 31;
  80.                 set_task(1.0, "PlayerSend", TASKID_READY+id, _, _, "a", ReadyTime[id]);
  81. }
  82. public PlayerSend(taskid)
  83. {
  84.                 new id = taskid - TASKID_READY;
  85.                 if(is_user_connected(id) && Readysend[id])
  86.         {
  87.                 ReadyTime[id]--;
  88.                
  89.                 new ThesMsg[32];
  90.                 ThesMsg = "------------------------------";
  91.                 copy(ThesMsg, ReadyTime[id], ThesMsg);
  92.                
  93.                 client_print(id, print_center, "^x0A^x0D^x0A^x0D亲爱的非SXE玩家^x0A^x0D%s^x0A^x0D还剩余%d秒被转移到另一服务器^x0A^x0D", ThesMsg, ReadyTime[id]);
  94.                 if(ReadyTime[id] < 1)
  95.                 {
  96.                         new kyo_serverport = get_cvar_num("amx_kyo_serverport")
  97.                         new kyo_server[64]
  98.                         get_cvar_string("amx_kyo_server",kyo_server,63)
  99.                         client_cmd(id,"connect %s:%d",kyo_server,kyo_serverport);
  100.                         server_exec();
  101.                         remove_task(id+TASKID_READY);
  102.                 }
  103.         }
  104. }
  105. public actionStatsMenu(id,key){
  106.         switch(key){
  107.                
  108.                 case 8: showMenu(id,++g_userPosition[id])
  109.                         case 9: showMenu(id,--g_userPosition[id])
  110.                         default:{
  111.                         new option = g_userPosition[id] * 8 + key
  112.                         new index = g_userPlayers[id][option]
  113.                         if (is_user_connected(index)){
  114.                                
  115.                                         new name[32]
  116.                                         get_user_name(index,name,31)
  117.                                         if(contain(name,g_readysend) == -1)
  118.                                         {
  119.                                                
  120.                                                 client_print(id, print_center, "请不要对反作弊玩家动粗")       
  121.                                         }
  122.                                         else
  123.                                         {
  124.                                                 if(!Readysend[index])
  125.                                                         {
  126.                                                         Readysend[index] = true
  127.                                                         Sendplayer(index)
  128.                                                         }
  129.                                                 else
  130.                                                         client_print(id, print_center, "该玩家已经在传送队列中")
  131.                                                
  132.                                         }
  133.                         }
  134.                        
  135.                 }
  136.         }
  137.         return PLUGIN_HANDLED
  138. }



  139. showMenu(id,pos){
  140.         if (pos < 0) return PLUGIN_HANDLED
  141.         new menu_body[512], inum, k = 0, start = pos * 8
  142.         get_players(g_userPlayers[id],inum)
  143.         if (start >= inum) start = pos = g_userPosition[id] = 0
  144.         new len = format(menu_body,511,"\y传送No_XE玩家\R%d/%d^n\w^n",pos + 1,((inum/8)+((inum%8)?1:0)))
  145.         new name[32], end = start + 8, keys = (1<<9)|(1<<8)
  146.         if (end > inum) end = inum
  147.         for(new a = start; a < end; ++a){
  148.                 get_user_name(g_userPlayers[id][a],name,31)
  149.                 keys |= (1<<k)
  150.                 len += format(menu_body[len],511-len,"%d. %s^n\w",++k,name)
  151.         }
  152.        
  153.         if (end != inum){
  154.                 format(menu_body[len],511-len,"^n9. More...^n0. %s" , pos ? "Back" : "Exit" )
  155.                 keys |= (1<<8)
  156.         }
  157.         else format(menu_body[len],511-len,"^n0. %s" , pos ? "Back" : "Exit" )
  158.         show_menu(id,keys,menu_body)
  159.         return PLUGIN_HANDLED
  160. }
  161.   
  162. public client_authorized(id)
  163. {
  164.        
  165.         Readysend[id] = false;
  166. }

  167. public client_disconnect(id)
  168. {
  169.         if(Readysend[id])
  170.                 Readysend[id] = false;
  171.        
  172.        
  173. }
复制代码
不会设置恢复可见!!! 有什么提议!往下跟帖!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
发表于 2013-4-4 14:14:07 | 显示全部楼层 来自 中国–江苏–连云港–灌南县
支持~支持~支持~
回复

使用道具 举报

发表于 2013-4-4 17:55:12 | 显示全部楼层 来自 中国–山东–青岛
先帮楼主顶一下~~
回复

使用道具 举报

发表于 2013-4-5 21:49:15 | 显示全部楼层 来自 中国–山东–滨州
这个一定要顶,支持开源
回复

使用道具 举报

 楼主| 发表于 2013-4-8 14:30:22 | 显示全部楼层 来自 中国–河北–保定
裸奔者 发表于 2013-4-4 14:14
支持~支持~支持~

求教!!! 回复后可见。。。!
回复

使用道具 举报

 楼主| 发表于 2013-4-8 14:31:12 | 显示全部楼层 来自 中国–河北–保定
七星 发表于 2013-4-5 21:49
这个一定要顶,支持开源


求教!!! 回复后可见。。。!{:3_48:}
回复

使用道具 举报

发表于 2013-4-15 03:35:30 | 显示全部楼层 来自 中国–陕西–西安
不开sXe的我怒了!!:@
回复

使用道具 举报

发表于 2013-5-1 20:34:53 | 显示全部楼层 来自 中国–广东–广州–白云区
好用吗?不可以设置人满的时候会员进入才转F就好
回复

使用道具 举报

 楼主| 发表于 2013-5-2 13:37:36 | 显示全部楼层 来自 中国–河北–保定
LASTCS 发表于 2013-4-15 03:35
不开sXe的我怒了!!

{:3_58:}sorry! 不输入5个汉字不行!
回复

使用道具 举报

 楼主| 发表于 2013-5-2 13:38:26 | 显示全部楼层 来自 中国–河北–保定
便衣队长 发表于 2013-5-1 20:34
好用吗?不可以设置人满的时候会员进入才转F就好

{:3_55:} 通道插件 一般都是寻找 ping高 或者最后进入服务器的玩家 转移! 你改成寻找到一个 no sxe的就好了! {:3_48:}
回复

使用道具 举报

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

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