MHR-Editor - 用户存档编辑器

MHR-Editor - 用户存档编辑器

一个用于编辑游戏资产中各种用户数据文件的工具。

Utilities

**这不是存档编辑器** (我真希望我能把那弄大些。)

这是一个用于编辑从游戏资源(pak 文件)中提取的用户文件的工具。

如果你需要更多帮助,可以谷歌搜索“RE Engine”、“RETool”以及其他任何 RE 引擎教程,因为我只会简单介绍如何提取和使用文件。

我来解释一下这个游戏中模组文件和相关内容的工作原理,但剩下的部分需要你自己动脑筋、批判思考、上网搜索并补全。

请勿在压缩包内直接运行此文件!请先解压内容!

如果某个功能不工作,请尽可能提供更多信息!提供尽可能多的信息!

  • 文件路径和名称。
  • 错误信息。
  • 你做了什么导致它的。
  • 你还能想到其他的吗?我没有水晶球;我无法读取你的心思,也看不到你的屏幕。 请像向盲人解释那样,描述你的步骤或错误。
  • 请不要逼我追问,因为如果你只说“某某不管用”,我可能会直接不理你。

当前功能:

  • 可读写约 40% 的 MHR 用户文件。
  • 按下 Ctrl+I 可在网格视图的底部添加一行并滚动到该行。
    • 行应包含默认/空数据,因此不要忘记修改所需内容。
    • 仅仅因为你可以添加一行,并不意味着你应该添加一行。有时游戏会使用硬编码的数组大小。
  • 按下 Ctrl+R 删除所有选中的行/单元格。
  • 如果您从正确的 natives 结构内打开一个文件,编辑器会在打开不支持的文件时发出警告。
  • 数据表格最右侧的 序号 列是你可以在 RE_RSZ 中看到的对象索引。这不是你可以编辑的内容,所以除非你也在使用 RE_RSZ,否则只需忽略它。
  • 许多文件中的“Name”列仅供查阅参考!99% 的文件中并不包含名称。这是从 msg 文件中预先提取的数据。

已知问题:

  • 没有批量编辑或粘贴功能。可能以后也不会有。
  • 枚举标志(位标志)字段仅显示并允许选择单个枚举条目。若需激活多个标志,请使用 RE_RSZ 编辑文件。
    • 这意味着在交换数据库文件中更改枚举字段时会遇到问题。
      • 某些枚举下拉列表内容较长且未排序,查看时很难进行筛选。

正在提取:

  1. 下载 RETool
  2. 下载 MHR 的 文件列表
  3. 编辑 extract-pak.bat 并注意列表文件参数。操作方法如下:
    • 将你下载的列表文件名改为匹配的名称。
    • 或者更改参数以匹配列表文件。
  4. 将要解压的 pak 文件拖拽到 extract-pak.bat 上。不要拖拽 EXE 文件!
    • 再次提醒,使用 bat 文件,不要使用 exe 文件!
    • 这些 pak 文件并非互斥的,而是按时间顺序排列的。pak 编号越高,优先级越高。虽然后续的 pak 文件会包含更新的文件,但未必包含某个内容的所有文件,你可能需要在前面的 pak 文件中寻找这些文件。
  5. 列表文件只是一个包含路径列表的文本文件。仅此而已。如果你只需要提取少量文件,可以编辑或创建一个只包含所需路径的列表文件,然后使用它进行提取。否则你将需要提取整个 100GB 的内容。

常见问题:

  • 如果在 RETools 输出中看到“无法读取 {列表文件}”,则表示你未执行步骤 3。
  • 如果提取出的文件类似 108373695-472378171.tex.760230703,且没有任何 natives 文件夹结构,说明你没有执行第 4 步。
  • “提取已取消:PAK 文件中存在无效条目。请使用未经修改的 PAK 存档重试。” 表示你安装了模组。有关存档失效机制的更多信息,请参阅下方内容。
  • 文件的双重扩展名,尤其是列表文件,是由隐藏文件扩展名导致的。
  • 打开支持的列表中的某个文件时出错:请重新阅读‘提取’部分。您从较早的 pak 中提取了一个过时版本的文件。

制作 pak 文件:

  • 将所有编辑过的文件(你想要添加到模组中的文件)放在某个地方,并保持 natives 文件夹的原有结构!
  • 将包含 natives 文件夹的文件夹拖拽到 create-pak.bat 上。(如果存在对应的游戏专用批处理文件,请使用该文件。)

FMM 与文件加载的工作原理:

  • 目前有三个选项:
    • pak 文件:
      • 这是游戏原生加载 pak 文件的方式,无需外部工具即可支持。
      • 只需将一个 pak 文件放入游戏文件夹,并遵循 pak/补丁命名规则,游戏便会从中加载文件,编号越高的文件优先级也越高。
      • FMM 会自动重命名并管理模组包,因此请使用它。
    • 存档失效:
      • FMM 可以将松散文件( pak 文件)安装到游戏目录下的 natives 文件夹中。
      • FMM 在执行此操作时会显示“在游戏存档中修改了 {n} 个路径”,这是 FMM 使 pak 条目失效的表现。
      • 游戏将始终优先从 paks 加载文件,因此 FMM 会使 pak 文件中的那些条目失效,导致游戏无法在其中找到它们,从而需要到 natives 目录中查找。
      • 这种方法意味着直接修改 pak 文件。这意味着游戏更新会重置这些修改,但会留下 natives 文件,造成混乱。
      • 如果你选择这种方式,在游戏更新时始终清理干净模组安装。(停用所有模组,确认游戏目录中无模组残留,更新游戏,再次激活模组。)
      • 需要 REF! 游戏代码会检测 natives 文件夹,如果存在则会崩溃。REF(使用松散文件加载选项)会修复此问题,禁用该检测。(此修复不会影响性能。)
    • REF 中的“Loose File Loader”:
      • 这只是将文件放入 natives 文件夹,而不通过 FMM 安装任何内容。
      • 由于每个加载的文件都需要额外的逻辑来判断是否在 natives 中并忽略 pak 文件,因此会带来性能损失。
      • 任何声称需要这个的游戏实际上并不需要,并且可以通过上述存档失效方法正常工作。(例如 Mesh Mod Enabler)
      • 基本上只是让游戏优先检查 natives 目录,而不需要使 pak 中的路径失效。
      • 由于 pak 文件未被修改,因此能兼容游戏更新。
    • 原住民先驱
      • 实际上,这的工作原理与 REF 中的“松散文件加载器”相同。
      • 不过,并非所有游戏发行版本都提供这个选项,比如《黑暗之魂 2》中,由于反篡改保护机制的设计,该功能被直接内置在 REF 中。
      • 如果使用较新版本的 REF(例如构建 700+),则可以直接使用“松散文件加载器”代替此方法。

本 mod 当前为游戏 v16 版本构建并支持。大多数小更新不会导致失效或更改。

如果游戏添加新内容或更改结构大小,则需要始终更新以获取新物品名称等信息。

源:https://github.com/Synthlight/MHR-Editor