

[
{
"Id": "MyMod.MyMailId", // ID chữ cái. Chuỗi này phải là duy nhất để tránh xung đột. Ngoài ra, chuỗi không được chứa ký tự khoảng trắng.
"GroupId": "MyMod.MyGroupId", // Mã nhóm thư. Các thư có cùng mã nhóm sẽ không bao giờ được gửi trong cùng một ngày. Thư nào được đăng ký trước sẽ được ưu tiên, trừ khi mã nhóm kết thúc bằng ".Random", trong trường hợp đó, một chữ cái ngẫu nhiên sẽ được chọn. Mặc định là null.
"Title": "Tiêu đề thư của tôi", // Tiêu đề thư. Sẽ được hiển thị trong menu bộ sưu tập. Đặt giá trị null hoặc xóa dòng này nếu bạn không muốn thư xuất hiện trong bộ sưu tập. Nếu có tệp dịch, bạn nên đặt khóa dịch ở đây, nhưng bạn vẫn có thể để giá trị null nếu không có Tiêu đề.
"Văn bản": "Gửi @^Đây là email tùy chỉnh của tôi.", // Nội dung thư. Bạn có thể sử dụng @ để nhập tên người chơi và ^ để xuống dòng. Bạn cũng có thể sử dụng các lệnh cơ bản của trò chơi để thêm tiền, vật phẩm và các thứ khác. Nếu có tệp dịch, bạn nên đặt khóa dịch ở đây.
"RandomlyChooseAttachment": 2, // Nếu một số được thiết lập, nó sẽ chọn ngẫu nhiên số lượng mục tương ứng từ danh sách tệp đính kèm, theo từng nhóm. Mặc định là null.
"RandomlyChooseAttachmentPerGroup": { "CaveItems": 3 }, // Nếu nhóm và số lượng được thiết lập ở đây, hệ thống sẽ sử dụng số lượng đó để chọn vật phẩm thay vì số lượng được thiết lập trên RandomlyChooseAttachment. Mặc định là trống.
"AttachmentGroupWithReplacement": [ "CaveItems" ], // Theo mặc định, các tệp đính kèm được chọn ngẫu nhiên từ danh sách mà không cần thay thế. Nếu bạn muốn chọn thay thế các tệp đính kèm, hãy thêm nhóm vào danh sách. Nếu bạn không thêm nhóm, hãy sử dụng một chuỗi rỗng. Giá trị mặc định là một danh sách rỗng.
"Tệp đính kèm": [ // Danh sách tệp đính kèm. Xóa thuộc tính để không đính kèm các mục vào thư.
{
"Type": "Object", // [Object|BigCraftable|Tool|Ring|Furniture|Weapon|Boots|DGA|QualifiedItemId|None] là bắt buộc. Loại vật phẩm sẽ được gắn. Nếu không được cung cấp, vật phẩm sẽ bị bỏ qua. 'None' luôn được bỏ qua mà không báo lỗi trong nhật ký và nên được sử dụng khi bạn muốn đảm bảo không thêm vật phẩm gắn.
"Name": "Cave Carrot", // Dùng để tìm chỉ mục vật phẩm. Điều này là bắt buộc nếu sử dụng các đối tượng tùy chỉnh như JSON Assets. ID DGA đầy đủ phải được sử dụng. Nếu không được cung cấp, chỉ mục sẽ được sử dụng. Mặc định là null.
"Index": "(0)78", // Chỉ mục của một mục. ID của mục đủ điều kiện phải là chuỗi, nhưng cũng có thể hoạt động như một số nguyên để tương thích ngược. Nếu không có tên nào được cung cấp hoặc không tìm thấy mục nào có tên tương ứng, chỉ mục sẽ được sử dụng. Nếu không, tệp đính kèm sẽ bị bỏ qua. Bỏ qua nếu loại là DGA.
"Stack": 1, // Giá trị stack của vật phẩm cần giao. Chỉ sử dụng cho Objects và BigCraftable. Mặc định là 1.
"Chất lượng": 2, // Giá trị chất lượng của sản phẩm cần giao. Chỉ sử dụng cho Đối tượng. 0 = không có, 1 = bạc, 2 = vàng, 4 = iridium. Mặc định là 0;
"RequireMailReceived": [ "jojaVault", "ccVault" ], // Yêu cầu một trong các email đã được nhận. Danh sách trò chơi cũng chứa những thứ khác không phải là email, chẳng hạn như cờ trung tâm cộng đồng. Mặc định là null để không yêu cầu nhận email.
"RequireAllMailReceived": false, // Nếu đúng, yêu cầu tất cả thư trong danh sách "RequireMailReceived" phải được nhận. Mặc định là false.
"ProbabilityWeight": 1, // Trọng số của tệp đính kèm này khi chọn tệp nào để phân phối. Mod sẽ tính tổng tất cả trọng số trong một nhóm nhất định và gán cho nó một xác suất bằng cách chia trọng số này cho tổng. Mặc định là 1.
"RandomGroup": "CaveItems" // Khi chọn các mục ngẫu nhiên, hãy nhóm danh sách theo các nhóm đã tìm thấy và chọn số lượng được đặt từ mỗi nhóm. Giá trị mặc định là một chuỗi rỗng, hoạt động như nhóm mặc định.
},
{
"Loại": "Công cụ", // Khi sử dụng công cụ, chỉ có thể gắn những công cụ được hỗ trợ.
"Tên": "Rìu", // [Rìu|Cuốc|Bình tưới|Cuốc chim|Lưỡi hái|Lưỡi hái vàng|Xô sữa|Kéo cắt|Cần câu|Chảo|Gậy trả lại] Bắt buộc đối với các công cụ. Tên của công cụ được hỗ trợ. Nếu không, phần đính kèm sẽ bị bỏ qua.
"UpgradeLevel": 1 // Cấp độ nâng cấp của công cụ. Công cụ thông thường: 0 = đá, 1 = đồng, 2 = thép, 3 = vàng, 4 = iridi. Cần câu: 0 = cần tre, 1 = cần tập luyện, 2 = cần sợi thủy tinh, 3 = cần iridi. Bỏ qua các loại khác. Mặc định là 0.
},
{
"Loại": "DGA", //mục DGA
"Name": "spacechase0.DynamicGameAssets.Example/My Custom Item", // sử dụng ID DGA đầy đủ. Bắt buộc.
"Stack": 10, // Giá trị stack của vật phẩm cần giao. Chỉ sử dụng cho Objects và BigCraftable. Mặc định là 1.
"Chất lượng": 2 // Giá trị chất lượng của sản phẩm cần giao. Chỉ sử dụng cho Đối tượng. 0 = không có, 1 = bạc, 2 = vàng, 4 = iridium. Mặc định là 0;
},
{
"Type": "QualifiedItemId", //Bất kỳ mục nào được hỗ trợ
"Index": "(0)78", // Mã số mặt hàng đủ điều kiện của một mặt hàng.
"Stack": 10, // Giá trị stack của vật phẩm cần giao. Chỉ sử dụng cho Object và BigCraftable. Mặc định là 1;
"Chất lượng": 2 // Giá trị chất lượng của sản phẩm cần giao. Chỉ sử dụng cho Đối tượng. 0 = không có, 1 = bạc, 2 = vàng, 4 = iridium. Mặc định là 0;
}
],
"Recipe": "Tên công thức", // Xóa dòng này nếu bạn không muốn đính kèm công thức vào thư. Tính năng này chỉ hoạt động nếu bạn không có tệp đính kèm nào khác vào thư. Đối với công thức DGA, chỉ sử dụng phần ID (bỏ phần ModID).
"AdditionalMailReceived": ["MyMod.AnotherMailId", "VANILLA_FLAG"], // Sử dụng tùy chọn này để thêm văn bản bổ sung vào danh sách MailReceived. Có thể hữu ích để thêm cờ vanilla hoặc các ID thư MFM khác.
"MailReceivedToRemove": ["MyMod.AnotherMailThatNeedToBeResent","MyMod.SomeFlagThatWasLockingSomeFeature"], //Văn bản cần xóa khỏi danh sách MailReceived. Có thể sử dụng tùy chọn này để kích hoạt thư mới, sự kiện, cờ vanilla, ngăn thư MFM khác được gửi...
"LetterBG": "CustomLetterBG.png", // Tên tệp trong gói nội dung của bạn có nền chữ cái tùy chỉnh để sử dụng. Tệp này phải tuân theo cùng cấu trúc với tệp LetterBG của trò chơi. WhichBG sẽ tương ứng với tệp này cho chữ cái này. Nếu null hoặc bị xóa, mod sẽ sử dụng LetterBG của trò chơi.
"WhichBG": 0, //ID của chữ cái background. 0 = cổ điển, 1 = sổ ghi chép, 2 = kim tự tháp
"TextColor": -1, //Xóa dòng này để sử dụng màu mặc định. Sẽ bị bỏ qua nếu CustomTextColor được thiết lập. -1 = Đỏ sẫm, 0 = Đen, 1 = Xanh da trời, 2 = Đỏ, 3 = Xanh lam tím, 4 = Trắng, 5 = Đỏ cam, 6 = Xanh lá cây chanh, 7 = Xanh lam nhạt, 8 = Xám đậm
"CustomTextColorName": "Trắng", //Màu của văn bản.[http://www.foszor.com/blog/xna-color-chart/] Mặc định sẽ sử dụng thuộc tính TextColor.
"UpperRightCloseButton": "CustomCloseButton.png", // Tên tệp trong gói nội dung của bạn có nút đóng tùy chỉnh để sử dụng. Kích thước tệp phải là 12 x 12. Nếu để null hoặc bị xóa, nút mặc định sẽ được sử dụng.
"ReplyConfig": { // Nếu bạn muốn người chơi gửi thư trả lời sau khi đọc thư. Nó sẽ hiển thị các tùy chọn trả lời, trong đó một hoặc nhiều "ReceivedMail" sẽ được thêm vào dựa trên câu trả lời của người chơi. Bất kỳ logic bổ sung nào liên quan đến thư trả lời cần được triển khai dựa trên ReceivedMail đã thêm vào.
"QuestionKey": "MyMod.MyMailId.Question", //Khóa để xác định câu hỏi của bạn. Khóa này chỉ được sử dụng nội bộ, nhưng phải là duy nhất trong gói nội dung của bạn để tránh xung đột giữa các câu trả lời.
"QuestionDialog": "Gửi câu trả lời bằng cách chọn phần thưởng của bạn:", //Câu hỏi hoặc văn bản của bạn sẽ hiển thị trên các tùy chọn trả lời. Nếu có tệp dịch, bạn nên đặt khóa dịch tại đây.
"Trả lời": [
{
"ReplyKey": "MyMod.MyMailId.Reply1", //Phải là duy nhất giữa các câu trả lời cho câu hỏi.
"ReplyOptionDialog": "Tôi muốn hạt giống.", //Nội dung tùy chọn sẽ hiển thị trong danh sách trả lời. Nếu có tệp dịch, bạn nên đặt khóa dịch tại đây.
"RequireMailReceived": [ "jojaVault", "ccVault" ], // Yêu cầu một trong các email đã được nhận. Danh sách trò chơi cũng chứa những thứ khác không phải là email, chẳng hạn như cờ trung tâm cộng đồng. Mặc định là null để không yêu cầu nhận email.
"RequireAllMailReceived": false, // Nếu đúng, yêu cầu tất cả thư trong danh sách "RequireMailReceived" phải được nhận. Mặc định là false.
"MailReceivedToAdd": [ "MyMod.MyMailId.PlayerSeedOption" ], // Văn bản cần thêm vào danh sách MailReceived. Có thể dùng để kích hoạt thư mới, sự kiện, cờ vanilla, hoặc dừng gửi thư MFM khác...
"MailReceivedToRemove": [ "MyMod.MyMailId.PlayerSapplingOption" ], //Văn bản đã xóa khỏi danh sách MailReceived. Tùy chọn này có thể được sử dụng để kích hoạt thư mới, sự kiện, cờ vanilla, ngăn các thư MFM khác được gửi...
"ReplyResponseDialog": "Thư yêu cầu hạt giống của bạn đã được gửi.", //Nội dung sẽ hiển thị sau khi tùy chọn trả lời này được chọn. Nếu tệp dịch được cung cấp, bạn nên đặt khóa dịch tại đây.
"Chi phí": 50 //Số tiền người chơi cần có để chọn tùy chọn này. Nếu họ chọn, số tiền đó sẽ ngay lập tức bị trừ vào tiền của người chơi. Luôn cung cấp tùy chọn không mất phí, nếu không bạn có thể khóa cứng người chơi.
}
]
},
"Có thể lặp lại": false, // Nếu đúng thì mod sẽ không kiểm tra vì chữ cái Id đã được gửi. Mặc định là false.
"AutoOpen": false, // Nếu đúng, mod sẽ mở thư vào đầu ngày sau khi các điều kiện được đáp ứng. ID thư sẽ được đánh dấu là đã đọc và nếu có công thức nào được đặt, nó sẽ được học. Vì thư sẽ không bao giờ hiển thị, các thuộc tính trực quan như tiêu đề, văn bản, hình nền... sẽ không bao giờ được sử dụng, cũng như các tệp đính kèm.
// ĐIỀU KIỆN GIAO HÀNG
//Dưới đây là các điều kiện giao hàng. Xóa bất kỳ dòng nào nếu bạn không muốn kiểm tra điều kiện đó.
"Ngày": "10 xuân Y1", // Phải là ngày đó hoặc ngày sau đó. Định dạng là "[1-28] [xuân|hè|thu|đông] Y[1-999]".
"Ngày": [7,14,21,28], // Phải là một trong những ngày trong danh sách.
"Mùa": ["mùa thu"], // Phải là một trong các mùa trong danh sách. [xuân|hè|thu|đông]
"Thời tiết": "nắng", // Chắc là thời tiết trong trò chơi. Định dạng là "[nắng|mưa]".
"HouseUpgradeLevel": 2, // Cấp độ nâng cấp nhà phải bằng hoặc cao hơn cấp độ được định nghĩa. 0 - nhà khởi đầu (không có lý do gì để sử dụng cấp độ này, chỉ cần xóa dòng), 1 - bếp, 2 - tầng hai, 3 - hầm.
"DeepestMineLevel": 80, // Cấp độ sâu nhất của mỏ phải bằng hoặc cao hơn cấp độ được định nghĩa. 120 là cấp độ cuối cùng của mỏ, 121 là cấp độ đầu tiên của hang đầu lâu.
"CurrentMoney": 10000, // Tiền hiện tại phải bằng hoặc cao hơn số tiền được định nghĩa.
"TotalMoneyEarned": 500000, // Tổng số tiền kiếm được phải bằng hoặc cao hơn số tiền đã định nghĩa.
"FriendshipConditions": // Mỗi NPC trong danh sách phải kiểm tra tất cả các điều kiện.
[
{
"NpcName": "Lewis", //Tên của NPC. Có thể sử dụng NPC tùy chỉnh.
"FriendshipLevel": 8, // NPC phải có cấp độ trái tim tình bạn bằng hoặc cao hơn mức được định nghĩa. Mặc định là 0.
"FriendshipStatus": ["Hẹn hò","Đã đính hôn","Đã kết hôn"] // [Friendly|Hẹn hò|Đã đính hôn|Đã kết hôn|Đã ly hôn] Yêu cầu trạng thái tình bạn của NPC phải là một trong danh sách. Xóa để không yêu cầu trạng thái.
}
],
"Điều kiện Kỹ năng": // Mỗi kỹ năng trong danh sách phải có cấp độ bằng hoặc cao hơn cấp độ được định nghĩa. Có thể sử dụng tất cả các kỹ năng được mã hóa trong phiên bản gốc, bao gồm cả Luck. Không thể sử dụng các kỹ năng tùy chỉnh.
[
{ "SkillName": "Nông nghiệp", "SkillLevel": 1 }
],
"StatsConditions": // Mỗi chỉ số thống kê trong danh sách phải có giá trị bằng hoặc cao hơn giá trị được định nghĩa. Chọn StatsName hoặc StatsLabel
[
{
"StatsName": "CheeseMade", //[Hạt giống|Vật phẩm đã vận chuyển|Vật phẩm đã nấu|Vật phẩm đã chế biến|Trứng gà đã đẻ|Trứng vịt đã đẻ|Sữa bò đã sản xuất|Sữa dê đã sản xuất|Lông thỏ đã sản xuất|Lông cừu đã sản xuất|Phô mai đã làm|Phô mai dê đã làm|Nấm cục đã tìm thấy|Đá đã thu thập|Đá đã nghiền|Quà tặng đã tặng|Thời gian bất tỉnh|Thời gian đi ngủ trung bình|Thời gian câu cá|Cá đã bắt được|Những tảng đá đã vỡ|Gốc cây đã chặt|Số bước chân đã đi|Quái vật đã bị giết|Kim cương đã tìm thấy|PrismaticSh Tìm thấy ards|KhácĐá quýTìm thấy|Cà rốt trong hang độngTìm thấy|ĐồngTìm thấy|SắtTìm thấy|ThanTìm thấy|Tiền xuTìm thấy|VàngTìm thấy|IridiumTìm thấy|Thỏi đã nấu chảy|Đồ uống được làm|Bảo quản được làm|Mảnh rác được tái chế|Đá huyền bíbị nghiền nát|Số ngày đã chơi|Cỏ dại đã loại bỏ|Gậy đã chặt|Ghi chú đã tìm thấy|Nhiệm vụ đã hoàn thành|Cấp độ saoCây trồng đã vận chuyển|Cây trồng đã vận chuyển|Vật phẩm đã thu thập|Chất nhờn đã bị giết|Địa cầu đã bị nứt|Bạn tốt|Tiền cá nhân đã kiếm được] Mặc định là null.
"StatsLabel": "Name", // [exMemoriesWiped|childrenTurnedToDoves|trashCansChecked|boatRidesToIsland|beachFarmSpawns|hardModeMonstersKilled|timesEnchanted] Đây là các chỉ số hiện tại của trò chơi được xác định theo nhãn. Nếu có thêm nhãn, chúng cũng sẽ được hỗ trợ. Nhãn này cũng sẽ xác định các nhãn chỉ số tùy chỉnh do các bản mod khác thêm vào. Mặc định là null.
"Số tiền": 1 // Số tiền trạng thái phải bằng hoặc lớn hơn để điều kiện có hiệu lực.
}
],
"CollectionConditions": // Mỗi điều kiện thu thập của danh sách phải có giá trị bằng hoặc cao hơn số lượng đã xác định.
[
{
"Bộ sưu tập": "Đã vận chuyển", //[Đã vận chuyển|Cá|Hiện vật|Khoáng sản|Nấu ăn|Chế tạo] là bắt buộc.
"Name": "Oil", //Đã lỗi thời, sử dụng ID thay thế. Tên của đối tượng hoặc công thức cho bộ sưu tập 'Crafting'. Nếu không phải là bộ sưu tập crafting, nó sẽ tìm kiếm tên đó trong danh sách đối tượng để tìm chỉ mục. Nếu không tìm thấy tên, chữ cái sẽ bị bỏ qua. Sẽ kết hợp với các thuộc tính khác. Mặc định là null.
"Index": 211, //Đã lỗi thời, sử dụng Id thay thế. Chỉ mục của đối tượng. Sẽ kết hợp với các thuộc tính khác. Mặc định là null.
"Ids": [ "282", "MossSoup" ], //ID vật phẩm hoặc tên công thức chế tạo. Sẽ kết hợp với các thuộc tính khác. Số lượng được cộng lại để so sánh với thuộc tính Amount.
"Số tiền": 10 // Tổng số lượng các đối tượng trong bộ sưu tập phải bằng hoặc lớn hơn thì điều kiện mới hợp lệ.
}
],
"SpecialDateCondition": // Phải là ngày đó hoặc ngày sau đó.
{
"SpecialDate": "ChildBirth", //[Wedding|ChildBirth] Bắt buộc
"YearsSince": 1, //Số năm kể từ ngày xảy ra sự kiện. 0 sẽ khớp với ngày thực tế, 1 khớp với năm hiện tại. Mặc định là 0.
"WhichChild": 1 //Nếu thuộc tính SpecialDate là ChildBirth, nó sẽ tham chiếu đến con nào. Mặc định là 1;
},
"ExpandedPrecondition": "d Mon Fri/HasItem Pink Cake/!JojaMartComplete/!w rainy", //Cần mod Tiện ích Điều kiện Mở rộng. Xem tài liệu mod đó để biết cách thức hoạt động. Nếu mod không được tải, thư sẽ không được gửi.
"ExpandedPreconditions": [ "!z spring/t 600 1000", "f Linus 1000/w rainy/z spring", "f Linus 2500" ], //Cần mod Tiện ích Expanded Preconditions. Xem tài liệu mod đó để biết cách thức hoạt động. Nếu mod không được tải, thư sẽ không được gửi.
"RandomChance": 0.25, // Mod sẽ kiểm tra xem một số ngẫu nhiên từ 0 đến 1 có nằm dưới số đã cho hay không. Cùng một lần lưu, cùng ngày cho cùng một chữ cái sẽ luôn cho kết quả giống nhau để tránh gian lận.
"Tòa nhà": ["Coop","Big Coop","Deluxe Coop"], // Yêu cầu một trong các tòa nhà hiện đang được xây dựng trong trang trại.
"RequireAllBuildings": false, // Nếu đúng, yêu cầu tất cả các tòa nhà trong danh sách "Tòa nhà" phải được xây dựng trong trang trại. Mặc định là sai.
"MailReceived": ["jojaVault","ccVault"], // Yêu cầu một trong các email đã được nhận. Danh sách trò chơi cũng chứa những thứ khác không phải thư, chẳng hạn như cờ trung tâm cộng đồng.
"RequireAllMailReceived": false, // Nếu đúng, yêu cầu tất cả thư trong danh sách "MailReceived" phải được nhận. Mặc định là false.
"MailNotReceived": ["jojaVault","ccVault"], // Yêu cầu thư chưa được nhận. Danh sách trò chơi cũng chứa những thứ khác không phải thư, chẳng hạn như cờ trung tâm cộng đồng.
"EventsSeen": [ "4", "32423" ], // Yêu cầu một trong các sự kiện phải được người chơi nhìn thấy. Giá trị này phải là một chuỗi, nhưng cũng có thể được sử dụng như một số nguyên để tương thích với phiên bản cũ.
"RequireAllEventsSeen": false, // Nếu đúng, yêu cầu tất cả các sự kiện trong danh sách "EventsSeen" phải được người chơi nhìn thấy. Mặc định là false.
"HasMods": [ "SMAPI.ConsoleCommands", "SMAPI.SaveBackup" ], // Cần tải một trong các mod. Phải là mod UniqueID.
"RequireAllMods": false, // Nếu đúng, yêu cầu tất cả các mod trong danh sách "HasMods" phải được tải. Mặc định là false.
"EventsNotSeen": [ "4", "32423" ], // Yêu cầu các sự kiện chưa được người chơi nhìn thấy. Nên là một chuỗi, nhưng cũng có thể hoạt động như một số nguyên để tương thích với phiên bản cũ.
"RecipeKnown": ["Pizza","Survival Burger"], // Yêu cầu người chơi phải học được một trong các công thức.
"RequireAllRecipeKnown": false, // Nếu đúng, yêu cầu người chơi phải học tất cả các công thức trong danh sách "RecipeKnown". Mặc định là false.
"RecipeNotKnown": ["Wild Bait"], // Yêu cầu người chơi chưa học được công thức.
"KeepValid": false // Nếu đúng, khi các điều kiện được đáp ứng, giữ cho thư hợp lệ cho đến khi được đọc. Mặc định là false.
}
]MailRepository.SaveLetter(
Thư mới(
"LetterUniqueId"
"Văn bản tùy chỉnh của chữ cái."
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,(l)=>Game1.player.mailReceived.Add(l.Id)
)
);
MailRepository.SaveLetter(
Thư mới(
"LetterUniqueId"
"Văn bản tùy chỉnh của chữ cái."
,Danh sách mới { StardewValley.Object(60,5) mới }
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,(l)=>Game1.player.mailReceived.Add(l.Id)
)
);
MailRepository.SaveLetter(
Thư mới(
"LetterUniqueId"
, "Văn bản tùy chỉnh chữ cái."
, "RecipeUniqueName"
, (l) => !Game1.player.cookingRecipes.ContainsKey(l.Recipe)
)
);
MailRepository.SaveLetter(
Thư mới(
"LetterUniqueId"
"Văn bản tùy chỉnh của chữ cái."
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,(l)=>Game1.player.mailReceived.Add(l.Id)
1
){Màu văn bản=8}
);
MailRepository.SaveLetter(
Thư mới(
"LetterUniqueId"
"Văn bản tùy chỉnh của chữ cái."
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,Game1.player.mailReceived.Add(l.Id)
1
){
LetterTexture=helper.Content.Load("CustomLetterBG.png")
,Màu văn bản=4
}
);
Trong đó CustomLetterBG.png là một tệp hình ảnh có cùng cấu trúc với "LooseSprites//letterBG"MailRepository.SaveLetter(
Thư mới(
"LetterUniqueId"
,"myletter.translation.key.text"
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,(l)=>Game1.player.mailReceived.Add(l.Id)
){
Tiêu đề = "myletter.translation.key.title",
I18N = trợ giúp.Bản dịch
}
);
Cần trợ giúp về tải xuống hoặc cài đặt? Tham gia cộng đồng Discord của chúng tôi để được hỗ trợ!
Giải pháp chơi game
Tài nguyên
Đối tác
Theo dõi chúng tôi trên
Larvas Limited
Room 1201, 12/F Tai Sang Bank Building 130-132 Des Voeux Road Central HK