BWIKI 全站将于 9 月 3 日(全天)进行维护,期间无法编辑任何页面或发布新的评论。
模组:博物馆
← 模组:目录
此页面介绍了自定义博物馆捐赠和奖励的细节。这是面向模组开发者的高级指南。
数据格式
您可以通过新的 Data/MuseumRewards 数据素材来添加/编辑博物馆奖励物品。此素材内含一个“字符串 → 数据模型”查询,其中
- 键为一组奖励的唯一字符串ID。
- 值为包含如下字段的数据模型。
字段 | 效果 | ||||||
---|---|---|---|---|---|---|---|
TargetContextTags | 获得此奖励组所需捐赠的物品。玩家必须捐赠列表中的每一项物品以解锁此组奖励。此字段为包含如下字段的数据模型所组成的列表:
例如,指定上下文标签为 forage_item、最小捐赠数 2 代表了需要捐赠 2 件采集物品。 特殊情况: | ||||||
FlagOnCompletion | (若 RewardItemIsSpecial 为 true,则可忽略)是否将 ID 添加到玩家收到的信件中。这用于追踪玩家是否已经收集奖励,且几乎总是应当设为 true。若此字段被忽略且 RewardItemIsSpecial 为 false,则玩家可以收集此奖励无限多次。默认为 false。
奖励收集后,您可以使用 Content Patcher 的 HasFlag 条件检查此信件表示。 | ||||||
RewardActions | 运行一至多个触发动作字符串。例如,下面的代码给当前玩家 ![]() "RewardActions": [
"AddMoney 500"
]
| ||||||
RewardItemId | (可选)当玩家捐赠了此奖励组所需的物品后,奖励的限定性物品ID。若忽略,则没有奖励物品。 | ||||||
RewardItemCount | (可选)奖励物品的堆叠数量(若支持堆叠)。默认为 1。 | ||||||
RewardItemIsSpecial | (可选)是否将 RewardItemId 标记为特殊的永久物品,即,无法毁灭/丢弃且只能收集一次的物品。默认为 false。 | ||||||
RewardItemIsRecipe | (可选)是否给予玩家产出 RewardItemId 的配方而非物品本身。若奖励物品不是菜肴或打造品(例如非物体),则此字段无效。默认为 false。 | ||||||
CustomFields | 此列表项的自定义字段。 |
如下内容添加了两个奖励(其中一个为设置信件标识,另一个为奖励物品): For example, this content pack adds two rewards (one mail and one item):
{
"Format": "2.7.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/MuseumRewards",
"Entries": {
// send a letter when a specific item is donated
"{{ModId}}_ShinyArtifact": {
"TargetContextTags": [
{
"Tag": "id_{{ModId}}_ShinyArtifact", // unique context tag identifying the item by ID
"Count": 1
},
],
"FlagOnCompletion": true,
"RewardActions": [ "AddMail Current {{ModId}}_ShinyArtifact" ]
},
// give item when 18 minerals are donated
"{{ModId}}_18MineralItems": {
"TargetContextTags": [
{
"Tag": "item_type_minerals",
"Count": 18
},
],
"RewardItemId": "(BC){{ModId}}_SuperMachine",
"RewardItemCount": 1,
"FlagOnCompletion": true
}
}
}
]
}
另请参阅信件数据、自定义物品和自定义机器以添加自定义信件和物品。
成就
全套收集成就的达成条件会被自动调整为需要捐赠包括自定义物品在内的所有物品。然而,这是基于捐赠物品数量计算的,因此捐赠后再移除物品可能会错误地使得博物馆标记为已完成(因为您可能因此达成捐赠数)。