找回密码
 初始化身份识别芯片
查看: 2082|回复: 4

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

[复制链接]

战列舰长

发表于 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是如造成伤害的或如何判定其伤害?原版护盾又是如何检测伤害的?

海鲜水手

战列巨擘

论坛元老见习机师学院教员

发表于 2022-1-5 19:54:23 | 显示全部楼层
本帖最后由 lili 于 2022-1-5 19:55 编辑

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

点评

如果是用自制的护盾shipsystem能用listener的ApplyDamageResultAPI吗尤其是里面的 getDamageToShields()?因为自制护盾的shield type不能用OMNI或FRONT之类的,所以船基本上没有原版护盾的,getDamageToShields()能用  详情 回复 发表于 2022-1-5 20:51

战列舰长

 楼主| 发表于 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?

点评

哎哟,今早测试过了, apply DamageListener到船上然后开盾后伤害确实是0,而且打起来还卡。  详情 回复 发表于 2022-1-6 09:29

战列舰长

 楼主| 发表于 2022-1-6 09:29:34 | 显示全部楼层
AdmiralThrawn 发表于 2022-1-5 20:51
如果是用自制的护盾shipsystem能用listener的ApplyDamageResultAPI吗尤其是里面的        getDamageToShields()? ...

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

战列舰长

 楼主| 发表于 2022-1-6 10:56:56 | 显示全部楼层
更新:我用DamageTakenModifier来追踪damage搞定了,谢谢

本版积分规则

Archiver|手机版|小黑屋|远行星号中文论坛

GMT+8, 2024-12-25 13:13

Powered by Discuz! X3.5

© 2001-2077 Tencent Cloud | Durian Software Studio

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