Osker Lee 发表于 2007-8-7 15:27:04

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

如果服务器开启了玩家死亡自爆效果插件(jetpack_explode.amxx),那么玩家死后就会爆炸并且能听到爆炸声的音效。

但我看了插件的源代码,里面并没有出现相关的音频,但玩家死后却可以听到爆炸的声音,这是为什么呢?另外,怎样才能把插件中爆炸声去除呢?


#include <amxmodx>
new gexplo
new dexplo
public plugin_init(){
register_plugin("Jetpack Explode","2.8","EJL & X-man")
register_cvar("jetpack_explode","1")
register_event("DeathMsg", "DeathEvent", "a")
}
public plugin_precache(){
dexplo = precache_model("sprites/dexplo.spr")
gexplo = precache_model("sprites/gexplo.spr")
return PLUGIN_CONTINUE
}
public DeathEvent(){
if ( !get_cvar_num("jetpack_explode") )
return PLUGIN_CONTINUE
new victim = read_data(2)
explode(victim,gexplo,40,120)
explode(victim,dexplo,35,0)
return PLUGIN_CONTINUE
}
explode(id,sprite,scale,offset){
new vec1
get_user_origin(id,vec1)
//Explosion2
message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
write_byte( 12 )
write_coord(vec1)
write_coord(vec1)
write_coord(vec1)
write_byte( 188 ) // byte (scale in 0.1's) 188
write_byte( 10 ) // byte (framerate)
message_end()
//TE_Explosion
message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
write_byte( 3 )
write_coord(vec1)
write_coord(vec1)
write_coord(vec1+offset)
write_short( sprite )
write_byte( scale ) // byte (scale in 0.1's) 188
write_byte( 10 ) // byte (framerate)
write_byte( 0 ) // byte flags
message_end()
}

米高佐敦 发表于 2007-8-7 15:46:14

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

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

Osker Lee 发表于 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

Osker Lee 发表于 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: )
页: [1]
查看完整版本: 如何去除“玩家死亡自爆效果插件”中的爆炸音效?