logo
zh-tw
繁中

郵件框架模塊

創作者: Digus
已更新:2025-03-28 14:16:59
49KB
mcafee
驗證
獲得 200,000,000+ 位用戶信任

預先需求的模組

使用 郵件框架模塊 時將自動安裝

關於此模組

使用遊戲內郵箱的框架。 調整郵件的控制台命令。 程式碼和內容包介面。
客觀的:
簡化向玩家發送郵件的過程,讓玩家更能控制何時接收郵件以及接收哪些郵件。
還提供更多僅編輯資料檔案無法實現的選項,例如隨意更改文字顏色和字母背景。

安裝:

更新日誌:

1.20.0
  • 為遊戲新增了新的自訂資源 (DIGUS.MailFrameworkMod/MailData)。這意味著 MFM 信件現在可以使用 Content Patcher 加載,並使用其所有功能(例如令牌)。它支援相同的屬性。
  • 內容包字母也被載入到新的自訂資產中,因此可以使用內容修補程式進行編輯。
  • 內容包現在會在遊戲開始時載入到快取中,而不是每次載入存檔時都重新載入。您可以使用控制台命令強制重新載入內容包。
  • 文字和標題屬性現在支援可標記字串。
  • 紋理資產現在可以是遊戲資產,而不僅僅是 mod 資料夾中的資產。
  • 新的 GameStateQuery 屬性作為傳遞信件的條件。
1.19.0
  • 新的屬性是,當一天的所有條件都滿足但當天未閱讀郵件時,郵件將保持有效。
  • 處理隨機選擇附件的新功能
  • 新屬性用於設定應從附件清單中選擇多少個項目進行交付。
  • 為附件設定「RandomGroup」的新屬性,以便從該群組而不是整個清單中進行選擇。
  • 當隨機選擇時,為給定附件設定「權重」的新屬性。
  • 新屬性用於設定從給定群組中應選擇多少個項目,而不是使用預設值。
  • 新屬性表示是否可以多次選擇給定群組中的某個項目。
  • 一組新的屬性,用於設定附件和回覆的 MailReceived 要求
  • 新的屬性用於設定在閱讀信件或選擇回覆選項時刪除的 MailReceived。
  • 新屬性用於設定給定回覆選項的成本。
  • 新增 ItemType“None”。它主要用於當您想要隨機不投遞物品時,不觸發日誌中的錯誤/警告。
1.18.0
  • 新的 Ids 屬性用於替換 CollectionConditions 中的 Index 和 Name。它可以聚合多個項目的數量,並將它們的值相加,以便與金額進行比較。
  • 新增 ReplyConfig 屬性,用於新增回應行為。您可以在閱讀郵件後向玩家顯示某些選項,系統會根據所選選項新增一個或多個 MailReceived 文字。您可以根據所選選項實作其他模組邏輯。
  • 修復配方中的字母不支援 CustomTextColorName 屬性的問題。
  • 修復遊戲中載入名稱為空的物品時出現的空引用異常。
1.17.1
  • 如果未學習配方,則具有配方屬性的內容包郵件無需帶有附件即可重新發送。 (如果有附件,則忽略配方屬性)
  • 使用與之前製作食譜相同的邏輯來修復烹飪食譜。
1.17.0
  • 設定附件品質的新屬性
  • 如果未學會配方,則應重新發送帶有配方的內容包郵件。
  • 如果使用合格的項目 ID,則修復有關 Slingshot 的警告。
  • 修復即使已經學會了配方,仍會交付可製作物品的配方的問題。
  • 由於遺留原因,如果在學習過的配方中找不到配方 ID,它將尋找一個創建具有配方 ID 名稱的物品的配方。
1.16.1
  • 修復食譜翻譯名稱。
1.16.0
  • 更新 mod 以相容 Stardew Valley 1.6
  • 重新載入內容包的新指令
  • 將 MailDao 名稱變更為 MailRepository。 (僅影響使用它的 SMAPI 模組)
  • 附件的新物品類型「QualifiedItemId」如果使用適當的資格,應該適用於遊戲中的每種物品類型。
  • 特殊日期條件的新房產。 (婚禮和生育)
  • CustomTextColor 的新屬性,舊屬性已棄用。
  • 新的 HasMods 屬性
  • 新的 RequireAllMods 屬性
  • 事件 ID 現在是字串。 (數字應該仍然有效)
  • 從 MFM 中刪除了過時的邏輯 SV 1.6。
  • 修正了 alpha 版本中信件無法在郵件收集頁面開啟的問題。
劇透:
展示
1.15.0
  • SMAPI 模組的新 API 介面。
  • API 方法從 SMAPI 模組內部載入內容包資料夾。
  • API 方法載入信件。
  • API方法取得信件資料。
  • API方法取得一封信的郵件資料字串。
  • 修復關閉信件時發生錯誤導致郵箱無法正常運作的問題。
  • 最好記錄這些錯誤。
1.14.0
  • 為了與 SMAPI 4 相容,進行了更多更改
  • 在字母類別中新增屬性來設定ITranslationHelper。
  • 內容包不需要改變任何東西,但這種改變應該可以避免一些罕見的 i18n 問題。
  • 透過程式碼使用 MFM 的模組可以更新其實現。
1.13.0
  • 使該模組與 SMAPI 4 相容。
  • 最深礦井等級的新屬性。
  • 用現錢換取新財產。
  • 新房產的總收入。
  • 新的控制台命令強制郵箱更新以幫助模組製作者進行偵錯。
  • 信件收集選單現在也顯示自訂關閉按鈕。
1.12.2
  • 使 mod 與 1.5.5 相容,而無需強制 SMAPI 進行轉換。
  • 應該修復一些附件在 Unix OS 上不起作用的問題。
  • 房屋升級等級的新房產。
1.12.1
  • 修正了未載入擴充先決條件實用程式時的錯誤。
1.12.0
  • 支援使用的新屬性擴展的先決條件
  • 新的屬性使得除了字母 ID 之外還可以將文字新增到玩家的 MailReceived 清單中。
1.11.0
  • 支援DGA(動態遊戲資產)作為附件。
1.10.2
  • 修正了透過 Json Assets 添加時英文烹飪食譜名稱顯示為空的問題。
1.10.1
  • 修復當存在 i18n 檔案時自動開啟沒有文字的字母破壞模組的問題。
  • 修復一次收集條件警告後內容包中的信件無法載入的問題。
  • 為製作配方添加了新的收集要求類型。
1.10.0
  • 現在支援所有原始工具。
  • 支持原彈弓作為武器。如果您使用彈弓的索引或名稱,它將被正確建立。
  • 新的「自動開啟」屬性,用於當您想要使用 MFM 條件將字母 ID 儲存為已讀而無需寫實際字母時。
1.9.2
  • 優化從內容包載入資產。
  • 修復打開選單將物品新增至庫存時不呼叫字母回調的問題。
1.9.1
  • 修正一個錯誤:如果您在單擊郵箱時手持某個物體,則 MFM 信件不會被打開並從當天的郵箱中移除。
1.9.0
  • 使用 SMAPI 建立的信件的新屬性,用於動態地在信件中新增項目。
  • 從郵箱中移除信件的新方法。
1.8.1
  • 修復以避免本地合作中的衝突郵件。
  • 修復在極少數情況下,如果遊戲未正確關閉字母選單,模組就會停止運作的情況。
1.8.0
  • 支援家具、武器和靴子作為附件。
  • 用於設定附加工具升級等級的新屬性。
1.7.0
  • 支持戒指作為配件。
  • 食譜的新條件。
  • 使用內容包進行背景自訂的新屬性。
  • 支援使用內容包和代碼自訂關閉按鈕。
1.6.0
  • 內容包中支援 i18n。
  • 農場建築物的新條件屬性。
  • 收到郵件的新條件屬性。 (用於任務標誌)
  • 事件的新條件屬性。
  • 收藏選單項目的新條件清單。
  • 遊戲統計資料的新條件清單。
  • NPC 友誼條件清單中的友誼狀態新屬性。
  • 當群組 ID 發生衝突時,新的隨機功能。
1.5.1
  • 修復沒有組 ID 的字母被分組在一起的問題。
1.5.0
  • 如果定義了標題,字母現在將顯示在收藏選單中。自訂紋理和顏色也會顯示在收藏選單中。
  • 信件現在可以設定群組 ID。具有相同群組 ID 的信件絕不會在同一天投遞。
  • 內容包的新條件:「RandomChance」。
  • BigObject 現在被稱為 BigCraftable,就像在遊戲程式碼中一樣。
  • 修復模板中的拼字錯誤。
1.4.1
  • 增加對 Stardew Valley 1.4.0 的支持
  • 為「字母」新增「標題」屬性,使其顯示在收藏選單中。尚未完全實現,但模組製作者可以開始設定。
1.4.0
  • 為模組製作者添加內容包支援以添加自訂字母,並配置該框架提供的所有功能,以及最常用的交付條件。
  • 修復控制器無法取得附加物品的問題。
  • 如果郵件中附加了多個項目,則修正該問題以正確顯示附件。
  • 修復如果您的庫存已滿並且打開選單進行管理,則不會讓信件關閉的問題。
  • 修復即使配置了也無法將一堆項目新增到郵件中的問題。
  • 新增對 SMAPI 3 的支持
1.3.4
  • 增加對 Stardew Valley 1.3.36 的支持
1.3.3
  • 新增對 SMAPI 3 的支持
1.3.2
  • 增加對 Stardew Valley 1.3.32 的支持
1.3.1
  • 新增刪除和新增到玩家收到的郵件清單的命令。
1.3.0-beta.6
  • 增加了對製作配方的支持
  • 新增對自訂背景的支持
  • 新增對自訂文字顏色的支持
  • 打開自訂信件的新方法,現在使用和諧
  • 設定檔以啟用開啟自訂字母的舊方法。
1.2.0
  • 支援 i18n 食譜。
  • 修復返回標題選單後模組無法正常運作的問題。
  • 修正如果信件狀況發生異常則無法投遞郵件的問題。
1.1.0
  • 修復睡覺時收到“稅收已通過”郵件並在未閱讀自訂郵件的情況下退出遊戲的問題。
  • 自訂郵件可以包含食譜。
  • 此版本與舊版本不相容。需要更新模組才能使用此版本。
1.0.0
  • 新增自訂郵件
  • 自訂郵件可以包含項目。

對於使用內容包的模組製作者:
  • mod 資料夾內有一個模板,其中包含有關每個屬性功能的註釋說明。
  • 除條件和回調外,所有字母功能都與使用框架編碼相同。
  • 條件僅限於已實現的條件,回呼始終將信件 ID 設定為已收到。如果您需要高級條件,仍然需要編寫程式碼。或者您可以禮貌地建議我在內容包中添加一個條件,如果可行的話,我可能會添加。
  • 這是 mod 檔案中添加的模板:
劇透:
展示
[
    {
"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。
    }
]


對於 Modder 使用 API:
  • 複製IMailFrameworkModApi與您想要從 MFM 介面使用的方法進行介面。
  • 複製字母如果其中一種方法需要它。
  • 方法:
    • 註冊內容包- 使用幫助器.內容包.建立臨時從你的 mod 中載入一個包含 mail.json 和可能的 i18n 資料夾用於翻譯的資料夾。 Manifest 檔案不需要,因為你可以使用方法的參數。
    • 註冊信件- 使用您需要的屬性填入 ILetter。註冊信件還需要一個條件。建議使用回調,至少在收到信件時添加信件 ID。請參閱下面的範例,網址為“讓 Modder 使用 MFM 依賴性進行編碼“ 會議。
    • 獲取信件- 您將獲得字母 ID 的 ILetter 物件。
    • 取得郵件資料字串- 您將獲得與信件 ID 對應的郵件資料字串。郵件資料字串基本上是翻譯後的文字加上翻譯後的標題,並以 [#] 分隔。

對於使用 MFM 依賴性進行編碼的 Modder:
  • 在您的 SMAPI 專案上引用 MailFrameworkMod.dll。
    • 您使用 MailRepository.SaveLetter(Letter) 註冊您的信件
    • 每天開始時,模組會檢查已達到投遞條件的信件並將其添加到郵箱中。
    • 當玩家檢查郵箱時,這封信將首先被打開。
    • 當信件被打開時,它會被從郵箱中取出。
    • 信件的回調條件就是他們所調用的。
    • 一天結束時,仍在郵箱上的信件將被刪除,因此它們不會被遊戲保存。
  • 你可以把這個模組看成是你的字母庫。最好在遊戲加載時加載所有字母。


例子:

劇透:
展示

載入一封簡單的信件,如果之前沒有讀過,就會顯示給玩家,並且在玩家打開後不會再次投遞:
MailRepository.保存信件(
新信件(
“LetterUniqueId”
,“字母自訂文字。”
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,(l)=>Game1.player.mailReceived.Add(l.Id)
)
(此處似有缺失,請提供更正的文字)。


像以前一樣加載一封簡單的信件,但附加了 5 顆綠寶石:
MailRepository.保存信件(
新信件(
“LetterUniqueId”
,“字母自訂文字。”
,new List { new StardewValley.Object(60,5) }
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,(l)=>Game1.player.mailReceived.Add(l.Id)
  )
(此處似有缺失,請提供更正的文字)。

玩家將不會收到相同的物品,而是從 getOne() 方法傳回的副本。

載入一封簡單的信件,用於教授烹飪食譜。如果玩家不知道食譜,信件就會寄送。模組會在玩家載入時自動教授食譜,無需回調:
MailRepository.保存信件(
新信件(
“LetterUniqueId”
, "字母自訂文字。"
,“食譜唯一名稱”
, (l) => !Game1.player.cookingRecipes.ContainsKey(l.Recipe)
  )
(此處似有缺失,請提供更正的文字)。

「RecipeUniqueName」必須與「Data//CookingRecipes」或「Data//CraftingRecipes」中儲存的相同。

載入具有不同文字和背景的簡單信件:
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
    }
(此處似有缺失,請提供更正的文字)。



我的其他模組:

使用 XMODhub 解鎖 Stardew Valley 的全部潛力 — 今天就探索這些頂級模組!

mcafee
驗證
獲得 200,000,000+ 位用戶信任

需要下載或安裝幫助嗎?加入我們的Discord 社群尋求支援。

logo
語言

遊戲解決方案

資源

合作夥伴

關注我們

discordfacebooktwitteryoutube
聯絡客服:
support@xmodhub.com
Xmod_Lily
商務洽詢:
dc@xmodhub.com or cathy@business.xmodhub.com
catherine_79237

Larvas Limited

Room 1201, 12/F Tai Sang Bank Building 130-132 Des Voeux Road Central HK