fix: 修正原点(00)两种原因的判断依据 —— 两种情况下脚下都是基岩
用户指出:死亡被卡到 00 时脚下**也是基岩**,所以原来用 lockBelow === 'bedrock' 区分「登录服」和「死亡卡住」是错的, 会把死亡卡住误判成登录服,于是不做自救、只让用户去输验证码。 改成以「服务器有没有要求输入验证码」为唯一可靠信号: - 要求验证码 -> 判定为登录服,提示人工发验证码(不做无意义的左右移动) - 没要求验证码 -> 判定为死亡卡住,自动左右移动触发服务器重新传送 自救本身在两种情况下都无害(在登录服里按左右键不会有后果), 所以即使判断错了也不会把事情弄得更糟。 另外:验证码提示往往比 spawn 晚到,所以 _handleAuthPrompt 里也补了一次判断 —— 若提示到达时机器人正好在原点附近,会明确点出「被反复传送刷屏」正是登录服造成的, 把这个因果关系讲清楚,避免用户只看到传送刷屏而不知原因。 同步修正 TODO.md 与 CHANGELOG 里那条错误结论,并标注「不要用基岩做判断依据」。 测试 363 -> 368,全部通过。
这个提交包含在:
+5
-2
@@ -18,8 +18,11 @@
|
||||
- 每次回城都明确记日志,说明「会丢失当前位置与玩家手动摆好的位置」
|
||||
- 因未启用而跳过时也会记一条说明,避免用户以为「怎么不回城了」
|
||||
- **区分「被传送到原点」的两种原因**(以前在日志里长得一样,常被误判成机器人坏了):
|
||||
- 脚下是 **bedrock** → 在登录服,必须人工输入验证码,给出明确提示
|
||||
- 脚下不是基岩 → 死亡后被卡住,**自动左右移动触发服务器重新传送**(`_escapeFromOrigin()`)
|
||||
- **服务器要求输入验证码** → 被切到登录服,必须人工发验证码,给出明确提示
|
||||
- **服务器没要求验证码** → 死亡后被卡住,**自动左右移动触发服务器重新传送**(`_escapeFromOrigin()`)
|
||||
- ⚠️ 这两种情况**脚下都是基岩**,所以不能用「脚下是不是基岩」区分;
|
||||
唯一可靠信号是服务器有没有发验证码提示。自救在两种情况下都无害,
|
||||
因此即使判断错了也不会让情况变糟
|
||||
- **移动执行诊断 `moveDiag`**:暴露当前按下的控制键、速度、寻路器内部状态
|
||||
(`isMoving` / `isMining` / `goal` / 剩余路径点数)。这是排查「走不动」的关键手段 ——
|
||||
能一刀切开「寻路器没执行」与「执行了但服务端不认」。
|
||||
|
||||
在新工单中引用
屏蔽一个用户