XMODhub Home
Switch language
繁中
郵件框架模塊 Mod Menu

郵件框架模塊

創作者: Digus
已更新:2025-03-28 14:16:59
49KB
Verified by McAfee SECURE
驗證
獲得 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 的全部潛力 — 今天就探索這些頂級模組!

Verified by McAfee SECURE
驗證
獲得 200,000,000+ 位用戶信任

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

XMODhub Home
語言
切換語言至 Chinese Traditional
切換語言至 English
切換語言至 German
切換語言至 Korean
切換語言至 Thai
切換語言至 Indonesian
切換語言至 Vietnamese
切換語言至 Turkish
切換語言至 Portuguese
切換語言至 Japanese
切換語言至 Polish
切換語言至 French
切換語言至 Spanish
切換語言至 Italian

遊戲解決方案

資源

合作夥伴

關注我們

造訪 XMODhub Discord造訪 XMODhub Facebook造訪 XMODhub X造訪 XMODhub YouTube
聯絡客服:
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