修复日期: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。
全局目录 = 取运行目录 ()
' 【顺序不能改】配置目录 是后面所有路径的基,必须先赋值;
' 默认配置文件路径 依赖 配置目录,写在它前面只会拿到空串,退化成盘符根目录 \Default.ini,读不到任何配置
配置目录 = 全局目录 + “\config”
角色配置目录 = 配置目录 + “\角色配置”
默认配置文件路径 = 配置目录 + “\Default.ini”
放在 许可证_创建 (日志许可证) 之后、启动线程 (&自动进入游戏 …) 之前:
.如果真 (文件是否存在 (默认配置文件路径) = 假)
.如果真 (文件是否存在 (全局目录 + “\Default.ini”) = 真)
写到文件 (默认配置文件路径, 读入文件 (全局目录 + “\Default.ini”))
写日志 (自定义时间 () + “【目录迁移】旧版 Default.ini 仍在客户端根目录,已自动复制到 config\ 下” + #换行符)
.如果真结束
.如果真结束
config\Default.ini 缺失时触发,永不覆盖 config\ 里已有的配置Default.ini(总开关文件);其余 7 个 ini + 坐标脚本\ 仍由 一键迁移配置.bat 负责文件是否存在 / 读入文件 / 写到文件(本工程已在用),不引入任何新的模块命令,避免又撞上多模块同名命令的参数个数问题| 项目 | 结果 |
|---|---|
| t2e | 0 错误 / 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_修复默认配置文件路径顺序_* | 改动前备份 |