fix: 自动恢复不再因一次失败的尝试而永久丢失
1.9.3 的 tick() 里先取走 resumeConfig 再调 start(),而 start() 在 「已进入世界但还没完成登录」时会直接返回 false(isReady() 要求 loggedIn)。 本服掉线频繁、重连后常常短暂处于这个状态,于是第一次失败的尝试就把这次恢复 永久丢掉了,任务再也不会自己接上 —— 实测监控里任务长时间停在 「机器人尚未就绪(未连接 / 未进入世界)」就是这个原因。 现在:① 等 bm.isReady() 才尝试;② 只有 start() 真的返回 true 才清掉登记, 失败时保留并在下一 tick 继续试,日志打「自动恢复未成功(…),稍后重试」。 顺带:服务器上保存的 pathing.maxDropDown 被改成了 64(钳制上限), 而原版摔落伤害超过 3 格后每格 1 点、23 格必死 —— 实测机器人正是 「fell from a high place」摔死并重生回王城,白走了 100 多格。 已在服务器配置上改回 4(代码默认本来就是 3)。 测试 477 → 478。
这个提交包含在:
+17
@@ -2,6 +2,23 @@
|
||||
|
||||
本项目遵循 [约定式提交](https://www.conventionalcommits.org/zh-hans/) 与 [语义化版本](https://semver.org/lang/zh-CN/)。
|
||||
|
||||
## [1.10.1] - 2026-10-01
|
||||
|
||||
修掉 1.9.3 自动恢复里的一个会让恢复永久丢失的缺陷。
|
||||
|
||||
### 修复
|
||||
|
||||
- **`resumeConfig` 在尝试恢复之前就被清掉了**:`tick()` 里先取走待恢复的配置再调
|
||||
`start()`,而 `start()` 在「已进入世界但还没完成登录」时会直接返回 false
|
||||
(`isReady()` 要求 `loggedIn`)。本服掉线频繁、重连后常常短暂处于这个状态,
|
||||
于是**一次失败的尝试就把这次恢复永久丢掉了**,任务再也不会自己接上。
|
||||
现在:① 等 `bm.isReady()` 才尝试;② 只有 `start()` 真的返回 true 才清掉登记,
|
||||
失败时保留并在下一 tick 继续试(日志打「自动恢复未成功(…),稍后重试」)。
|
||||
|
||||
### 测试
|
||||
|
||||
新增 1 个用例(477 → 478):未就绪时不启动也不丢登记,就绪后恢复并清登记。
|
||||
|
||||
## [1.10.0] - 2026-10-01
|
||||
|
||||
补上出站包一直漏报的 `hasHorizontalCollision`,针对「机器人一直在走、却只走出
|
||||
|
||||
在新工单中引用
屏蔽一个用户