BWIKI 全站将于 9 月 3 日(全天)进行维护,期间无法编辑任何页面或发布新的评论。
模组:被动节日
←目录
此页面解释游戏如何存储和使用被动节日。这是面向模组开发者的高级指南。
概览
被动节日(passive festival)就是夜市这样的节日,其会在特定时期取代一个地点,在此期间玩家可以随时出入节日地点,且时间正常流动。
您可以通过编辑 Data/PassiveFestivals 数据素材来添加或修改被动节日。
数据格式
Data/PassiveFestivals 素材文件内含一个“字符串 → 数据模型”查询,其中:
- 键名为节日的唯一字符串ID。
- 值为包含如下字段的数据模型:
字段 | 效果 |
---|---|
DisplayName | 一个模板字符串,用于在日历上显示节日名称。 |
Season | 节日启动的季节。 |
StartDay EndDay |
节日在当月的起止日期。 |
StartTime | 节日每天的起始时间 |
StartMessage | 一个模板字符串,用于在节日开始时显示一则弹出式通知。 |
MapReplacements | 节日取代的地点。虽然此字段名为替换“地图”,实际上替换的却是地点(例如,可以使用 Content Patcher 向 CustomLocations 添加)。
此字段为一个“字符串 → 字符串”查询,其中键名为欲替代的地点,值为新地点。键和值都应当使用地点内部名称,可使用 Debug Mode 模组查看地点内部名称。下面的示例会在夜市期间将 Beach 替换为 BeachNightMarket 地点: "MapReplacements": {
"Beach": "BeachNightMarket"
}
|
Condition | (可选)一个游戏状态查询,指示此节日是否可用(受其他字段限制,如 StartDay 和 EndDay)。默认为总是可用。 |
ShowOnCalendar | (可选)节日是否会出现在日历上,会使用与夜市相同的铱星图标。默认为 true。 |
DailySetupMethod CleanupMethod |
(可选)一个 C# 方法,可以在节日每天开始时(DailySetupMethod)和/或节日最后一天结束后过夜时(CleanupMethod)执行自定义逻辑。
此字段格式必须为 |
CustomFields | 此节日的唯一字符串 ID。 |
NPC日程
当一个被动节日启动时,NPC 会按如下顺序检查日程键:
语法 | 概述 |
---|---|
<festival ID> _<festival day>
|
应用于指定日期。参数 <festival day> 时相对的,因此 1 对应于节日的 StartDay。示例: NightMarket_3 或 marriage_NightMarket_3 |
<festival ID>
|
若没有具体日期的条目,则应用此条目。 示例:NightMarket 或 marriage_NightMarket |
若 NPC 已婚,则会向日程键添加一个 marriage_ 前缀(例如 marriage_<festival ID>
_<festival day>
),并忽略无此前缀的键。
另请参阅
- 关于花舞节等主动节日,请参阅模组:节日数据。