搜索
查看: 9544|回复: 20

求助:玩家死亡后变急救包插件

[复制链接]
发表于 2007-7-27 16:06:04 | 显示全部楼层 |阅读模式 来自 甘肃兰州
最近在Super Hero的官方网上找到了一个很有趣的英雄,他的技能有点像七龙珠里的魔人布欧(sh_majinbuu.amxx),可以把玩家打死后让其变成巧克力(急救包),无论谁去捡起掉在地上的急救包都可以增加50HP!

我个人认为这个插件有三个好处:

1. 因为玩家死亡后尸体变成急救包了,因此可以避免死后被人鞭尸。

2. 同时因为急救包可以补充50HP,通过吃急救包,HP会一直增加,甚至可以突破100HP而无上限!因此大家就不会因为一番搏杀后由于血太少而无力回天了。

3. 死后玩家的尸体也是能做出贡献的,“落叶不是无情物,化作春泥更护花”,呵呵,他补充了别人的HP,物尽其用啊!

所以,我想请高手帮忙把这个英雄插件改成普通的大家都能共享的插件,改后的插件可以增加以下指令:
amx_medkit 1   // 插件开关控制               
amx_medkithealth 50 //  急救包补充的血值(默认是50)


向辛勤的插件幕后编译者致以最崇高的敬意!

本帖子中包含更多资源

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

×
 楼主| 发表于 2007-7-27 18:29:41 | 显示全部楼层 来自 甘肃兰州

回复: 求助:玩家死亡后变急救包插件

方面起见,我发些图片上来。

本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2007-7-31 15:26:54 | 显示全部楼层 来自 甘肃兰州

回复: 求助:玩家死亡后变急救包插件

不知道有人尝试过把超级英雄插件改成普通的共享插件没?其实Super Hero官方网的超级英雄大
概有200多个,并且各个英雄插件之间是相互独立的,其中某些单个插件就我个人认为是很优秀的。

唉,问题难就难在想要把它们转化成普通插件可不是一件容易的事情啊!尤其是对于一个菜鸟来说......:burn:
回复

使用道具 举报

 楼主| 发表于 2007-8-2 15:20:50 | 显示全部楼层 来自 甘肃兰州

回复: 求助:玩家死亡后变急救包插件

我自己试着把插件的源代码改了一下,但无法成功地在Amxmodx1.76d下编译出来。我知道里面肯定还有很多地方没有修改好,麻烦大家帮帮忙了......:burn:
  1. */
  2. #include <amxmodx>
  3. #include <cstrike>
  4. #include <csx>
  5.   
  6. // GLOBAL VARIABLES
  7. #define Smoke
  8.   
  9. //----------------------------------------------------------------------------------------------
  10.   
  11. public plugin_init()
  12. {
  13. // Plugin Info
  14. register_plugin("AMX Medkit","1.0","duper/Rockell")
  15. // DO NOT EDIT THIS FILE TO CHANGE CVARS, USE THE SHCONFIG.CFG
  16. [color=red]register_cvar("amx_medkit", "1" )
  17. register_cvar("amx_medkithealth", "50")
  18. [/color]
  19. // REGISTER EVENTS THIS HERO WILL RESPOND TO! (AND SERVER COMMANDS)
  20. // INIT
  21. register_event("ResetHUD", "newRound","b")
  22. register_event("DeathMsg","deathevent","a")
  23. }
  24. //----------------------------------------------------------------------------------------------
  25.   
  26. public newRound()
  27. {
  28.         new chocolate = find_ent_by_class(-1, "chocolate")
  29. while(chocolate) {
  30. remove_entity(chocolate)
  31. chocolate = find_ent_by_class(chocolate, "chocolate")
  32.         }
  33. }
  34. //----------------------------------------------------------------------------------------------
  35. public deathevent()
  36. {
  37. new killer = read_data(1)
  38. new victim = read_data(2)
  39. if ( killer != victim )
  40.         {
  41. if ( gHasBuuPower[killer] && is_user_alive(killer) )
  42. {
  43. createChocolate(victim)
  44. new aimvec[3]
  45. get_user_origin(victim, aimvec)
  46. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  47. write_byte(23)
  48. write_coord(aimvec[0])
  49. write_coord(aimvec[1])
  50. write_coord(aimvec[2])
  51. write_short(Smoke)
  52. write_byte(001)
  53. write_byte(65)
  54. write_byte(200)
  55. message_end()
  56. aimvec[2] -= 100
  57. set_user_origin(victim, aimvec)
  58. }
  59. }
  60. return PLUGIN_HANDLED
  61. }
  62. //----------------------------------------------------------------------------------------------
  63. public createChocolate(victim)
  64. {
  65. new Float:vAim[3], Float:vOrigin[3]
  66. entity_get_vector(victim, EV_VEC_origin, vOrigin)
  67. VelocityByAim(victim, random_num(2, 4), vAim)
  68. vOrigin[0] += vAim[0]
  69. vOrigin[1] += vAim[1]
  70. vOrigin[2] += 30.0
  71. new chocolate = create_entity("info_target")
  72. entity_set_string(chocolate, EV_SZ_classname, "chocolate")
  73. entity_set_model(chocolate, "models/w_medkit.mdl")
  74. entity_set_size(chocolate, Float:{-2.5, -2.5, -1.5}, Float:{2.5, 2.5, 1.5})
  75. entity_set_int(chocolate, EV_INT_solid, 2)
  76. entity_set_int(chocolate, EV_INT_movetype, 6)
  77. entity_set_vector(chocolate, EV_VEC_origin, vOrigin)
  78. }
  79. //----------------------------------------------------------------------------------------------
  80. public plugin_precache() {
  81. precache_model("models/w_medkit.mdl")
  82. Smoke = precache_model("sprites/wall_puff4.spr")
  83. }
  84. //----------------------------------------------------------------------------------------------
  85. public pfn_touch(ptr, ptd)
  86. {
  87. if(!is_valid_ent(ptd) || !is_valid_ent(ptr))
  88.   return PLUGIN_CONTINUE
  89.    
  90. if(!is_user_connected(ptd) || !is_user_alive(ptd))
  91.   return PLUGIN_CONTINUE
  92.   
  93. if( !gHasBuuPower[ptd] )
  94.   return PLUGIN_CONTINUE
  95. new classname[32]
  96. entity_get_string(ptr, EV_SZ_classname, classname, 31)
  97. if(equal(classname, "chocolate"))
  98. {
  99. new gOrigHealth = get_user_health(ptd)
  100. new health = gOrigHealth + get_cvar_num("buu_chocolatehealth")
  101. set_user_health(ptd, health)
  102. remove_entity(ptr)
  103. }
  104. return PLUGIN_CONTINUE
  105. }
复制代码
回复

使用道具 举报

 楼主| 发表于 2007-8-4 19:33:41 | 显示全部楼层 来自 甘肃兰州

回复: 求助:玩家死亡后变急救包插件

呵呵,整整花了我两个多个小时,终于改好了!(唉,真是求人不如求己啊......):burn:

这个插件是在Amxmodx1.76d下编译成功的,修改后的源代码如有什么问题,欢迎高手不吝赐教和斧正!

本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2007-8-5 20:56:38 | 显示全部楼层 来自 甘肃兰州

回复: 求助:玩家死亡后变急救包插件

今天测试了一下插件,还真发现了问题:就是当玩家被人打死后,第一人称的主视觉画面会变得支离破碎,同时还会出现别的玩家在空中走动的错误画面,并且这种情况会持续几秒钟。如果玩家以第三方的视觉观察别的玩家时,当别的玩家阵亡时主视觉的画面也会出现类似的情况。

因此今天对插件又做了修改,即让玩家死后的尸体不再消失,同时死亡的瞬间会掉出一个急救包,别的玩家捡了依然可以增加HP,这样一来就可以解决上面的BUG了!这次修改也解决了尽管玩家在控制台输入了“amx_medkit 0”这个关闭命令,但玩家死亡时依然会掉出急救包的BUG!

另外,当玩家捡起急救包时,增加了相应的音效提示。

当然,要是大家还有什么更好的建议,也不妨自己去作修改。

本帖子中包含更多资源

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

×
回复

使用道具 举报

发表于 2007-8-5 22:51:29 | 显示全部楼层 来自 广东广州

回复: 求助:玩家死亡后变急救包插件

Post by Osker Lee
今天测试了一下插件,还真发现了问题:就是当玩家被人打死后,第一人称的主视觉画面会变得支离破碎,同时还会出现别的玩家在空中走动的错误画面,并且这种情况会持续几秒钟。如果玩家以第三方的视觉观察别的玩家时,当别的玩家阵亡时主视觉的画面也会出现类似的情况。

因此今天对插件又做了修改,即让玩家死后的尸体不再消失,同时死亡的瞬间会掉出一个急救包,别的玩家捡了依然可以增加HP,这样一来就可以解决上面的BUG了!这次修改也解决了尽管玩家在控制台输入了“amx_medkit 0”这个关闭命令,但玩家死亡时依然会掉出急救包的BUG!

另外,当玩家捡起急救包时,增加了相应的音效提示。

当然,要是大家还有...

尸体不消失的话会让服务器资源占用很大,客户端FPS值会爆减
回复

使用道具 举报

 楼主| 发表于 2007-8-6 13:59:30 | 显示全部楼层 来自 甘肃兰州

回复: 求助:玩家死亡后变急救包插件

呵呵,对插件又作了些许调整,附带了amxmod.inc文件,不然是无法编译的!:byebye:

本帖子中包含更多资源

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

×
回复

使用道具 举报

发表于 2007-8-6 14:20:32 | 显示全部楼层 来自 浙江嘉兴

回复: 求助:玩家死亡后变急救包插件

辛苦了!!!!!
努力~……
回复

使用道具 举报

发表于 2007-8-6 15:50:55 | 显示全部楼层 来自 福建漳州

回复: 求助:玩家死亡后变急救包插件

支持
辛苦了
..............
回复

使用道具 举报

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

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