搜索
查看: 9845|回复: 19

[AMXX 带源码] 我也发一个sXe截图辅助菜单

[复制链接]
发表于 2010-4-2 13:41:26 | 显示全部楼层 |阅读模式 来自 中国–广东–惠州–惠城区
本帖最后由 zwfgdlc 于 2010-4-4 15:03 编辑

得到sXe测试版时做的,看到很多人需要,发上给方便大家。
使用方法很简单,打开OP菜单,一直按“下一页”,
到最后一页就会有一个"打开sXe截图管理菜单"的菜单项。
选择菜单就会弹出在线玩家菜单。
剩下的大家都知道怎么做了。

  1. #include <amxmodx>

  2. #define PLUGIN_NAME        "sXe ScreenShots"
  3. #define PLUGIN_VERSION        "0.1"
  4. #define PLUGIN_AUTHOR        "zwfgdlc"

  5. #if AMXX_VERSION_NUM < 181
  6. #define charsmax(%1) (sizeof(%1)-1)
  7. #endif

  8. new g_pcvar_sXe_required;
  9. new g_ScreenShotsMenu;
  10. new g_ScreenShotsCallback;

  11. public plugin_init()
  12. {
  13.         register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
  14.         register_clcmd("amx_screen", "cmd_sXeScreenShots", ADMIN_BAN);
  15.         g_ScreenShotsCallback = menu_makecallback("ScreenShotsMenuCallback");
  16. }

  17. public plugin_cfg()
  18. {
  19.         g_pcvar_sXe_required = get_cvar_pointer("__sxei_required");
  20.        
  21.         if (!g_pcvar_sXe_required)
  22.         {
  23.                 server_print("^xC3^xBB^xD3^xD0^xBC^xD3^xD4^xD8^x73^x58^x65^xB7^xFE^xCE^xF1^xB6^xCB^xC4^xA3^xBF^xE9^x2C^xB2^xE5^xBC^xFE^xCD^xA3^xD6^xB9^xB9^xA4^xD7^xF7");
  24.                 pause("ad");
  25.         }
  26.         else
  27.         {
  28.                 server_cmd("amx_addmenuitem ^"%s^" amx_screen d ^"%s^"",
  29.                 "^xE6^x89^x93^xE5^xBC^x80^x73^x58^x65^xE6^x88^xAA^xE5^x9B^xBE^xE7^xAE^xA1^xE7^x90^x86^xE8^x8F^x9C^xE5^x8D^x95", "sXe ScreenShots");
  30.         }
  31. }

  32. public cmd_sXeScreenShots(id, level)
  33. {
  34.         if (!(get_user_flags(id) & level))
  35.         {
  36.                 client_print(id, print_chat, "你没有权限执行这个命令!");
  37.                 return PLUGIN_HANDLED;
  38.         }
  39.        
  40.         new Players[32], iNum, Name[32], index[3], player;
  41.        
  42.         get_players(Players, iNum);
  43.         g_ScreenShotsMenu = menu_create("在线玩家列表", "menu_handle");
  44.        
  45.         for (new i=0; i<iNum; i++)
  46.         {
  47.                 player = Players[i];
  48.                 get_user_name(player, Name, charsmax(Name));
  49.                 num_to_str(player, index, charsmax(index))
  50.                 menu_additem(g_ScreenShotsMenu, Name, index, 0, g_ScreenShotsCallback);
  51.         }
  52.        
  53.         menu_setprop(g_ScreenShotsMenu, MPROP_BACKNAME, "返回上一页");
  54.         menu_setprop(g_ScreenShotsMenu, MPROP_NEXTNAME, "下一页");
  55.         menu_setprop(g_ScreenShotsMenu, MPROP_EXITNAME, "退出菜单");
  56.         menu_display(id, g_ScreenShotsMenu);        
  57.        
  58.         return PLUGIN_HANDLED;
  59. }

  60. public menu_handle(id, menu, item)
  61. {
  62.         if (item < 0)
  63.         {
  64.                 menu_destroy(menu);
  65.                 return PLUGIN_HANDLED;        
  66.         }
  67.        
  68.         new cmd[3], access, callback, player;
  69.        
  70.         menu_item_getinfo(menu, item, access, cmd, charsmax(cmd), _, _, callback);
  71.         player = str_to_num(cmd);

  72.         if (!is_user_connected(player))
  73.         {
  74.                 client_print(id, print_chat, "玩家当前不在线!");
  75.                 return PLUGIN_HANDLED;        
  76.         }

  77.         server_cmd("sxe_screen #%d #%d", get_user_userid(player), get_user_userid(id));
  78.         server_exec();
  79.         menu_destroy(menu);
  80.        
  81.         return PLUGIN_HANDLED;
  82. }

  83. public ScreenShotsMenuCallback(id, menu, item)
  84. {        
  85.         new cmd[3], access, callback, player, Name[32];
  86.        
  87.         menu_item_getinfo(menu, item, access, cmd, charsmax(cmd), Name, charsmax(Name), callback);
  88.         player = str_to_num(cmd);
  89.        
  90.         if (get_pcvar_num(g_pcvar_sXe_required) == 0) //非强制SXE
  91.         {
  92.                 if (equali(Name, "[NO-sXe-I]", 10))//NOSXE玩家
  93.                 return ITEM_DISABLED;
  94.         }
  95.        
  96.         if (is_user_bot(player) || id == player) //BOT,自己对自己,不能被截图
  97.            return ITEM_DISABLED;
  98.        
  99.         return ITEM_ENABLED;
  100. }
复制代码

本帖子中包含更多资源

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

×
发表于 2010-4-2 13:44:42 | 显示全部楼层 来自 中国–天津–天津
强贴留名
回复

使用道具 举报

发表于 2010-4-3 13:30:03 | 显示全部楼层 来自 中国–四川–宜宾
very good!
回复

使用道具 举报

发表于 2010-4-3 14:16:05 | 显示全部楼层 来自 中国–四川–宜宾
好象有一点问题,菜单是呼出来了,但是没有截图。再测试~~~
回复

使用道具 举报

 楼主| 发表于 2010-4-3 16:25:36 | 显示全部楼层 来自 中国–广东–惠州–惠城区
一时疏忽,userid忘了加#号导致截图命令执行失败,请重新下载。
回复

使用道具 举报

发表于 2010-4-3 23:07:40 | 显示全部楼层 来自 中国–浙江–杭州–临安区
支持啊  精华
回复

使用道具 举报

发表于 2010-4-4 00:03:51 | 显示全部楼层 来自 中国–北京–北京
好东西顶你了
回复

使用道具 举报

发表于 2010-4-4 01:01:04 | 显示全部楼层 来自 中国–广东–惠州
无私。:victory:
回复

使用道具 举报

发表于 2010-4-4 10:03:25 | 显示全部楼层 来自 中国–四川–宜宾
呵呵,不错
回复

使用道具 举报

发表于 2010-4-4 11:22:59 | 显示全部楼层 来自 中国–四川–宜宾
经测试,加了两个#号键还是不能用。。。
回复

使用道具 举报

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

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