docs: 固化物理录制实测结论 —— 三种「走不动」必须分开看

用 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,更早一次直接摔死)。
这个提交包含在:
lyizai
2026-10-01 00:17:22 +08:00
父节点 b2b0317af7
当前提交 c89f4f8f0f
+26 -1
查看文件
@@ -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])做了对照,
结论是:**「走不动」不是服务端回弹造成的,是客户端物理引擎没有把按键积分成位移。**