DupMark

DupMark

厌倦了总是搬运1000+重量的战利品?那本你肯定偷过的书?那件已经放在马背上的胸甲?DupMark直接在物品名称上显示拥有数量,覆盖背包、马匹和仓库,将品质3-4的独特物品以暗金色高亮显示,并展示堆叠总重量。在再次偷窃前,先了解你已拥有什么。

DupMark — 《天国:拯救 II》重复物品标记

KCD2 1.5.6版本 1.0.0许可证 MIT

DupMark — 背包重复物品标记 + 已拥有数量统计 + 稀有物品金色高亮 + 堆叠总重量显示

Mark duplicate items across your bag / horse / stash, show owned counts, highlight rare unique items in gold, and display stack total weight.


✨ Features / 功能

功能 英文说明 中文说明
重复物品标记 Items you already own are annotated with the owned count right after the name 已有物品在名称后标注已拥有数量
背包 ↔ 马包 In the inventory screen, bag items show how many are on your horse ((马:N)/(Horse:N)), and horse items show how many are in your bag 背包界面:背包物品显示马包里的数量,马物品显示背包里的数量
搜刮/仓库界面 Duplicate items in loot/stash show the count on the other side ((背包:N)/(Stash:N)) 搜刮/仓库界面:重复物品标注另一侧数量
金色高亮 Quality 3 & 4 items with no duplicate are highlighted in dark gold (persistent across scroll & focus) 品质 3、4 级且无重复的物品名称高亮为暗金色(滚动/焦点切换不丢失)
堆叠重量 Stacked items show total weight (unit × amount) 堆叠物品显示总重量(单件 × 数量)

📦 Installation / 安装

  1. Releases 页面下载最新版本
  2. 解压 duplicate_item_marker 文件夹到:D:\SteamLibrary\steamapps\common\KingdomComeDeliverance2\Mods\(或你游戏安装的目录)
  3. 启动游戏即可,无需配置

安装(中文)

  1. Releases 页面下载最新版本
  2. 解压 duplicate_item_marker 文件夹到游戏 Mods 目录:D:\SteamLibrary\steamapps\common\KingdomComeDeliverance2\Mods\
  3. 启动游戏即可,无需配置

🎮 Usage / 使用说明

  • 物品栏界面:马包中已有的物品会获得 (Horse:N)/(马:N) 后缀;切换到战马筛选(战马 标签)后,马包物品显示 (Bag:N)/(背包:N)
  • 搜刮/仓库/商店界面:另一列表已有的物品会获得 (Bag:N)/(背包:N) 标记。
  • 金色名称:品质 3–4 级且任何地方都没有重复的物品会显示为暗金色,让你一眼识别稀有独特战利品。
  • 重量显示:堆叠物品显示总重量而非单件重量。

⚙️ Compatibility / 兼容性

  • 游戏版本:1.5.6(manifest 中使用通配符 1.*
  • 冲突:替换了 Libs/UI/ApseInventoryList.gfxLibs/UI/ItemTransfer.gfx请移除其他修改这两个文件的 mod(如 Stack Weight CountedSorted Inventory),否则后加载的 mod 会覆盖先加载的。
  • 冲突注意:本 mod 替换了背包和搜刮界面的 gfx 文件,请移除其他修改这两个文件的 mod(如 Stack Weight Counted、Sorted Inventory),否则后加载的 mod 会覆盖先加载的。

🛠 Technical Notes / 技术说明

  • UI 使用 Scaleform(Flash AS2),封装在 CryEngine CFX 的 SWF 文件中。所有逻辑位于 ItemView.as(单方法修改——这保证了 FFDec 重新编译后与游戏兼容)。
  • 引擎一次性把背包+马的全部数据喂给界面,筛选只控制显示;mod 直接遍历原始数据 Childrens.GetArray(),并通过 InventoryId == g_PlayerId / g_HorseId 区分归属——无需跨 SWF 缓存,永远准确。
  • 金色通过 colorizeName 钩子持久化,滚动/焦点重绘不丢失。
  • 引擎一次性把背包+马的全部数据喂给界面,筛选只控制显示;mod 直接遍历原始数据并按 InventoryId 区分归属,无需跨界面缓存,实时准确。金色通过 colorizeName 钩子持久化。

📁 File Structure / 文件结构

duplicate_item_marker/
├── Data/
│   └── duplicate_item_marker.pak   # modified UI gfx (ApseInventoryList + ItemTransfer)
├── Localization/
│   ├── English_xml.pak             # EN strings
│   ├── Chineses_xml.pak            # Simplified Chinese
│   └── Chineset_xml.pak            # Traditional Chinese
└── mod.manifest

🗺 Roadmap / 路线图

  • 全库存查重 — 集成背包、马、个人储物箱数据,任何界面都显示三处合计数量(True cross-inventory duplicate check — integrate bag + horse + personal stash into one unified view, so any screen shows the full owned count across all three)
  • Steam Workshop 发布 / Steam Workshop release
  • 更多界面(商店、铁匠)/ More UI screens (shop, blacksmith)

📜 License

MIT — 可自由使用、修改和分享。希望注明出处,但不强制要求。


🙏 Credits / 致谢

  • BlueGary233 — 作者 / author
  • Stack Weight Counted by Geariko — 堆叠总重量显示逻辑(Weight × StackAmount)直接改编自该 mod;也验证了最小 CFX 改动可被游戏加载(the stacked-total-weight display logic is directly adapted from this mod; also proof that minimal CFX edits survive the game)
  • HerbCount — 参考了其 Lua 库存计数方案(GetCountOfClass)与本地化打包方式(referenced for the Lua inventory-count approach and localization packaging)
  • allsuppliesweightless — 参考了其 KCD2 pak 结构分析(referenced for KCD2 pak structure, pak = standard zip)
  • LuckLaidBare_roman — 参考了其本地化 pak 结构(referenced for localization pak structure)
  • KCD2 mod 社区与工具 — FFDec / jpexs-decompiler、repak、KCSE(The KCD2 modding community & tools)

用爱发电,FFDec 跑断手。Made with ❤️ and a lot of FFDec CLI.