模组:地點數據
← 目錄
此頁面解釋如何創建和編輯遊戲內的地點。
術語
某些術語可能含義相同,也可能在不同語境下含義不同。在星露谷物語的語境下:
- 地點是指遊戲代碼和存檔數據的一部分。它管理遊戲中的區域及其內容物(包括諸如玩家的非地圖實體)。地點可以被存檔文件讀寫,並且僅在加載存檔文件時被加載。
- 地圖是一種素材文件,它描述遊戲內區域的地塊布局、地塊表和地圖/地塊屬性。每次加載存檔時或每次模組改變地圖時地圖會被重新加載。
- 世界地圖是遊戲內菜單中顯示的地圖圖像。
換而言之,地點(遊戲代碼的一部分)是指地圖(從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 | 齊先生的核桃房。 |