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에 로드하여 토큰과 같은 모든 기능을 사용할 수 있습니다. 동일한 속성을 지원합니다.
  • 콘텐츠 팩 문자도 새로운 사용자 정의 자산에 로드되므로 콘텐츠 패처로 편집할 수 있습니다.
  • 콘텐츠 팩은 이제 저장 파일을 불러올 때마다 다시 로드되는 대신, 게임 시작 시 캐시에 자동으로 로드됩니다. 콘솔 명령어를 사용하여 콘텐츠 팩을 강제로 다시 로드할 수 있습니다.
  • 이제 텍스트 및 제목 속성에서 토큰화 가능한 문자열이 지원됩니다.
  • 텍스처 자산은 이제 모드 폴더의 자산이 아니라 게임 자산이 될 수 있습니다.
  • 새로운 GameStateQuery 속성은 편지를 전달하기 위한 조건입니다.
1.19.0
  • 모든 조건이 하루 동안 충족되었지만 그날 우편물이 읽히지 않은 경우에도 우편물을 유효하게 유지하기 위한 새로운 속성입니다.
  • 무작위로 선택된 첨부 파일을 처리하는 새로운 기능
  • 첨부 파일 목록에서 얼마나 많은 항목을 선택하여 배달할지 설정하는 새로운 속성입니다.
  • 첨부 파일에 "RandomGroup"을 설정하는 새로운 속성이 추가되어 전체 목록 대신 해당 그룹에서 선택할 수 있습니다.
  • 첨부 파일을 무작위로 선택할 때 해당 첨부 파일의 "가중치"를 설정하는 새로운 속성입니다.
  • 기본값을 사용하는 대신, 주어진 그룹에서 얼마나 많은 항목을 선택해야 하는지 설정하는 새로운 속성이 추가되었습니다.
  • 주어진 그룹의 항목을 두 번 이상 선택할 수 있는지 여부를 알려주는 새로운 속성입니다.
  • 첨부 파일 및 회신에 대한 MailReceived 요구 사항을 설정하는 새로운 속성 세트
  • 편지가 읽히거나 답장 옵션이 선택되면 MailReceived를 제거할 수 있는 새 속성을 추가합니다.
  • 주어진 답변 옵션에 대한 비용을 설정하는 새로운 속성입니다.
  • 새 ItemType "None". 기본적으로 로그에 오류/경고를 발생시키지 않고 아이템을 배송하지 않을 확률을 임의로 지정하고자 할 때 사용됩니다.
1.18.0
  • CollectionConditions의 Index와 Name을 대체하는 새로운 Ids 속성입니다. 여러 항목의 개수를 집계하여 값을 더한 후 수량과 비교할 수 있습니다.
  • 새로운 ReplyConfig 속성을 통해 답장 동작을 추가할 수 있습니다. 메일을 읽은 후 플레이어에게 특정 옵션을 표시할 수 있으며, 선택한 옵션에 따라 하나 이상의 MailReceived 텍스트가 추가됩니다. 해당 선택에 따라 추가적인 모드 로직을 구현할 수 있습니다.
  • CustomTextColorName 속성을 지원하지 않는 레시피가 포함된 문자를 수정했습니다.
  • 게임에서 이름이 null인 아이템을 로드할 때 발생하는 null 참조 예외를 수정했습니다.
1.17.1
  • 레시피 속성이 있는 콘텐츠 팩 메일은 레시피가 학습되지 않은 경우 재전송되기 위해 첨부 파일이 없어야 합니다. (첨부 파일이 있는 경우 레시피 속성은 무시됩니다.)
  • 이전에 제작 레시피에 적용되었던 것과 동일한 논리를 요리 레시피에도 적용합니다.
1.17.0
  • 첨부 파일의 품질을 설정하는 새로운 속성
  • 레시피가 학습되지 않은 경우, 레시피가 포함된 콘텐츠 팩 메일을 다시 전달해야 합니다.
  • 적격 아이템 ID를 사용하는 경우 Slingshot에 대한 경고를 수정합니다.
  • 이미 제작법을 배웠더라도 제작법이 전달되는 문제를 수정했습니다.
  • 레거시 이유로 인해 학습된 레시피에서 레시피 ID를 찾을 수 없는 경우 레시피 ID의 이름으로 항목을 생성하는 레시피를 찾습니다.
1.16.1
  • 번역된 요리법 이름을 수정했습니다.
1.16.0
  • Stardew Valley 1.6과 호환되도록 모드를 업데이트하세요
  • 콘텐츠 팩을 다시 로드하는 새로운 명령
  • MailDao 이름을 MailRepository로 변경했습니다. (이 기능을 사용하는 SMAPI 모드에만 적용됩니다.)
  • 첨부 파일에 대한 새로운 아이템 유형 'QualifiedItemId'는 적절한 자격을 사용하면 게임 내 모든 유형의 아이템에 적용 가능합니다.
  • 특별한 날짜에 맞춰 예약 가능한 새 숙소입니다. (결혼 및 출산)
  • CustomTextColor에 대한 새로운 속성이 추가되었고, 기존 속성은 더 이상 사용되지 않습니다.
  • 새로운 HasMods 속성
  • 새로운 RequireAllMods 속성
  • 이벤트 ID가 이제 문자열입니다. (숫자도 여전히 작동해야 합니다.)
  • MFM에 통합된 오래된 로직 SV 1.6을 제거했습니다.
  • 알파 버전에서 편지 수집 페이지에서 편지가 열리지 않는 문제가 해결되었습니다.
스포일러:
보여주다
1.15.0
  • SMAPI 모드를 위한 새로운 API 인터페이스.
  • SMAPI 모드 내부에서 콘텐츠 팩 폴더를 로드하는 API 방법입니다.
  • 편지를 로드하는 API 메서드.
  • 문자 데이터를 가져오는 API 메소드입니다.
  • 편지의 메일 데이터 문자열을 가져오는 API 방법입니다.
  • 편지를 닫을 때 오류가 발생하여 사서함이 제대로 작동하지 않는 문제를 해결했습니다.
  • 해당 오류를 기록하는 것이 좋습니다.
1.14.0
  • SMAPI 4와의 호환성을 위한 추가 변경 사항
  • ITranslationHelper를 설정하기 위한 문자 클래스의 새로운 속성입니다.
  • 콘텐츠 팩은 아무것도 변경할 필요가 없지만, 이 변경을 통해 드물게 발생하는 i18n 문제를 방지할 수 있습니다.
  • 코드를 통해 MFM을 사용하는 모드는 구현을 업데이트할 수 있습니다.
1.13.0
  • 모드를 SMAPI 4와 호환되게 만듭니다.
  • 가장 깊은 광산 레벨에 대한 새로운 속성입니다.
  • 현재 가격으로 구매 가능한 새로운 부동산.
  • 총 수입에 대한 새로운 자산입니다.
  • 모더의 디버깅을 돕기 위해 사서함을 강제로 업데이트하는 새로운 콘솔 명령이 추가되었습니다.
  • 이제 편지 수집 메뉴에 사용자 정의 닫기 버튼도 표시됩니다.
1.12.2
  • SMAPI에서 강제로 변환하지 않고도 모드를 1.5.5와 호환되도록 만듭니다.
  • Unix OS에서 첨부 파일이 작동하지 않는 몇 가지 문제를 해결해야 합니다.
  • 주택 업그레이드 레벨을 위한 새로운 속성입니다.
1.12.1
  • 확장된 전제 조건 유틸리티가 로드되지 않았을 때 발생하는 오류가 수정되었습니다.
1.12.0
  • 사용을 지원하는 새로운 속성확장된 전제 조건
  • 플레이어의 MailReceived 목록에 문자 ID 외에 텍스트를 추가할 수 있는 새로운 속성이 추가되었습니다.
1.11.0
  • DGA(동적 게임 자산)를 첨부 파일로 지원합니다.
1.10.2
  • Json Assets에서 영어로 요리 레시피 이름을 추가하면 null로 표시되는 문제를 수정했습니다.
1.10.1
  • i18n 파일이 있을 때 텍스트가 없는 문자를 자동으로 열어 모드를 중단시키는 문제를 수정했습니다.
  • 한 번의 컬렉션 조건 경고 후 콘텐츠 팩의 문자가 로드되지 않는 문제를 수정했습니다.
  • 제작법에 새로운 수집 요구 사항 유형을 추가합니다.
1.10.0
  • 이제 모든 바닐라 도구가 지원됩니다.
  • 바닐라 슬링샷을 무기로 사용할 수 있습니다. 슬링샷의 색인이나 이름을 사용하면 해당 슬링샷이 제대로 생성됩니다.
  • 실제 편지를 쓰지 않고도 편지 ID를 읽은 것으로 저장하기 위해 MFM 조건을 사용할 때 사용할 수 있는 새로운 "자동 열기" 속성입니다.
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를 가진 편지는 같은 날 배달되지 않습니다.
  • 콘텐츠 팩의 새로운 조건: "랜덤찬스".
  • 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-베타.6
  • 제작 레시피에 지원을 추가합니다.
  • 사용자 정의 배경에 대한 지원을 추가합니다.
  • 사용자 정의 텍스트 색상에 대한 지원을 추가합니다.
  • 이제 조화를 사용하여 사용자 정의 편지를 여는 새로운 방법
  • 사용자 정의 편지를 여는 기존 방식을 활성화하는 구성 파일입니다.
1.2.0
  • i18n 레시피 지원.
  • 타이틀 메뉴로 돌아온 후 모드가 제대로 작동하지 않는 문제를 수정했습니다.
  • 편지의 조건에서 예외가 발생하면 메일이 배달되지 않도록 수정했습니다.
1.1.0
  • 잠들어 있을 때 "세금 전달됨" 메일을 받거나 사용자 지정 메일을 읽지 않고 게임을 종료하는 문제를 수정했습니다.
  • 사용자 정의 메일에는 요리법이 포함될 수 있습니다.
  • 이 버전은 이전 버전과 호환되지 않습니다. 이 버전을 사용하려면 모드를 업데이트해야 합니다.
1.0.0
  • 사용자 정의 메일 추가
  • 사용자 정의 메일에는 항목이 포함될 수 있습니다.

모더가 콘텐츠 팩을 사용하려면:
  • 모드 폴더 안에는 각 속성의 기능에 대한 설명이 주석으로 달린 템플릿이 있습니다.
  • 모든 문자 기능을 제외하고 조건과 콜백은 프레임워크로 코딩하는 것과 동일합니다.
  • 조건은 구현된 조건으로 제한되며, 콜백은 항상 문자 ID를 수신됨으로 설정합니다. 고급 조건이 필요한 경우에도 코드를 작성해야 합니다. 또는 콘텐츠 팩에 조건을 추가하도록 정중하게 제안해 주셔도 됩니다. 타당한 내용이라면 추가해 드릴 수 있습니다.
  • 모드 파일에 추가된 템플릿은 다음과 같습니다.
스포일러:
보여주다
[
    {
"Id": "MyMod.MyMailId", // 문자 ID입니다. 충돌을 피하기 위해 고유한 문자열이어야 합니다. 또한 공백이 포함되어서는 안 됩니다.
"GroupId": "MyMod.MyGroupId", // 편지 그룹 ID입니다. 동일한 그룹 ID를 가진 편지는 같은 날에 배달되지 않습니다. 먼저 등록된 편지가 우선권을 가지며, 그룹 ID가 ".Random"으로 끝나는 경우 무작위로 편지가 선택됩니다. 기본값은 null입니다.
"제목": "내 편지 제목", // 편지 제목. 컬렉션 메뉴에 표시됩니다. 컬렉션에 편지가 표시되지 않도록 하려면 null로 설정하거나 해당 줄을 삭제하세요. 번역 파일이 제공되는 경우 여기에 번역 키를 입력해야 하지만, 제목이 없는 경우 null로 설정해도 됩니다.
"텍스트": "@^님께, 제 맞춤 메일입니다.", // 편지 본문입니다. @는 플레이어 이름을, ^는 줄바꿈을 위해 사용할 수 있습니다. 기본 게임 명령어를 사용하여 돈, 아이템 등을 추가할 수도 있습니다. 번역 파일이 제공되는 경우, 여기에 번역 키를 입력하세요.
"RandomlyChooseAttachment": 2, // 숫자를 설정하면 그룹별로 첨부 파일 목록에서 해당 개수만큼의 항목을 무작위로 선택합니다. 기본값은 null입니다.
"RandomlyChooseAttachmentPerGroup": { "CaveItems": 3 }, // 여기에 그룹과 개수를 설정하면 RandomlyChooseAttachment에 설정된 그룹과 개수 대신 해당 개수를 사용하여 아이템을 선택합니다. 기본값은 비어 있습니다.
"AttachmentGroupWithReplacement": [ "CaveItems" ], // 첨부 파일은 기본적으로 목록에서 무작위로 선택되며, 대체되지 않습니다. 첨부 파일을 대체하여 선택되도록 하려면 그룹을 목록에 추가하세요. 그룹을 추가하지 않은 경우 빈 문자열을 사용하세요. 기본값은 빈 목록입니다.
"첨부 파일": [ // 첨부 파일 목록입니다. 메일에 항목을 첨부하지 않으려면 이 속성을 제거하세요.
            {
"Type": "Object", // [Object|BigCraftable|Tool|Ring|Furniture|Weapon|Boots|DGA|QualifiedItemId|None] 필수. 부착될 아이템의 유형입니다. 지정하지 않으면 아이템이 무시됩니다. 'None'은 로그에서 오류 없이 항상 무시되며, 부착물을 추가하지 않을 확률을 높이고 싶을 때 사용해야 합니다.
"이름": "Cave Carrot", // 아이템 인덱스를 찾는 데 사용됩니다. JSON Assets와 같은 사용자 정의 객체를 사용하는 경우 필수입니다. DGA를 사용하는 경우 전체 DGA ID를 입력해야 합니다. 지정하지 않으면 인덱스가 사용됩니다. 기본값은 null입니다.
"Index": "(0)78", // 항목의 인덱스입니다. 정규화된 항목 ID를 문자열로 지정해야 하지만, 역호환성을 위해 정수로도 사용할 수 있습니다. 이름이 지정되지 않았거나 해당 이름에 해당하는 항목을 찾을 수 없는 경우 인덱스가 사용됩니다. 그렇지 않으면 첨부 파일은 무시됩니다. 유형이 DGA인 경우 무시됩니다.
"Stack": 1, // 전달할 아이템의 스택 값입니다. Objects 및 BigCraftable에만 사용됩니다. 기본값은 1입니다.
"Quality": 2, // 배송될 품목의 품질 값입니다. Object에만 사용됩니다. 0 = 없음, 1 = 은, 2 = 금, 4 = 이리듐. 기본값은 0입니다.
"RequireMailReceived": [ "jojaVault", "ccVault" ], // 메일 중 하나를 수신해야 합니다. 게임 목록에는 커뮤니티 센터 플래그처럼 메일이 아닌 다른 항목도 포함됩니다. 기본값은 null이므로 메일 수신을 요구하지 않습니다.
"RequireAllMailReceived": false, // true인 경우 "RequireMailReceived" 목록에 있는 모든 메일을 수신해야 합니다. 기본값은 false입니다.
"ProbabilityWeight": 1, // 이 부착물이 전달할 부착물을 선택할 때 가지는 가중치입니다. 관리자는 주어진 그룹의 모든 가중치를 합산하고, 이 가중치를 전체 가중치로 나누어 확률을 계산합니다. 기본값은 1입니다.
"RandomGroup": "CaveItems" // 무작위로 아이템을 선택할 경우, 찾은 그룹별로 목록을 그룹화하고 각 그룹에서 설정된 개수를 선택합니다. 기본값은 기본 그룹으로 사용되는 빈 문자열입니다.
},
            {
"Type": "Tool", // 도구를 사용할 경우, 지원되는 도구만 첨부할 수 있습니다.
"이름": "도끼", // [도끼|괭이|물뿌리개|곡괭이|낫|황금낫|우유통|가위|낚싯대|냄비|반환용 홀] 도구에 필수입니다. 지원되는 도구의 이름입니다. 그렇지 않으면 부착물이 무시됩니다.
"UpgradeLevel": 1 // 도구의 업그레이드 레벨. 일반 도구: 0 = 돌, 1 = 구리, 2 = 강철, 3 = 금, 4 = 이리듐. 낚싯대: 0 = 대나무 낚싯대, 1 = 연습용 낚싯대, 2 = 유리 섬유 낚싯대, 3 = 이리듐 낚싯대. 다른 유형의 도구는 무시됩니다. 기본값은 0입니다.
},
            {
"유형": "DGA", //DGA 항목
"이름": "spacechase0.DynamicGameAssets.Example/내 사용자 지정 아이템", // 전체 DGA ID를 사용하세요. 필수입니다.
"Stack": 10, // 전달할 아이템의 스택 값입니다. Objects 및 BigCraftable에만 사용됩니다. 기본값은 1입니다.
"Quality": 2 // 배송될 품목의 품질 값입니다. Object에만 사용됩니다. 0 = 없음, 1 = 은, 2 = 금, 4 = 이리듐. 기본값은 0입니다.
},
            {
"Type": "QualifiedItemId", //지원되는 모든 항목
"Index": "(0)78", // 항목의 적격 항목 ID입니다.
"Stack": 10, // 전달할 아이템의 스택 값입니다. Objects 및 BigCraftable에만 사용됩니다. 기본값은 1입니다.
"Quality": 2 // 배송될 품목의 품질 값입니다. Object에만 사용됩니다. 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는 해당 글자에 대해 이 파일을 기준으로 합니다. null이거나 제거된 경우, 모드는 게임 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여야 합니다. null이거나 제거된 경우 기본 버튼이 사용됩니다.
"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": "씨앗 요청 편지가 전송되었습니다.", // 이 답장 옵션을 선택하면 표시될 텍스트입니다. 번역 파일이 제공되는 경우 여기에 번역 키를 입력해야 합니다.
"비용": 50 // 플레이어가 이 옵션을 선택하는 데 필요한 금액입니다. 플레이어가 이 옵션을 선택하면 해당 금액이 플레이어의 돈에서 즉시 차감됩니다. 항상 비용이 없는 옵션을 제공해야 합니다. 그렇지 않으면 플레이어가 완전히 잠길 수 있습니다.
                }
            ]
},
"Repeatable": false, // true이면 관리자가 문자 ID가 이미 전달되었는지 확인하지 않습니다. 기본값은 false입니다.
"AutoOpen": false, // true이면 관리자는 조건이 충족된 후 하루가 시작될 때 편지를 엽니다. 편지 ID는 읽음으로 표시되고, 레시피가 설정되어 있으면 학습됩니다. 편지가 표시되지 않으므로 제목, 텍스트, 배경 등의 시각적 속성과 첨부 파일은 사용되지 않습니다.
// 배송 조건
//아래는 배송 조건입니다. 해당 조건을 확인하지 않으려면 해당 줄을 삭제하세요.
"날짜": "10 봄 Y1", // 해당 날짜 또는 그 이후 날짜여야 합니다. 형식은 "[1-28] [봄|여름|가을|겨울] Y[1-999]"입니다.
"Days": [7,14,21,28], // 목록에 있는 날짜 중 하나여야 합니다.
"계절": ["가을"], // 목록에 있는 계절 중 하나여야 합니다. [봄|여름|가을|겨울]
"Weather": "sunny", // 게임 날씨와 같은 것 같습니다. 형식은 "[sunny|rainy]"입니다.
"HouseUpgradeLevel": 2, // 주택 업그레이드 레벨은 정의된 레벨 이상이어야 합니다. 0 - 시작 주택(사용할 이유 없음, 줄만 제거), 1 - 주방, 2 - 2층, 3 - 지하실.
"DeepestMineLevel": 80, // 가장 깊은 광산 레벨은 정의된 값과 같거나 높아야 합니다. 120은 광산의 마지막 레벨이고, 121은 해골 동굴의 첫 번째 레벨입니다.
"CurrentMoney": 10000, // 현재 금액은 정의된 금액 이상이어야 합니다.
"TotalMoneyEarned": 500000, // 획득한 총 금액은 정의된 금액 이상이어야 합니다.
"FriendshipConditions": // 목록의 각 NPC는 모든 조건을 확인해야 합니다.
        [
            {
"NpcName": "Lewis", //NPC 이름. 사용자 지정 NPC를 사용할 수 있습니다.
"FriendshipLevel": 8, // NPC의 우정 하트 레벨은 정의된 레벨 이상이어야 합니다. 기본값은 0입니다.
"FriendshipStatus": ["데이트 중", "약혼 중", "기혼"] // [친구 관계|데이트 중|약혼 중|기혼|이혼] NPC의 친구 관계가 목록에 있는 상태여야 합니다. 상태를 요구하지 않으려면 삭제하세요.
            }
],
"SkillConditions": // 목록의 각 스킬은 정의된 레벨 이상이어야 합니다. 바닐라 게임에서는 행운을 포함하여 코딩된 모든 스킬을 사용할 수 있습니다. 사용자 지정 스킬은 사용할 수 없습니다.
        [
{ "SkillName": "농업", "SkillLevel": 1 }
],
"StatsConditions": // 목록의 각 통계는 정의된 값 이상이어야 합니다. StatsName 또는 StatsLabel을 선택하세요.
        [
            {
"StatsName": "치즈 제조", //[씨앗 심기|배송된 아이템|조리된 아이템|제작된 아이템|낳은 닭알|낳은 오리알|생산된 소젖|생산된 염소젖|생산된 토끼털|생산된 양털|치즈 제조|치즈 제조된 염소|발견된 트러플|채집된 돌|파쇄된 바위|흙갈기|준 선물|의식 상실 시간|평균 취침 시간|낚시한 시간|잡은 물고기|금이 간 바위|잘라낸 그루터기|걸음 수|죽인 몬스터|발견된 다이아몬드|프리즈매틱 ardsFound|OtherPreciousGemsFound|CaveCarrotsFound|CopperFound|IronFound|CoalFound|CoinsFound|GoldFound|IridiumFound|BarsSmelted|BeveragesManade|PreservesManade|PiecesOfTrashRecycled|MysticStonesCrushed|DaysPlayed|WeedsDeliminated|SticksChopped|NotesFound|QuestsCompleted|StarLevelCropsShipped|CropsShipped|ItemsForaging|SlimesKilled|GeodesCracked|GoodFriends|IndividualMoneyEarned] 기본값은 null입니다.
"StatsLabel": "이름", // [exMemoriesWiped|childrenTurnedToDoves|trashCansChecked|boatRidesToIsland|beachFarmSpawns|hardModeMonstersKilled|timesEnchanted] 레이블로 식별되는 현재 게임 통계입니다. 더 많은 통계가 추가되면 해당 통계도 지원되어야 합니다. 다른 모드가 추가한 사용자 지정 통계 레이블도 식별합니다. 기본값은 null입니다.
"금액": 1 // 조건이 유효하려면 상태가 같아야 하는 금액 이상이어야 합니다.
            }
],
"CollectionConditions": // 목록의 각 수집 조건은 정의된 양보다 크거나 같은 값을 가져야 합니다.
        [
            {
"수집": "배송됨", //[배송됨|생선|유물|광물|요리|제작]이 필요합니다.
"이름": "석유", //더 이상 사용되지 않음, 대신 ID를 사용합니다. '제작' 컬렉션의 객체 또는 제조법 이름입니다. 제작 컬렉션이 아닌 경우, 객체 목록에서 해당 이름을 찾아 색인을 찾습니다. 이름을 찾을 수 없으면 해당 문자는 무시됩니다. 다른 속성과 결합됩니다. 기본값은 null입니다.
"Index": 211, //더 이상 사용되지 않음. 대신 ID를 사용합니다. 객체의 인덱스입니다. 다른 속성과 결합됩니다. 기본값은 null입니다.
"ID": [ "282", "MossSoup" ], //아이템 ID 또는 제작 레시피 이름입니다. 다른 속성과 결합됩니다. 수량은 합계되어 Amount 속성과 비교됩니다.
"Amount": 10 // 조건이 유효하려면 컬렉션에 있는 객체의 총량이 같거나 커야 합니다.
            }
],
"SpecialDateCondition": // 해당 날짜이거나 이후여야 합니다.
        {
"SpecialDate": "출산", //[결혼|출산] 필수
"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" ], //Expanded Preconditions 유틸리티 모드가 필요합니다. 작동 방식을 확인하려면 해당 모드 설명서를 참조하세요. 모드가 로드되지 않으면 편지가 전달되지 않습니다.
"RandomChance": 0.25, // 관리자는 0에서 1 사이의 난수가 주어진 숫자보다 작은지 확인합니다. 부정행위를 방지하기 위해 같은 날, 같은 글자를 저장하면 항상 같은 결과가 나옵니다.
"건물": ["협동조합", "대형 협동조합", "고급 협동조합"], // 농장에 현재 건설 중인 건물이 필요합니다.
"RequireAllBuildings": false, // true인 경우, "Buildings" 목록에 있는 모든 건물이 현재 농장에 건설되어 있어야 합니다. 기본값은 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": ["피자", "서바이벌 버거"], // 플레이어가 레시피 중 하나를 배워야 합니다.
"RequireAllRecipeKnown": false, // true인 경우, 플레이어가 "RecipeKnown" 목록에 있는 모든 레시피를 이미 습득했어야 합니다. 기본값은 false입니다.
"RecipeNotKnown": ["Wild Bait"], // 플레이어가 해당 요리법을 배우지 않았어야 합니다.
"KeepValid": false // true인 경우, 조건이 충족되면 읽을 때까지 메일을 유효 상태로 유지합니다. 기본값은 false입니다.
    }
]


Modder가 API를 사용하려면:
  • 복사IMailFrameworkModApiMFM 인터페이스에서 사용하고자 하는 메서드와 인터페이스를 연결합니다.
  • 복사ILetter만약 그 방법 중 하나에 필요하다면.
  • 행동 양식:
    • 등록 콘텐츠 팩- 사용도우미.콘텐츠팩.임시생성mod에서 mail.json 파일과 번역을 위한 i18n 폴더가 포함된 폴더를 로드합니다. 해당 메서드 매개변수를 사용할 수 있으므로 매니페스트는 필요하지 않습니다.
    • 등록편지- 필요한 속성으로 ILetter를 채우세요. 편지를 등록하려면 조건도 필요합니다. 최소한 수신된 편지 ID를 추가하는 콜백을 사용하는 것이 좋습니다. 아래 "Modder가 MFM 종속성을 사용하여 코드를 작성하려면" 세션.
    • 겟레터- 문자 ID에 대한 ILetter 객체를 얻게 됩니다.
    • GetMailDataString- 문자 ID에 대한 메일 데이터 문자열을 받게 됩니다. 메일 데이터 문자열은 기본적으로 번역된 텍스트와 번역된 제목을 [#]으로 구분한 것입니다.

Modder가 MFM 종속성을 사용하여 코드를 작성하려면 다음을 수행합니다.
  • SMAPI 프로젝트에서 MailFrameworkMod.dll을 참조하세요.
    • MailRepository.SaveLetter(Letter)를 사용하여 편지를 등록합니다.
    • 매일 시작 시 관리자는 배달 가능 상태에 도달한 편지를 확인하고 이를 우편함에 추가합니다.
    • 이 편지는 플레이어가 우편함을 확인할 때 가장 먼저 열립니다.
    • 편지를 열면 편지함에서 편지가 제거됩니다.
    • 해당 문자의 콜백 조건은 호출되는 것입니다.
    • 하루가 끝나면 우편함에 남아 있는 편지는 제거되므로 게임에서 저장되지 않습니다.
  • 이 모드는 편지를 보관하는 저장소라고 생각하면 됩니다. 게임이 로딩될 때 모든 편지를 불러오는 것이 가장 효과적입니다.


예:

스포일러:
보여주다

플레이어가 이전에 읽지 않은 경우 표시되고, 플레이어가 열면 다시 전달되지 않는 간단한 편지를 로드합니다.
메일 저장소.SaveLetter(
새로운 편지(
"LetterUniqueId"
,"편지 사용자 정의 텍스트."
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,(l)=>Game1.player.mailReceived.Add(l.Id)
)
);


이전과 마찬가지로 간단한 편지를 로드하지만 에메랄드 5개를 첨부합니다.
메일 저장소.SaveLetter(
새로운 편지(
"LetterUniqueId"
,"편지 사용자 정의 텍스트."
,새로운 목록<아이템> { 새로운 StardewValley.Object(60,5) }
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,(l)=>Game1.player.mailReceived.Add(l.Id)
  )
);

플레이어는 동일한 아이템을 받지 않고, getOne() 메서드에서 반환된 복사본을 받습니다.

요리 레시피를 알려주는 간단한 편지를 로딩합니다. 플레이어가 레시피를 모르면 편지가 전달됩니다. 모드는 플레이어가 로딩될 때 자동으로 레시피를 알려주므로, 콜백은 필요하지 않습니다.
메일 저장소.SaveLetter(
새로운 편지(
"LetterUniqueId"
, "문자 사용자 정의 텍스트."
, "레시피 고유 이름"
, (l) => !Game1.player.cookingRecipes.ContainsKey(l.레시피)
  )
);

"RecipeUniqueName"은 "Data//CookingRecipes" 또는 "Data//CraftingRecipes"에 저장된 것과 동일해야 합니다.

다양한 텍스트와 배경을 가진 간단한 편지 로딩:
메일 저장소.SaveLetter(
새로운 편지(
"LetterUniqueId"
,"편지 사용자 정의 텍스트."
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,(l)=>Game1.player.mailReceived.Add(l.Id)
1
){텍스트색상=8}
);


사용자 정의 배경을 사용하여 간단한 편지 로드:
메일 저장소.SaveLetter(
새로운 편지(
"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"와 동일한 구조를 따르는 이미지 파일입니다.

텍스트와 제목을 번역한 간단한 편지를 로드합니다.
메일 저장소.SaveLetter(
새로운 편지(
"LetterUniqueId"
,"myletter.translation.key.text"
,(l)=>!Game1.player.mailReceived.Contains(l.Id)
,(l)=>Game1.player.mailReceived.Add(l.Id)
){
제목 = "myletter.translation.key.title",
I18N = 도우미.번역
    }
);



내 다른 모드:

Stardew Valley용 인기 모드

Stardew Valley의 최고의 모드를 탐색하세요. 새로운 기능, 향상된 그래픽, 그리고 흥미로운 방식으로 게임 플레이 경험을 변화시킬 수 있습니다.
콘텐츠 패처
Pathoschild2025-10-27 01:17:30
XNB 파일을 대체하지 않고 게임의 데이터, 이미지 및 지도를 변경하는 콘텐츠 팩을 로드합니다.
SMAPI - Stardew 모딩 API
Pathoschild2025-07-15 09:52:47
Stardew Valley의 모드 로더입니다.
NPC 지도 위치
Bouhm2025-10-22 09:39:46
NPC 및 플레이어를 지도에서 볼 수 있으며, 선택적 인 최소 지도를 사용하십시오.
일반 모드 설정 메뉴
spacechase02025-10-19 03:48:57
다른 모드의 구성 옵션을 편집하기 위해 게임 내 UI를 추가합니다.
SpaceCore는
spacechase02025-10-19 22:27:21
내 다른 모드에 의해 사용되는 프레임워크 모드.
Stardew Valley 확장
FlashShifter2025-07-01 07:17:39
Stardew Valley Expanded는 ConcernedApe의 Stardew Valley의 팬메이드 확장입니다.이 모드는 28 개의 새로운 NPC, 58 개의 위치, 278 개의 캐릭터 이벤트, 43 개의 물고기, 바이 이 바이 이 이 새로운 바이 이 이 모두를 반영하는 새로운 세계 지도, 세 개의 농장 지도, 새로운 세계 지도를 추가합니다.
무엇이든 검색
Pathoschild2025-10-27 01:26:29
F1을 누르면 커서 아래에 있는 것에 대한 라이브 정보를 참조하십시오.마을주민들이 좋아하는 선물, 작물이 언제 수확할 준비가 될 것인지, 마마마을주민들이 얼마나 오래 마마마을을 마마을주민들이 좋아하는 선물, 농장 동물들이 왜 불행하는지, 그리고 더 많은 것을 배우십시오.
CJB 아이템 산란기
Pathoschild2025-07-28 06:24:40
사용하기 쉬운 게임 내 항목 스포너 메뉴.

Xmod로 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