我添加的 Minecraft 生物效果无法正常工作 [forge 1.19.2]

问题描述 投票:0回答:0

我注册了一个名为“Hemorrhage”的新效果,并创建了一个文件 Hemorrhage.java,它扩展了 MobEffect,其中我重写了 .applyEffectTick() 和 .isDurationEffectTick() 以使我的效果发挥作用,但该效果无法正常工作

在该文件中使用断点进行调试也非常奇怪:例如,如果我在实体上的 .applyEffectTick() 内使用 .hurt() 并将断点放在使用 .hurt() 方法的行上,则调试可以工作很好,但是如果我不在任何地方使用此方法并将断点放在 .applyEffectTick() 中的其他任何位置,则调试不会执行任何操作,就像我刚刚按下 [runClient]

“出血”的作用:如果玩家站立不动或蹲伏移动,该效果每4秒造成1点伤害;如果玩家在不蹲伏的情况下移动,该效果会计算玩家的水平移动速度,并根据该移动速度造成更多伤害。

这是 haemorriage.java 文件:https://paste.gg/p/anonymous/c5cba090e503413daebb838779e44ed6

实际发生的情况是,只有当玩家冲刺和跳跃时才会造成伤害

这些是计算水平速度的线:

double dx = pLivingEntity.getDeltaMovement().x(); 双 dz = pLivingEntity.getDeltaMovement().z(); 双倍速度 = Math.sqrt(dx * dx + dz * dz);

调试显示速度计算正确,但程序的行为就好像速度始终为 0,除非玩家正在冲刺和跳跃

debugging minecraft forge
© www.soinside.com 2019 - 2024. All rights reserved.