教程 利用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 署名-相同方式共享

在线会员

  • Carxiestra
  • K3
  • jja'k'k'l'l'j'l
  • 唯喵
  • qwse
  • kevin2025
  • 江川神璇
  • 七六
  • BrAeRd
  • wx321awa
  • 涵筱
  • 诺诺noo
  • justuszjj
  • 浪花
  • 阿念Lose
  • Allen13n
  • 129ZK
  • 思左
  • 卖饼翁
  • 没烦恼
...和 5 更多。
后退
顶部 底部