
UI重置修复
修复游戏崩溃时UI设置被重置的问题。
查看大图EN
UI Reset Fix
修复游戏崩溃时 UI 设置被重置的问题。地图筛选、菜单布局、“不再显示”选项以及 UI 模组的设置都会保持你离开时的状态。
问题所在
X4 将你所有的 UI 设置保存在一个文件中,即 Documents\Egosoft\X4 下的 uidata.xml:地图的筛选与图层、菜单的视图与排序、“不再显示”复选框,以及许多 UI 模组的设置。
当你按下 Load 时,游戏会保存这个文件并重新读取它,片刻之后再次写入——而这次写入的是空文件。这个空文件会留在磁盘上,直到下一次完整保存设置,通常要等到你退出游戏。如果游戏在这段时间内崩溃,下次启动时就会读取这个空文件,所有 UI 设置都会恢复默认值。没有报错,没有警告,日志里也没有任何记录。
模组的作用
- 空文件或损坏文件永远不会写入磁盘。 一个小型原生库(DLL)让游戏通过临时文件写入 uidata.xml。完整的文档会一次性替换 uidata.xml,空文件或被截断的文件会被丢弃,旧文件则保留下来。真正的 uidata.xml 永远不会是空的或只写了一半,即使游戏在写入过程中崩溃。
- 之前被清空的文件会被恢复。 如果游戏启动时 uidata.xml 是空的(由未安装本模组保护时的崩溃留下),模组会从自己的备份中恢复最后一份完整副本。
- 无 DLL 时的后备方案。 在任何模式下,UI 设置都会在加载后 3 秒再次保存。即使在开启 Protected UI Mode 的情况下,这也覆盖了几乎全部危险窗口期。
- 安静。 模组在首次启动时显示一条消息,之后静默工作。其状态消息可通过 Extension Options → UI Reset Fix 中的 Debug 复选框开启。
DLL 具体做了什么。 它由游戏的 UI 脚本加载,并替换游戏导入表中的两个 Windows 函数:CreateFileW 和 CloseHandle。只有你配置文件中 uidata.xml 的写入会被重定向;所有其他文件均不受影响。该 DLL 不会修改磁盘上的 X4.exe,不使用网络,也不依赖游戏版本。
模组文件。 模组将自己的备份和一个小日志(最大 10 KB)保存在自己的文件夹 extensions\ui_reset_fix\backup 中,总共约 370 KB。不会向你的 Documents 文件夹添加任何内容。如果模组文件夹不可写,文件将改为保存到 Documents\Egosoft\X4\ui_reset_fix。
故意删除 uidata.xml 仍会重置 UI,与原生游戏一样:模组只会恢复存在且为空的文件。
Protected UI Mode。 只有在关闭 Protected UI Mode 时才能加载该 DLL。开启时,只有后备方案生效,模组会告知你这一点。
已在 X4: Foundations 9.00、GOG 版本上测试。Steam 版本尚未测试:如果你在 Steam 上游玩,请反馈其运行情况。
语言: 英语、俄语、德语、法语、西班牙语、意大利语、葡萄牙语(巴西)、波兰语、捷克语、中文(简体与繁体)、日语、韩语。
安装
- 安装前置模组:SirNukes Mod Support APIs。
- 将压缩包解压到游戏的 extensions 文件夹,使其路径为 X4 Foundations\extensions\ui_reset_fix\content.xml。
不要放进
Documents\Egosoft\X4\extensions:游戏无法在那里解析依赖关系。 - 关闭 Protected UI Mode 以获得完整保护:主菜单,Extensions → Protected UI Mode。然后重启游戏。
模组不会改动你的存档,可随时添加。
卸载
- 退出游戏。
- 删除文件夹 X4 Foundations\extensions\ui_reset_fix,包括其中的备份文件夹。
你的存档和 UI 设置保持不变。没有模组时,崩溃仍可能重置 UI 设置,与原生游戏一样。
RU
UI Reset Fix
修复游戏崩溃时界面设置被重置的问题。地图筛选、菜单视图、“不再显示”复选框以及界面模组的设置都会保持你离开时的状态。
问题所在
X4 将所有界面设置保存在一个文件中——Документы\Egosoft\X4 下的 uidata.xml:地图筛选与图层、菜单视图与排序、“不再显示”复选框,以及许多界面模组的设置。
当你按下 “加载” 时,游戏会保存该文件、重新读取它,片刻后又再次写入——而这次写入的是空文件。这个空文件会留在磁盘上,直到下一次完整保存设置,通常要等到退出游戏。如果游戏在这段时间内崩溃,下次启动时就会读取空文件,所有界面设置都会恢复默认值。没有错误,没有警告,日志里没有一行记录。
模组的作用
- 空文件或截断文件不会写入磁盘。 一个小型原生库(DLL)让 uidata.xml 的写入通过临时文件进行。完整文档会立即替换 uidata.xml,空文件或截断文件会被丢弃,旧文件保持不变。真正的 uidata.xml 永远不会是空的或未写完的,即使游戏在写入过程中崩溃。
- 之前被清空的文件会被恢复。 如果游戏启动时 uidata.xml 是空的(由未安装本模组保护时的崩溃留下),模组会从自己的备份中恢复最后一份完整副本。
- 无 DLL 时的后备保护。 在任何模式下,界面设置都会在加载后 3 秒再次保存。这样即使在开启受保护的界面模式时,也覆盖了几乎全部危险时间段。
- 安静。 模组在首次启动时显示一条消息,之后默默工作。其工作消息可通过 Extension Options → UI Reset Fix 中的 “调试” 复选框开启。
DLL 具体做了什么。 它由游戏的界面脚本加载,并替换游戏导入表中的两个 Windows 函数:CreateFileW 和 CloseHandle。只会重定向你配置文件中 uidata.xml 的写入,其他文件不受影响。该 DLL 不会修改磁盘上的 X4.exe,不访问网络,也不依赖游戏版本。
模组文件。 模组将自己的备份和一个小日志(最大 10 KB)保存在自己的文件夹 extensions\ui_reset_fix\backup 中,总共约 370 KB。不会向“文档”文件夹添加任何内容。如果模组文件夹不可写,文件将改为保存到 Документы\Egosoft\X4\ui_reset_fix。
如果故意删除 uidata.xml,界面仍会重置,与原生游戏一样:模组只恢复存在且为空的文件。
受保护的界面模式。 只有在关闭受保护的界面模式时才能加载该 DLL。如果开启,则只有后备保护生效,模组会告知你这一点。
已在 X4: Foundations 9.00、GOG 版本上测试。Steam 版本尚未测试:如果你在 Steam 上游玩,请反馈模组的运行情况。
语言: 英语、俄语、德语、法语、西班牙语、意大利语、葡萄牙语(巴西)、波兰语、捷克语、中文(简体与繁体)、日语、韩语。
安装
- 安装所需模组:SirNukes Mod Support APIs。
- 将压缩包解压到游戏的 extensions 文件夹,使其路径为 X4 Foundations\extensions\ui_reset_fix\content.xml。
不要放进
Документы\Egosoft\X4\extensions:游戏无法从那里找到模组依赖关系。 - 为获得完整保护,请关闭受保护的界面模式:主菜单,Дополнения → Защищенный режим пользовательского интерфейса。然后重启游戏。
模组不会影响存档,可随时安装。
删除
- 退出游戏。
- 删除文件夹 X4 Foundations\extensions\ui_reset_fix,包括其中的备份文件夹。
你的存档和界面设置保持不变。没有模组时,崩溃仍可能重置界面设置,与原生游戏一样。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。