热血江湖助手 · 分析资料站← 报告总目录助手主页
分区:15_助手版本迭代说明源文件:南明洞回补_改动说明.md篇幅:5.6 KB收录:2026-10-19 17:10

南明洞回补 —— 改动说明

日期:2026-10-07 01:52<br>工程:D:/AI空间/rxjh/旧版本更新_修复后.e(编译源:旧版本更新.代码)


一、需求

要用 挂机寻路新 判断是不是南明洞,才开始执行

二、为什么必须改

挂机寻路新 是回补寻路(挂机途中回城 / 被打回城后,自动走回挂机点)。<br>它里面原本有一条「跨图返回挂机点」逻辑,靠这两招回到目标地图:

回城符名称 = 取对应回城符名称 (挂机地图ID)     ' ① 用回城符
... 没符就 ...
发包飞图 (挂机地图ID)                          ' ② 直接飞图

南明洞(ID 2001)这两招都用不了:没有对应回城符,也不能直接飞图。<br>结果就是挂机地图设成南明洞时,一旦回城就回不去了,回补线程卡在那里。

所以:挂机地图是南明洞时,不能走「回城符 / 飞图」,必须走 夸图 脚本走路进洞。

三、改动内容(文本主本 2 处 hunk,+6 / −0)

文件:旧版本更新.代码/代码/窗口程序集_MainDialogWnd.form.e.txt → 挂机寻路新

在「不在挂机地图」这条分支里,给原有内容多套一层南明洞判断:

.如果 (当前地图ID ≠ 挂机地图ID)
    .如果 (挂机地图ID = 2001)                            ← ★ 新增这一层
        ' 【新增·南明洞】南明洞没有回城符、也不能直接飞图…
        写日志 (… “【南明洞回补】当前不在南明洞(在 ” + 取地图名称 (当前地图ID) + “),执行夸图脚本自动进洞” …)
        执行跨图脚本 (“夸图”)                              ← ★ 一路走进洞
    .否则                                                  ← ★ 新增
        ' 环龙返回返回先保存环龙挂机点                        ← 以下 89 行完全没动
        .如果真 (环龙回城.选中 = 真)
        …原有的回城符 / 飞图 / 多坐标寻路 / 寻路call …
    .如果结束                                              ← ★ 新增
.否则
    同地图直接寻路(原有,未动)
.如果结束

易语言靠 .如果 / .如果结束 配对、不靠缩进,所以原有那 89 行一个字节都没改,<br>只是位置上往后挪了 6 行。补丁脚本对此做了字节级断言(t2 == expect)。

三条路径现在的行为

回补时人在哪走哪条路结果
泫渤派 / 别的图新增层 → 执行跨图脚本(夸图)泫渤派 → 南明湖 → 进洞 → 湖洞挂机.ini → 挂机坐标 ✓
已经在南明洞里原有「同地图直接寻路」寻路call (挂机X,挂机Y) 走回挂机点 ✓(本来就对)
挂机地图不是南明洞完全走原有逻辑与改动前一致 ✓

四、验证结果(全绿)

步骤结果
补丁结构断言新层在「不在挂机地图」分支内部;原有 89 行字节级未变;t2 == expect 逐字节校验通过
块配平.如果 +1 / .否则 +1 / .如果结束 +1;.如果真、循环类、返回 () 总数全部不变
t2e 回转0 错误 0 警告,挂机寻路新 解析成功
e2t 反查470 个子程序齐全,L1 代码级 0 差异;L2 注释差异仍是 27 条既有历史损失,本轮新注释没丢
二进制取证新日志 / 新注释 / 执行跨图脚本 / 夸图 全部命中;旧能力(挂机寻路新 / 环龙回城 / 多坐标寻路 / 环龙跨图返回挂机点 / 跨图成功开始寻路)全部还在 —— 11 项 ALL PASS
改动范围2 hunk,+6 / −0(纯新增)

五、交付物

六、实测怎么看日志

回补触发时,日志里应该出现:

【南明洞回补】当前不在南明洞(在 泫渤派),执行夸图脚本自动进洞
========== 开始跨图脚本:夸图 ==========
【跨图】进入段:【南明湖】…
【跨图】√ 这个是过图点:没走到坐标,但地图已从 泫渤派 变成 南明湖,算成功
【跨图】进入段:【南明洞到NPC】…
【跨图】√ 对话选项生效,已进入 南明洞
【跨图】执行脚本:【湖洞挂机】
【跨图】√ 执行脚本完成:【湖洞挂机】共跑了 40 个坐标
【跨图】√ 已到挂机坐标
========== 跨图脚本结束:成功 N 个动作 ==========

前面有一条前提:界面「挂机地图」要选南明洞(否则判断不成立,走原逻辑)。

七、已知限制

  1. 人卡在南明湖中间时会从南明湖段的起点 (444,1589) 重新走一遍(那一段起点在泫渤派入口附近),

能到但绕。要优化得给 执行跨图脚本 加一个「从指定段开始」的参数,暂时没做。

  1. 执行跨图脚本 末尾的 [开始挂机] 带守卫:回补时挂机本来就在跑(按钮是「停止挂机」),

所以会跳过,不会把正在挂的停掉。

  1. 挂机寻路新 是线程内运行,执行跨图脚本 里的 处理事件 () / 大量延时在线程里是安全的

(原代码本来就在线程里用 处理事件 ())。但跨图脚本运行期间这个线程会长时间不返回,<br>期间 回补线程开启 保持为真 —— 这是有意的,防止时钟再次触发双开。

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