热血江湖助手 · 分析资料站← 报告总目录助手主页
分区:15_助手版本迭代说明源文件:防杀脱险改坐标判断_改动说明.md篇幅:4.6 KB收录:2026-10-19 17:10

防杀脱险判据改坐标 — 改动说明

日期:2026-10-06 14:35<br>改动文件:旧版本更新.代码/代码/窗口程序集_MainDialogWnd.form.e.txt(12569 → 12573 行)


一、为什么改

上一版防杀重试用「地图ID 变了」来判断回城/飞图是否生效:

等待离开地图 (危险地图ID, 8000)   ' 轮询 当前地图ID ≠ 原地图ID

问题:回城符 / 飞图可能把人物传回同一张地图(地图ID 根本不变)。此时判据恒为假 →

  1. 每轮回城都被误判「未生效」
  2. 连试 3 轮(每轮都真发一次回城包)
  3. 3 轮「全失败」→ 等 30 分钟才恢复挂机

人物其实早就跑掉了,却白挨 3 轮包 + 多等 20 分钟。

回城的本质是「人物瞬移离开原地」,跟换不换地图无关,所以判据改成坐标位移。


二、改了什么

1. 子程序 等待离开地图 → 等待离开原地(原 530~555 行,整段重写)

.子程序 等待离开原地, 逻辑型
    .参数 原坐标x, 整数型
    .参数 原坐标y, 整数型
    .参数 位移阈值, 整数型    ' 与原坐标距离达到该值即算已离开
    .参数 超时毫秒, 整数型

    每 500ms:刷新坐标 () → 计算两坐标距离 (原坐标x, 原坐标y, 当前坐标x, 当前坐标y)
              距离 ≥ 位移阈值 → 写日志(等待毫秒/位移/当前坐标) → 返回 真
    超时 → 写日志(当前坐标) → 返回 假

要点:

2. 防杀测试:基准由地图ID 改为坐标

' 旧
刷新地图 ()
危险地图ID = 当前地图ID
...
.如果真 (等待离开地图 (危险地图ID, 8000) = 真)

' 新
刷新坐标 ()
危险坐标x = 当前坐标x
危险坐标y = 当前坐标y
...
.如果真 (等待离开原地 (危险坐标x, 危险坐标y, 1000, 8000) = 真)

3 条相关日志同步改为报坐标(重试未生效 / 脱险成功 / 3 轮全失败)。

危险地图ID 局部变量已删除;目标地图ID 保留(发包飞图、取回城符还要用)。


三、位移阈值 = 1000,怎么调

调用处:等待离开原地 (危险坐标x, 危险坐标y, 1000, 8000) 里的 1000。

现象调法
回城确实生效了,但还是被判「未生效」重试调小(如 500)—— 你的回城落点可能离挂机点很近
没回城也被判「已脱险」(挂机跑图误判)调大(如 2000)—— 挂机寻路 8 秒内跑不出这个距离就安全

参考:回城/飞图是瞬移,位移通常上千;挂机点附近打怪走动,8 秒内一般只有几十到几百。子程序内部对 位移阈值 ≤ 0 有兜底(强制按 1000 算)。

一个已知边界:如果记录基准坐标那一瞬读内存失败(基准成 0,0),后续任何正常坐标都会被判「已离开」。实际「发现仇人」时人物在正常游戏中,坐标可读,这个窗口几乎不会命中;真发生时日志里的「当前坐标」会暴露它。


四、验证记录

步骤结果
字节级写入(UTF-8 BOM + 纯 CRLF)BOM ✓ / CRLF 12572 / LF-only 0 ✓
块结构配平全闭合 ✓
e2txt t2e 回转0 错误 0 警告,SUCC;防杀测试 / 等待离开原地 / 等待到达地图 / 等待地图名 全部解析成功 ✓
e2t 往返比对等待离开原地 归一后 0 差异;危险地图ID / 等待离开地图 残留 0 处 ✓
易语言 F7 编译未跑 — 编译探针需要抢前台约 2 分钟,而当时你正在游戏挂机,探针的按键会落到游戏窗口上。请在方便时自行打开 旧版本更新_修复后.e 按 F7 确认
说明:本次改动属于「重命名子程序 + 改参数个数」,t2e 已验证调用与定义一致、无未知符号;编译期风险主要只剩撞名(10041),而 等待离开原地 是全新名字,工程内无同名。

五、产物与回滚

回滚:把备份目录的 代码/窗口程序集_MainDialogWnd.form.e.txt 拷回主本即可。

本页由 Markdown 报告自动转排;如需原始 md,可在原会话工作区取用。