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

防杀测试·回城失败自动重试 — 改动说明(2026-10-06)

问题:防杀测试 发现仇人后发一次回城包就「发完不管」,有时回城没生效
(人物还在原地),脚本照样停挂 → 等 10 分钟 → 回去继续挂 → 又被同一个仇人堵住。
本次把「发一次」改成「发 → 校验地图真的换了 → 没换就重试,最多 3 轮」。

一、为什么有时候回城失败(根因)

#根因说明
1发包使用物品_名称 只保证「找到格子并发包」人物在读条/被击退/移动中时,服务端可能拒绝使用请求 → 包发了但人没走
2发包后立即 停止挂机()强杀寻路线程 + 小助手关(),可能与跨图流程互相干扰
3遍历背包_取物品数量 依赖背包数据可读角色异常状态下数量可能读成 0 → 误走「飞图」分支,而部分场景飞图不可用
4全程无校验、无重试以上任一失败都无人知晓,10 分钟后照常回去送死 —— 这就是你看到的「回城失败」

二、改了什么(全部在 代码/窗口程序集_MainDialogWnd.form.e.txt)

1. 防杀测试 命中仇人分支 → 循环重试 + 校验

发现仇人
  ↓ 刷新地图 () 取「危险图」真实ID
  ↓ 最多 3 轮:
  │    有回城符 → 发包使用物品_名称 (回城符)
  │    没有符   → 发包飞图 (目标地图ID)
  │    等待离开地图 (危险图ID, 8000)  ← 轮询地图ID,真的换图了才算成功
  │    未生效 → 写日志「第N次回城未生效」→ 等 2 秒 → 下一轮(每轮重新数背包)
  ↓ 脱险成功 → 停止挂机 → 10 分钟后恢复挂机
  ↓ 3 轮都没跑掉 → 停止挂机 → 30 分钟后恢复挂机(避免刚恢复又被同一仇人送走)
  ↓ 跳出循环 ()(不再遍历剩余怪物槽,防同一仇人反复触发回城)

附带修了一个真 bug:原 寻找文本 (仇人名单, 怪物名称, , 假) 在怪物名称为空串时恒命中(读内存失败会误触发回城),已加 怪物名称 ≠ "" 防护。

2. 新增子程序 等待离开地图 (原地图ID, 超时毫秒)

3. 新增子程序 延迟30分钟开始挂机

三、验证(四步全绿)

  1. 字节级补丁:UTF-8 BOM 保留、纯 CRLF(12567 行无 LF 污染)
  2. 块结构配平:.如果/.如果真/循环/判断 全部闭合(check_blocks.py)
  3. t2e 回转:e2txt SUCC,日志 18470 条全为 [信息],0 错误 0 警告;防杀测试 / 等待离开地图 / 延迟30分钟开始挂机 均解析成功
  4. 易语言 F7 真实编译:输出面板出现 「程序代码编译成功」,弹出「请输入欲编译到的可执行文件名」(保存类型 = Windows动态链接库*.dll),无 10041/10050 任何错误
  5. e2t 往返保真:4 个相关子程序规范化后与源文本逐行 100% 一致

四、产物与备份

文件说明
D:\AI空间\rxjh\旧版本更新.代码\...form.e.txt主本(本次改动所在)
D:\AI空间\rxjh\旧版本更新_修复后.e已更新为 2,726,775 字节新版(含历次全部修复 + 本次改动),可直接 F7 编译出 DLL
D:\AI空间\rxjh\旧版本更新.代码.bak_防杀回城重试_20261006_1407改动前完整备份
D:\AI空间\rxjh\_patch\fix_防杀回城重试.py补丁脚本(锚点断言式,可重放追溯)
D:\AI空间\rxjh\_patch\check_blocks.py / verify_roundtrip.py / probe2.py校验/编译探针脚本
下一步:用易语言打开 旧版本更新_修复后.e 按 F7 → 存为 DLL 即可上线。
若想调重试次数:把 .计次循环首 (3, 重试次数) 的 3 改大;想多等一会再确认:把 等待离开地图 (危险地图ID, 8000) 的 8000 改成 12000。
本页由 Markdown 报告自动转排;如需原始 md,可在原会话工作区取用。