热血江湖助手 · 分析资料站← 报告总目录助手主页
分区:15_助手版本迭代说明源文件:寻路强制_到挂机坐标_改动说明.md篇幅:6.7 KB收录:2026-10-19 17:10

寻路强制 + 到挂机坐标 / 开始挂机 —— 改动说明

交付日期:2026-10-07 01:37
交付文件:旧版本更新_修复后.e(md5 df50d909a6afbd000fac3eb938f70c6d)
回滚备胎:旧版本更新_修复后.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、不判距离的,所以那一次能进南明湖。


二、改动 1:执行寻路call —— 把寻路指令提到循环顶部

只挪了一行位置,别的没动:

' 改前
超时 = 0
.判断循环首 (真)
    处理事件 () / 程序_延时 (200) / 刷新坐标 ()
    距离 = 计算两坐标距离 (...)
    .如果真 (距离 < 20)  → 返回 (真)     ' ← 已经在这里就返回了,下一句永远轮不到
    ...
    寻路call (X, Y)                      ' ← 在循环最底部
.判断循环尾 ()

' 改后
超时 = 0
.判断循环尾 ()
.判断循环首 (真)
    寻路call (X, Y)                      ' ← 提到最前:先无条件发一次,再判距离
    处理事件 () / 程序_延时 (200) / 刷新坐标 ()
    距离 = 计算两坐标距离 (...)
    .如果真 (距离 < 20)  → 返回 (真)
    ...
.判断循环尾 ()

收益:① 过图点会真的发出寻路指令 → 切图;② 以后你在界面点「移动到坐标」和脚本走的是同一套逻辑,不会再出现「手动能进、脚本不能进」。

影响面:执行寻路call 被「多坐标寻路」和跨图引擎共用,两边同时受益。对普通点只是「第一次发指令提前了 200ms」,行为不变。


三、改动 2:跨图引擎新增两条指令

脚本里写引擎干的
到挂机坐标走界面 「挂机坐标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 不会自动跟着变,改完跟我说一声我重新合成。

五、⚠️ 用「开始挂机」前必须确认两件事

自动开始挂机 = 从脚本线程去点界面按钮。它会启动 挂机寻路线程,而那个线程会「回城/飞图到挂机地图、再走到挂机坐标」。所以:

  1. 挂机地图组合框 必须选「南明洞」 —— 否则挂机一启动就把人飞走,白跑一趟。
  2. 挂机坐标x/y编辑框 必须填南明洞里的点 —— 这就是脚本「到挂机坐标」的目的地。

不想要自动挂机:把 夸图.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 = 移位的那行及其注释)

七、请你实测

  1. F7 编译,确认「程序代码编译成功」
  2. 界面先设好:挂机地图组合框 = 南明洞、挂机坐标x/y编辑框 = 南明洞里你要站的坐标
  3. 选 夸图 → 点「开始寻路」

日志对照:

【跨图】共 81 行,开始逐行执行
【跨图】进入段:【南明湖】,当前在 泫勃派
... (51 个点)...
【跨图】√ 这个是过图点:没走到坐标,但地图已从 XXX 变成 南明湖,算成功   ← 关键:这次会出来
【跨图】进入段:【南明洞到NPC】,当前在 南明湖
... (17 个点)...
【跨图】对话选项:【南明湖 警备兵】编号 74,选第 1 项,当前在 南明湖
【跨图】√ 对话选项生效,已进入 南明洞
【跨图】进入段:【到挂机坐标】,当前在 南明洞
【跨图】到挂机坐标:XXX,YYY,当前在 南明洞
【跨图】√ 已到挂机坐标
【跨图】开始挂机:自动点一次「开始挂机」按钮
========== 跨图脚本结束:成功 NN 个动作 ==========

只要「√ 这个是过图点」那行出来了,这次的修复就成立(以前这里是「到达点位」直接跳过,人还在原来那张图)。

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