docs: 记录当前进展与剩下的四个拦路虎
修好高度偏好后机器人确实能朝目标走(实测 20 分钟前进 95 格), 但要真正开垦出第一块地还要跨过: ① 几何约束:规划器按到玩家的曼哈顿距离取最近的合法候选,而机器人出生在王城 —— 它在「养老院」这个 33037 区块(约 180×180 区块)的大邦国正中间。 实测最近候选在 53 区块(≈768 格)外,且 targetCount=1 只返回一个候选, 长途跋涉是邦国几何决定的,绕不开。 ② 服务器踢人,三种原因都实测到过: An internal error occurred in your connection(最常见,1~6 分钟一次)、 You are sending too many packets!、Flying is not enabled on this server, 外加未验证时的「验证超时」。实测出站 57.9 个/秒(pong 30.6、协议补包 23.9、 位置包 1.35)。注意协议补包当初的立论依据已被证伪(真因是高度偏好), 它们是否仍必要、是否就是「发包太多」的原因尚未验证。 ③ 半路会死:fell from a high place / was slain by Zombie。 摔死已处理 —— 服务器配置里 maxDropDown 被改成 64(钳制上限), 而原版超过 3 格每格 1 点、23 格必死,已改回 4(代码默认本来就是 3)。 被僵尸杀还没处理。 ④ 推进速度只有物理速度的 1/5(净位移 0.405 格/秒 vs velocity 0.2~3 格/秒), 差额是被服务端拉回。已补上 hasHorizontalCollision(1.10.0), 该标志确实一直在被漏报(补写计数涨到 1 万+),但提速效果尚未量化验证。
这个提交包含在:
@@ -143,6 +143,40 @@ ls -1d /opt/autostore-bot/backup-* 2>/dev/null | tail -3
|
|||||||
|
|
||||||
## 1. 🟢 「机器人走不动」:**已解决**(根因是自定义高度偏好,见下)
|
## 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 突破:修掉高度偏好后扩地真的跑起来了
|
### ✅ 2026-10-01 突破:修掉高度偏好后扩地真的跑起来了
|
||||||
|
|
||||||
**根因**:`AltitudeGoal` 把高度偏置加在**启发值**上
|
**根因**:`AltitudeGoal` 把高度偏置加在**启发值**上
|
||||||
|
|||||||
在新工单中引用
屏蔽一个用户