模组:地点数据
← 目录
此页面解释如何创建和编辑游戏内的地点。
术语
某些术语可能含义相同,也可能在不同语境下含义不同。在星露谷物语的语境下:
- 地点是指游戏代码和存档数据的一部分。它管理游戏中的区域及其内容物(包括诸如玩家的非地图实体)。地点可以被存档文件读写,并且仅在加载存档文件时被加载。
- 地图是一种素材文件,它描述游戏内区域的地块布局、地块表和地图/地块属性。每次加载存档时或每次模组改变地图时地图会被重新加载。
- 世界地图是游戏内菜单中显示的地图图像。
换而言之,地点(游戏代码的一部分)是指地图(从Content加载的数据):
┌──────────────────┐ │ - 地点 │ │ - 物体 │ │ - 家具 │ │ - 作物 │ │ - 灌木和树 │ │ - 村民和玩家 │ │ - 其他 │ │ │ │ ┌─────────────┐ │ │ │ 地图素材 │ │ │ │ - 地块布局 │ │ │ │ - 地图或地块属性 │ │ │ │ - 地块表 │ │ │ └─────────────┘ │ └──────────────────┘
数据格式
可以通过编辑Data/Locations素材以添加或编辑地点。
此素材为一个“字符串 → 数据模型”查询,其中:
- 键为地点的唯一字符串ID(即“内部名称”)。该键名也会被用作地点的Name字段(而非DisplayName)。(农场则会使用Farm_
<type key>
代表原版农场类型,或Farm_<type ID>
代表自定义农场类型,或Farm_Standard代表没有特别指定类型。) - 值为包含如下字段的数据模型:
基本信息
字段 | 效果 | ||||||||
---|---|---|---|---|---|---|---|---|---|
DisplayName | (可选,但强烈建议) 用于显示翻译后地点名的模板字符串。此字段用在原版或模组需要显示地点名称的场合。 | ||||||||
DefaultArrivalTile | (可选,但强烈建议) 玩家通过未指定地块位置的传送到达该地点后,默认到达的地块位置。默认为none,也就是通常会把玩家放在(0, 0)。 | ||||||||
CreateOnLoad | (可选) 若设置,则加载存档使用此数据文件时会自动创建地点。
此字段为包含如下字段的数据模型:
| ||||||||
CanPlantHere | (可选) 作物和树木在默认情形下是否能够种植和生长于此。除非相应的种植规则字段重写此字段,否则默认使用此字段。农场默认为true,其他位置默认为false。 | ||||||||
ExcludeFromNpcPathfinding | (可选) 村民在不同地点间寻路时是否忽略此地点。默认为false。 |
内容
字段 | 效果 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ArtifactSpots | (可选) 可以在此地点通过挖掘远古斑点找到的物品。
在生成古物时,首先会将此字段的物品与Default条目的物品混合,按照Precedence值排序,然后选取字段匹配成功的第一个物品。 (远古斑点掉落物也可由Data/Objects的Miscellaneous字段给出;其会被应用于DefaultArtifactSpots中的RANDOM_ARTIFACT_FOR_DIG_SPOT条目。) 此字段为一个由下列字段组成的模型的列表:
例如,如下字段所在的地点会在夏日以50%的概率掉落2-4条河豚: "ArtifactSpots": [
{
"Condition": "LOCATION_SEASON Here summer",
"ItemId": "(O)128",
"MinStack": 2,
"MaxStack": 4
}
]
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
FishAreas | (可选) 此地点的不同钓鱼区域。鱼类可以通过FishAreaId字段引用此数据。此字段可以指示蟹笼所收集的鱼类。
此字段为一个“字符串 → 数据模型”查询,其中键为钓鱼区域的ID,值为包含如下字段的数据模型所组成的列表:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
Fish | (可选) 此地点能抓住的鱼。
在选择鱼类时,此字段会与Default的对应字段混合,然后按照Precedence值排序(并随机打乱有相同优先级的条目),最后选择第一个字段匹配的条目。 注意:产出物品的ID会被自动保存,以便稍后重新创建鱼类。任何与此ID无关的物品信息将被自动忽略(例如堆叠数量、品质、例如蓝莓果酒-果酒的风味变种和is-recipe标识)。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
Forage | (可选) 该地点可能生成的采集品。
说明:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
MinDailyWeeds MaxDailyWeeds |
(可选) 一天中生成杂草的最低和最高值(若适用)。默认为1和5。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
FirstDayWeedMultiplier | (可选) 用于每年的第一天,计算生成杂草的倍数。默认为15。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
MinDailyForageSpawn MaxDailyForageSpawn |
(可选) 一天中尝试生成的采集品最小和最大数量(若适用且地点当前采集品数小于MaxSpawnedForageAtOnce)。默认为1和4。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
MaxSpawnedForageAtOnce | (可选) 地图上允许生成的采集品最大数量。达到此数量会自动停止生成采集品。默认为6。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
ChanceForClay | (可选) 挖掘地块产出粘土的概率,为 0(从不)到 1(必然)之间的数值。 |
音乐
字段 | 效果 | ||||||||
---|---|---|---|---|---|---|---|---|---|
Music | 可选 玩家进入此地点时播放的音乐(受制于诸如MusicContext的其他字段)。
会使用此字段中第一个匹配的列表项。若没有匹配的,则默认使用MusicDefault。 此字段为由包含如下字段的数据模型所组成的列表:
| ||||||||
MusicDefault | 可选 当Music列表中各项均不匹配时的默认音乐。若此项为空,则使用Music地图属性(若已设置)。 | ||||||||
MusicContext | 可选 此地点的音乐上下文。推荐的值为Default或SubLocation。默认为Default。
设为SubLocation会产生如下效果:
| ||||||||
MusicIgnoredInRain | 可选 当此地点下雨时是否忽略此音乐。默认为false。 | ||||||||
MusicIgnoredInSpring MusicIgnoredInSummer MusicIgnoredInFall MusicIgnoredInWinter |
可选 指定季节是否忽略地点音乐。默认为false。 | ||||||||
MusicIgnoredInFallDebris | 可选 秋季风天是否忽略地点音乐。默认为false。 | ||||||||
MusicIsTownTheme | 可选 是否与鹈鹕镇的音乐逻辑相同,也就是:在每日音乐结束之后开始播放,并且在玩家进入室内区域后继续播放,但在进入与此地点Music或MusicIsTownTheme不同的户外区域就会停止播放。默认为false。 |
高级
字段 | 效果 |
---|---|
CustomFields | 可选 此项的自定义字段。 |
FormerLocationNames | 可选 可能出现在存档文件中的地点曾用名。参见“是否可以重命名地点?”以获得更多信息。 |
默认条目
Data/Locations素材文件中有一个名为Default的地点。此地点的 ArtifactSpots、Fish 和 Forage 字段会自动添加到其他地点的相应字段,因此可以使用此地点来配置所有地点的远古斑点/鱼类/采集品。
问答
如何在游戏中前往自定义地点?
向Data/Locations添加地点仅意味着游戏中存在这个地点了,所以不要忘记添加到达此地点的方法。为此,通常可以在 Content Patcher内容包使用EditMap以添加传送点。
如需快速测试新地点,可以使用控制台命令中的debug warp
来直接传送到此地点。
<location name>
如何设置地点解锁条件?
有很多方式来设置解锁条件。例如,可以在使用Content Patcher内容包中使用EditMap以添加解锁条件或待清理的障碍物(例如道路滑坡)。
注意: 解锁条件仅应决定地点能否抵达,而不应决定地点存在与否。这是因为移除地点会导致其内部的所有东西永久删除。
是否可以重命名地点?
若不加以注意,重命名地点会导致玩家对旧名称对应地点的一切更改永久丢失。
可以通过配置Data/Locations的FormerLocationNames字段以避免上述问题。若存档数据中存在匹配FormerLocationNames的地点名称,并且该名称不能匹配已加载地点的名称,则其数据会被加载到指定FormerLocationNames字段的地点中。
例如:
"FormerLocationNames": [ "Custom_SomeOldName" ]
地点曾用名可以采用任意格式,但必须全局唯一。无论原版还是模组,一个地点的曾用名不能匹配Data/Locations中其他任何的地点的Name或FormerLocationNames。
地点名称
游戏中的地点是由GameLocation类(及其子类)表示的,且具有唯一名称。
如下是一些原版地点:
名称 | 类 | 描述 |
---|---|---|
Farm | StardewValley.Farm | 鹈鹕镇农场的室外区域。 |
FarmHouse | StardewValley.Locations.FarmHouse | 农舍内部。 |
FarmCave | StardewValley.Locations.FarmCave | 农场的蝙蝠/蘑菇山洞。 |
Town | StardewValley.Locations.Town | 鹈鹕镇的室外区域。 |
JoshHouse | StardewValley.GameLocation | 亚历克斯/乔治/艾芙琳的房子。(Josh是亚历克斯的曾用名。) |
HaleyHouse | StardewValley.GameLocation | 海莉/艾米丽的房子。 |
SamHouse | StardewValley.GameLocation | 山姆/乔迪/肯特/文森特的房子。 |
Blacksmith | StardewValley.GameLocation | 克林特的铁匠铺。 |
ManorHouse | StardewValley.Locations.ManorHouse | 镇长刘易斯的房子。 |
SeedShop | StardewValley.Locations.SeedShop | 皮埃尔的杂货店(同时也是卡洛琳/阿比盖尔的房子以及教堂) |
Saloon | StardewValley.GameLocation | 星之果实餐吧(也是格斯的房子) |
Trailer | StardewValley.GameLocation | 潘姆/潘妮的拖车。 |
Hospital | StardewValley.GameLocation | 哈维的诊所 |
HarveyRoom | StardewValley.GameLocation | 哈维诊所楼上的房间 |
Beach | StardewValley.Locations.Beach | 鹈鹕镇南端的沙滩。 |
ElliottHouse | StardewValley.GameLocation | 沙滩上艾利欧特的小屋。 |
Mountain | StardewValley.Locations.Mountain | 深山的室外区域,也就是木匠商店、莱纳斯的帐篷以及探险家公会的所在地。 |
ScienceHouse | StardewValley.GameLocation | 木匠的商店 |
SebastianRoom | StardewValley.GameLocation | 木匠的商店地下室的塞巴斯蒂安的房间。 |
Tent | StardewValley.GameLocation | 莱纳斯的帐篷。 |
Forest | StardewValley.Locations.Forest | 农场南端的煤矿森林。 |
WizardHouse | StardewValley.Locations.WizardHouse | 法师/拉斯莫迪斯的法师塔。 |
AnimalShop | StardewValley.GameLocation | 玛妮的牧场 |
LeahHouse | StardewValley.GameLocation | 莉亚的农舍 |
BusStop | StardewValley.Locations.BusStop | 农场和鹈鹕镇之间的巴士站。 |
Mine | StardewValley.Locations.Mine | 矿井的第一间房,也就是矮人商店的所在地。 |
Sewer | StardewValley.Locations.Sewer | 科罗布斯商店所在的下水道。 |
BugLand | StardewValley.Locations.BugLand | 下水道的突变虫穴。 |
Desert | StardewValley.Locations.Desert | 卡利科沙漠,即桑迪的绿洲商店以及骷髅洞穴所在地。 |
Club | StardewValley.Locations.Club | 桑迪绿洲商店的齐先生赌场。 |
SandyHouse | StardewValley.GameLocation | 绿洲,也就是桑迪的商店。 |
ArchaeologyHouse | StardewValley.Locations.LibraryMuseum | 鹈鹕镇的博物馆,位于铁匠铺南端。 |
WizardHouseBasement | StardewValley.GameLocation | 法师塔的地下室。 |
AdventureGuild | StardewValley.Locations.AdventureGuild | 探险家公会,也是马龙和吉尔的房子。 |
Woods | StardewValley.Locations.Woods | 煤矿森林被大圆木挡住的秘密森林。 |
Railroad | StardewValley.Locations.Railroad | 深山北部的铁路,也是温泉的所在地。 |
WitchSwamp | StardewValley.GameLocation | 巫婆沼泽,女巫小屋的所在地。 |
WitchHut | StardewValley.GameLocation | 女巫小屋内部。 |
WitchWarpCave | StardewValley.GameLocation | 铁路右上可以进入的洞穴,会将玩家传送至巫婆沼泽。 |
Summit | StardewValley.Locations.Summit | 铁路北端的顶峰。 |
FishShop | StardewValley.Locations.FishShop | 威利的鱼店。 |
BathHouse_Entry | StardewValley.GameLocation | 温泉的入口房间,通往男/女更衣室。 |
BathHouse_MensLocker | StardewValley.GameLocation | 温泉男更衣室。 |
BathHouse_WomensLocker | StardewValley.GameLocation | 温泉女更衣室。 |
BathHouse_Pool | StardewValley.Locations.BathHousePool | 温泉内部的浴池。 |
CommunityCenter | StardewValley.Locations.CommunityCenter | 社区中心内部。 |
JojaMart | StardewValley.Locations.JojaMart | Joja超市内部。 |
Greenhouse | StardewValley.GameLocation | 玩家农场的温室。 |
SkullCave | StardewValley.GameLocation | 卡利科沙漠骷髅洞穴入口。 |
Backwoods | StardewValley.GameLocation | 农场北边、巴士站西边的边远森林,通往巴士隧道或深山。 |
Tunnel | StardewValley.GameLocation | 巴士站西部黑暗的隧道。 |
Trailer_Big | StardewValley.GameLocation | 社区升级后潘姆/潘妮的房子内部。 |
Cellar | StardewValley.Locations.Cellar | |
Cellar2 | StardewValley.Locations.Cellar | |
Cellar3 | StardewValley.Locations.Cellar | |
Cellar4 | StardewValley.Locations.Cellar | |
BeachNightMarket | StardewValley.Locations.BeachNightMarket | 夜市期间鹈鹕镇的南部。 |
MermaidHouse | StardewValley.Locations.MermaidHouse | 夜市的美人鱼船内部。 |
Submarine | StardewValley.Locations.Submarine | 夜市潜艇内部。 |
AbandonedJojaMart | StardewValley.Locations.AbandonedJojaMart | 废弃Joja超市内部,即遗失的收集包所在地。 |
MovieTheater | StardewValley.Locations.MovieTheater | 取代Joja超市的电影院的内部。 |
Sunroom | StardewValley.GameLocation | 卡洛琳位于皮埃尔杂货店内的阳光房。 |
BoatTunnel | StardewValley.Locations.BoatTunnel | 鱼店后面威利的船。 |
IslandSouth | StardewValley.Locations.IslandSouth | 姜岛南部,即玩家登陆和度假村所在地。 |
IslandSouthEast | StardewValley.Locations.IslandSouthEast | 姜岛东南部,即美人鱼和海盗湾所在地。 |
IslandSouthEastCave | StardewValley.Locations.IslandSouthEastCave | 海盗湾。 |
IslandEast | StardewValley.Locations.IslandEast | 姜岛东部,即雷欧小屋所在地。 |
IslandWest | StardewValley.Locations.IslandWest | 姜岛西部,即农舍和贝啼的小屋所在地。 |
IslandNorth | StardewValley.Locations.IslandNorth | 姜岛北部,即火山和蜗牛教授帐篷所在地。 |
IslandHut | StardewValley.Locations.IslandHut | 姜岛上雷欧小屋的内部。 |
IslandWestCave1 | StardewValley.Locations.IslandWestCave1 | 姜岛五彩水晶谜题所在洞穴。 |
IslandNorthCave1 | StardewValley.Locations.IslandLocation | 姜岛的蘑菇洞穴,即蜗牛教授受困之处。 |
IslandFieldOffice | StardewValley.Locations.IslandFieldOffice | 蜗牛教授的岛屿办事处帐篷。 |
IslandFarmHouse | StardewValley.Locations.IslandFarmHouse | 姜岛农舍内部。 |
CaptainRoom | StardewValley.Locations.IslandLocation | 姜岛西部沉船。 |
IslandShrine | StardewValley.Locations.IslandShrine | 姜岛丛林东部的区域。 |
IslandFarmCave | StardewValley.Locations.IslandFarmCave | 姜岛的饕餮青蛙洞穴。 |
Caldera | StardewValley.Locations.Caldera | 火山地牢最后的火山口。 |
LeoTreeHouse | StardewValley.GameLocation | 雷欧的树屋。 |
QiNutRoom | StardewValley.Locations.IslandLocation | 齐先生的核桃房。 |