自定义商人库存
您可以使用标签 addStock
和一份库存文件来自定义商人的库存。
Trait 需求移除
CWL 1.19.21 移除了 Merchant
Trait 需求,这主要是一个 API 改动。如果您不使用 CWL API,您的角色还是需要 Merchant
或者 MerchantXXX
Trait 使其可以交易。
库存文件是一个简单的 JSON 文件,放置在您的 LangMod/**/Data/
文件夹中,名称为 stock_ID.json
,此ID是库存文件的独特ID或者您的角色ID。
使用 addStock
标签时,CWL 会默认使用与该角色ID相同的库存ID。您也可以使用 addStock_ID
标签来指定特定库存,省去为多个角色定义重复库存的麻烦。
使用多个标签可以组合特定库存,例如 addStock,addStock_armor,addStock_weapon
。
json
{
"Items": [
{
"Id": "example_item",
"Material": "",
"Num": 1,
"Restock": true,
"Type": "Item",
"Rarity": "Random",
"Identified": true
},
{
"Id": "example_item_limited",
"Material": "granite",
"Num": 1,
"Restock": false,
"Type": "Item",
"Rarity": "Artifact",
"Identified": true
},
{
"Id": "example_item_craftable",
"Material": "",
"Num": 1,
"Restock": false,
"Type": "Recipe",
"Rarity": "Random",
"Identified": true
}
]
}
Items
是库存中物品的列表。
Id
是物品的 ID。Material
是您希望其作为的材料,留空以使用在物品行中定义的默认材料。默认值为""
。Num
是堆叠中物品的数量。默认值为1
。Restock
定义它是否为限时物品,当设置为false
时,只能购买一次。默认值为true
。Type
可以是Item
(物品)、Recipe
(配方) 或Spell
(法术书)。默认值为Item
。Rarity
是物品的稀有度,Random
,Crude
,Normal
,Superior
,Legendary
,Mythical
,Artifact
。默认值为Normal
。Identified
定义它购买时是否已鉴定。默认值为true
。
任何您希望使用默认值的字段,都可以省略。例如,这是一个合法的库存物品:
json
{
"Id": "example_item"
}
如果您不使用代码编辑器,您应该使用 JSONLint 来验证您的 JSON。
代码API相关,请查看Custom Merchant API。
格式变动
- CWL 1.19.21 版本后新增了
Identified
字段,可以定义物品鉴定状态。这项改动兼容旧版本格式。 - CWL 1.18.13 版本后移除了
Owner
字段,并新增了Rarity
字段,改为由库存文件名作为库存ID的方式进行索引。这项改动兼容旧版本的格式。