搜索
查看: 10885|回复: 23

关于vip皮肤设置的疑问

[复制链接]
发表于 2009-2-2 09:38:56 | 显示全部楼层 |阅读模式 来自 中国–河南–三门峡
传统的管理员皮肤插件权限设置是这样的
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. public plugin_init() {
  5. register_plugin("AMX Admin Model", "1.1.1", "whitemike | C.H.M")
  6. register_event("ResetHUD", "resetModel", "b")
  7. return PLUGIN_CONTINUE
  8. }
  9. public plugin_precache() {
  10. precache_model("models/player/myhomes_ct/myhomes_ct.mdl")
  11. precache_model("models/player/myhomes_te/myhomes_te.mdl")
  12. precache_model("models/player/myhomes_vip_ct/myhomes_vip_ct.mdl")
  13. precache_model("models/player/myhomes_vip_t/myhomes_vip_t.mdl")
  14. precache_model("models/player/myhomes_mm_ct/myhomes_mm_ct.mdl")
  15. precache_model("models/player/myhomes_mm_t/myhomes_mm_t.mdl")
  16. return PLUGIN_CONTINUE
  17. }
  18. public resetModel(id, level, cid)
  19. {
  20. if (get_user_flags(id) & ADMIN_LEVEL_A)
  21. {
  22. new CsTeams:userTeam = cs_get_user_team(id)
  23. if (userTeam == CS_TEAM_T)
  24. {
  25. cs_set_user_model(id, "myhomes_te")
  26. }
  27. else
  28. { if (userTeam == CS_TEAM_CT)
  29. {
  30. cs_set_user_model(id, "myhomes_ct")
  31. }
  32. }
  33. }
  34. else
  35. {
  36. if (get_user_flags(id) & ADMIN_LEVEL_c)
  37. {
  38. new CsTeams:userTeam = cs_get_user_team(id)
  39. if (userTeam == CS_TEAM_T)
  40. {
  41. cs_set_user_model(id, "myhomes_mm_t")
  42. }
  43. else
  44. { if (userTeam == CS_TEAM_CT)
  45. {
  46. cs_set_user_model(id, "myhomes_mm_ct")
  47. }
  48. }
  49. }
  50. else
  51. #include <amxmodx>
  52. #include <amxmisc>
  53. #include <cstrike>
  54. public plugin_init() {
  55. register_plugin("AMX Admin Model", "1.1.1", "whitemike | C.H.M")
  56. register_event("ResetHUD", "resetModel", "b")
  57. return PLUGIN_CONTINUE
  58. }
  59. public plugin_precache() {
  60. precache_model("models/player/myhomes_ct/myhomes_ct.mdl")
  61. precache_model("models/player/myhomes_te/myhomes_te.mdl")
  62. precache_model("models/player/myhomes_vip_ct/myhomes_vip_ct.mdl")
  63. precache_model("models/player/myhomes_vip_t/myhomes_vip_t.mdl")
  64. precache_model("models/player/myhomes_mm_ct/myhomes_mm_ct.mdl")
  65. precache_model("models/player/myhomes_mm_t/myhomes_mm_t.mdl")
  66. return PLUGIN_CONTINUE
  67. }
  68. public resetModel(id, level, cid)
  69. {
  70. if (get_user_flags(id) & ADMIN_LEVEL_A)
  71. {
  72. new CsTeams:userTeam = cs_get_user_team(id)
  73. if (userTeam == CS_TEAM_T)
  74. {
  75. cs_set_user_model(id, "myhomes_te")
  76. }
  77. else
  78. { if (userTeam == CS_TEAM_CT)
  79. {
  80. cs_set_user_model(id, "myhomes_ct")
  81. }
  82. }
  83. }
  84. else
  85. {
  86. if (get_user_flags(id) & ADMIN_LEVEL_c)
  87. {
  88. new CsTeams:userTeam = cs_get_user_team(id)
  89. if (userTeam == CS_TEAM_T)
  90. {
  91. cs_set_user_model(id, "myhomes_mm_t")
  92. }
  93. else
  94. { if (userTeam == CS_TEAM_CT)
  95. {
  96. cs_set_user_model(id, "myhomes_mm_ct")
  97. }
  98. }
  99. }
  100. else
  101. {
  102. if (get_user_flags(id) & ADMIN_LEVEL_B)
  103. {
  104. new CsTeams:userTeam = cs_get_user_team(id)
  105. if (userTeam == CS_TEAM_T)
  106. {
  107. cs_set_user_model(id, "myhomes_vip_t")
  108. }
  109. else
  110. {
  111. if (userTeam == CS_TEAM_CT)
  112. {
  113. cs_set_user_model(id, "myhomes_vip_ct")
  114. }
  115. }
  116. }
  117. else
  118. {
  119. cs_reset_user_model(id)
  120. }
  121. }
  122. }
  123. return PLUGIN_CONTINUE
  124. }  


  125. 编译出现以下一个错误
  126. Welcome to the AMX Mod X 1.76-300 Compiler.
  127. Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team
  128. Error: Undefined symbol "ADMIN_LEVEL_c" on line 36
  129. 1 Error.
  130. Could not locate output file D:\myhomesop.amx (compile failed).

  131. USERS.INI文件
  132. ; 用户配置文件
  133. ; CHM 汉化组 Rulzy 汉化
  134. ; 文件位置: $moddir/addons/amxmodx/configs/users.ini
  135. ; 每行前的 ; 表示注释该行
  136. ; 权限标记:
  137. ; a - immunity   (免疫,不能被 踢/封/处死/伤害 或者其他的命令影响)
  138. ; b - reservation  (可通过预留通道加入服务器)
  139. ; c - amx_kick command  (拥有KICK权限)
  140. ; d - amx_ban and amx_unban commands (拥有ban的权限)
  141. ; e - amx_slay and amx_slap commands (拥有强行杀死某人的权限)
  142. ; f - amx_map command  (拥有更换地图的权限)
  143. ; g - amx_cvar command  (可以设置amx的设置参数,但并不是所有的都可以)
  144. ; h - amx_cfg command  (可以加载某个AMX的CFG设置文件权限)
  145. ; i - amx_chat and other chat commands (可以以管理员身份发布消息)
  146. ; j - amx_vote and other vote commands (可以发起一个投票事件)
  147. ; k - access to sv_password cvar (可以更改为服务器加密码)
  148. ; l - access to amx_rcon command and rcon_password cvar (by amx_cvar command)(可以用rcon命令来以OP身份登陆服务器)
  149. ; m - custom level A (自定义管理级别,为附加的其他插件预留的权限等级)
  150. ; n - custom level B
  151. ; o - custom level C
  152. ; p - custom level D
  153. ; q - custom level E
  154. ; r - custom level F
  155. ; s - custom level G
  156. ; t - custom level H
  157. ; u - menu access (拥有打开MENU管理菜单的权限)
  158. ; z - user  (普通用户权限)


  159. else
  160. {
  161. if (userTeam == CS_TEAM_CT)
  162. {
  163. cs_set_user_model(id, "myhomes_vip_ct")
  164. }
  165. }
  166. }
  167. else
  168. {
  169. cs_reset_user_model(id)
  170. }
  171. }
  172. }
  173. return PLUGIN_CONTINUE
  174. }  


  175. USERS.INI文件
  176. ; 用户配置文件
  177. ; CHM 汉化组 Rulzy 汉化
  178. ; 文件位置: $moddir/addons/amxmodx/configs/users.ini
  179. ; 每行前的 ; 表示注释该行
  180. ; 权限标记:
  181. ; a - immunity   (免疫,不能被 踢/封/处死/伤害 或者其他的命令影响)
  182. ; b - reservation  (可通过预留通道加入服务器)
  183. ; c - amx_kick command  (拥有KICK权限)
  184. ; d - amx_ban and amx_unban commands (拥有ban的权限)
  185. ; e - amx_slay and amx_slap commands (拥有强行杀死某人的权限)
  186. ; f - amx_map command  (拥有更换地图的权限)
  187. ; g - amx_cvar command  (可以设置amx的设置参数,但并不是所有的都可以)
  188. ; h - amx_cfg command  (可以加载某个AMX的CFG设置文件权限)
  189. ; i - amx_chat and other chat commands (可以以管理员身份发布消息)
  190. ; j - amx_vote and other vote commands (可以发起一个投票事件)
  191. ; k - access to sv_password cvar (可以更改为服务器加密码)
  192. ; l - access to amx_rcon command and rcon_password cvar (by amx_cvar command)(可以用rcon命令来以OP身份登陆服务器)
  193. ; m - custom level A (自定义管理级别,为附加的其他插件预留的权限等级)
  194. ; n - custom level B
  195. ; o - custom level C
  196. ; p - custom level D
  197. ; q - custom level E
  198. ; r - custom level F
  199. ; s - custom level G
  200. ; t - custom level H
  201. ; u - menu access (拥有打开MENU管理菜单的权限)
  202. ; z - user  (普通用户权限)

复制代码
上面的插件是用自定义的级别来区分权限.比如
{
if (get_user_flags(id) & ADMIN_LEVEL_C)
{
new CsTeams:userTeam = cs_get_user_team(id)
if (userTeam == CS_TEAM_T)
{
cs_set_user_model(id, "myhomes_mm_t")
}



这里使用ADMIN_LEVEL_C这个自定义的级别来区分VIP MM皮肤.的



但是在zombie_plague40里面设置管理员皮肤的源码是


  1. // Access Flags Required (check CMDACCESS.INI for console commands)
  2. const ACCESS_FLAG = ADMIN_BAN // to access the admin menu
  3. const ACCESS_FLAG2 = ADMIN_RCON // to turn the mod on/off
  4. const ACCESS_FLAG3 = ADMIN_BAN // to get admin models

  5. // Player Models (randomly chosen, add as many as you want)
  6. new const model_nemesis[][] = { "zombie_source" } // Nemesis
  7. new const model_survivor[][] = { "leet", "sas" } // Survivor
  8. new const model_human[][] = { "arctic", "guerilla", "leet", "terror", "gign", "gsg9", "sas", "urban" } // Human
  9. new const model_admin[][] = { "mm" } // Admin (human)
  10. new const model_admin_zombie[][] = { "zombie_source" } // Admin (zombie)

复制代码
这个我就看的不大懂了..
不知道如何添加VIP皮肤了...

希望有高手指点下
 楼主| 发表于 2009-2-2 09:40:00 | 显示全部楼层 来自 中国–河南–三门峡
貌似最上面的源码多复制了一点.. 大家千万别用那个保存成admin_model.sma去编译哦
回复

使用道具 举报

 楼主| 发表于 2009-2-2 09:55:54 | 显示全部楼层 来自 中国–河南–三门峡
是不是可以这样写呢?

const ACCESS_FLAG3 = ADMIN_LEVEL_A

new const model_admin_mm[][] = { "mm" } // Admin (human)
回复

使用道具 举报

发表于 2009-2-2 11:49:12 | 显示全部楼层 来自 中国–台湾
Welcome to the AMX Mod X 1.76-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team
Error: Undefined symbol "ADMIN_LEVEL_c" on line 36
1 Error.
Could not locate output file D:\myhomesop.amx (compile failed).
首先我先看到你的錯誤太明顯了
ADMIN_LEVEL_c的C怎麼會是小寫
難怪他會顯示出錯誤

第二個
我建議你看完ZP的原碼
先到public fw_PlayerSpawn_Post(id)
裡面有
if (get_pcvar_num(cvar_adminmodelshuman) && get_user_flags(id) & ACCESS_FLAG3)
的ACCESS_FLAG3這個就是設定權限的
他用成
const ACCESS_FLAG3 = ADMIN_BAN
這樣你就可以知道你該藉由什麼來設定權限在ZP裡面的吧
我例如一個
const ACCESS_FLAG4 = ADMIN_LEVEL_C
那你的ZP原碼裡面就要加上
if (get_pcvar_num(cvar_adminmodelshuman) && get_user_flags(id) & ACCESS_FLAG4)
回复

使用道具 举报

 楼主| 发表于 2009-2-2 12:16:59 | 显示全部楼层 来自 中国–河南–三门峡
if (get_pcvar_num(cvar_adminmodelshuman) && get_user_flags(id) & ACCESS_FLAG4)  不知道可用不  等晚上测试下
回复

使用道具 举报

发表于 2009-2-2 12:43:28 | 显示全部楼层 来自 中国–台湾
我是參考ZP的ADM服裝來寫的
稍微看了一下 應該是可以的
只要沒有設定錯的話 就可以了
回复

使用道具 举报

发表于 2009-2-11 07:08:11 | 显示全部楼层 来自 中国–广东–惠州
这个插件会群T.如果有人能解决,就万分感谢.
回复

使用道具 举报

发表于 2009-2-11 23:02:25 | 显示全部楼层 来自 中国–江西
解决一下呀
回复

使用道具 举报

发表于 2009-2-22 01:11:40 | 显示全部楼层 来自 中国–河南–南阳
僵尸服VIP皮肤我也很想实现这个功能。。
楼主如果实现了麻烦把代码共享下啊。。。
回复

使用道具 举报

发表于 2009-2-22 16:09:23 | 显示全部楼层 来自 中国–河南–新乡
Welcome to the AMX Mod X 1.76-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team
Error: Undefined symbol "ADMIN_LEVEL_c" on line 36
1 Error.
Could not locate output file D:\myhomesop ...
jiunnwoei2629 发表于 2009-2-2 11:49

jiunnwoei2629 大大能详细的介绍下如何自定义僵尸VIP皮肤插件吗?
看您水平蛮高的。。
帮帮小弟吧
回复

使用道具 举报

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

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