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])做了对照, 结论是:**「走不动」不是服务端回弹造成的,是客户端物理引擎没有把按键积分成位移。**