贸易商扩展

创作者: shudnal
已更新:2026-07-20 23:54:28
463KB

关于此 MOD

商人专用的买卖物品列表。商店界面包含出售列表、筛选和修理按钮。支持游戏手柄。商人使用金币。加价和折扣。
贸易扩展



贸易扩展模组添加了商人专属及通用买卖列表、双栏商店界面、物品筛选、修理功能、商人余额、灵活定价、持久回购、可配置货币以及实时同步配置。

功能

  • 商人与通用买卖清单。
  • JSON、YAML、YML 和 CSV 物品配置文件。
  • JSON、YAML 和 YML 个人交易者设置文件。
  • 内置游戏内编辑器,用于商人设置和物品列表。
  • 通过条件配置同步实现实时配置重载与服务器同步。
  • 每个交易商的默认货币以及针对购买和出售条目的每件物品货币覆盖。
  • 支持货币感知的购买、出售、修理、回购、数量对话框、价格图标和余额结算。
  • 在普通物品提示中显示出售价格,按通用值和商人特定值分组。
  • 商人购买列表中适用物品上的不可传送标记。
  • 可选的发现、全局按键和玩家按键要求。
  • 将普通价值为正的ObjectDB物品自动加入公共出售列表(可选)。
  • 可选移除原版或其他模组的购买列表条目。
  • 可配置的商人修理、有限余额、补货、折扣和加价。
  • 可堆叠物品的买入和卖出数量对话框。
  • 按世界时间可配置过期时间的持久化商人回购。
  • 手柄导航与独立买卖筛选。
  • 史诗掉落冒险模式兼容性可按商人配置。
  • 可选的硬币重量和堆叠数量变更。

要求

  • 瓦尔海姆 BepInEx 整合包
  • 条件配置同步
  • Json.NET
  • YamlDotNet

兼容Thunderstore的模组管理器会自动安装这些依赖项。如需手动安装,请先安装依赖项再安装Traders Extended。

物品配置文件

新物品文件应放置在 BepInEx/配置/shudnal.交易者扩展以以下内容开头的旧版文件 舒德纳尔.商人扩展. 在下面的任何地方仍然支持 BepInEx/配置. 物品配置也可以嵌入到程序集中,位于 商人扩展配置.

支持的扩展名:

  • .json
  • .yaml
  • .yml
  • .csv

新文件名使用以下格式:

<trader-or-common>.<buy-or-sell>[.<identifier>].<extension>

示例:

哈尔多.购买.json
哈尔多出售.yaml
希尔德购买
沼泽女巫.sell.csv
common.buy.yaml
common.sell.json
希尔德购买食物基础
希尔迪尔购买食物进度表

传承 舒德纳尔.交易者扩展. 前缀仍然接受,例如 舒德纳尔.贸易商扩展.哈尔多.购买.json编辑器保存时,现有文件保留原始文件名。

可选标识符可包含多个以点分隔的段。它在选择商人和列表类型时会被忽略,仅用于将商人列表拆分到多个便于阅读的文件中。

所有匹配的项目文件均已合并。嵌入式文件优先处理,其下的文件 BepInEx/配置 最后。在每个来源中,文件按文件名处理;各文件内的条目保持其原始顺序。在出售列表中,针对同一物品、品质和堆叠,商人专属条目会覆盖通用条目。

在Windows上,名称不区分大小写。文件内的预制件名称仍区分大小写,因为它们是通过ObjectDB解析的。无效的文件或条目会被记录并跳过,不会阻止其余文件的加载。

可交易物品模型

{
"prefab": "龙蛋",
"stack": 1,
"价格": 500,
“品质”:0,
"currency": "金币",
"requiredGlobalKey": "已击败巨龙",
“notRequiredGlobalKey”: “”,
“requiredPlayerKey”: “”,
未指定玩家键:
}

  • 预设:道具预制体名称。
  • 层叠:价格所涵盖的物品数量。默认为 1小于一的值会禁用该条目。
  • 价格配置堆叠的价格。默认值为 1小于一的值将禁用该项。
  • 品质:必需/生成的质量。0表示购买列表使用默认质量,出售列表不限质量。
  • 货币:此条目的可选货币预制体。它仅覆盖此购买或出售物品的交易者默认设置。
  • 所需全局键:逗号分隔的全局键;所有键都必须存在。
  • 无需全局键以冒号分隔的全局键;其中任何一个都不允许存在。
  • 必需玩家密钥:以逗号分隔的玩家唯一键;必须全部存在。
  • 无需玩家密钥:以逗号分隔的玩家唯一键;不能包含任何已存在的键。

JSON购买清单示例

[
{
"prefab": "龙蛋",
"stack": 1,
价格:500,
“requiredGlobalKey”:“defeated_dragon”
},
{
"prefab": "生肉",
"堆叠": 10,
"价格": 2,
“货币”:“红宝石”
},
{
"prefab": "修炼者",
"堆叠": 1,
"价格": 500,
“品质”:4,
"requiredGlobalKey": "已击败_gdking"
}
]

YAML 出售列表示例

- 预制体:鱼竿
堆叠:1
价格:200

- 预制件:木材
堆叠:50
价格:25
必需的全局键:已击败_gdking

- 预制体:鱼1
数量:5
价格:500
品质:4
红宝石

CSV物品列表示例

第一行包含属性名称。 预制件 必需。当任何行都不使用其他列时,可以省略这些列;省略的值使用与JSON和YAML相同的默认值。

预制体,堆叠,价格,货币,必需全局键
鱼竿,1,200,,
木头,50,25,,defeated_gdking
鱼1,5,500,红宝石,

支持的标头有:

预制体,堆叠,价格,品质,货币,必需全局键,非必需全局键,必需玩家键,非必需玩家键

当字段包含逗号、引号或换行符时,按常规CSV规则为该字段加引号。

个人交易设置

每位商人可能有一个个人设置文件:

<trader>.config.json
<trader>.config.yaml
<trader>.config.yml

示例:

haldor.config.json
希尔德配置
bogwitch.config.yml

传承 舒德纳尔.扩展商人. 前缀仍受现有文件支持。

每个交易者只使用一个逻辑个人文件。个人设置文件名固定,不支持在后面添加标识符后缀。 .config。同一来源中只能包含 JSON、YAML 或 YML 变体中的一种。当同一商人配置在多个来源中时,整个高优先级文件会替换低优先级文件:

下方 BepInEx/config 文件中的内嵌预设

每个部分和字段均为可选。缺少的值会继承对应的已同步 BepInEx 设置。以下示例包含完整支持的个人商人架构,可直接复制、按所需商人重命名并编辑。

个人方案刻意只包含对单个交易者有意义的设置。仅限全局的设置,例如 通用, 金币,自定义商人注册、品质倍率、已装备物品过滤以及全局修理商人列表仍保留在BepInEx配置中。

完成 JSON 个人设置示例

文件名:

haldor.config.json

{
“物品发现”:{
“只出售已发现的物品”: true,
未发现的待售物品列表:
},
"商人修理": {
“武器”:true,
“护甲”: false,
"维修费用": 2,
修复货币:金币
},
“交易者硬币”:{
使用货币:true,
“使用灵活定价”:true
},
“商人定价”:{
补充后货币最低数量: 2000,
每日补充货币数量: 1000,
每日移除的货币量:0,
补充上限后的货币数量: 6000,
“商人折扣”: 0.7,
“商人加价”:1.5,
“货币补充所需天数”: 1,
“早上发送补给消息”:true
},
“商人货币”:{
"Override": "金币"
},
“商人回购”:{
“为最后出售的物品启用回购”:true,
回购有效期(世界秒):1800
},
“杂项”:{
"禁用原版物品": false,
“禁用其他模组物品”: false,
"将常见贵重物品加入出售列表": true,
“商店界面固定位置”: {
"x": 0,
“y”:0
},
"商店界面史诗战利品兼容": true
}
}

完成 YAML 个人设置示例

文件名:

haldor.config.yaml

道具发现率
"仅出售已发现的物品": true
"未发现的物品出售列表": ""

商人修理
“武器”:true
"Armor": false
修复费用: 2
修复货币:金币

商人硬币
“使用货币”:true
“使用灵活定价”:true

商人定价
补货后最低货币数量: 2000
每日补充货币数量:1000
每日移除的货币数量: 0
补货后货币上限:6000
“商人折扣”:0.7
"商人加价": 1.5
货币补充天数:1
“早上发送补给消息”:true

交易货币
"Override": "金币"

商人回购
“为最后售出的物品启用回购”:true
"回购有效期(世界秒)": 1800

杂项:
“禁用原版物品”:false
“禁用其他模组物品”: false
将常见贵重物品加入出售清单:true
商店界面固定位置
"x": 0
"y": 0
“商店界面史诗战利品兼容”:是

商人修理 / 修理货币 是用于在该商人处支付修理费用的物品预制体。它独立于该商人正常的购买、出售、余额和回购货币。

商人货币 / 覆盖 接受一个物品预制体名称,例如 金币, 红宝石,或 呕吐浆果.

杂项 / 商店界面 EpicLoot 兼容 仅为此商人启用史诗战利品冒险模式商店界面位置调整。

杂项 / 商店界面固定位置 必须是带有数字的对象或映射 x 和 y 字段:

{
“杂项”: {
"商店界面的固定位置": {
"x": 100,
纵坐标:-50
}
}
}

回购物品颜色仍是全局 BepInEx 设置,无法被个人交易者文件覆盖。

游戏内配置编辑器

按下 Ctrl+P 或者运行:

商人扩展编辑器

编辑器直接管理文件的位置:

BepInEx/配置/shudnal.商人扩展

已支持的文件按购买物品、出售物品和交易者设置分组显示在左侧。每个条目仅显示交易者预制体、可选标识符和扩展名;完整的原始文件名仍可通过工具提示查看。新建物品列表文件可创建为 JSON、YAML、YML 或 CSV,而个人交易者设置可创建为 JSON、YAML 或 YML。新建文件将省略旧版 舒德纳尔.商人扩展. 前缀。保存时现有文件保留其当前名称。

物品列表文件以可搜索表格形式打开,包含本地化物品名称、紧凑图标、可编辑的预制体和规则字段、多行选择与删除功能,以及物品预制体、货币、全局键和玩家键的选择器。使用 添加物品... 以便在添加多个条目时保持物品选择器打开,然后按 Ctrl+S 保存当前活动文件。编辑数值时,行顺序保持不变。表格下方的专用控件可按需对已存储的列表进行排序、上移或下移单行,以及选择显示哪些列。选中多行时,排序仅限所选行,未选中的行保持原有位置。物品选择器可按预制体或本地化物品名称排序。保存前会验证各行:物品和货币预制体必须存在,配置的键必须存在于对应的编辑器列表中,且同一个键不能同时被设为必需和禁用。无效行会以红色描边标出;无效的物品预制体会将该行图标替换为红色感叹号,其他无效字段则显示为红色文字。大量筛选后的列表会分页显示,以保持编辑器响应流畅。

物品选择器默认隐藏AI装备以及非面向用户或无效的条目。启用 显示所有物品 显示完整的ObjectDB列表。可用的全局键和玩家键列表存储在本地 配置编辑器 / 全局按键 和 配置编辑器 / 玩家按键 设置;可以直接在任一选择器中添加或移除自定义按键,而内置默认按键受到保护。当前活动世界按键和当前玩家的活动玩家按键会在各自的选择器中标记出来。

个人交易者设置使用类型化控件。启用 覆盖 仅适用于该商人应有不同值的项;已禁用的值会继续沿用同步的 BepInEx 配置。物品预制体字段提供可搜索的选择器,商店界面位置则单独编辑。 x 和 y 值。

连接到专用服务器时,编辑器会向服务器请求访问权限,服务器会直接根据其当前的服务器管理员列表检查请求的对等端(管理员列表.txt)。客户端不依赖 本地玩家是管理员或房主() 或本地同步的列表副本。每个文件操作在执行前都会在服务器上重新授权。保存文件时会对其进行验证,将其写入所选的本地或服务器目录,并重新加载 Traders Extended 配置。

编辑器采用英灵神殿分析器风格的窗口行为:监视器感知的 GUI 缩放、英灵神殿无障碍缩放、拖动、从右侧或底部边缘以及右下角手柄调整大小、文件列表与编辑器之间的可拖动分隔条,以及方形滚动条。 阻止输入 可在编辑器标题栏直接修改,也可作为本地BepInEx设置使用。 配置编辑器快捷方式,窗口位置和大小, 缩放, 使用英灵神殿GUI缩放, 字体大小, 文件列表宽度, 显示所有物品、和 可见物品栏 被一起存储在本地 配置编辑器 章节。 可见物品栏 是一个使用标记的逗号分隔列表 预制体, 名称, 层叠, 价格, 品质, 货币, 必需全局键, 屏蔽的全局键, 所需玩家密钥,以及 被屏蔽玩家键.

自定义货币

普通的 BepInEx 设置 商人货币覆盖 接受以逗号、分号或换行分隔的配对:

哈尔多:红宝石,希尔迪尔:金币,沼泽女巫:天界羽毛

左侧是商人预制体/名称,右侧是作为该商人默认货币的物品预制体。默认设置适用于购买、出售、商人余额和回购。修理费用使用单独的 商人修理 / 修理货币 设置。

个人商人设置文件可以设置 商人货币 / 覆盖 为该商人的一种货币预制件。任何购买或出售列表条目随后都可以用自己的货币再次覆盖商人货币。 货币 领域。

金额对话框、可负担性检查、列表图标、出售收益、回购和实际交易均使用所选条目的货币。无效的货币预制体会被记录,并回退到商人的常规货币。

价格提示

在出售配置中有条目的物品会获得一个 商人价值 在普通提示框中显示该部分。显式通用值优先显示,随后显示交易者特定值。自动生成的通用值在针对每个已知交易者启用时显示为通用;否则仅对个人或BepInEx设置启用的交易者显示。 将常见贵重物品添加到出售列表.

当特定交易商价值的适用价格、堆叠和有效货币与显式通用价值重复时,该交易商价值不会重复出现。受需求条件限制的价格仅在满足其全局键和玩家键要求时显示。

发现

当 只出售已发现的物品 启用后,已配置的购买物品仅在本地玩家发现后才会出现。将预制体名称添加到 未发现的待售物品列表 绕过此检查。这些设置可按交易者分别覆盖。

维修

配置好的商人可以修理支持的武器或护甲。每个个人商人文件可以独立启用武器和护甲修理,并覆盖修理费用和修理货币。缺失的值将继承全局BepInEx修理设置。

商人余额与灵活定价

当商人余额启用时,出售会减少商人余额,购买会增加余额。余额会按配置的天数间隔补充,并可能影响折扣或加价。每个商人的余额规则可以独立覆盖。

自定义商人可以通过以下方式注册: 自定义商人预制体名称、物品配置或个人交易者设置文件。

服务器管理员可以通过以下方式设置平衡:

设置交易者金币 <交易者预制体> <数量>

当省略数量时,将使用该商人配置的补货最小值。即使商人使用自定义货币,该命令名称也会保留以实现向后兼容。

回购

每个商人分别保存回购物品。卖给一个商人的物品无法从另一个商人处购回。

回购数据保存在角色的自定义数据中,并按世界标识符分组,因此登出后仍会保留,且不会在世界之间泄漏。 回购在世界中的存在时间(秒) 控制过期时间。将其设置为 0 保留回购条目,直到它们被替换或购买。

史诗战利品兼容性

BepInEx设置 商店界面位置偏移的商人 列出在史诗战利品冒险模式激活时商店面板发生偏移的商人。默认值为 哈尔多个人交易者文件会覆盖此行为,覆盖方式为 杂项 / 商店界面 EpicLoot 兼容性 给那个商人。

控制台导出

商人扩展存档 [json|yml|csv]

将完整的对象数据库物品列表保存到 BepInEx/配置/shudnal.商人扩展省略格式时使用 JSON。

商人扩展存档
商人扩展保存 JSON
商人扩展保存yml
商人扩展保存CSV

生成的文件名为 ObjectDB.list.json, 对象数据库列表.yml,或 对象数据库列表.csv每个条目包含物品预制体及其默认价格,因此该文件可作为商人物品配置的起点。

商人扩展物品列表

将筛选后的物品列表写入 BepInEx/config/shudnal.TradersExtended/ItemList.csv该导出内容包括每个物品的预制体、本地化名称、出售价值,以及在适用情况下的商人购买价格、堆叠数量和商人预制体。

手柄操作

  • 左摇杆:滚动购买列表。
  • 右摇杆:滚动出售列表。
  • 方向键:浏览两个列表。
  • Xbox 按 X / PlayStation 按方块键:出售选中的物品。
  • 备用动作键 + Xbox 的 A 键 / PlayStation 的叉键:打开数量对话框。
  • 右摇杆按下:修理物品。

兼容性

  • 与AUGA及其他替换原版商店界面的模组不兼容。
  • 旨在与添加商人物品或修改原版物品价值的模组保持兼容。
  • 支持使用原版的自定义商人 商人 和 商店界面 实现。
  • 通过其API程序集支持额外槽位和Azu扩展玩家物品栏集成。

安装

复制 商人扩展 整理到 BepInEx/plugins 并安装所有必需的依赖项。然后可以将配置文件放在以下位置 BepInEx/配置.

配置界面

内置编辑器可处理商人扩展物品文件和个人商人设置。常规BepInEx配置仍可通过配置管理器编辑:


链接

Valheim: 英灵神殿 的热门 MOD

探索适用于 Valheim: 英灵神殿 的最佳MOD,带来新功能、升级画面,以及令人兴奋的方式来改变您的游戏体验。

使用 Xmod 解锁 Valheim: 英灵神殿 的全部潜力 — 今天就探索这些顶级 MOD!