game background image

KCD合并

作者:ZaAl最后更新:2026-04-02 17:02:4361930.1MB

天国:拯救 KCD合并-1-奇游Mod大师

Mod简介

在常规模组加载顺序系统下,冲突的XML文件及数据行会被覆盖,最终仅保留一项修改生效。KCDMerge通过ID匹配行记录并将数值变更整合为单一合并模组来解决此问题。该工具同样支持
下载

  • 自成一体的 — 包含 .NET 运行时,解压即可运行
  • 框架依赖 — 需要安装 .NET 8.0 运行环境


v1.3.0 版本更新说明

  • PTF输出模式 — 新增默认模式:生成的补丁表仅包含被修改的行
  • 建筑重构 — 核心逻辑已抽离为独立服务,以提升稳定性
  • 改进的文件处理 — 模组新增的 XML 文件不再错误生成 .tbl 文件
  • 日志降噪 — 将冗长的逐行日志替换为结构化摘要块
  • 稳健的桌子检测 — 优化PK模式缓存,修复_key后缀列的索引越界错误


v1.2.2 更新内容

  • PAK大小上限已修复 — 修复了因2GB限制导致的存档拆分问题。CryEngine不支持Zip64格式。
  • 代码重构 — 通过更清晰的架构提升了维护性
  • 临时路径一致性 — 临时文件使用可设定的临时路径(默认 Windows 临时文件夹)
  • TempPath 清理 — 合并后会自动清理临时文件


v1.2.0 更新内容

  • 补丁PAK支持 — 游戏文件已正确解压
  • 检测到资产-XML 自动检测并合并包含XML的非.xml文件(例如.adb动画数据库)
  • 飞行前检查 — 所有MOD的PAK文件及输出PAK均已通过可读性验证,方可继续处理。
  • 支持Zip64格式 — 现在输出PAK文件可超过2GB,不再出现崩溃或损坏问题
  • 增强版错误提示信息 — 当PAK文件被锁定或路径无效时的可操作指引
  • 日志留存控制 — 新增日志保留数量配置,仅保留最近N条日志文件
  • 用户配置日志清理 — 现在清除KCDMerge日志时,也会同步清理CryEngine日志文件
  • XPath 改进 — 优化了非表格XML中对重复同级元素及子树替换的处理
  • 调试索引文件 — PAK索引文件已写入临时文件夹,便于排查问题


安装

  • 下载对应的ZIP文件
  • 解压到文件夹
  • 运行KCDMerge.exe
  • 解决冲突
  • 学习总结
  • 若遇疑问,可查看日志文件
  • 专家: 调整 config.yaml(选项详见 Readme.md)

简要概览

此工具使用非常安全,不会修改游戏文件或其他模组。
我已用几十个模组测试过,基本覆盖了常见的模组情况。
该工具也可能修复老旧或构建不当的设备。
更多详情请参阅 Readme.md 文件。

合并管道

1. 索引原始游戏PAK文件(首次运行后缓存)
扫描所有模组并追踪XML与资源文件
3. 对于模组修改的每个 XML 文件:
a. 从游戏PAK文件加载原版基准
b. 计算差值(各模组与原始版本的差异)
c. 按加载顺序优先级应用增量
d. 检测并解决模组之间的冲突
e. 写入合并结果
4. 复制非XML资源(冲突时采用赢家通吃规则)
5. 将所有文件打包为PAK格式
6. 输出合并后的模组,以供游戏加载

XML合并类型

KCDMerge会自动检测XML结构并应用正确的策略:

  • 数据表
    • 检测: 行数 + PK + 数值列
    • 策略: Delta归一化,属性覆盖
    • 用户提示? 仅在冲突中
  • 连接表
    • 检测: 仅限PK列的行
    • 策略: 集合操作(添加/删除行)
    • 用户提示? 按模组决策
  • 哈希表
    • 检测: 包含非唯一键的表
    • 策略: 按内容哈希进行行集对比
    • 用户提示? 只在冲突时
  • 非表格XML
    • 检测: 行为树、流程图等
    • 策略: 基于XPath的递归合并
    • 用户提示? 仅在冲突中
  • 本地化
    • 检测: 本地化/PAK 中的文件
    • 策略: 首格合并行
    • 用户提示? 仅限冲突
  • PTF补丁
    • 侦测中: filename__modname.xml pattern = 模组名称文件.xml 模式
    • 策略: 已按行键合并至基础文件
    • 用户提示? 仅在冲突中
本地化

本地化文件(位于 `Localization/{语言}_xml.pak` 内的 `text__ModName.xml`)将按特殊方式处理。

  • 每种语言独立合并(英语与英语合并,德语与德语合并,以此类推)
  • 行以第一个单元格的值(翻译键)作为索引。
  • 所有模组的翻译会叠加合并
  • 冲突(两个模组对同一词条翻译不同时)会触发冲突解决器
  • 输出为每种语言的合并PTF文件:“text__KCDMerge.xml”

资产

资源文件仅可作为完整文件获取。
冲突需分主次。


用户配置文件


检测到的所有独立.cfg文件将被合并至user.cfg中。
冲突根据变量名识别,并相应应用其值。


补丁包处理

每个包含多个PAK文件(基础+补丁)的模组,在开始处理前会按模组进行索引。
  • 每个文件仅保留最新版本(依据ZIP条目修改日期)
  • 补丁PAK文件正确覆盖基础PAK文件
  • 调试索引文件已写入临时文件夹,供排查问题使用


Delta缓存

KCD合并已缓存计算出的差异(即每个模组相对于原版的修改),以加快后续运行速度。
缓存会在模组的PAK文件变更时自动失效。


故障排除


如果出了什么问题:
  • 打开生成的日志文件(KCDMerge-[时间戳].log)查看详细错误信息
  • 检查合并摘要表,查看是否有警告或错误
  • 在 ModConflictRules.yaml 中查看冲突处理决策
  • 验证所有模组PAK文件均可访问(游戏必须已关闭)



最坏情况恢复

如果游戏无法加载或运行异常:
  • 删除 "KCDMerge" 模组文件夹
  • 从 mod_order.txt.backup 恢复 mod_order.txt
  • 从 user.cfg.backup 恢复 user.cfg
  • 重新启动游戏
本工具由三方[bufftool]提供Attention Nomal
下载

立即下载模组

下载客户端搜索天国:拯救后使用Mod大师工具。