[
{
"Id": "MyMod.MyMailId", // 信件 ID。為了避免衝突,該 ID 必須是唯一的字串。此外,它不應包含空格。
"GroupId": "MyMod.MyGroupId", // 信件群組 ID。具有相同群組 ID 的信件絕不會在同一天投遞。先註冊的信件具有優先權,除非組 ID 以“.Random”結尾,在這種情況下,將隨機選擇一封信件。預設值為 null。
"Title": "我的信件標題", // 信件標題。將顯示在收藏選單中。如果您不想讓該信件出現在收藏中,請將其設為 null 或刪除此行。如果提供了翻譯文件,您應該在此輸入翻譯關鍵字,但如果沒有標題,您仍然可以將其保留為 null。
“Text”:“親愛的@^這是我的自訂郵件。” // 信件正文。您可以使用@輸入玩家姓名,使用^輸入換行符。您還可以使用基礎遊戲命令添加金錢、物品和其他物品。如果提供了翻譯文件,您應該在此輸入翻譯代碼。
"RandomlyChooseAttachment": 2, // 如果設定了數字,則將從附件清單中按群組隨機選擇指定數量的項目。預設值為 null。
"RandomlyChooseAttachmentPerGroup": { "CaveItems": 3 }, // 如果此處設定了組別和數量,系統將使用該數量來拾取物品,而不是 RandomlyChooseAttachment 中設定的數量。預設為空。
"AttachmentGroupWithReplacement": [ "CaveItems" ], // 預設情況下,附件會從清單中隨機選擇,無需替換。如果您希望選擇替換附件,請將群組新增至清單。如果您未新增群組,請使用空字串。預設值為空列表。
"Attachments": [ // 附件清單。刪除該屬性則不將項目附加到郵件。
{
"Type": "Object", // [Object|BigCraftable|Tool|Ring|Furniture|Weapon|Boots|DGA|QualifiedItemId|None] 必填。待添加物品的類型。若未提供,則該物品將被忽略。 「None」在日誌中始終會被忽略且不會出現錯誤,因此當您希望計算不添加附件的機率時,應使用此參數。
"Name": "Cave Carrot", // 用來尋找項目索引。如果使用自訂物件(例如 Json Assets 物件),則需要提供此項。使用 DGA 時,應提供完整的 DGA ID。如果未提供,則將使用索引。預設值為 null。
"Index": "(0)78", // 項目的索引。應為符合條件的項目 ID(字串形式),但為了相容於後續操作,也可使用整數形式。如果未提供名稱或未找到與名稱對應的項目,則使用索引。否則,將忽略該附件。如果類型為 DGA,則忽略該附件。
"Stack": 1, // 待投遞物品的堆疊值。僅用於 Objects 和 BigCraftable。預設值為 1。
"Quality": 2, // 待交付物品的品質值。僅適用於對象。 0 = 無,1 = 銀,2 = 金,4 = 銥。預設值為 0;
"RequireMailReceived": [ "jojaVault", "ccVault" ], // 要求收到一封郵件。遊戲清單中還包含其他非郵件內容,例如社群中心旗幟。預設為 null,表示不要求收到郵件。
"RequireAllMailReceived": false, // 如果為 true,則要求「RequireMailReceived」清單中的所有郵件都已接收。預設為 false。
"ProbabilityWeight": 1, // 此附件在選擇投遞哪個附件時的權重。此參數會將給定組中所有附件的權重相加,並計算出一個機率,將該權重除以總權重。預設值為 1。
"RandomGroup": "CaveItems" // 隨機選擇物品時,根據找到的群組將清單分組,並從每個群組中選取設定的數量。預設值為空字串,用作預設群組。
},
{
"Type": "Tool", // 使用工具時,只能附加支援的工具。
"Name": "Axe", // [斧頭|鋤頭|噴壺|鎬|鐮刀|金色鐮刀|牛奶桶|剪刀|釣竿|平底鍋|回禮杖] 工具必需。支援的工具名稱。否則,附件將被忽略。
"UpgradeLevel": 1 // 工具的升級等級。常規工具:0 = 石質,1 = 銅質,2 = 鋼質,3 = 金質,4 = 銥質。釣竿:0 = 竹竿,1 = 訓練竿,2 = 玻璃纖維竿,3 = 銥質竿。其他類型忽略。預設值為 0。
},
{
"Type": "DGA", //DGA項目
"Name": "spacechase0.DynamicGameAssets.Example/My Custom Item", // 使用完整的 DGA ID。必填。
"Stack": 10, // 待投遞物品的堆疊值。僅用於 Objects 和 BigCraftable。預設值為 1。
"Quality": 2 // 待交付物品的品質值。僅適用於對象。 0 = 無,1 = 銀,2 = 金,4 = 銥。預設值為 0;
},
{
"Type": "QualifiedItemId", //任何支援的物品
"Index": "(0)78", // 某商品的合格商品 ID。
"Stack": 10, // 待投遞物品的堆疊值。僅用於 Objects 和 BigCraftable。預設值為 1;
"Quality": 2 // 待交付物品的品質值。僅適用於對象。 0 = 無,1 = 銀,2 = 金,4 = 銥。預設值為 0;
}
],
"Recipe": "Recipe Name", // 如果您不想在郵件中附加配方,請刪除此行。此操作僅在郵件中沒有其他附件時有效。對於 DGA 配方,僅使用 ID 部分(省略 ModID)
"AdditionalMailReceived": ["MyMod.AnotherMailId", "VANILLA_FLAG"], // 使用此項目為 MailReceived 清單新增附加文字。可用於新增原版標誌或其他 MFM 字母 ID。
"MailReceivedToRemove": ["MyMod.AnotherMailThatNeedToBeResent","MyMod.SomeFlagThatWasLockingSomeFeature"], //要從 MailReceived 清單中移除的文字。這可用於觸發新郵件、事件、原始標誌,以及阻止其他 MFM 郵件的發送…
"LetterBG": "CustomLetterBG.png", // 內容包中包含要使用的自訂字母背景的檔案的名稱。它應遵循與遊戲 LetterBG 檔案相同的結構。 WhichBG 將與此字母的此文件相關聯。如果為空或已移除,模組將使用遊戲 LetterBG。
"WhichBG": 0, //字母背景的 id。 0 = 經典,1 = 記事本,2 = 金字塔
"TextColor": -1, //刪除此行即可使用預設顏色。如果設定了 CustomTextColor,則會被忽略。 -1 = 深紅色,0 = 黑色,1 = 天藍色,2 = 紅色,3 = 藍紫色,4 = 白色,5 = 橙紅色,6 = 檸檬綠,7 = 青色,8 = 深灰色
"CustomTextColorName": "White", //文字的顏色。 [http://www.foszor.com/blog/xna-color-chart/] 預設會使用 TextColor 屬性。
"UpperRightCloseButton": "CustomCloseButton.png", // 內容包包含要使用的自訂關閉按鈕的檔案的名稱。其尺寸應為 12 x 12。如果為空或已移除,則將使用預設按鈕。
"ReplyConfig": { // 如果您希望玩家在閱讀信件後發送回复,則會顯示回复選項,並根據玩家的回復添加一個或多個“ReceivedMail”。任何與回覆相關的附加邏輯都需要基於新增的 ReceivedMail 來實現。
"QuestionKey": "MyMod.MyMailId.Question", //用於標識您的問題的按鍵。它僅供內部使用,但在您的內容包中應該是唯一的,以避免回覆之間發生衝突。
"QuestionDialog": "發送回复,選擇您的獎勵:", //您的問題或文字將顯示在回复選項中。如果提供了翻譯文件,您應該在此輸入翻譯關鍵字。
"回覆": [
{
"ReplyKey": "MyMod.MyMailId.Reply1", //問題回覆之間必須是唯一的。
"ReplyOptionDialog": "我想要種子。", //回覆清單中顯示的選項文字。如果提供了翻譯文件,請在此輸入翻譯關鍵字。
"RequireMailReceived": [ "jojaVault", "ccVault" ], // 要求收到一封郵件。遊戲清單中還包含其他非郵件內容,例如社群中心旗幟。預設為 null,表示不要求收到郵件。
"RequireAllMailReceived": false, // 如果為 true,則要求「RequireMailReceived」清單中的所有郵件都已接收。預設為 false。
"MailReceivedToAdd": [ "MyMod.MyMailId.PlayerSeedOption" ], // 要加入 MailReceived 清單的文字。這可用於觸發新郵件、事件、原始標誌,以及阻止其他 MFM 郵件的發送…
"MailReceivedToRemove": [ "MyMod.MyMailId.PlayerSapplingOption" ], //要從 MailReceived 清單中移除的文字。這可用於觸發新郵件、事件、原始標誌,以及阻止其他 MFM 郵件的發送…
"ReplyResponseDialog": "您要求種子的信件已發送。", //選擇此回覆選項後顯示的文字。如果提供了翻譯文件,請在此輸入翻譯關鍵字。
"Cost": 50 //玩家選擇此選項所需的金錢金額。如果玩家選擇此選項,金額將立即從玩家的金錢中扣除。務必提供一個無需花費的選項,否則你可能會軟鎖定玩家。
}
]
},
"Repeatable": false, // 若為 true,模組將不會檢查信件 ID 是否已投遞。預設值為 false。
"AutoOpen": false, // 若設定為 true,模組會在滿足條件後,於每日開始時開啟信件。信件 ID 將被標記為已讀,如果設定了配方,則會學習該配方。由於信件永遠不會顯示,因此標題、文字、背景等視覺屬性以及附件將永遠不會被使用。
// 交貨條件
//以下是交付條件。如果您不想檢查該條件,請刪除任何行。
"Date": "10 spring Y1", // 必須是該日期或之後的日期。格式為「[1-28] [spring|summer|fall|winter] Y[1-999]」。
"Days": [7,14,21,28], // 必須是清單中的某一天。
"Seasons": ["fall"], // 必須是清單中的季節之一。 [spring|summer|fall|winter]
"Weather": "sunny", // 必須是遊戲天氣。格式為“[sunny|rainy]”。
「HouseUpgradeLevel」:2,//房屋升級等級必須等於或高於定義的等級。 0 - 初始房屋(沒有理由使用它,只需刪除該行),1 - 廚房,2 - 二樓,3 - 地窖。
"DeepestMineLevel": 80, // 最深礦井等級必須等於或高於定義值。 120 是礦井的最後一層,121 是骷髏洞穴的第一層。
「CurrentMoney」:10000,//目前金額必須等於或高於定義金額。
「TotalMoneyEarned」:500000,//總收入必須等於或高於定義值。
"FriendshipConditions": // 清單中的每個 NPC 都必須檢查所有條件。
[
{
"NpcName": "Lewis", //NPC 的名稱。可以使用自訂 NPC。
"FriendshipLevel": 8, // NPC 的友誼等級必須等於或高於定義的值。預設值為 0。
"FriendshipStatus": ["Dating","Engaged","Married"] // [Friendly|Dating|Engaged|Married|Divorced] 要求 NPC 的友誼狀態必須為清單中的一項。刪除則不要求提供狀態。
}
],
"SkillConditions": // 清單中每項技能的等級必須等於或高於定義等級。可以使用原版遊戲中所有已編碼的技能,包括運氣技能。無法使用自訂技能。
[
{ "技能名稱": "農業", "技能等級": 1 }
],
"StatsConditions": // 清單中每個統計資料的值必須等於或高於定義值。請選擇 StatsName 或 StatsLabel
[
{
"StatsName": "CheeseMade", //[種子播種|物品運送|物品烹飪|物品製作|雞蛋產出|鴨蛋產出|牛奶產出|羊奶產出|兔毛產出|羊毛產出|CheeseMade|山羊乳酪產出|松露發現|石頭收集|岩石壓碎|泥土鋤頭|兒童破碎次數|平均禮物寢採時間|釣魚樹砍|岩石壓碎|泥鋤頭|破碎倍率|平均禮物寢採時間|釣魚次數|岩石沖獲量|集|怪物殺死|鑽石發現|稜柱形ardsFound|OtherPreciousGemsFound|CaveCarrotsFound|CopperFound|IronFound|CoalFound|CoinsFound|GoldFound|IridiumFound |BarsSmelted|BeveragesMade|PreservesMade|PiecesOfTrashRecycled|MysticStonesCrushed|DaysPlayed|WeedsEliminated|SticksChopped|NotesF ound|QuestsCompleted|StarLevelCropsShipped|CropsShipped|ItemsForaged|SlimesKilled|GeodesCracked|GoodFriends|IndividualMoneyEarned]預設值為空。
"StatsLabel": "Name", // [exMemoriesWiped|childrenTurnedToDoves|trashCansChecked|boatRidesToIsland|beachFarmSpawns|hardModeMonstersKilled|timesEnchanted] 這是目前透過標籤標識的遊戲統計數據,如果新增更多標籤,則應支援。它還可以標識其他模組添加的自訂統計資料標籤。預設值為 null。
「金額」:1 // 狀態金額應等於或大於條件有效。
}
],
"CollectionConditions": // 清單的每個收集條件必須具有等於或高於定義數量的值。
[
{
"Collection": "已發貨", //[已發貨|魚|文物|礦物|烹飪|製作] 必填。
"Name": "Oil", //已棄用,改用 ID。 “Crafting”系列物品或配方的名稱。如果不是製作系列,則會在物品清單中尋找該名稱以尋找索引。如果未找到該名稱,則忽略該字母。將與其他屬性合併。預設值為 null。
"Index": 211, //已棄用,使用 ID 代替。對象的索引。將與其他屬性合併。預設值為 null。
"Ids": [ "282", "MossSoup" ], //物品 ID 或合成配方名稱。將與其他屬性合併。金額將被相加,以便與 Amount 屬性進行比較。
"Amount": 10 // 集合中物件的總數量應等於或大於該條件才有效。
}
],
"SpecialDateCondition": // 必須是該日期或該日期之後。
{
"SpecialDate": "ChildBirth", //[婚禮|ChildBirth] 必填
"YearsSince": 1, //自日期發生以來的年數。 0 表示與實際日期匹配,1 表示與後續年份相符。預設值為 0。
"WhichChild": 1 //如果 SpecialDate 屬性為 ChildBirth,則表示是哪個孩子。預設為 1;
},
"ExpandedPrecondition": "d Mon Fri/HasItem Pink Cake/!JojaMartComplete/!w rainy", //需要擴充前提條件實用程式模組。請參閱該模組的文檔以了解其工作原理。如果未載入該模組,信件將無法投遞。
"ExpandedPreconditions": [ "!z spring/t 600 1000", "f Linus 1000/w rainy/z spring", "f Linus 2500" ], //需要擴充前提條件實用程式模組。請參閱該模組的文檔以了解其工作原理。如果未載入該模組,信件將無法投遞。
"RandomChance": 0.25, // 模組會檢查 0 到 1 之間的隨機數是否低於給定值。同一天、同一封信的同一次存檔將始終獲得相同的結果,以避免作弊。
"Buildings": ["Coop","Big Coop","Deluxe Coop"], // 要求農場中目前正在建造其中一棟建築物。
"RequireAllBuildings": false, // 如果為 true,則要求「建築物」清單中的所有建築物目前均已在農場中建造。預設值為 false。
"MailReceived": ["jojaVault","ccVault"], // 要求其中一封郵件已收到。遊戲清單中還包含其他非郵件內容,例如社群中心旗幟。
"RequireAllMailReceived": false, // 如果為 true,則要求「MailReceived」清單中的所有郵件都已接收。預設為 false。
"MailNotReceived": ["jojaVault","ccVault"], // 要求郵件尚未收到。遊戲清單中還包含其他非郵件內容,例如社群中心旗幟。
"EventsSeen": [ "4", "32423" ], // 要求其中一個事件已被玩家看到。應為字串,但為了相容於後續版本,也可使用整數。
"RequireAllEventsSeen": false, // 如果為 true,則要求玩家必須已看到「EventsSeen」清單中的所有事件。預設值為 false。
"HasMods": [ "SMAPI.ConsoleCommands", "SMAPI.SaveBackup" ], // 需要載入其中一個模組。應為模組的 UniqueID。
"RequireAllMods": false, // 如果為 true,則要求「HasMods」清單中的所有模組都已載入。預設值為 false。
"EventsNotSeen": [ "4", "32423" ], // 要求事件未被玩家看到。應為字串,但為了相容於後續版本,也可使用整數。
"RecipeKnown": ["Pizza","Survival Burger"], // 要求玩家已經學會其中一種食譜。
"RequireAllRecipeKnown": false, // 如果為 true,則要求玩家必須已學會「RecipeKnown」清單中的所有配方。預設值為 false。
"RecipeNotKnown": ["Wild Bait"], // 要求配方尚未被玩家學過。
"KeepValid": false // 若為真,則在滿足條件後,保持郵件有效直至被閱讀。預設為 false。
}
]MailRepository.保存信件(
新信件(
“LetterUniqueId”
,“字母自訂文字。”
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,(l)=>Game1.player.mailReceived.Add(l.Id)
)
(此處似有缺失,請提供更正的文字)。
MailRepository.保存信件(
新信件(
“LetterUniqueId”
,“字母自訂文字。”
,new List- { new StardewValley.Object(60,5) }
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,(l)=>Game1.player.mailReceived.Add(l.Id)
)
(此處似有缺失,請提供更正的文字)。
MailRepository.保存信件(
新信件(
“LetterUniqueId”
, "字母自訂文字。"
,“食譜唯一名稱”
, (l) => !Game1.player.cookingRecipes.ContainsKey(l.Recipe)
)
(此處似有缺失,請提供更正的文字)。
MailRepository.保存信件(
新信件(
“LetterUniqueId”
,“字母自訂文字。”
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,(l)=>Game1.player.mailReceived.Add(l.Id)
1
){文字顏色=8}
(此處似有缺失,請提供更正的文字)。
MailRepository.保存信件(
新信件(
“LetterUniqueId”
,“字母自訂文字。”
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,Game1.player.mailReceived.Add(l.Id)
1
){
LetterTexture=helper.Content.Load("CustomLetterBG.png")
,文字顏色=4
}
(此處似有缺失,請提供更正的文字)。
其中 CustomLetterBG.png 是一個遵循與“LooseSprites//letterBG”相同結構的圖像文件MailRepository.保存信件(
新信件(
“LetterUniqueId”
,"我的信翻譯關鍵文本"
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,(l)=>Game1.player.mailReceived.Add(l.Id)
){
標題 = “myletter.translation.key.title”,
I18N = helper.Translation
}
(此處似有缺失,請提供更正的文字)。
Larvas Limited
Room 1201, 12/F Tai Sang Bank Building 130-132 Des Voeux Road Central HK