日期:2026-10-07 00:34<br>工程:D:\AI空间\rxjh\旧版本更新_修复后.e(md5 f680f5c44fa1ad8d45839f5a0840e6a0)<br>补丁:_patch\fix_静止优先.py + _patch\fix_静止优先_注释.py<br>回滚:旧版本更新_修复后.bak_静止优先前_20261007_0032.e
改动 +41 / −40 行,只有 防杀测试 一个子程序(2 个 hunk)。
按你的口径:「基本没变(他站着不动)」这条判据要排在最前。
改前最大的问题不是顺序,而是贴脸时根本不采样 —— 原来的外层分支是<br>.如果 (危险距离首 > 300),距离 300 以内直接「已贴脸,直接躲」,那条静止判断压根轮不到执行。<br>所以这次先把外层分支整个拆掉,改成无条件采样(贴脸也采样),再重排判据。
| # | 条件 | 动作 |
|---|---|---|
| ① | 采样期间他离开视野 | 不躲 |
| ② | 他的坐标位移 ≤ 8(站着没动) | 不躲 ← 最高优先,距离再近也不躲 |
| ③ | 他在动,且距离 ≤ 300 | 躲(贴脸) |
| ④ | 他在动,但距离没接近 60 | 不躲 |
| ⑤ | 他在动,且距离缩短 60+ | 躲(正在逼近) |
代码里的顺序断言我在补丁里做了机器校验(静止判据字符位置 < 贴脸判据字符位置 ✔),不靠肉眼。
【趋近判断】正派剃头人 位移只有 3,站着没动,不躲避 ← 静止,一律不躲(近距离也一样)
【趋近判断】正派剃头人 采样期间已经贴到 275,他在动,直接躲避 ← 贴脸 + 在动
【趋近判断】正派剃头人 位移 46,距离 812 → 640,正在逼近,开始躲避
【趋近判断】正派剃头人 位移 21,距离 812 → 780,没有逼近,不躲避
贴脸时也要先等一个采样间隔(350 毫秒)才有动作。 原来是立刻躲。<br>这是「静止优先」的必然代价 —— 不采样就不知道他动没动。
流程变成:
发现名单人物 → 延时 350ms → 读他位移 → 位移 ≤ 8 → 不躲
→ 位移 > 8 → 再看距离,≤ 300 就躲
嫌慢就把 程序_延时 (350) 改小(比如 200),代价是位移判据对「慢速挪动」的区分度下降。
防杀测试 里)| 参数 | 原文 | 当前值 | 说明 |
|---|---|---|---|
| 静止阈值 | .如果真 (危险人物位移 ≤ 8) | 8 | 越小越严格。嫌他小幅晃动被判静止 → 调大 |
| 采样间隔 | 程序_延时 (350) | 350 | 想更快 → 200;想更准 → 500 |
| 采样次数 | .计次循环首 (2, 采样序号) | 2 | 他在 300 内会提前结束(1 次) |
| 贴脸阈值 | .如果真 (危险距离末 ≤ 300) | 300 | 只在「他在动」时才用得上 |
| 逼近阈值 | .如果真 (危险距离末 ≥ 危险距离首 - 60) | 60 | 距离缩短超过 60 才算逼近 |
| 位移阈值 | 等待离开原地 (危险坐标x, 危险坐标y, 400, …) | 400 | 同图躲避时的脱险判据 |
| 单轮超时 / 重试轮数 / 重试延时 | 同上第 4 参 / .计次循环首 (3, …) | 500 / 3 / 0 | 未改动 |
| 项 | 结果 |
|---|---|
| 补丁前置断言 | 旧块定位成功(第 6561~6608 行 / 48 行),并把 .如果 (危险距离首 > 300) 已存在作为前置条件 |
| 判据顺序机器校验 | 静止判据位置 < 贴脸判据位置 ✔ |
| 块配平 防杀测试 | .如果真 15/15、.如果 3/3(由 4 降 3:外层分支已删)、计次循环 3/3、.否则 3 |
| BOM 保留 | True → True |
| 裸 LF | 0 → 0(CRLF 12898 → 12898) |
| GBK 安全 | 通过 |
| t2e 回编译 | 0 错误 0 警告,SUCC |
.etprj 还原 | 425 字节 + BOM(.pre18) |
| L1 代码级保真(466 子程序全量) | 0 差异 |
| 二进制取证 | ALL PASS |
| 改动范围 | 只有 防杀测试 2 个 hunk;无任何子程序头变动 |
二进制取证细节(这是本轮最硬的证据):新日志文案 站着没动,不躲避、他在动,直接躲避 都在 .e 里命中;<br>而旧文案 距离只有、已贴脸,直接躲避 命中数为 0 —— 直接证明那一整个外层分支确实被拆掉了,不是只在文本层改的。
位移只有 X,站着没动,不躲避 —— 人确实站着,程序不躲了 ✅ 这就是你要的效果他在动,直接躲避 里的距离值 —— 如果出现「他贴脸走过来、位移已经很大、却还是被"静止"挡掉」,说明 8 这个阈值偏大,调小到 4程序_延时 (350) 改成 200。