From 13397651527f83ffe0420471d0f8ef8983e2d711 Mon Sep 17 00:00:00 2001 From: lyizai <3945107889@qq.com> Date: Thu, 1 Oct 2026 17:33:23 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E8=AE=B0=E5=BD=95=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E8=BF=9B=E5=B1=95=E4=B8=8E=E5=89=A9=E4=B8=8B=E7=9A=84=E5=9B=9B?= =?UTF-8?q?=E4=B8=AA=E6=8B=A6=E8=B7=AF=E8=99=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修好高度偏好后机器人确实能朝目标走(实测 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 万+),但提速效果尚未量化验证。 --- TODO.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) 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` 把高度偏置加在**启发值**上