Repository navigation
Integrated Mod Manager v4.8.0
基于 v4.7.3 的 Windows x64 版本,包含 #93–#104 和 #110–#125,修复 #105–#109。Windows x64 release based on v4.7.3, covering #93–#104 and #110–#125, and fixing #105–#109.
中文
4.8 重新设计了整个界面,并修复了五处可能误删文件或留下失效链接的问题。这五个问题在 4.7.3 及更早版本中都存在,建议所有用户升级。管理 Mod 的方式、保存的数据和在线请求都与 4.7.3 相同。
数据安全修复
- 开关单个 Mod 时删除了 Mod 本身(#105):如果 Mod 所在的文件夹和加载器的目标文件夹是同一个、一个在另一个里面,或者通过目录联接指向同一处,双击、按钮或键盘开关单个 Mod 时,可能把仓库里的 Mod 原件当成要清理的部署删掉。现在开关前先检查两边是否重叠,重叠时不做任何备份、复制或删除,并在提示里写出两个路径。组合预设原来就有这项检查。
- 启动时清理预设图片删到了外部文件(#106):预设图片文件夹或其中的子文件夹如果是目录联接或符号链接,启动时的清理会顺着它删除别处的文件。现在清理不进入任何链接,只删除管理器自己写的预设图片和临时文件,其余文件保留,并在日志里写明跳过的原因。
- 加载器文件夹不可用时仍能删除 Mod(#109):设置了加载器文件夹、但它暂时不可用(例如所在的磁盘没有连接)时,删除 Mod 不会检查加载器里还有没有指向它的链接,删除后这些链接就失效了。现在只要加载器文件夹不可用或链接扫描失败,单个删除和批量删除都会停下,并说明文件夹恢复后如何重试。4.7.0 已经处理了“无法确认链接”的情况,这次补上了文件夹不可用的情况。
- 复制模式恢复组合预设时删除了同名文件夹(#107):复制模式只按文件夹名称识别已部署的 Mod,所以加载器文件夹里一个与 Mod 同名、但不是管理器复制过去的文件夹,可能在恢复预设时被删除。现在管理器会记录自己复制过去的文件夹(记录在设置文件里,不写入 Mod 文件夹),只删除自己的副本:
- 4.8 之前复制的、没有记录的文件夹,只有文件列表和每个文件的大小都与仓库里的 Mod 一致时,才会自动认领;改动过的副本不会被认领。
- 其他同名文件夹在恢复预览里列为“外部文件夹”,不会被删除或覆盖;需要替换它时恢复会停下。如果它其实是你以前部署后又改过的副本,可以在预览里点“接管”。
- 重命名角色后链接和保存的路径失效(#108):重命名角色只移动了文件夹,加载器里的部署链接,以及组合预设、状态槽位、按键绑定、标签、角色跟随等保存的路径仍然指向旧名字。现在重命名会一并更新这些链接、路径和复制模式的记录;任何一步失败(包括保存设置失败),文件夹、链接和设置都会恢复原状,无法恢复的项目会列出来。新名字已被占用、加载器文件夹不可用,或者有链接读不出来时,会在开始前说明原因并停止。
新的界面
- 外观:左侧导航栏,窗口较宽时显示文字;标题栏中间是搜索框(Ctrl+K 打开命令面板,可以在设置里隐藏);更新和下载的数量显示在导航栏上。颜色跟随 Windows 的强调色,支持浅色、深色和高对比度主题。
- 仪表盘:点仓库名就能切换仓库;“打开 Mod 管理”等常用操作改成卡片,文字不再被截断;三个路径收进一个可展开的区域,标题显示已设置和缺少的数量,缺少必需的路径时自动展开。
- 首次安装:选择游戏的对话框改为卡片;之后会依次提示“新建仓库”“设置路径”“打开 Mod 管理”三步,可以随时跳过。全新安装不会显示“新功能”对话框。
- Mod 工作区:常用命令放在命令栏里;分栏的宽度可以拖动调整,并会记住;窗口较窄时 Mod 详情以抽屉方式打开;扫描时显示进度,扫描出错时可以直接重试;删除按钮统一为红色。
- 在线:切换角色不再等待淡出动画,立即生效;详情改为更宽的抽屉,窄窗口下覆盖在结果上方,并有“返回结果”按钮;加载中显示与当前视图一致的占位,没有结果时可以一键清空筛选,列表加载失败时在工具栏下方显示错误和“重试”,不再弹出对话框;窗口很小时角色栏会收进工具栏。
- 更新:顶部显示检查状态和“立即检查”,部分 Mod 检查失败时可以只看失败的 Mod;内容分成“Mod 更新”“下载历史”“安装与恢复”三个视图,记住上次打开的视图。
- 快捷键:一列卡片,从上到下依次是发送目标、状态、按键绑定和设置;权限不足时显示提示,并可以直接以管理员身份重启;每条绑定显示按键和来源;全局快捷键改为开关,选好组合后立即生效,不再需要“应用”。
- 设置:卡片式布局;窗口较宽时分成设置和信息两栏,并尽量让两栏一样长。
- 对话框:按钮直接写明动作(删除、替换、恢复、重命名、安装……),不再是“确定”;删除、移除和覆盖使用固定的红色按钮,默认选中“取消”,按 Enter 或 Esc 都会取消;恢复预设、安装组合包和整理导入的预览按“将添加 / 将移除 / 保留 / 跳过”分组并显示数量;表单的错误显示在对应输入框下方,多步流程显示“第 n 步,共 m 步”;出错时可以查看并复制详细信息(错误类型、信息、调用栈和日志位置)。
- 命令面板:结果按页面、角色、Mod 和命令分组。
速度与修复
- 设置、仪表盘、更新和快捷键四个页面改为第一次打开时才创建,启动快约 80–120 毫秒(从进程启动到窗口显示)。
- 点击导航后,页面先显示出来,其余工作随后进行;各页面从点击到显示的时间缩短约 10–80 毫秒。
- 修复开发过程中出现的返回仪表盘时闪退(#102):当前仓库没有文件夹时,仪表盘的角色列表反复出现和隐藏滚动条,导致布局循环。这个问题只出现在 4.7.3 之后的开发版本里,4.7.3 不受影响。
- 解压 ZIP 时在写入文件前再检查一次条目路径(#93)。原来的检查已经能阻止写到目标文件夹以外,这次只是让代码扫描能识别出来,行为不变。
- 界面内部拆分成独立的页面和服务(阶段 J0–J8 及收尾第 1–3 步),以便以后修改和测试。部署、移除、组合预设恢复、状态槽位保存、F10 时机、在线请求、下载和安装的结果都没有改变,并由自动测试在每一步核对。
升级
- 4.7.3 及更早的正式版可以在软件内更新,也可以下载完整 ZIP;旧配置可以直接使用。
- 升级后第一次启动会显示一次 4.8 新功能说明。
- 4.8 会在设置文件里新增几项:更新页的视图、是否显示标题栏搜索框、Mod 工作区的分栏宽度,以及复制模式部署的记录。降级回 4.7.3 时这些设置会被忽略,复制模式会回到按文件夹名识别的旧方式。
尚未在真实游戏中核对的功能
4.8.0 没有等这些核对完成就发布。以下 9 项只用模拟环境和自动测试核对过,还没有在真实游戏中验证。如果在游戏里遇到问题,请到 GitHub Issues 或反馈群(设置 → 诊断与问题报告)报告,并附上 startup.log 和 app-errors.log:
- 以管理员身份和普通身份运行时,权限提示是否正确,“以管理员身份重启”是否可用。
- 开启输入后,在页面和浮窗上点“发送”都能触发 Mod,扫描码和虚拟键两种方式都要确认。
- 全局快捷键:关闭再打开、换一个组合,都能在游戏里立即生效。
- 无边框窗口模式下浮窗的鼠标穿透、用快捷键找回鼠标、紧凑布局和拖动。
- 浮窗自动对比度在明亮和昏暗场景下的表现。
- 从浮窗热切换状态槽位(F10),以及随后的“已发送 F10,请在游戏中确认”提示。
- 从浮窗保存组合预设和单个 Mod 预设,包括截图和不截图两种情况。
- 角色跟随:框选 HUD 区域、保存参考图、跟随切换。
- 修改加载器自动保存间隔前会先询问,并备份
d3dx.ini。
已知问题与验证边界
- 在线页计划中的网格布局、搜索建议、可移除的筛选标签、可搜索的角色列表和用空格键加入批量操作尚未实现;更新页还没有“全部更新”。
- 高对比度主题、讲述人和键盘 Tab 顺序没有逐页手动检查。
- 新增的俄语文字尚未经过母语者审校。
- 设置页在卡片之间切换仍需约 0.1 秒,原因尚未确认。
- 在线详情页偶发闪退(#15)仍未复现;现在界面中任何未处理的异常都会写入
startup.log,出现时日志会给出原因。 - 删除 Mod(含批量删除)是永久删除,不进回收站。
- 第三方 Mod 与加载器可能导致账号处罚。发布包按 AGPL-3.0-only 分发,见 许可证说明;验证结果见 验证记录。
English
4.8 redesigns the whole interface and fixes five problems that could delete the wrong files or leave broken links. All five are in 4.7.3 and earlier, so every user should upgrade. How Mods are managed, the data the app saves and its online requests are the same as in 4.7.3.
Data safety fixes
- Turning a single Mod on or off could delete the Mod itself (#105): when the Mod's folder and the loader's target folder were the same folder, one inside the other, or the same place through a junction, turning a single Mod on or off (double-click, button or keyboard) could treat the repository's original as a deployment to clean up and delete it. The two folders are now checked for overlap first; if they overlap, nothing is backed up, copied or deleted, and the message names both paths. Combination presets already had this check.
- The preset picture cleanup at startup could delete files elsewhere (#106): if the preset picture folder, or a folder inside it, was a junction or symbolic link, the cleanup at startup followed it and deleted files outside. The cleanup now never enters a link and deletes only the preset pictures and temporary files the manager wrote; anything else is kept, and each skip is logged with the reason.
- A Mod could be deleted while the loader folder was unavailable (#109): with a loader folder set but unavailable for the moment (for example on a disconnected drive), deleting a Mod didn't check whether the loader still had links to it, so those links broke. Single and batch delete now stop whenever the loader folder is unavailable or the link scan fails, and explain how to retry once the folder is back. 4.7.0 already covered links that couldn't be checked; this adds the unavailable folder.
- Restoring a combination preset in copy mode could delete a same-named folder (#107): copy mode recognised a deployed Mod by folder name only, so a folder in the loader folder with the same name as a Mod, but not copied there by the manager, could be deleted during a restore. The manager now records the folders it copies (in its settings file, never inside Mod folders) and only removes its own copies:
- A folder copied before 4.8, without a record, is claimed automatically only when its file list and every file size match the repository Mod; an edited copy is not claimed.
- Any other same-named folder is listed in the restore preview as an external folder and is never deleted or overwritten; a restore that would need to replace it stops. If it is a copy you deployed earlier and then edited, "Take over" in the preview makes it count as the Mod's deployment.
- Renaming a character left links and saved paths behind (#108): renaming only moved the folder, so the loader's deployed links and the saved paths in combination presets, state slots, key bindings, tags and character follow still pointed at the old name. A rename now updates those links, paths and copy-mode records together. If any step fails, including saving the settings, the folder, links and settings are put back as they were, and anything that couldn't be restored is listed. A rename stops before it starts, with the reason, when the new name is taken, the loader folder is unavailable, or a link can't be read.
A new interface
- Look: a navigation pane that shows labels on wide windows; a search box in the middle of the title bar (Ctrl+K opens the command palette; the box can be hidden in Settings); update and download counts on the navigation items. Colours follow your Windows accent, with light, dark and high-contrast themes.
- Dashboard: click the repository name to switch repositories; quick actions such as "Open Mod management" are cards whose text is no longer cut off; the three paths sit in one section whose header shows how many are set and missing, and which opens by itself when a required path is missing.
- First install: the game choice shows each game as a card, followed by tips that point in turn at New repository, the paths and Open Mod management; they can be skipped at any time. A new install doesn't show the "what's new" dialog.
- Mod workspace: the common commands are in a command bar; the columns can be resized by dragging and keep their widths; on narrow windows Mod details open in a drawer; scans show progress, and a failed scan can be retried in place; delete buttons are red.
- Online: switching characters no longer waits for a fade-out; details open in a wider drawer that covers the results on narrow windows, with a "Back to results" button; loading shows placeholders shaped like the current view, an empty result offers to clear the filters, and a failed list load shows an error bar with Retry under the toolbar instead of a dialog; in very small windows the character rail folds into the toolbar.
- Updates: a status area at the top with "Check now", and a filter to just the Mods whose check failed; three views (Mod updates, Download history, Install and recovery), and the page remembers the last one.
- Shortcuts: one column of cards: send target, status, key bindings, then settings. A notice appears when the manager has fewer rights than the game, with "Restart as administrator"; each binding shows its keys and where it comes from; the global hotkey is a switch, and a chosen combination applies at once with no "Apply" button.
- Settings: card layout; on wide windows a settings column and an information column, kept about the same length.
- Dialogs: buttons name their action (Delete, Replace, Restore, Rename, Install…) instead of "OK"; delete, remove and overwrite use a fixed red button with Cancel selected, so Enter and Esc both cancel; the previews for restoring a preset, installing a bundle and the organised import are grouped (will add / will remove / kept / skipped) with counts; form errors appear under their field, and multi-step flows show "Step n of m"; errors have details (type, message, stack and log location) you can view and copy.
- Command palette: results are grouped into pages, characters, Mods and commands.
Speed and fixes
- The Settings, Dashboard, Updates and Shortcuts pages are now created the first time they are opened, so the app starts about 80–120 ms faster (process start to the window showing).
- After a navigation click the page shows first and the rest of the work follows; each page appears about 10–80 ms sooner.
- Fixes a crash when returning to the Dashboard (#102) that appeared during development: with no folders in the current repository, the Dashboard's character list kept showing and hiding its scroll bar until the layout gave up. It only affected development builds after 4.7.3; 4.7.3 itself is not affected.
- ZIP extraction checks each entry's path once more right before writing (#93). The existing check already stopped writes outside the destination; this only lets code scanning see it, and behaviour doesn't change.
- Inside, the interface is split into separate pages and services (stages J0–J8 and finishing steps 1–3) so it is easier to change and test. The results of deploying, removing, restoring combination presets, saving state slots, F10 timing, online requests, downloads and installs are unchanged, and automated tests checked them at every step.
Upgrade
- 4.7.3 and earlier stable releases can update in the app, or download the full ZIP. Existing configuration works as is.
- The first start after upgrading shows the 4.8 "what's new" dialog once.
- 4.8 adds a few entries to the settings file: the Updates page view, whether the title-bar search box shows, the Mod workspace column widths, and the copy-mode deployment records. Going back to 4.7.3 ignores them, and copy mode goes back to recognising folders by name.
Not yet confirmed in a real game
4.8.0 ships without waiting for these checks. The nine items below were checked only with a simulated setup and automated tests, not yet in a real game. If you run into a problem in game, please report it on GitHub Issues or in the feedback groups (Settings → Diagnostics and Issue Report), with startup.log and app-errors.log:
- Running as administrator and not: the rights notice is right, and "Restart as administrator" works.
- With input on, Send on the page and on the overlay both trigger the Mod, in scan-code and virtual-key modes.
- The global hotkey: switching it off and on, and choosing another combination, take effect at once in game.
- The overlay in borderless-window mode: click-through, getting the mouse back with the hotkey, compact view, dragging.
- Overlay automatic contrast over bright and dark scenes.
- Hot-switching a state slot from the overlay (F10), followed by "F10 sent, please confirm in game".
- Saving the combination preset and the single-Mod preset from the overlay, with and without screenshots.
- Character follow: selecting the HUD area, saving references, following.
- Changing the loader auto-save interval asks first and keeps a backup of
d3dx.ini.
Known issues and verification limits
- The Online page's planned grid layout, search suggestions, removable filter tags, searchable character list and Space to add a Mod to the batch are not built yet, and the Updates page has no "Update all".
- High-contrast themes, Narrator and keyboard Tab order were not walked through page by page.
- The new Russian text has not been reviewed by a native speaker.
- Switching between Settings cards still takes about 0.1 s; the cause isn't confirmed.
- The occasional crash on the Online details page (#15) is still not reproduced. Any unhandled exception in the interface is now written to
startup.log, so the log will name the cause if it happens. - Deleting Mods, including batch delete, is permanent and doesn't use the Recycle Bin.
- Third-party Mods and loaders may lead to account penalties. The package is AGPL-3.0-only; see LICENSING. Results are in the verification record.