搜索
查看: 10206|回复: 15

[AMXX 带源码] VIP 人物皮肤可选择替换【开源】【半仙】

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


鉴于点通创始人决定不关闭点通,特此分享一下,作品很渣,望谅解.
  
                     1.  插件命令: say skin
                     2.  模型替换 菜单显示权限:ADMIN_LEVEL_F
                     3.  原创,略搓。(勿喷,转载望勿修改版权)  
                     4 . 源码放2楼

            mdl文件过大
            仅上传amxx
                     模型加载:
  1. public plugin_precache() {

  2. //第一组 - 草薙京兄弟
  3. precache_model("models/player/1_T/1_T.mdl")
  4. precache_model("models/player/1_TC/1_TC.mdl")


  5. //黑白精灵MM
  6. precache_model("models/player/2_T/2_T.mdl")
  7. precache_model("models/player/2_TC/2_TC.mdl")


  8. //中国特警队
  9. precache_model("models/player/4_T/4_T.mdl")
  10. precache_model("models/player/4_TC/4_TC.mdl")

  11. return PLUGIN_CONTINUE
  12. }

复制代码
  希望大家踊跃发帖,提意见,分享东西!
 楼主| 发表于 2013-5-14 20:16:10 | 显示全部楼层 来自 中国–河北–保定
本帖最后由 刘半仙【仙】 于 2013-5-14 20:42 编辑


特提供源码:
望批评指正
渣作勿喷
版权保留
  1. /*---------------------
  2.         半仙出品
  3. 1.模型替换为开局替换,玩家选择后不是立即替换
  4. 2.替换模型为一组,即一组模型对于CT 和T 2个模型
  5. 3.判别模型方法, 存取选择对于的T模型文件名字 判断玩家为CT将T模型文件+"C" 转换
  6.        
  7. ----------------------*/
  8. #include <amxmodx>
  9. #include <amxmisc>
  10. #include <cstrike>

  11. #define PLUGIN_NAME                "modchoose"
  12. #define PLUGIN_VERSION                "2.2.1"
  13. #define PLUGIN_AUTHOR                "kyo"
  14. new playermod[32][32],alreadyChoose[32],bool:Is_choosed[33],bool:Round_choosed[33]

  15. //模型准备名字   
  16. new menuitem[4][] = {"草薙京兄弟","黑白精灵MM","中国特警队","换原始模型"}      //3套替换模型  修改前3项名字即可
  17. new prepmod[3][] = {"1_T","2_T","4_T"}                                         // 模型mdl文件名字 ,T模型的名字 CT模型名字为T模型名字+“C”

  18. public plugin_init()
  19.         {
  20.                 register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
  21.                 server_print("^n^t==========================================================^n^t   %s %s, Copyright (C) 2012 by %s^n^t==========================================================^n",PLUGIN_NAME,PLUGIN_VERSION,PLUGIN_AUTHOR);
  22.                 register_clcmd("say skin","selecmenu")
  23.                 register_event("ResetHUD", "resetModel", "b")
  24. }
  25. /*---------------------
  26.         模型加载
  27.   备注:  CT的模型为 T模型名字加一个C
  28.   
  29. ----------------------*/
  30. public plugin_precache() {

  31. //第一组 - 草薙京兄弟
  32. precache_model("models/player/1_T/1_T.mdl")
  33. precache_model("models/player/1_TC/1_TC.mdl")


  34. //黑白精灵MM
  35. precache_model("models/player/2_T/2_T.mdl")
  36. precache_model("models/player/2_TC/2_TC.mdl")


  37. //中国特警队
  38. precache_model("models/player/4_T/4_T.mdl")
  39. precache_model("models/player/4_TC/4_TC.mdl")

  40. return PLUGIN_CONTINUE
  41. }
  42. /*---------------------
  43.         菜单区
  44. ----------------------*/
  45. public selecmenu(id)
  46. {
  47.         new Message[126]       
  48.         if(get_user_flags(id) & ADMIN_LEVEL_F)
  49.         {
  50.                 new menu = menu_create("\r模型菜单", "Select");
  51.                 /* 菜单选项*/
  52.                 for(new a = 0;a<4;a++)
  53.                 {        new tmp[126],num[5]
  54.                         num_to_str(a+1, num, 4);
  55.                         if(a == alreadyChoose[id]){
  56.                                 format(tmp,125,"\d%s(\r已选择\d)",menuitem[a])
  57.                         }
  58.                         else{
  59.                                 format(tmp,125,"\w%s",menuitem[a])
  60.                         }
  61.                         menu_additem(menu, tmp, num, 0);
  62.                 }
  63.                 /*end*/
  64.                 menu_setprop(menu, MPROP_EXITNAME, "\y退出菜单");
  65.                 if(Round_choosed[id] == true)
  66.                 {
  67.                 format(Message, 125, "^x04|灬FourKing灬|提示:^x01____一局只能选择一次");
  68.                 client_color(id, id,Message)
  69.                 }
  70.                 else{
  71.                 menu_display(id, menu, 0);
  72.                 }
  73.         }
  74.         else
  75.         {       
  76.                 format(Message, 125, "^x04|灬FourKing灬|提示:^x01你没有这个权限,群号:37061111");
  77.                 client_color(id, id,Message)
  78.         }
  79.         return PLUGIN_HANDLED;
  80. }
  81. public Select(id, menu, item)
  82. {
  83.         new szMessage[256],name[32]
  84.         get_user_name(id,name,31)
  85.         new data[9], iName[64];
  86.         new access, callback;
  87.        
  88.         menu_item_getinfo(menu, item, access, data,9, iName, 63, callback);
  89.         new key = str_to_num(data);
  90.         switch(key)
  91.         {
  92.                 case 4:
  93.                         {       
  94.                                 if(Is_choosed[id]){
  95.                                 Is_choosed[id] = false
  96.                                 alreadyChoose[id]= -1       
  97.                                 format(szMessage, 255, "^x04|灬FourKing灬|:^x01^x03%s^x01^x04更换为^x03原始模型",name);
  98.                                 client_color(0, id,szMessage)
  99.                                 }
  100.                                 else
  101.                                 {
  102.                                 format(szMessage, 255, "^x04|灬FourKing灬|:^x01没有选择皮肤,^x03%s^x01^x04不用更换",name);
  103.                                 client_color(id, id,szMessage)
  104.                                 }
  105.                                
  106.                         }
  107.                 default:
  108.                         {        new chooseitem = key - 1                     //转换为数组索引
  109.                                 if(alreadyChoose[id] == chooseitem){
  110.                                         menu_display(id, menu, 0);
  111.                                 }
  112.                                 else{
  113.                                 if(chooseitem <3 && chooseitem >=0){
  114.                                         alreadyChoose[id] = chooseitem
  115.                                         // 准备模型
  116.                                         new modname[16]
  117.                                         format(modname,15,"%s",prepmod[chooseitem])
  118.                                         playermod[id] =   modname
  119.                                         Is_choosed[id] = true
  120.                                         Round_choosed[id] = true       
  121.                                         format(szMessage, 255, "^x04|灬FourKing灬|:^x01^x03%s^x01^x04更换模型为^x03|%s|",name,menuitem[chooseitem]);
  122.                                         client_color(0, id,szMessage)
  123.                                 }
  124.                                 else{
  125.                                         log_amx("[modchoose]准备数组超出索引范围")
  126.                                 }
  127.                                 }
  128.                         }
  129.        
  130.         }
  131.        
  132.        
  133. }
  134. /*---------------------
  135.         模型置换(开局)
  136. ----------------------*/
  137. public resetModel(id, level, cid) {
  138.         if (get_user_flags(id) & ADMIN_LEVEL_F)
  139.         {
  140.                 new CsTeams:userTeam = cs_get_user_team(id)

  141.                 if (Is_choosed[id] == true && userTeam == CS_TEAM_T)
  142.                 {
  143.                 cs_set_user_model(id, playermod[id])
  144.                 }
  145.                 else  if (Is_choosed[id] == true && userTeam == CS_TEAM_CT)
  146.                 {
  147.                 new tmp[32]
  148.                 format(tmp,31,"%sC", playermod[id])   // 转换为CT需要的模型字符 +“c”
  149.                 cs_set_user_model(id, tmp)
  150.                 }
  151.                 else
  152.                 {
  153.                 cs_reset_user_model(id)
  154.                 }
  155.         }
  156.         else
  157.         {
  158.                 cs_reset_user_model(id)
  159.         }
  160.        
  161.         if(Round_choosed[id])
  162.         {
  163.                 Round_choosed[id] = false;
  164.         }
  165.         return PLUGIN_CONTINUE
  166. }
  167. /*---------------------
  168.         其他
  169. ----------------------*/
  170. public client_authorized(id)
  171. {
  172.        
  173.         Is_choosed[id] = false;
  174.         Round_choosed[id] = false;
  175.         alreadyChoose[id] = -1       
  176. }

  177. public client_disconnect(id)
  178. {
  179.         if(Is_choosed[id])
  180.                 Is_choosed[id] = false;
  181.         if(Round_choosed[id])
  182.                 Round_choosed[id] = false;
  183.         if(alreadyChoose[id] != -1)
  184.         alreadyChoose[id] = -1;
  185. }
  186. public client_color(playerid, colorid, msg[]){
  187. message_begin(playerid?MSG_ONE:MSG_ALL,get_user_msgid("SayText"),{0,0,0},playerid)
  188. write_byte(colorid)
  189. write_string(msg)
  190. message_end()
  191. }
复制代码

本帖子中包含更多资源

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

×
回复

使用道具 举报

发表于 2013-5-14 22:31:56 | 显示全部楼层 来自 中国–山东–青岛
楼主 我又来顶你了:P

点评

楼主还是潜力啊!  发表于 2013-5-15 11:52
回复

使用道具 举报

发表于 2013-5-14 23:19:36 | 显示全部楼层 来自 中国–上海–上海–浦东新区
友情帮顶......:).看起来不错

点评

感谢感谢!:D  发表于 2013-5-15 11:53
回复

使用道具 举报

发表于 2013-5-15 11:41:51 | 显示全部楼层 来自 中国–西藏–拉萨
我也支持一下!

点评

三克斯歪瑞嘛起  发表于 2013-5-15 11:55
回复

使用道具 举报

发表于 2013-5-15 12:06:45 | 显示全部楼层 来自 中国–江苏–淮安
顶,支持个!!!!
回复

使用道具 举报

发表于 2013-5-15 12:59:26 | 显示全部楼层 来自 中国–山东–青岛
现在都没人评精华帖子了   除了使劲发帖子就要像我一样买金币喽:L
回复

使用道具 举报

发表于 2013-5-15 13:00:42 | 显示全部楼层 来自 中国–山东–青岛
现在不就是注册会员了吗:kiss::kiss::kiss:  恭喜啊  

点评

不容易啊!!!混了那么久T_T  发表于 2013-5-15 16:55
回复

使用道具 举报

发表于 2013-5-15 21:22:32 | 显示全部楼层 来自 中国–广东–深圳
顶,不错呀、;
回复

使用道具 举报

发表于 2013-5-15 22:05:55 | 显示全部楼层 来自 中国–广东–深圳
1.5的玩家飘过,很不错,可惜模型和插件都不支持1.5
回复

使用道具 举报

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

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