时间:2026-10-07 00:0x | 只动 防杀测试 一个子程序 | 2 处改动、0 行删除
「可以判断躲避是否在移动再躲避吗?判断距离如果越来越近就躲避,越来越远就不躲避」
原来的逻辑是见到仇人名单里的名字就立刻回城。问题是:挂机那张图里常常有名单人物只是路过、<br>或者在别处打自己的怪,距离根本没缩短,却照样把你打断回城 —— 挂机效率被拖垮。
代码里本来就取了仇人的坐标,只是取完就扔、从没用过:
6527 行:怪物坐标x = 到整数 (内存_读小数型 (全局_进程句柄, 怪物位置 + 十六到十 (“1F84”)))
6528 行:怪物坐标y = 到整数 (内存_读小数型 (全局_进程句柄, 怪物位置 + 十六到十 (“1F8C”)))
配上自己这边的 刷新坐标 () → 当前坐标x / 当前坐标y,用现成的 计算两坐标距离 一算就是双方距离。<br>本次只是把这两个读出来没用的值真正用起来。
发现名单人物 → 先采样一次距离 → 隔 350ms 重读他的坐标再采样 → 按趋势决定躲不躲
(共采样 3 次,合计约 0.7 秒)
| 情况 | 判定 | 动作 |
|---|---|---|
| 距离 ≤ 300 | 已经贴脸 | 立即躲避(近距离安全底线) |
| 末次比首次近 60 以上 | 正在朝你来 | 躲避 |
| 距离基本没变(他站着不动) | 没有威胁 | 不躲,继续扫后面的名单人物 |
| 距离变远 | 他走了 | 不躲 |
| 他离开视野(对象失效) | 人已经不在 | 不躲 |
「距离没变也不躲」和「300 以内无条件躲」是你在本轮确认的口径。
采样期间挂机不停 —— 挂机跑在别的线程,这里的延时不占游戏线程。
| # | 位置 | 内容 |
|---|---|---|
| 1 | 防杀测试 局部变量区(6508 行后) | 新增 4 个变量:危险人物地址 / 危险距离首 / 危险距离末 / 采样序号 |
| 2 | 发现傻逼人物 日志之后(6539 行后) | 插入趋近判断块(39 行) |
原逻辑一行没删:正邪判断、躲避地图、回城符/飞图、等待离开原地、3 轮重试、延迟 10/30 分钟,全部保持原样。<br>趋近判断只是插在「发现仇人」和「开始躲避」之间的一道闸门 —— 判定「不躲」走 到循环尾 (),<br>继续扫后面的人;判定「躲」则原样往下走。
| 参数 | 当前值 | 改哪里 |
|---|---|---|
| 贴脸底线 | 300 | .如果 (危险距离首 > 300) 和 .如果真 (危险距离末 ≤ 300)(两处要一起改) |
| 逼近阈值(多近才算「在逼近」) | 60 | .如果真 (危险距离末 ≥ 危险距离首 - 60) |
| 采样次数 / 间隔 | 2 次 × 350ms | .计次循环首 (2, 采样序号) 与 程序_延时 (350) |
350 改 200,或把 .计次循环首 (2, ...) 改 1300 调小(比如 200),把 60 调大(比如 100)300 调大(比如 500)【趋近判断】正派剃头人 距离 812 → 640,正在逼近,开始躲避
【躲避地图】本次躲避目标:泫渤派(地图ID 101),回城符:回城符(泫勃派)
...
【趋近判断】正派剃头人 距离 730 → 748,没有逼近,不躲避
(然后继续挂机,不再回城)
【趋近判断】正派剃头人 已离开视野,不躲避
【趋近判断】正派剃头人 距离只有 215,已贴脸,直接躲避
「距离」是双方相对距离,不区分是谁在动。 所以:
多坐标寻路 线程带着你跑),如果你朝他跑过去,距离也会缩短 →会被判成「他在逼近」而躲避。这种场景躲一下没有坏处(本来就在跑图),但你要知道是这个原因。
判定「他离开视野」用的是对象地址 +8 = 0x31(人物)校验 ——<br>人一走、对象被回收,就立刻判「不躲」,不会拿失效地址的坐标瞎算。
| 项 | 结果 |
|---|---|
| 补丁断言(锚点唯一性 / 相邻性 / 1F84 读法计数) | PASS |
块结构配平(.如果真 14/14、.如果 4/4、.计次循环 3/3、.否则 4) | PASS |
| BOM 保留 | True → True |
| 裸 LF = 0(全 CRLF) | PASS |
| GBK 可编码(无 emoji / 超集字符) | PASS |
| t2e 回编译 | 0 错误 0 警告,SUCC |
.etprj 还原 | 425 字节、BOM 回来了 |
| L1 代码级保真(466 个子程序全量比对) | 0 差异 |
二进制取证(新代码已进 .e) | ALL PASS |
diff 确认改动只落在 2 个 hunk,没有任何 - 行。
D:\AI空间\rxjh\旧版本更新_修复后.bak_防杀趋近判断前_20261007_0006.e
直接覆盖回 旧版本更新_修复后.e 即可。<br>(改动前的文本本也留底在 _patch\防杀趋近判断前_20261007_0006\)
请在易语言里 F7 编译确认「程序代码编译成功」,然后进游戏实测。<br>如果出现「明明在逼近却没躲」或「站着不动的也被躲」,把日志贴我,我按第五节调参数。