设为首页收藏本站新闻投稿

MOD中国同盟社

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 446|回复: 3

[求助] 实体伤害求解 [复制链接]

Rank: 7Rank: 7Rank: 7

帖子
249
精华
0
声望
1627 点
金币
438 Mold
被赞许
7 次
注册时间
2011-1-27

可爱小猫 懒人勋章

发表于 2011-7-26 18:07:19 |显示全部楼层
我用以下语句给实体造成伤害:

        new float:attack=20.0
        fakedamage(iEnt, "knife", attack, DMG_BLAST)
或者
               new float:attack=20.0
               ExecuteHamB(Ham_TakeDamage, vit, 1, id, attack,DMG_CLUB)

虽然能造成伤害,但是用以下语句却不能检测到这个实体受到伤害

        public npc_TraceAttack(iEnt, attacker, Float: damage, Float: direction[3], trace, damageBits)
        {
                 ...................
                  }
如果这样的语句是不行,那有什么语句能检测到这种伤害,或者什么语句能让这个函数检测到
路见不顺     拳打脚踢

使用道具 举报

Rank: 10Rank: 10Rank: 10

帖子
1250
精华
0
声望
3577 点
金币
470 Mold
被赞许
45 次
注册时间
2010-7-13

可爱小猫

发表于 2011-7-27 08:13:23 |显示全部楼层
加害者你写成了1,不管你写的什么只要成功编辑了就变成了worldspawn伤害,所以不会计算在内。
你必须填上攻击者的武器的索引。
用法:
new wpnent = fm_get_wpnentity(id, CSW_KNIFE)
ExecuteHamB(Ham_TakeDamage, victim, wpnent, id, 35.0, DMG_SLASH)
原型:
把这个写到你插件里面最下面就能用了

stock fm_get_wpnentity(id, wpnid)
{
        new weapon[32]
        get_weaponname(wpnid,weapon,31)
        new wEnt;
        while ((wEnt = engfunc(EngFunc_FindEntityByString, any:wEnt, any:"classname", any:weapon)) && pev(wEnt,pev_owner) != id) {}
        if(!pev_valid(wEnt)) return 0;
        return wEnt
}

使用道具 举报

Rank: 7Rank: 7Rank: 7

帖子
249
精华
0
声望
1627 点
金币
438 Mold
被赞许
7 次
注册时间
2011-1-27

可爱小猫 懒人勋章

发表于 2011-7-28 11:30:55 |显示全部楼层
谢谢,我去测试一下
路见不顺     拳打脚踢

使用道具 举报

Rank: 7Rank: 7Rank: 7

帖子
249
精华
0
声望
1627 点
金币
438 Mold
被赞许
7 次
注册时间
2011-1-27

可爱小猫 懒人勋章

发表于 2011-7-31 18:56:35 |显示全部楼层
我测试还是在伤害检测没有效果啊,不过能检测到实体被破坏后的数据,包括受害者,攻击者,但就不是npc_TraceAttack这个里面检测
路见不顺     拳打脚踢

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

回顶部