BWIKI 全站将于 9 月 3 日(全天)进行维护,期间无法编辑任何页面或发布新的评论。
模组:地点上下文
←目录
此页面解释如何编辑和创建地点上下文(location context)。这是面向模组开发者的高级指南。
原版上下文
- 旧版游戏有两个硬编码的地点上下文枚举项:Default(用于星露谷地区)和 Island(用于姜岛地区)。现在,Data/LocationContexts 素材中的数据模型代替了它们。
- 沙漠现在隶属于新增的 Desert 上下文(而不再属于 Default)。旧版中某些硬编码的沙漠逻辑(例如总是晴天)现在被调整为 Data/LocationContexts 上下文数据中的一部分。
格式
可以通过编辑新增的 Data/LocationContexts 素材文件来创建自定义上下文,以及在地点的 LocationContext 地图属性中设置上下文名称。
此素材文件内含一个“字符串 → 数据模型”查询,其中键名与 Name 字段一致,值为包含如下字段的数据模型:
必需字段
字段 | 效果 |
---|---|
Name | 此地点上下文的唯一字符串ID。 |
玩家动作
字段 | 效果 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AllowRainTotem | (可选)是否可以在此处使用雨水图腾来强制明日降雨。若为 false,则在此处使用雨水图腾会显示“该物品无法在此处使用”消息。 | ||||||||||||
RainTotemAffectsContext | (可选)若设置,则在此处使用雨水图腾会改变指定地点上下文的天气。例如,在沙漠中使用雨水图腾会改变星露谷地区的天气。 | ||||||||||||
MaxPassOutCost | (可选)玩家在此地点(由于疲劳或在凌晨 2 点)昏倒,可能丢失的最大金币数。若忽略或设为 -1,则使用与 Default 上下文相同的值(默认为 ![]() | ||||||||||||
PassOutMail | (可选)玩家在此地点(由于疲劳或在凌晨 2 点)昏倒,可能收到的信件的ID(假设之前没有收到过)。若多个信件可用,则会随机选取一个(除非指定了 SkipRandomSelection)。
此字段为包含如下字段的数据模型所组成的列表:
| ||||||||||||
PassOutLocations | (可选)当玩家(由于疲惫或在凌晨 2 时)在此地点晕倒且在另一个地点上下文处开启新的一天,此字段用于指示玩家醒来的地点。(若玩家在同一个上下文晕倒和开启下一天,则会在其睡觉的最后一张床上醒来)。
若选中的地面不包含床且不具有 AllowWakeUpWithoutBed 地图属性,则玩家会在农舍中醒来。 此字段为包含如下字段的数据模型所组成的列表:
若没有指定地点或没有匹配地点,则玩家会在家中的床上醒来。 | ||||||||||||
ReviveLocations | (可选)若玩家在战斗中被打晕,则此字段指示其苏醒位置。
此字段为包含如下字段的数据模型所组成的列表:
若选中的地点有一个键名为 PlayerKilled 的标准事件(键名中不可包含 / 或事件前提),则此事件会在玩家醒过来时播放,且游戏会使用遗失物品或金币逻辑。游戏不会追踪此事件,因此玩家每次苏醒时都会播放此事件。如果没有事件,则玩家醒来时不会丢失物品或金币。 若没有指定地点或没有匹配地点,则玩家会在哈维的诊所醒来。 |
季节
字段 | 效果 |
---|---|
SeasonOverride | (可选)此地点上下文终年保持的季节(取 spring、summer、fall、winter 之一)。例如,将此字段设为 summer 会使得此地点上下文终年为夏季,无论日历上的季节为何。若忽略,则使用日历季节。 |
天气
字段 | 效果 | ||||||||
---|---|---|---|---|---|---|---|---|---|
WeatherConditions | (可选)此地点上下文的各地点的天气逻辑(若指定了 CopyWeatherFromLocation,则忽略此字段)。默认为总是晴天。若设定了多组数据,则使用第一个匹配的。
此字段为包含如下字段的数据模型所组成的列表:
| ||||||||
CopyWeatherFromLocation | (可选)用于拷贝其他地点的天气,此字段应当为欲拷贝地点的 Name(即,唯一 ID)。 |
若此地点上下文中有某个被动节日正处于活跃状态,则无论天气字段为何,游戏中都会是晴天。
音乐
字段 | 效果 | ||||||||
---|---|---|---|---|---|---|---|---|---|
DefaultMusic | (可选)玩家进入该地点时播放的音乐 ID。此字段可以被 Music 地图属性覆盖。虽然此字段名为“默认”音乐,但实际上要比下文提到的季节音乐优先级高。若忽略,则此字段无效。 | ||||||||
DefaultMusicCondition | (可选)一个游戏状态查询,指示是否应当使用 DefaultMusic(如果没有播放更具体的音乐)。默认为总是使用。 | ||||||||
DefaultMusicDelayOneScreen | (可选)当玩家切换地点,音乐改变时,是否静音或播放环境音(若有),直到下一次传送(类似于星露谷地区)。默认为 false。 | ||||||||
Music | (可选)该地点上下文上午播放的声音提示 ID 的列表。若为雨天,或地图具有 Music 地图属性,或该地点上下文 DefaultMusic 字段非空,则不使用此字段。若指定多个值,则会按列表顺序每天选取一首播放。
此字段为包含如下字段的数据模型所组成的列表:
| ||||||||
DayAmbience NightAmbience |
(可选)没有正在播放的音乐时,背景音效的声音提示 ID,这两个字段分别用于白天和晚上。两个字段都默认为空。 | ||||||||
PlayRandomAmbientSounds | (可选)是否基于季节和事件等因素播放随机室外背景音效(例如鸟叫、蟋蟀叫、雨天的嚎叫)。这与 DayAmbience 和 NightAmbience 字段无关。默认为 true。 |
高级
字段 | 效果 |
---|---|
CustomFields | 此列表项的自定义字段。 |