Skip to content

自定义商人库存

你可以使用 addStock 标签和库存文件来定义自定义商人库存。

img

特性变更

CWL 1.19.21 已移除添加自定义库存时对 Merchant 特性的要求,这主要是一项 API 变更。如果你没有使用 CWL API,仍建议给你的角色添加 MerchantMerchantXXX 特性,以便能够与其进行交易。

库存文件是一个简单的 JSON 文件,放置在你的 LangMod/**/Data/ 文件夹中,文件名为 stock_ID.json。其中 ID 是该库存文件或角色的唯一标识符。例如:stock_my_cnpc.jsonstock_unique_armor.json

使用 addStock 标签时,库存 ID 默认使用角色 ID。你也可以通过多个标签指定或组合多个库存文件,例如: addStock,addStock_unique_items,addStock_unique_armor

库存文件的结构如下:

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
    },
    {
      "Id": "SpShutterHex",
      "Num": 5,
      "Type": "Spell"
    }
  ]
}

Items 是一个包含库存物品的数组。

字段说明

  • Id 物品(Thing)的 ID。此字段必需。 对于某些库存类型,此处可以是元素的别名、数字 ID 或名称。
  • Material 物品所使用的材质。留空则使用 Thing 数据中定义的默认材质。 默认值:""
  • Num 物品数量。 默认值:1
  • Restock 决定物品是否会补货。 设置为 false 表示该物品为限量,只能购买一次。 默认值:true
  • Rarity 可选值:RandomCrudeNormalSuperiorLegendaryMythicalArtifact 默认值:Normal
  • Identified已弃用,但仍可使用) 决定物品初始是否已鉴定。 默认值:true
  • IdentifyLevel新增) 决定物品初始的鉴定状态。 可选值:IdentifiedRequireSuperiorIdentifyKnowQualityUnknown 默认值:Identified
  • Blessed 决定物品的祝福状态。 可选值:DoomedCursedNormalBlessed 默认值:Normal

注意事项

  • 你可以省略任意字段以使用其默认值。 例如,以下是一个有效的库存物品定义:
json
{
  "Id": "example_item"
}

支持的物品类型

Type说明
Item标准物品。支持材质、等级和堆叠数量。
Block可放置的方块物品,由方块别名和材质生成。
Cassette音乐磁带。如果 bgm id 无效,则使用随机曲目。
Currency货币物品。Id 可以是 moneymoney2platmedalinfluencecasino_coinecopoNum 表示金额。
Category从分类中生成物品。
Filter根据过滤器生成物品。Id 为过滤器名称。
Tag根据标签生成物品。Id 为标签名称。
Letter信件物品。Id 为信件名称。
ObjObj 对象。Id 为对象别名。
Perfume香水。Id 为元素别名或 ID。
Plan计划书。Id 为元素别名或 ID。
Potion药水物品。Id 为元素别名或 ID。Num 定义堆叠数量。
Recipe用于合成的配方物品。
RedBook红皮书物品。Id 为书籍 ID。Num 定义堆叠数量。
Rod魔杖物品。Id 为元素别名或 ID。Num 定义充能次数或堆叠数量。
Rune符文物品。Id 为元素别名或 ID。
RuneFree免费符文物品。Id 为元素别名或 ID。
Scroll卷轴物品。Id 为元素别名或 ID。
Skill技能书。Id 为元素别名或 ID。
Spell法术书。Id 为元素别名或 ID。
Usuihon特殊物品。Id 为宗教 ID。

如果你没有使用代码编辑器,可以使用 JSONLint 来验证你的 JSON 格式。

关于 API 的相关用法,请参阅 Custom Merchant API

规格变更

  • CWL 1.22.14 新增 IdentifyLevel 字段,用于自定义鉴定等级。此变更可选且向下兼容。
  • CWL 1.19.21 新增 Identified 字段,允许出售未鉴定的物品。此变更向下兼容。
  • CWL 1.18.13 移除了 Owner 字段并新增 Rarity 字段,改为基于库存 ID 而非角色 ID 进行索引。此变更向下兼容。

This project is an unofficial documentation site and is not affiliated with, endorsed by, or associated with Elin or Lafrontier / Noa. All trademarks are the property of their respective owners.