交付日期:2026-10-07 01:37
交付文件:旧版本更新_修复后.e(md5df50d909a6afbd000fac3eb938f70c6d)
回滚备胎:旧版本更新_修复后.bak_寻路强制前_20261007_0133.e
执行寻路call 先判距离、距离 < 20 就直接返回,寻路call 在循环最底部 —— 所以「已经落在目标点容差里」的点,寻路指令压根没发出去。
南明湖.ini 最后两个点:
| 序号 | 坐标 |
|---|---|
| 第 50 点 | (-17, -2342) |
| 第 51 点 | (-20, -2345) ← 过图点 |
两点只差 4.24 格。走到第 50 点后,第 51 点已经落在 20 的容差内 → 执行寻路call 直接返回「到达点位」→ 一次 寻路call 都没发 → 游戏没收到过图指令 → 不切图。
你在日志里手动点的那一下就是证据:
00:55:48 移动到 [-20,-2345] ← 界面「移动到坐标」按钮
_移动到坐标_被单击(134 行)是直接调 寻路call、不判距离的,所以那一次能进南明湖。
执行寻路call —— 把寻路指令提到循环顶部只挪了一行位置,别的没动:
' 改前
超时 = 0
.判断循环首 (真)
处理事件 () / 程序_延时 (200) / 刷新坐标 ()
距离 = 计算两坐标距离 (...)
.如果真 (距离 < 20) → 返回 (真) ' ← 已经在这里就返回了,下一句永远轮不到
...
寻路call (X, Y) ' ← 在循环最底部
.判断循环尾 ()
' 改后
超时 = 0
.判断循环尾 ()
.判断循环首 (真)
寻路call (X, Y) ' ← 提到最前:先无条件发一次,再判距离
处理事件 () / 程序_延时 (200) / 刷新坐标 ()
距离 = 计算两坐标距离 (...)
.如果真 (距离 < 20) → 返回 (真)
...
.判断循环尾 ()
收益:① 过图点会真的发出寻路指令 → 切图;② 以后你在界面点「移动到坐标」和脚本走的是同一套逻辑,不会再出现「手动能进、脚本不能进」。
影响面:执行寻路call 被「多坐标寻路」和跨图引擎共用,两边同时受益。对普通点只是「第一次发指令提前了 200ms」,行为不变。
| 脚本里写 | 引擎干的 |
|---|---|
到挂机坐标 | 走界面 「挂机坐标x编辑框 / y编辑框」 里那两个值(等价于点「移动到坐标」按钮),等到位;途中若切了图也算成功 |
开始挂机 | 等价于点界面 「开始挂机」 按钮 |
开始挂机 带保险(重要)_开始挂机_被单击 是一个按钮吃掉两种功能:标题是「开始挂机」→ 启动挂机;否则 → 强制结束回补/挂机寻路/多坐标寻路/复活所有线程。
所以脚本里调它必须加锁:
.如果 (开始挂机.标题 = “开始挂机”) ' 只在没挂机时才点
_开始挂机_被单击 ()
.否则
写日志 (“界面标题已是「停止挂机」,说明挂机中,跳过不做任何事”)
.如果结束
否则脚本会把正在挂的挂机给停掉。
夸图.ini 按流程重合成[南明湖] 51 点(南明湖.ini 全部)
等待(10) 等切图
[南明洞到NPC] 17 点(南明洞.ini = 原「南明湖入口警卫兵.ini」)
对话选项(南明湖 警备兵,1)
等待(8)
[到挂机坐标] 走界面 挂机坐标x/y编辑框
[开始挂机] 自动点一次「开始挂机」
[结束]
文件:D:\rxjh2025\client\坐标脚本\夸图.ini(1644 字节 / 81 行,GBK + CRLF + 无 BOM)
⚠️ 你每改一次南明湖.ini/南明洞.ini,夸图.ini不会自动跟着变,改完跟我说一声我重新合成。
自动开始挂机 = 从脚本线程去点界面按钮。它会启动 挂机寻路线程,而那个线程会「回城/飞图到挂机地图、再走到挂机坐标」。所以:
不想要自动挂机:把 夸图.ini 里最后两段([到挂机坐标]、[开始挂机])删掉即可,脚本就只负责把人送进南明洞。
| 项 | 结果 |
|---|---|
| 补丁内置断言 | 基线一致性、定义唯一性、锚点位置、寻路call (X, Y) 移位后仍在距离判断之前 |
| 块配平 | 如果真 808/808、如果 388/388、否则 388、如果结束 388、判断循环 41/41、计次循环 134/134 |
| BOM / 换行 | BOM 在开头、裸 LF = 0、裸 CR = 0、GBK 可编码 |
| t2e 回编译 | 0 错误 0 警告 |
.etprj | 已用 .pre22 还原(425 字节 + BOM efbbbf) |
| e2t 往返 + L1 | 代码级 0 差异,子程序数 470,全局行一致 |
| L2 注释 | 27 条(与上轮同数,全是历史既有损耗,本次未新增) |
| 二进制取证 | ALL PASS(到挂机坐标=6、_开始挂机_被单击=1、旧能力全在、旧标识 段名组/段行号组=0) |
| 改动范围 | 3 个 hunk、+40 / −2 行(−2 = 移位的那行及其注释) |
挂机地图组合框 = 南明洞、挂机坐标x/y编辑框 = 南明洞里你要站的坐标夸图 → 点「开始寻路」日志对照:
【跨图】共 81 行,开始逐行执行
【跨图】进入段:【南明湖】,当前在 泫勃派
... (51 个点)...
【跨图】√ 这个是过图点:没走到坐标,但地图已从 XXX 变成 南明湖,算成功 ← 关键:这次会出来
【跨图】进入段:【南明洞到NPC】,当前在 南明湖
... (17 个点)...
【跨图】对话选项:【南明湖 警备兵】编号 74,选第 1 项,当前在 南明湖
【跨图】√ 对话选项生效,已进入 南明洞
【跨图】进入段:【到挂机坐标】,当前在 南明洞
【跨图】到挂机坐标:XXX,YYY,当前在 南明洞
【跨图】√ 已到挂机坐标
【跨图】开始挂机:自动点一次「开始挂机」按钮
========== 跨图脚本结束:成功 NN 个动作 ==========
只要「√ 这个是过图点」那行出来了,这次的修复就成立(以前这里是「到达点位」直接跳过,人还在原来那张图)。