diff --git a/TODO.md b/TODO.md index 8e0e28b..54f66af 100644 --- a/TODO.md +++ b/TODO.md @@ -143,6 +143,40 @@ ls -1d /opt/autostore-bot/backup-* 2>/dev/null | tail -3 ## 1. 🟢 「机器人走不动」:**已解决**(根因是自定义高度偏好,见下) +### 🚧 2026-10-01 当前进展与剩下的拦路虎 + +修复高度偏好后,机器人确实能朝目标走了(实测 20 分钟前进 95 格), +但要真正开垦出第一块地,还要跨过这几关: + +**① 几何约束:目标天然就在 ~770 格外。** +规划器 `generateHolePriority` 是**按到玩家的曼哈顿距离排序**取最近的合法候选 +(`expansionPlanner.js:109-130`),而机器人出生在**王城**——它在「养老院」这个 +**33037 区块(约 180×180 区块)** 的大邦国正中间。实测最近的候选在 53 区块 +(≈768 格)外,且 `targetCount: 1` 只返回一个候选。**所以长途跋涉是邦国几何决定的,绕不开。** + +**② 服务器会踢它,三种原因都实测到过:** +- `You were kicked from main: An internal error occurred in your connection.`(最常见,约 1~6 分钟一次) +- `You were kicked from main: You are sending too many packets!` +- `You were kicked from main: Flying is not enabled on this server` +- 未完成验证时还有 `验证超时!您需要在 120 秒内完成身份验证`(120 秒内要人工发码) + +实测出站包速率 **57.9 个/秒**,其中 `pong` 30.6(服务端在疯狂 ping)、 +协议补包(`player_input` + `tick_end`)合计 23.9、位置包 1.35。 +**注意:协议补包当初的立论依据(「走不动」的根因)已经被证伪**(真因是高度偏好), +它们是否仍然必要、是否就是「发包太多」的原因,**尚未验证**——这是下一步要测的。 + +**③ 半路会死**:实测死因是 `fell from a high place` 与 `was slain by Zombie`。 +摔死那次白走了 100 多格。 +- 摔死已处理:服务器配置里 `pathing.maxDropDown` 被改成了 **64**(钳制上限), + 而原版摔落伤害超过 3 格后每格 1 点、**23 格必死**。已改回 4(代码默认本来就是 3)。 +- 被僵尸杀还没处理:`autoAttack` 是开的,但夜里野外仍会被围死。 + +**④ 推进速度只有物理速度的 1/5**:实测机器人几乎每 tick 都按着 `forward+sprint`、 +`velocity` 约 0.2~3 格/秒,但 2 秒粒度的**净位移只有 0.405 格/秒** +(48.6 格 / 120 秒)——差额是被服务端拉回的部分。为此已补上 +`flags.hasHorizontalCollision`(mineflayer 恒写 `undefined`,见 [1.10.0]), +实测该标志确实一直在被漏报(补写计数很快涨到 1 万+),但**提速效果尚未量化验证**。 + ### ✅ 2026-10-01 突破:修掉高度偏好后扩地真的跑起来了 **根因**:`AltitudeGoal` 把高度偏置加在**启发值**上