logo
ko
한국어

메일 프레임워크 모드

제작자: Digus
업데이트됨:2025-03-28 14:16:59
49KB
mcafee
인증
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의 모든 잠재력을 발휘하세요 — 오늘 이 최고 모드를 탐험해보세요!

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