热血江湖助手 · 分析资料站← 报告总目录助手主页
分区:15_助手版本迭代说明源文件:配置目录迁移_路径修复_改动说明.md篇幅:6.7 KB收录:2026-10-19 17:10

配置目录迁移 —— 默认配置文件路径顺序修复

修复日期:2026-10-07 13:48
交付文件:D:/AI空间/rxjh/旧版本更新_修复后_v7.e
现象:日志打出「检测到进入角色选择界面」后没有任何后续,自动进入游戏不触发

一、症状与证据

用户运行日志 client\config\log\.txt:

11:33:23 检测到进入角色选择界面
11:33:23 检测到自动进游戏已开启,执行自动进入游戏…     ← 旧 DLL,正常
13:42:30 检测到进入角色选择界面                        ← 换新 DLL 后,断了
13:43:33 检测到进入角色选择界面                        ← 断了

client\config\Default.ini 里 [config] 段确实有 自动进游戏=1,<br>但代码读完「检测到进入角色选择界面」就没了 —— 说明 .如果真 (读配置项(...) = "1") 判为假。


二、根因:赋值顺序写反,路径退化成盘符根目录

_启动窗口_创建完毕 初始化段(原代码):

全局目录 = 取运行目录 ()                                    ' = D:\rxjh2025\client
默认配置文件路径 = 配置目录 + “\Default.ini”               ' ← 此时 配置目录 还是空串!
配置目录 = 全局目录 + “\config”                            ' = D:\rxjh2025\client\config
角色配置目录 = 配置目录 + “\角色配置”

配置目录 是文本型全局变量,此刻值仍是 "",所以:

默认配置文件路径 = "" + "\Default.ini" = "\Default.ini"

Windows 对 \ 开头的路径按「当前盘符根目录」解析 →<br>实际读的是 D:\Default.ini(不存在)→ 读配置项 返回默认值 "" ≠ "1" → 不进游戏。

这是一个初始化顺序错误,2026-10-07 12:15 那次「目录迁移」批量把 全局目录 替换成 配置目录 时引入的 ——<br>替换本身没错,但那一行恰好排在自己的依赖项之前。

影响范围(不止自动进游戏)

默认配置文件路径 在工程里被引用 200+ 处,全部一起失效:

功能失败表现
自动进游戏卡在角色选择界面(本次现象)
自动挂机 / 自动签到 / 自动领取修炼符开关读不到,功能不触发
保存设置 / 读取设置写配置项落到 D:\Default.ini,所有设置无法正常保存
金刚石/寒玉石属性石配置、开店出售物品、仇人名单同上

只要用户点过「保存设置」,还会在 D 盘根目录留下一个野文件 D:\Default.ini。


三、修复内容(共 2 处)

1. 调整赋值顺序(核心修复)

全局目录 = 取运行目录 ()
' 【顺序不能改】配置目录 是后面所有路径的基,必须先赋值;
' 默认配置文件路径 依赖 配置目录,写在它前面只会拿到空串,退化成盘符根目录 \Default.ini,读不到任何配置
配置目录 = 全局目录 + “\config”
角色配置目录 = 配置目录 + “\角色配置”
默认配置文件路径 = 配置目录 + “\Default.ini”

2. 未迁移老客户端自动兼容(新增,仅 7 行)

放在 许可证_创建 (日志许可证) 之后、启动线程 (&自动进入游戏 …) 之前:

.如果真 (文件是否存在 (默认配置文件路径) = 假)
    .如果真 (文件是否存在 (全局目录 + “\Default.ini”) = 真)
        写到文件 (默认配置文件路径, 读入文件 (全局目录 + “\Default.ini”))
        写日志 (自定义时间 () + “【目录迁移】旧版 Default.ini 仍在客户端根目录,已自动复制到 config\ 下” + #换行符)
    .如果真结束
.如果真结束

四、验证结果

项目结果
t2e0 错误 / 0 警告
e2t 反编译0 错误 / 0 警告
界面(form.json)与用户 IDE 保存的 v4 逐字段完全相同(383 控件,True)
四个按钮位置保持用户摆的 (203,552)(282,552)(189,600)(281,600),未动
v6 → v7 代码差异只有本次 2 处修复,共 13 行
数组声明 5 处全部 , 数组, "0"(正确写法),0 处残留错误写法
时间_取现行时间戳 ()1 处,无 (真) 残留
常量136 条,脚本接口地址 / 脚本接口令牌 值在位,全角引号污染 0 次
角色配置同步 4 个子程序均在
二进制内容http://139.196.21.118/yxzh_script.asp ×1、yxzhApi2026Rxjh ×1、kind=role ×3

五、文件指纹

旧版本更新_修复后.e        6,993,827 B  md5 fa40cdabd17bc8f3b73881ca9880598e   ← 用户的,始终未动
旧版本更新_修复后_v4.e     7,005,673 B  md5 b50b21b46b8167fe112421f9bc58dd30   ← IDE 保存过,含 10044
旧版本更新_修复后_v7.e     2,810,214 B  md5 0c446ce0f76192203dcde021635e5faf   ← ✅ 编译这个

_v5.e(含 10041)、_v6.e(含本次路径 bug)均已删除,避免误编译。


六、附带发现(未改,供参考)

_保存默认_被单击(约 L2734)逻辑本身就是坏的 —— 它在「路径是目录」的情况下调 写到文件:

.判断开始 (目录是否存在 (配置目录))                    ' 配置目录永远是目录 → 真
    .判断开始 (文件是否存在 (配置目录) = 真)          ' 拿目录当文件判 → 永远 假
        ...
    .默认
        .如果 (写到文件 (配置目录, #默认配置文件))     ' ← 往目录上写文件,必失败

按字面意思应该是 文件是否存在 (默认配置文件路径) + 写到文件 (默认配置文件路径, #默认配置文件)。<br>这是迁移前就存在的历史问题(迁移只是把 全局目录 改名成 配置目录),<br>但用户日志里 角色配置文件创建失败 出现 0 次,说明这个按钮实际没被点过,所以这次没动它。


七、工具与备份

文件说明
tools/_fix_defaultini_path.py本次修复脚本
tools/_diff_migration.py「目录迁移前 ↔ 现在」全量差异分析
tools/_verify_v7.py交付前校验
旧版本更新.代码/代码/窗口程序集_MainDialogWnd.form.e.txt.bak_修复默认配置文件路径顺序_*改动前备份
本页由 Markdown 报告自动转排;如需原始 md,可在原会话工作区取用。