From c89f4f8f0f888a5f77bb5ba7fd52e74d1b17ecbe Mon Sep 17 00:00:00 2001 From: lyizai <3945107889@qq.com> Date: Thu, 1 Oct 2026 00:17:22 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=9B=BA=E5=8C=96=E7=89=A9=E7=90=86?= =?UTF-8?q?=E5=BD=95=E5=88=B6=E5=AE=9E=E6=B5=8B=E7=BB=93=E8=AE=BA=20?= =?UTF-8?q?=E2=80=94=E2=80=94=20=E4=B8=89=E7=A7=8D=E3=80=8C=E8=B5=B0?= =?UTF-8?q?=E4=B8=8D=E5=8A=A8=E3=80=8D=E5=BF=85=E9=A1=BB=E5=88=86=E5=BC=80?= =?UTF-8?q?=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用 1.9.0 新增的物理 tick 录制逐 tick 抓「输入 → 输出」,把三种完全不同的现象区分开了: - 登录服大厅:物理每 tick 正常走 0.116 格,服务端每 2 tick 推回一次 → 真回弹,但那是未完成验证的惩罚,不是 bug; - 真实世界建筑内:物理加速到 0.21 格/tick(≈4.3 格/秒,正常步行速度), 入站位置包 0~1 个(服务端没插手),collidedHorizontally=true、blockedTicks 42~59/60 → 纯粹是撞墙(地形),不是协议问题; - 真实世界卡在低处(y=72,王城平台在 y≈146):inputTicks=0, 两种执行器都是 timeout → 寻路器 60 秒规划超时,从未产生可执行路径。 frozenTicks 在所有场景都是 0,说明「输入没进物理」从未出现; searchRadius 从 -1 改到 128 对结果没有影响。物理引擎、协议补包、Grim 合规层均正常。 当前扩地的真正拦路虎(按优先级): 1. 耐久保护(主手剩余耐久 15% ≤ 15%)一启动就回城停机,需人工修装备; 2. 机器人掉到低处后规划不出路径,需先带回高处; 3. /u return 会造成摔落伤害(实测 health 3.79 → 1.24,更早一次直接摔死)。 --- TODO.md | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/TODO.md b/TODO.md index f4a032a..1c63395 100644 --- a/TODO.md +++ b/TODO.md @@ -143,7 +143,32 @@ ls -1d /opt/autostore-bot/backup-* 2>/dev/null | tail -3 ## 1. 🔴 「机器人走不动」:**已实测定位到客户端物理层**(不是服务端回弹,见本节开头的实测补充) -### ⚠️ 线上实测补充(2026-09-29,**先读这段:它推翻了下面原有的框架**) +### 🔴 2026-10-01 实测:三种「走不动」要分开看(**先读这段**) + +用新增的**物理 tick 录制**(`POST/GET /api/bots/:id/physics`,见 CHANGELOG [1.9.0]) +逐 tick 抓了「输入 → 输出」,把三种完全不同的现象区分开了: + +| 场景 | 物理有没有动 | 服务端在干什么 | 结论 | +| --- | --- | --- | --- | +| **登录服大厅** | ✅ 每 tick 走 0.116 格(正常速度) | 每 2 tick 推回一次(`被服务器传送另有` 240~260 次/30 秒) | **真回弹**,但这是未完成验证的惩罚,不是 bug | +| **真实世界、建筑内** | ✅ 加速到 0.21 格/tick(≈4.3 格/秒,正常步行) | 入站位置包 **0~1 个**,没插手 | **撞墙**:`collidedHorizontally=true`,`blockedTicks` 42~59/60 | +| **真实世界、卡在低处** | ❌ **一次都没动** | — | **寻路器 60 秒规划超时**,`inputTicks=0`,从未产生可执行路径 | + +**关键结论:物理引擎、协议补包、Grim 合规层全都正常**(能加速到正常步行速度), +`frozenTicks` 在所有场景都是 0 —— 「输入没进物理」这种情况从未出现。 +`searchRadius` 从 -1 改成 128 对结果**没有影响**,所以也不是搜索空间无界导致的。 + +**当前扩地的真正拦路虎(按优先级):** + +1. **耐久保护**:`lastReturn.reason = "装备耐久过低(主手 剩余耐久 15% ≤ 15%)"` + → 一启动扩地就 `/u return` 回城并停机,`inputTicks=0`(压根没尝试移动)。 + **需要人工修装备**。 +2. **机器人掉到了低处**(y=72,王城平台在 y≈146):从该位置规划不出路径, + `pathfinder` 与 `manual` 两种执行器都是 `timeout`。需要先把它带回高处。 +3. **⚠️ `/u return` 会造成摔落伤害**:实测 `health 3.79 → 1.24`, + 更早一次直接 `fell from a high place` 摔死。回城前应确认落点高度。 + +### ⚠️ 线上实测补充(2026-09-29,**它推翻了下面原有的框架**) 用新增的**出站包抓取**(`POST/GET /api/bots/:id/capture`,见 CHANGELOG [1.8.0])做了对照, 结论是:**「走不动」不是服务端回弹造成的,是客户端物理引擎没有把按键积分成位移。**