搜索
查看: 5754|回复: 7

如何获取手雷,闪光弹,烟雾弹爆炸时的位置坐标

[复制链接]
tiantian1632472 该用户已被删除
发表于 2008-8-12 15:20:22 | 显示全部楼层 |阅读模式 来自 中国–辽宁–沈阳
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2008-8-12 16:05:04 | 显示全部楼层 来自 中国–广东–深圳–福田区

回复: 如何获取手雷,闪光弹,烟雾弹爆炸时的位置坐标

最好参照僵尸插件!
它有修改闪光弹和手雷,还有烟雾弹的效果...
回复

使用道具 举报

tiantian1632472 该用户已被删除
 楼主| 发表于 2008-8-13 10:12:35 | 显示全部楼层 来自 中国–辽宁–沈阳
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

tiantian1632472 该用户已被删除
 楼主| 发表于 2008-8-16 01:21:02 | 显示全部楼层 来自 中国–辽宁–沈阳
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2008-8-17 19:08:39 | 显示全部楼层 来自 中国–北京–北京–海淀区

回复: 如何获取手雷,闪光弹,烟雾弹爆炸时的位置坐标

只会传统方式
  1. void C_EmitSound(edict_t *e, int channel, const char *sample, float volume, float attenuation, int fFlags, int pitch)
  2. {
  3. if(FNullEnt(e) || ENTINDEX(e) <= gpGlobals->maxClients)
  4.   RETURN_META(MRES_IGNORED);
  5. if((g_grenade & NADE_FB) && sample[0] == 'w' && sample[8] == 'f' && sample[9] == 'l') //flashbang exploded
  6. {
复制代码
hook FM_EmitSound, 然后判断是否是相关雷爆炸时的声音文件
然后e->v.origin就行了
fakemeta用pev(e, pev_origin, origin)
回复

使用道具 举报

发表于 2011-10-7 20:18:56 | 显示全部楼层 来自 中国–安徽–淮南–寿县
最好参照僵尸插件!
它有修改闪光弹和手雷,还有烟雾弹的效果...
回复

使用道具 举报

发表于 2011-12-15 20:42:50 | 显示全部楼层 来自 中国–河南–郑州
不懂不懂、、
回复

使用道具 举报

发表于 2012-3-9 00:09:59 | 显示全部楼层 来自 中国–江西–南昌
//以捕捉闪光爆炸时位置为例

#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大大已经说得很清楚了,我用代码说明一下:
回复

使用道具 举报

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

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