//以捕捉闪光爆炸时位置为例
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
....
//闪光爆炸时所使用的声音文件名
new const FLASHSOUND[2][]=
{
"weapons/flashbang-1.wav",
"weapons/flashbang-2.wav"
}
public plugin_init()
{
....
//HOOK闪光、烟雾...爆炸时产生的声音事件
register_forward(FM_EmitSound, "fw_FM_EmitSound")
....
}
public fw_FM_EmitSound(entity, channel, const sample[], Float:volume, Float:attenuation, fFlags, pitch)
{
// 如果不是闪光声音事件则直接返回
if(!equali(sample, FLASHSOUND[0]) && !equali(sample, FLASHSOUND[1]))
return FMRES_IGNORED
// 如果是闪光爆炸的声音,说明此时有闪光爆炸了,而entity就是爆炸的那个闪光弹
dowith(entity)
.....
}
public dowith(entity)
{
static Float:fVelocity[3]
//取它的坐标
pev(entity, pev_origin, fVelocity)
client_print(0,print_chat, "闪光弹的坐标是:%fx %fy %fz", fVelocity[0],fVelocity[1],fVelocity[2])
........
}
jim_yang大大已经说得很清楚了,我用代码说明一下: |