代码之家  ›  专栏  ›  技术社区  ›  ArkadiyHimself

我添加的《我的世界》暴徒效果无法正常工作[锻造1.19.2]

  •  0
  • ArkadiyHimself  · 技术社区  · 2 年前

    我注册了一个名为“出血”的新效果,并创建了一个扩展MobEffect的文件“出血.java”,在其中我覆盖.applyEffectTick()和.isDurationEffectTick

    此外,在该文件中使用断点的调试也非常奇怪:例如,如果我在实体上的.applyEffectTick()内部使用.hurt(),并将断点放在使用.hur()方法的行上,调试就可以正常工作,但如果我不在任何地方使用此方法,而是将断点放置在.applyEffects Tick(

    “出血”应该做什么:如果玩家在蹲下时静止或移动,效果每4秒造成1点伤害;如果玩家在不蹲下的情况下移动,效果会计算玩家的水平移动速度,并根据该移动速度造成更多伤害。

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

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

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

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

    调试表明速度计算正确,但程序的行为就像速度总是0一样,除非玩家在冲刺和跳跃

    0 回复  |  直到 2 年前