搜索
查看: 2452|回复: 4

如何去除“玩家死亡自爆效果插件”中的爆炸音效?

[复制链接]
发表于 2007-8-7 15:27:04 | 显示全部楼层 |阅读模式 来自 中国–甘肃–兰州
如果服务器开启了玩家死亡自爆效果插件(jetpack_explode.amxx),那么玩家死后就会爆炸并且能听到爆炸声的音效。

但我看了插件的源代码,里面并没有出现相关的音频,但玩家死后却可以听到爆炸的声音,这是为什么呢?另外,怎样才能把插件中爆炸声去除呢?
  1. #include <amxmodx>
  2. new gexplo
  3. new dexplo
  4. public plugin_init(){
  5.   register_plugin("Jetpack Explode","2.8","EJL & X-man")
  6.   register_cvar("jetpack_explode","1")
  7.   register_event("DeathMsg", "DeathEvent", "a")
  8. }
  9. public plugin_precache(){
  10.   dexplo = precache_model("sprites/dexplo.spr")
  11.   gexplo = precache_model("sprites/gexplo.spr")
  12.   return PLUGIN_CONTINUE
  13. }
  14. public DeathEvent(){  
  15.   if ( !get_cvar_num("jetpack_explode") )
  16.   return PLUGIN_CONTINUE
  17.   new victim = read_data(2)
  18.   explode(victim,gexplo,40,120)
  19.   explode(victim,dexplo,35,0)
  20.   return PLUGIN_CONTINUE
  21. }
  22. explode(id,sprite,scale,offset){
  23.   new vec1[3]
  24.   get_user_origin(id,vec1)
  25.   //Explosion2
  26.   message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
  27.   write_byte( 12 )
  28.   write_coord(vec1[0])
  29.   write_coord(vec1[1])
  30.   write_coord(vec1[2])
  31.   write_byte( 188 ) // byte (scale in 0.1's) 188
  32.   write_byte( 10 ) // byte (framerate)
  33.   message_end()
  34.   //TE_Explosion
  35.   message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
  36.   write_byte( 3 )
  37.   write_coord(vec1[0])
  38.   write_coord(vec1[1])
  39.   write_coord(vec1[2]+offset)
  40.   write_short( sprite )
  41.   write_byte( scale ) // byte (scale in 0.1's) 188
  42.   write_byte( 10 ) // byte (framerate)
  43.   write_byte( 0 ) // byte flags
  44.   message_end()
  45. }
复制代码
发表于 2007-8-7 15:46:14 | 显示全部楼层 来自 中国–广东–广州–白云区

回复: 如何去除“玩家死亡自爆效果插件”中的爆炸音效?

:confused: 这段代码确实很怪,完全没有音频文件代码,不知道哪来的爆炸声音哦!
回复

使用道具 举报

 楼主| 发表于 2007-8-10 15:03:48 | 显示全部楼层 来自 中国–甘肃–兰州

回复: 如何去除“玩家死亡自爆效果插件”中的爆炸音效?

好像gexplo = grenade explosion,爆炸后读的是手雷爆炸的音效,如何去掉音效,真是无从下手啊......:embarrass

要去掉音效,可以把cstrike/sound/weapons里的explode3.wav,explode4.wav和explode5.wav等音频删掉,这样爆炸后就听不到声音了.但这样一来,手雷爆炸的音效也没了,顾此失彼,不可取啊...

还是请高手们再想想办法吧.
回复

使用道具 举报

发表于 2007-8-10 18:20:00 | 显示全部楼层 来自 中国–广东–广州–天河区

回复: 如何去除“玩家死亡自爆效果插件”中的爆炸音效?

Post by Osker Lee
好像gexplo = grenade explosion,爆炸后读的是手雷爆炸的音效,如何去掉音效,真是无从下手啊......:embarrass

要去掉音效,可以把cstrike/sound/weapons里的explode3.wav,explode4.wav和explode5.wav等音频删掉,这样爆炸后就听不到声音了.但这样一来,手雷爆炸的音效也没了,顾此失彼,不可取啊...

还是请高手们再想想办法吧.

奇怪的是代码内没有引用声音!:embarrass
回复

使用道具 举报

 楼主| 发表于 2007-8-11 19:05:28 | 显示全部楼层 来自 中国–甘肃–兰州

回复: 如何去除“玩家死亡自爆效果插件”中的爆炸音效?

呵呵,经过不懈的努力,问题终于解决了!:byebye:

这次重新修改了源代码,作了以下改动:

1. 由于原来的代码里存在dexplo.spr和gexplo.spr两种火花,因此玩家死亡时产生的火焰实际上是这两种火花的火焰叠加效果.其实想要产生火焰的效果只需用其中的一种火花就行了,因此我去掉dexplo.spr保留gexplo.spr,因为我个人认为gexplo.spr产生的火焰效果更好看!

2. 去掉了代码产生的爆炸音效.为了解决这个问题,我整整花费了两天的时间,结果发现解决方法简单得出人意料!唉,菜鸟就是菜鸟啊,走了不少的弯路......:burn:

要去掉爆炸音效,将这段代码的红色部分:
  
write_byte( scale ) // byte (scale in 0.1's) 188
write_byte( 10 ) // byte (framerate)
write_byte( 0 ) // byte flags

改成"write_byte( 4 ) // byte flags"就行了!既把"0"改成"4"就OK了!(呵呵,至于为什么要这样改呢就不要问我了,因为我也不知道,反正能解决问题就行了......:byebye: )

本帖子中包含更多资源

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

×
回复

使用道具 举报

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

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