设为首页收藏本站新闻投稿

MOD中国同盟社

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 997|回复: 11

[求助] 显示你扔什么雷插件的问题!纯属问一下 [复制链接]

Rank: 3Rank: 3

帖子
418
精华
0
声望
450 点
金币
45 Mold
被赞许
0 次
注册时间
2010-7-11
发表于 2010-10-11 17:17:58 |显示全部楼层
  1. #include <amxmodx>

  2. #define PLUGIN_NAME "Descriptive 'Fire in the hole!'"
  3. #define PLUGIN_VERSION "0.1"
  4. #define PLUGIN_AUTHOR "VEN"

  5. enum grenade {
  6. GRENADE_HE,
  7. GRENADE_FLASH,
  8. GRENADE_SMOKE
  9. }

  10. // EDITABLE: grenade description
  11. new co*** g_grenade_description[_:grenade][] = {
  12. " [手榴彈]",
  13. " [閃光彈]",
  14. " [煙霧彈]"
  15. }

  16. enum color {
  17. COLOR_NORMAL,
  18. COLOR_RED,
  19. COLOR_BLUE,
  20. COLOR_GRAY,
  21. COLOR_GREEN
  22. }

  23. // EDITABLE: grenade description text color
  24. new co*** g_grenade_desccolor[_:grenade] = {
  25. COLOR_RED,
  26. COLOR_GRAY,
  27. COLOR_GREEN
  28. }

  29. new co*** g_grenade_weaponid[_:grenade] = {
  30. CSW_HEGRENADE,
  31. CSW_FLASHBANG,
  32. CSW_SMOKEGRENADE
  33. }

  34. #define COLORCODE_NORMAL 0x01
  35. #define COLORCODE_TEAM 0x03
  36. #define COLORCODE_LOCATION 0x04

  37. new co*** g_color_code[_:color] = {
  38. COLORCODE_NORMAL,
  39. COLORCODE_TEAM,
  40. COLORCODE_TEAM,
  41. COLORCODE_TEAM,
  42. COLORCODE_LOCATION
  43. }

  44. new co*** g_color_teamname[_:color][] = {
  45. "",
  46. "TERRORIST",
  47. "CT",
  48. "SPECTATOR",
  49. ""
  50. }

  51. #define RADIOTEXT_MSGARG_NUMBER 5

  52. enum radiotext_msgarg {
  53. RADIOTEXT_MSGARG_PRINTDEST = 1,
  54. RADIOTEXT_MSGARG_CALLERID,
  55. RADIOTEXT_MSGARG_TEXTTYPE,
  56. RADIOTEXT_MSGARG_CALLERNAME,
  57. RADIOTEXT_MSGARG_RADIOTYPE,
  58. }

  59. new co*** g_required_radiotype[] = "#Fire_in_the_hole"
  60. new co*** g_radiotext_template[] = "%s (RADIO): Fire in the hole!"

  61. new g_msgid_saytext
  62. new g_msgid_teaminfo

  63. public plugin_init() {
  64. register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)

  65. register_message(get_user_msgid("TextMsg"), "message_text")

  66. g_msgid_saytext = get_user_msgid("SayText")
  67. g_msgid_teaminfo = get_user_msgid("TeamInfo")
  68. }

  69. public message_text(msgid, dest, id) {
  70. if (get_msg_args() != RADIOTEXT_MSGARG_NUMBER || get_msg_argtype(RADIOTEXT_MSGARG_RADIOTYPE) != ARG_STRING)
  71. return PLUGIN_CONTINUE

  72. static arg[32]
  73. get_msg_arg_string(RADIOTEXT_MSGARG_RADIOTYPE, arg, sizeof arg - 1)
  74. if (!equal(arg, g_required_radiotype))
  75. return PLUGIN_CONTINUE

  76. get_msg_arg_string(RADIOTEXT_MSGARG_CALLERID, arg, sizeof arg - 1)
  77. new caller = str_to_num(arg)
  78. if (!is_user_alive(caller))
  79. return PLUGIN_CONTINUE

  80. new clip, ammo, weapon
  81. weapon = get_user_weapon(caller, clip, ammo)
  82. for (new i; i < sizeof g_grenade_weaponid; ++i) {
  83. if (g_grenade_weaponid[i] == weapon) {
  84. static text[192]
  85. new pos = 0
  86. text[pos++] = g_color_code[COLOR_NORMAL]

  87. get_msg_arg_string(RADIOTEXT_MSGARG_CALLERNAME, arg, sizeof arg - 1)
  88. pos += formatex(text[pos], sizeof text - pos - 1, g_radiotext_template, arg)
  89. copy(text[++pos], sizeof text - pos - 1, g_grenade_description[i])

  90. new desccolor = g_grenade_desccolor[i]
  91. if ((text[--pos] = g_color_code[desccolor]) == COLORCODE_TEAM) {
  92. static teamname[12]
  93. get_user_team(id, teamname, sizeof teamname - 1)

  94. if (!equal(teamname, g_color_teamname[desccolor])) {
  95. msg_teaminfo(id, g_color_teamname[desccolor])
  96. msg_saytext(id, text)
  97. msg_teaminfo(id, teamname)

  98. return PLUGIN_HANDLED
  99. }
  100. }

  101. msg_saytext(id, text)

  102. return PLUGIN_HANDLED
  103. }
  104. }

  105. return PLUGIN_CONTINUE
  106. }

  107. msg_teaminfo(id, teamname[]) {
  108. message_begin(MSG_ONE, g_msgid_teaminfo, _, id)
  109. write_byte(id)
  110. write_string(teamname)
  111. message_end()
  112. }

  113. msg_saytext(id, text[]) {
  114. message_begin(MSG_ONE, g_msgid_saytext, _, id)
  115. write_byte(id)
  116. write_string(text)
  117. message_end()
  118. }
复制代码


上面就是这个插件的源码
我想问的是,可以不可以把警察和土匪的扔雷提示分开?
就是警察有警察的扔雷提示。而土匪有土匪的提示!
可不可以分开?
如ZP的,警察【人类】扔燃烧弹的时候会显示【什么什么燃烧弹】
但是,土匪【僵尸】扔那个个T病毒炸弹也是显示【什么什么燃烧弹】
我就是想把她们分开!可不可以?

使用道具 举报

Rank: 2

帖子
154
精华
0
声望
291 点
金币
44 Mold
被赞许
0 次
注册时间
2010-7-10
发表于 2010-10-11 19:56:03 |显示全部楼层
哇......
完全看不懂啊

使用道具 举报

Rank: 3Rank: 3

帖子
0
精华
0
声望
110 点
金币
40 Mold
被赞许
3 次
注册时间
2009-6-18
发表于 2010-10-11 21:04:24 |显示全部楼层
应该可以
先去走源码,研究研究

使用道具 举报

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

帖子
406
精华
0
声望
9411 点
金币
1421 Mold
被赞许
4 次
注册时间
2009-12-18
发表于 2010-10-12 00:51:53 |显示全部楼层
上面就是这个插件的源码
我想问的是,可以不可以把警察和土匪的扔雷提示分开?
就是警察有警察的扔雷提示 ...
cs8992679 发表于 2010-10-11 17:17

如果用ZP模式…
隊伍判斷建議別用原本的分隊判斷…
因為有時會判斷失準…
ZP隊伍判斷建議用ZP的自訂函數「zp_get_user_zombie(id)」…

嘛…原本想很腦殘的把一行改的超長來結束…
但是…真的太長了…很無奈的寫成好幾行了…
至於被河蟹的內容請自己改回去…
  1. #include <amxmodx>
  2. #include <zombieplague>

  3. #define PLUGIN_NAME "Descriptive 'Fire in the hole!'"
  4. #define PLUGIN_VERSION "0.1"
  5. #define PLUGIN_AUTHOR "VEN"

  6. enum grenade {
  7.         GRENADE_HE,
  8.         GRENADE_FLASH,
  9.         GRENADE_SMOKE
  10. }

  11. // EDITABLE: grenade description
  12. new co*** g_grenade_description[_:grenade][] = {
  13.         " [手榴彈]",
  14.         " [閃光彈]",
  15.         " [煙霧彈]"
  16. }

  17. enum color {
  18.         COLOR_NORMAL,
  19.         COLOR_RED,
  20.         COLOR_BLUE,
  21.         COLOR_GRAY,
  22.         COLOR_GREEN
  23. }

  24. // EDITABLE: grenade description text color
  25. new co*** g_grenade_desccolor[_:grenade] = {
  26.         COLOR_RED,
  27.         COLOR_GRAY,
  28.         COLOR_GREEN
  29. }

  30. new co*** g_grenade_weaponid[_:grenade] = {
  31.         CSW_HEGRENADE,
  32.         CSW_FLASHBANG,
  33.         CSW_SMOKEGRENADE
  34. }

  35. #define COLORCODE_NORMAL 0x01
  36. #define COLORCODE_TEAM 0x03
  37. #define COLORCODE_LOCATION 0x04

  38. new co*** g_color_code[_:color] = {
  39.         COLORCODE_NORMAL,
  40.         COLORCODE_TEAM,
  41.         COLORCODE_TEAM,
  42.         COLORCODE_TEAM,
  43.         COLORCODE_LOCATION
  44. }

  45. new co*** g_color_teamname[_:color][] = {
  46.         "",
  47.         "TERRORIST",
  48.         "CT",
  49.         "SPECTATOR",
  50.         ""
  51. }

  52. #define RADIOTEXT_MSGARG_NUMBER 5

  53. enum radiotext_msgarg {
  54.         RADIOTEXT_MSGARG_PRINTDEST = 1,
  55.         RADIOTEXT_MSGARG_CALLERID,
  56.         RADIOTEXT_MSGARG_TEXTTYPE,
  57.         RADIOTEXT_MSGARG_CALLERNAME,
  58.         RADIOTEXT_MSGARG_RADIOTYPE,
  59. }

  60. new co*** g_required_radiotype[] = "#Fire_in_the_hole"
  61. new co*** g_radiotext_template[] = "%s (RADIO): Fire in the hole!"

  62. new g_msgid_saytext
  63. new g_msgid_teaminfo

  64. public plugin_init() {
  65.         register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)

  66.         register_message(get_user_msgid("TextMsg"), "message_text")

  67.         g_msgid_saytext = get_user_msgid("SayText")
  68.         g_msgid_teaminfo = get_user_msgid("TeamInfo")
  69. }

  70. public message_text(msgid, dest, id) {
  71.         if (get_msg_args() != RADIOTEXT_MSGARG_NUMBER || get_msg_argtype(RADIOTEXT_MSGARG_RADIOTYPE) != ARG_STRING)
  72.                 return PLUGIN_CONTINUE

  73.         static arg[32]
  74.         get_msg_arg_string(RADIOTEXT_MSGARG_RADIOTYPE, arg, sizeof arg - 1)
  75.         if (!equal(arg, g_required_radiotype))
  76.                 return PLUGIN_CONTINUE

  77.         get_msg_arg_string(RADIOTEXT_MSGARG_CALLERID, arg, sizeof arg - 1)
  78.         new caller = str_to_num(arg)
  79.         if (!is_user_alive(caller))
  80.                 return PLUGIN_CONTINUE

  81.         new clip, ammo, weapon
  82.         weapon = get_user_weapon(caller, clip, ammo)
  83.         for (new i; i < sizeof g_grenade_weaponid; ++i) {
  84.                 if (g_grenade_weaponid[i] == weapon) {
  85.                         static text[192]
  86.                         new pos = 0
  87.                         text[pos++] = g_color_code[COLOR_NORMAL]

  88.                         get_msg_arg_string(RADIOTEXT_MSGARG_CALLERNAME, arg, sizeof arg - 1)
  89.                         pos += formatex(text[pos], sizeof text - pos - 1, g_radiotext_template, arg)

  90.                         if (i == 0) copy(text[++pos], sizeof text - pos - 1, zp_get_user_zombie(caller) ? " [感染炸彈]" : get_cvar_num("zp_fire_grenades") ? " [燃燒彈]" : g_grenade_description[i])
  91.                         if (i == 1) copy(text[++pos], sizeof text - pos - 1, get_cvar_num("zp_frost_grenades") ? " [冰凍彈]" : g_grenade_description[i])
  92.                         if (i == 2) copy(text[++pos], sizeof text - pos - 1, get_cvar_num("zp_flare_grenades") ? " [照明彈]" : g_grenade_description[i])

  93.                         new desccolor = g_grenade_desccolor[i]
  94.                         if (i == 0 && zp_get_user_zombie(caller)) desccolor = COLOR_GREEN
  95.                         if (i == 1 && get_cvar_num("zp_frost_grenades")) desccolor = COLOR_BLUE
  96.                         if (i == 2 && get_cvar_num("zp_flare_grenades")) desccolor = COLOR_GRAY

  97.                         if ((text[--pos] = g_color_code[desccolor]) == COLORCODE_TEAM) {
  98.                                 static teamname[12]
  99.                                 get_user_team(id, teamname, sizeof teamname - 1)

  100.                                 if (!equal(teamname, g_color_teamname[desccolor])) {
  101.                                         msg_teaminfo(id, g_color_teamname[desccolor])
  102.                                         msg_saytext(id, text)
  103.                                         msg_teaminfo(id, teamname)

  104.                                         return PLUGIN_HANDLED
  105.                                 }
  106.                         }

  107.                         msg_saytext(id, text)

  108.                         return PLUGIN_HANDLED
  109.                 }
  110.         }

  111.         return PLUGIN_CONTINUE
  112. }

  113. msg_teaminfo(id, teamname[]) {
  114.         message_begin(MSG_ONE, g_msgid_teaminfo, _, id)
  115.         write_byte(id)
  116.         write_string(teamname)
  117.         message_end()
  118. }

  119. msg_saytext(id, text[]) {
  120.         message_begin(MSG_ONE, g_msgid_saytext, _, id)
  121.         write_byte(id)
  122.         write_string(text)
  123.         message_end()
  124. }
复制代码

使用道具 举报

Rank: 3Rank: 3

帖子
159
精华
0
声望
695 点
金币
135 Mold
被赞许
0 次
注册时间
2010-6-24
发表于 2010-10-13 18:08:03 |显示全部楼层
似乎有些字符被和谐了。。。没法改的

使用道具 举报

Rank: 3Rank: 3

帖子
418
精华
0
声望
450 点
金币
45 Mold
被赞许
0 次
注册时间
2010-7-11
发表于 2010-10-15 14:38:29 |显示全部楼层
回复 4# a7811311622


    你好,很谢谢你的帮助。可是我一点也不懂什么和谐什么自訂函數。所以不知道你在讲什么

使用道具 举报

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

帖子
406
精华
0
声望
9411 点
金币
1421 Mold
被赞许
4 次
注册时间
2009-12-18
发表于 2010-10-15 18:15:08 |显示全部楼层
回复  a7811311622


    你好,很谢谢你的帮助。可是我一点也不懂什么和谐什么自訂函數。所以不知道你在 ...
cs8992679 发表于 2010-10-15 14:38

對照LZ原本的原碼後應該能查出被和諧的內容是什麼了…
如果真的查不出來…我再將原碼用附件的方式上傳好了…

使用道具 举报

Rank: 3Rank: 3

帖子
418
精华
0
声望
450 点
金币
45 Mold
被赞许
0 次
注册时间
2010-7-11
发表于 2010-10-16 09:15:53 |显示全部楼层
回复 7# a7811311622


    嗯谢谢,我尽量查查看!

使用道具 举报

Rank: 3Rank: 3

帖子
418
精华
0
声望
450 点
金币
45 Mold
被赞许
0 次
注册时间
2010-7-11
发表于 2010-10-16 16:47:21 |显示全部楼层
回复 7# a7811311622


    好失败啊 查不懂 更看不懂

使用道具 举报

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

帖子
406
精华
0
声望
9411 点
金币
1421 Mold
被赞许
4 次
注册时间
2009-12-18
发表于 2010-10-16 19:46:33 |显示全部楼层
回复  a7811311622


    好失败啊 查不懂 更看不懂
cs8992679 发表于 2010-10-16 16:47

那我用附件上傳好了…
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

回顶部