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

对话进洞(跨图脚本新增 对话 指令)—— 改动说明

2026-10-07 01:12
起因:你给了「台服 取南明洞的 NPC 叫 南明湖 警备兵」+「编号 74」
结果:跨图脚本多了 对话(NPC名) 指令,夸图.ini 南明洞段接上「走到警备兵 → 对话」

一、先说一条最重要的:你给的 74 和老表对上了

工程 取NPC编号 表里本来就有一条 74=南明洞护法。

这不是冲突 —— 是同一个入口 NPC 的国服/台服译名差异:

国服台服
名字南明洞护法南明湖 警备兵
编号7474
位置南明洞入口南明洞入口

所以你的 74 不需要任何验证,它和表里的 74=南明洞护法 天然互证。<br>已补一条 74=南明湖 警备兵(国服名保留,两条都指向 74,两个名字都能查)。


二、三处改动

1. 取NPC编号 表补台服名

-  .../74=南明洞护法/78=小香/...
+  .../74=南明洞护法/74=南明湖 警备兵/78=小香/...

2. 执行跨图脚本 新增 对话(NPC名) 指令

原来引擎只认:段名 / 寻路call / 坐标移动 / 跨地图 / 飞回城符 / 等待。<br>现在多了第 7 条:

对话(南明湖 警备兵)

内部三步:

步调用说明
①选中NPC (名字, 挂机信息)扫内存按名字找(2000 个对象槽,按 +8 = 0x2E 认人物/NPC),所以 NPC 必须在视野内
②发包对话NPC (名字)查表拿编号 → 发 00 00 00 00 90 00 18 00 01 00 00 00 00 00 00 00 + 编号单字节
③循环 5 秒:每 250ms 刷新地图 ()地图 ID 一变就判成功,把新地图名打进日志

这就是「进没进洞」的判据 —— 读内存读出来的地图 ID,不是脚本自己说成功。

新增 2 个局部变量:对话前地图ID、已等。

3. 夸图.ini 南明洞段接上

[南明湖]   51 点            ← 南明湖.ini(终点 -20,-2345,进南明湖的过图点)
[南明洞]   17 点            ← 南明湖入口警卫兵.ini(终点 1338,1150,就是警备兵跟前)
对话(南明湖 警备兵)        ← 新增
[结束]

注意段来源变了:用的是 南明湖入口警卫兵.ini,不是 南明洞.ini。

文件点数起点终点依据
南明湖入口警卫兵.ini17-40,24251338,1150✅ 你 00:56 实测跑完就遍历到了警备兵
南明洞.ini17-40,2425416,1579❓ 你从没跑过,不知道通到哪
日志里查得明明白白:辅助测试.txt 里 待读取配置文件 一共出现 5 次 ——
南明湖.ini ×3、南明湖入口警卫兵.ini ×2、南明洞.ini ×0。

三、唯一还可能缺的一样:选项包

对话 发出去后等 5 秒:

结果含义下一步
日志「√ 对话生效,已进入 南明洞」NPC 是「对话即传送」完事了,不用抓包 ✅
日志「× 对话发出去了但地图没变」游戏还弹了个选择框抓一次包,加选项支持

工程里整条 90 00 18 家族只有三个子码,没有"选选项":

子码用途工程里
01开始对话发包对话NPC ✅
02关闭对话发包关闭商店 ✅
03打开商店发包打开商店 ✅
??选选项❌ 没有

先跑一次就知道落在哪种,不用提前抓包。


四、改动的边界(只碰 3 处,0 行代码删除)

#位置改了什么
1取NPC编号 的表字符串插一段 74=南明湖 警备兵/
2执行跨图脚本 局部变量区+2 行(对话前地图ID、已等)
3执行跨图脚本 主体+44 行(G 段「对话」;原 G 段注释改 H、原 H 注释改 I)
diff 3 个 hunk:+46 行 / −3 行
   −3 行 = 2 条注释改字母 + 1 条编号表更新(**没有任何一行真代码被删**)

其余 469 个子程序零改动。


五、验证(全绿)

项结果
补丁断言12 项锚点唯一性 + 配平增量(如果真 +2/+2、如果/否则/结束 各 +4、判断循环 +1/+1、跳出循环 +1)
注释字母顺延G. 对话 / H. 神器:返回安全坐标 / I. 其它 在文本、.e、回归文本里各命中 1
BOM / 换行BOM 在文件开头(ef bb bf)、裸 LF = 0
t2e 回编译0 错误 0 警告
.etprj已用 .pre20 还原(425 字节 + BOM)
e2t 往返 + L1代码级 0 差异,子程序数 470,全局行一致
二进制取证ALL PASS:74=南明湖 警备兵=1、74=南明洞护法=1(没丢)、五条日志文案各 1、旧能力齐全、段名组=0
夸图.ini1564 字节 / 74 行 / GBK / CRLF / 无 BOM;寻路行 68 条

交付:旧版本更新_修复后.e(md5 ae080ec1b7e766b8bbcd007284725541)<br>回滚备胎:旧版本更新_修复后.bak_对话进洞前_20261007_0109.e


六、想调参数,改这几处

想改什么改哪里现在
对话后等地图变化的上限执行跨图脚本 里 .判断循环首 (已等 < 5000) 的 50005 秒
轮询密度同段 程序_延时 (250) 的 250250ms

(选中NPC 循环内有个被注释掉的 程序_延时 (10),如果 2000 个槽扫得太快扫不到,<br>把它的注释去掉能让扫描更稳。)


七、请你实测

  1. F7 编译确认「程序代码编译成功」(我没代跑探针,避免抢 IDE 前台)
  2. 选 夸图 → 点「开始寻路」,重点看这两行:
【跨图】进入段:【南明洞】,当前在 南明湖     ← 南明湖段成功
【跨图】对话:找【南明湖 警备兵】,当前在 南明湖
【跨图】√ 对话生效,已进入 南明洞            ← ★ 这一行 = 进洞成功

看到最后那行,整条跨图链路(泫勃派 → 南明湖 → 对话进南明洞)就全通了。

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