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,更早一次直接摔死)。
这个提交包含在:
@@ -143,7 +143,32 @@ ls -1d /opt/autostore-bot/backup-* 2>/dev/null | tail -3
|
|||||||
|
|
||||||
## 1. 🔴 「机器人走不动」:**已实测定位到客户端物理层**(不是服务端回弹,见本节开头的实测补充)
|
## 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])做了对照,
|
用新增的**出站包抓取**(`POST/GET /api/bots/:id/capture`,见 CHANGELOG [1.8.0])做了对照,
|
||||||
结论是:**「走不动」不是服务端回弹造成的,是客户端物理引擎没有把按键积分成位移。**
|
结论是:**「走不动」不是服务端回弹造成的,是客户端物理引擎没有把按键积分成位移。**
|
||||||
|
|||||||
在新工单中引用
屏蔽一个用户