教程 利用recaf实现无模组修复末地环

下载未混淆版mc,25w46a之后的都可以,下载recaf,由于是直接修改字节码无需引入依赖,修改方法如图一所示


原理:

sectionX 和 sectionZ 是 int 类型。当执行 sectionX * sectionX 时,如果 sectionX 的绝对值超过 46340,结果就会超过 int 的最大值(2,147,483,647),从而发生整数溢出,变成一个负数。Mth.sqrt 接收到一个负数参数(因为溢出)会返回 NaN(Not a Number),导致后续的逻辑全部崩坏。

新代码的流程是:
将乘法运算提升到双精度浮点数(double),
外加使用安全的Math.hypot(x, y) 函数计算 \sqrt{x^2 + y^2} 的值。它内部处理了所有中间溢出或下溢出的情况,非常稳健。


IMG_0008.webp
修复前:
IMG_0010.webp
修复后:
IMG_0009.webp
 
内容版权许可
CC BY-SA 署名-相同方式共享

在线会员

  • luo_xue
  • mrchen
  • 卡比兽好饿
  • 代桑official
  • MikuAUV
  • 南天
  • 涵筱
  • wldxxs
  • 七六
  • 唯喵
  • TG_Yu_Luo
  • 神威难藏猫泪
  • MOYAN003
  • 三克油
  • 芜湖胡子
  • AnBirthd
  • 烨楠
  • kevin2025
  • CHL_chun
  • yatokong
...和 8 更多。
后退
顶部 底部