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

躲避地图:防杀躲避改用独立目标地图

起因:2026-10-06 23:52 虎峡谷实测日志——三轮「回城未生效」,用回城符躲仇人完全没效果。
结论:不是超时太短,是判据在这个场景下从设计上就不可能成立。

一、诊断:为什么「用回城符躲人」在虎峡谷必然失败

1. 这次走的是回城符分支,而它指向的是「当前地图」

日志第 3 行:第1次:使用回城符(虎峡谷)躲避傻逼人物!<br>说明 回城符名称 = 取对应回城符名称 (目标地图ID) 返回了 回城符(虎峡谷),<br>即 目标地图ID = #虎峡谷。

而 目标地图ID 的来源是旧代码:

目标地图ID = 取地图ID (回补地图组合框.内容)      ' ← 旧代码

日志第 2 行同时打印 :当前地图》》》》》》》》>>虎峡谷——目标地图 = 当前地图。<br>根因就是这一句:「回补地图」常常就等于当前挂机地图(你在这图打怪,也在这图补给),<br>所以躲避变成了「原地同城回城」。

2. 同图 → 地图ID判据被关掉 → 只剩位移,而位移必然不够

旧代码在回城符分支故意传 0 关掉地图判据(原意:同图回城地图ID不会变):

已脱险 = 等待离开原地 (危险坐标x, 危险坐标y, 400, 500, 0, 150)   ' ← 旧代码,第5参=0

于是唯一判据是「离危险点位移 ≥ 400」。而虎峡谷城内三点的坐标(源码 4702~4713 行):

城内点坐标离危险点(-1923,2007)
箭头NPC 姜大壮-1911, 2138132
仓库NPC 文梦-2132, 1793299
买卖NPC 江云益-1622, 2215366

三点全部落在 400 阈值圈内。 也就是说:回城符即使 100% 生效,落点也离危险点不够远<br>→ 等待离开原地 必定返回假 → 日志必定报「未生效」。

3. 实测数据也印证

轮次时间当前坐标相对上轮位移
第1次23:52:43-1923, 2007—
第2次23:52:44-1944, 200421
第3次23:52:44-1953, 198026

2 秒内累计只挪了 40,是「走路」的量级而不是「传送」的量级(传送是几十~几千的跳变)。<br>所以同时也存在第二种可能:回城符那一包根本没生效(物品/冷却/状态原因)。

⚠️ 但无论回城符生效与否,只要躲避目标 = 当前地图,位移判据都过不了。
判据本身是错的,跟超时长短无关。

二、改了什么(只在 防杀测试 一个子程序内,+22 行 / −3 行)

① 新增局部变量

.局部变量 躲避地图, 文本型

② 躲避目标改为独立的「躲避地图」配置(不再用回补地图)

' 【躲避地图】不再拿「回补地图」当躲避目标:回补地图常常就等于当前挂机地图,
' 那样回城符只是原地回城、地图ID不变,位移判据必然失败(2026-10-06 虎峡谷实测三轮全判未生效)。
' 改为读独立的「躲避地图」:Default.ini 的 [config]躲避地图 到 飞地图 到 泫渤派 逐级兜底。
躲避地图 = 读配置项 (默认配置文件路径, “config”, “躲避地图”, )
.如果真 (躲避地图 = “”)
    躲避地图 = 读配置项 (默认配置文件路径, “config”, “飞地图”, )
.如果真结束
.如果真 (躲避地图 = “”)
    躲避地图 = “泫渤派”
.如果真结束
目标地图ID = 取地图ID (躲避地图)
.如果真 (目标地图ID = 0)
    躲避地图 = “泫渤派”
    目标地图ID = 取地图ID (躲避地图)
.如果真结束

三级兜底:Default.ini[config]躲避地图 → 飞地图 → 常量 "泫渤派"。<br>即:不配也能跑(自动用你原有的飞地图);配了就以它为准;名字写错也能退到泫渤派。

③ 回城符分支启用地图ID判据(关键的一行)

' 改前
已脱险 = 等待离开原地 (危险坐标x, 危险坐标y, 400, 500, 0, 150)
' 改后
已脱险 = 等待离开原地 (危险坐标x, 危险坐标y, 400, 500, 目标地图ID, 150)

现在躲避目标是跨图的,所以「地图ID 变了 = 成功」这条主判据对回城符同样有效。<br>回城符(泫勃派) 一用出去,泫渤派地图ID(101)1~2 秒内就会到位,立刻 跳出循环。

④ 补两条日志 + 修正注释

【躲避地图】本次躲避目标:泫渤派(地图ID 101),回城符:回城符(泫勃派)
【躲避地图】警告:躲避地图与当前地图相同,回城符等于原地回城,位移判据可能失效,请改 Default.ini 的躲避地图

第二条是防呆:万一你把躲避地图也设成了当前挂机地图,日志会直接点出来,不会又变成"静默失败"。

⑤ 没动的部分(按你的选择保留)

项值说明
位移阈值400不变
单轮超时500 毫秒按你的要求不变
重试延时0(整行删掉)按你的要求不变
轮数3不变
躲避后的等待成功→10分钟 / 失败→30分钟不变

三、配置项落地

已写入 D:\rxjh2025\client\Default.ini 的 [config] 段(GBK / CRLF / 无 BOM):

挂机地图=泫渤派
回补地图=泫渤派
飞地图=泫渤派
躲避地图=泫渤派        ← 新增

留底:Default.ini.bak_加躲避地图前_20261007_0000

以后想改躲避地图,直接改这一行(写地图名,如 躲避地图=泫渤派 / 躲避地图=柳正关)。<br>工程里用 写配置项 保存其它配置时不会动这个键(只写它自己列出的键)。


四、验证(七项)

检查结果
补丁断言4 个锚点各命中 1 次;等待离开原地 调用点仍 2;回补线程锚点未被误动 ✅
块结构.如果真 10/10、.如果 3/3、.计次循环 2/2、.否则 3 —— 全配平 ✅
BOM / 换行主本 BOM=True、CRLF 12818→12837、LF-only=0(与改前一致)✅
GBK 安全全文可 encode('gbk'),注释无 emoji ✅
t2e0 错误 0 警告(18480 条日志全是「信息」级)✅
项目.etprjt2e 后用 .pre15 还原,diff 一致 ✅
e2t 反查躲避地图 x19、两处 400, 500, 目标地图ID, 150、旧参数残留 0 ✅
分层保真L1 代码级 0 差异(466 子程序);L2 那 42 条是历史行尾注释损耗 ✅
二进制躲避地图 0→10、【躲避地图】本次躲避目标 0→1、【躲避地图】警告 0→1 ✅
改动范围diff 精确 +22/−3,只落在 防杀测试,未跨子程序 ✅

五、预期效果

场景改前(23:52 实测)改后
在虎峡谷遇到仇人目标=虎峡谷,原地回城,3 轮全判未生效(2 秒)目标=泫渤派(跨图),地图ID一变即成功,1~2 秒
失败时的后果躲避失败 →「延长等待」→ 延迟 30 分钟挂机同上(未改)

日志上你应该看到的新行:

【躲避地图】本次躲避目标:泫渤派(地图ID 101),回城符:回城符(泫勃派)
第1次:使用回城符(泫勃派)躲避傻逼人物!正派剃头人
已到达回城地图(地图ID 101,等待 600 毫秒),脱险成功
已成功脱离危险位置(当前坐标:...),暂停挂机

六、仍存在的风险(未改,你要知道)

  1. 500 毫秒单轮可能对跨图传送偏紧。跨图落地一般 0.5~2 秒,3 轮窗口约 1.8 秒。

若某次落地偏慢,仍会判失败 → 延迟 30 分钟。补救只需改一个数:<br>防杀测试 里 .计次循环首 (3, 重试次数) 的 3 改成 5(窗口拉到 ~3 秒,零延时不变)。

  1. 连发 3 次道具没意义:回城符/回城命令有冷却,2 秒内第 2、3 次多半是白发。

现在有了地图ID判据,第 1 次成功就 跳出循环,所以影响比之前小。

  1. 执行寻路call(8720 行)超时后不退出 — 老 bug,超时 ≥ 30 只注释了日志、没有 跳出循环。

与本次无关,但仍是跨图卡死的隐患。

  1. 停止挂机 对 多坐标寻路线程 是硬杀 —— 25 处 强制结束线程,老问题。

七、回滚

D:\AI空间\rxjh\旧版本更新_修复后.bak_躲避地图前_20261006_2359.e
D:\AI空间\rxjh\_patch\躲避地图前_20261006_2359\    ← 主本 + etprj
D:\rxjh2025\client\Default.ini.bak_加躲避地图前_20261007_0000

编译请用 D:\AI空间\rxjh\旧版本更新_修复后.e(不是 旧版本更新.e,那是过期副本)。

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