AdmiralThrawn 发表于 2022-1-5 18:33:47

【已解决】求助:导弹的伤害判定机制

本帖最后由 AdmiralThrawn 于 2022-1-6 10:57 编辑

请问原版护盾如何检测导弹的伤害的?我自己mod护盾用Lazylib的getProjectilesWithinRange和getMissilesWithinRange来检测船附近的projectiles然后用getDamageTarget() == ship来判定是否击中船只。普通的projectile能正常判定和计算伤害,唯独是导弹击中后不管是didDamage(),getDamageTarget(),getDamagedAlready()都是null或false。除非导弹的.proj答案里有explosionSpec,这样似乎在击中时会产生一个spawntype为OTHER的爆炸entity然后被getProjectilesWithinRange检测到并计算伤害。那么没有explosionSpec的普通导弹如annihilator rocket是如造成伤害的或如何判定其伤害?原版护盾又是如何检测伤害的?

lili 发表于 2022-1-5 19:54:23

本帖最后由 lili 于 2022-1-5 19:55 编辑

一位申必高人千里传声道:listener,请

AdmiralThrawn 发表于 2022-1-5 20:51:12

lili 发表于 2022-1-5 19:54
一位申必高人千里传声道:listener,请

如果是用自制的护盾shipsystem能用listener的ApplyDamageResultAPI吗尤其是里面的        getDamageToShields()?因为自制护盾的shield type不能用OMNI或FRONT之类的,所以船基本上没有原版护盾的,getDamageToShields()能用吗?我的护盾只是把船的各种DamageTakenMult()调成0然后把projectile的getDamageAmount()计算后加到Flux上面所以        getDamageToHull()之类的会不会直接也是0?

AdmiralThrawn 发表于 2022-1-6 09:29:34

AdmiralThrawn 发表于 2022-1-5 20:51
如果是用自制的护盾shipsystem能用listener的ApplyDamageResultAPI吗尤其是里面的        getDamageToShields()? ...

哎哟,今早测试过了, apply DamageListener到船上然后开盾后伤害确实是0,而且打起来还卡。

AdmiralThrawn 发表于 2022-1-6 10:56:56

更新:我用DamageTakenModifier来追踪damage搞定了,谢谢
页: [1]
查看完整版本: 【已解决】求助:导弹的伤害判定机制