통합 전략 프로토콜
약 1783 단어약 6 분
팁
JSON 파일은 주석을 지원하지 않습니다. 본문의 주석은 설명을 위한 것이므로 직접 복사하여 사용하지 마세요.
통합 전략 리소스 저장 위치
resource/roguelike/하위에 테마별로 통합 전략 리소스를 저장합니다.- 테마 폴더:
Phantom/팬텀 & 크림슨 솔리테어,Mizuki/미즈키 & 카이룰라 아버,Sami/탐험가의 은빛 서리 끝자락,Sarkaz/살카즈의 영겁 기담,JieGarden/쉐이의 기이한 계원autopilot/에는 각 스테이지의 작전 json 파일이 위치합니다.스테이지명.json해당 스테이지의 작전 로직
encounter/에는 우연한 만남(전투 및 상점을 제외한 모든 노드) 이벤트 로직이 위치합니다.default.json레벨링 모드deposit.json오리지늄각뿔 파밍 모드
recruitment.json오퍼레이터 모집 로직shopping.json상점 소장품 구매 로직
- 테마 폴더:
특별히
Sami/폴더 하위에는:foldartal.json사미 통합 전략의 암호판 사용 로직collapsal_paradigms.json사미 통합 전략의 붕괴 패러다임 유형autopilot/스테이지명_collapse.json작전 로직 (붕괴 패러다임 파밍 모드)encounter/collapse.json붕괴 패러다임 파밍 모드의 우연한 만남 로직
Sarkaz/폴더 하위에는:fragments.json살카즈 통합 전략의 구상(Thought) 기본 정보map.json살카즈 통합 전략의 청사진 이동을 위한 템플릿 이미지 정보
JieGarden/폴더 하위에는:coppers.json주화의 기본 정보 및 줍기/교체 로직
통합 전략 1단계 — 오퍼레이터 모집
resource/roguelike/테마명/recruitment.json은 오퍼레이터 모집 로직을 기술합니다. tools/RoguelikeRecruitmentTool 및 tools/RoguelikeOperSearch 보조 도구를 사용하여 확인 및 작성할 수 있습니다.
{
"theme": "Phantom", // 통합 전략 테마 (여기서는 팬텀)
"priority": [ // 그룹별 우선순위 (순서대로)
...
],
"team_complete_condition": [ // 편성 완성도 검사
...
]
}오퍼레이터 분류
여러분의 게임 이해도에 따라 오퍼레이터를 다양한 그룹 (관련 개념은 자동지휘 프로토콜 참조)으로 분류하세요.
주의
동일 그룹 내의 오퍼레이터와 소환물은 배치 방식이 일치해야 하며(모두 지상 또는 모두 언덕), 공격 범위가 최대한 비슷해야 합니다.
동일한 오퍼레이터나 소환물이라도 사용법에 따라 다른 그룹으로 분류할 수 있습니다.
기존에 존재하는 그룹 이름은 수정하지 마세요. MAA 업데이트 시 이전 버전의 리소스가 작동하지 않을 수 있습니다.
가급적 그룹을 새로 추가하지 말고, 새로 추가하는 오퍼레이터를 사용 용도에 맞춰 기존 그룹에 포함시키세요.
팁
기본적으로 1차 정예화 55레벨 이상의 오퍼레이터만 모집합니다.
{
"theme": "Phantom",
"priority": [ // 그룹, 순서대로
{
"name": "棘刺", // 그룹명 (이 그룹의 이름은 '쏜즈')
"opers": [ // 그룹에 포함된 오퍼레이터, 순서대로 배치 우선순위를 나타냄
// (예: 이 그룹의 오퍼레이터를 배치해야 할 때, 쏜즈가 있는지 먼저 확인하고 있으면 배치, 없으면 혼을 확인)
{
"name": "棘刺", // 오퍼레이터 이름
"skill": 3,
"skill_usage": 1,
...
},
{
"name": "号角",
"skill": 2,
"skill_usage": 1,
...
}
]
},
"team_complete_condition": [
...
]
]
}기존 그룹 소개
사미 통합 전략 리소스를 예로 들면, 오퍼레이터를 다음과 같이 분류했습니다.
그룹 주요 고려 사항 주요 직군 오퍼레이터 예시 地面阻挡 전선 유지 및 일반 적 처리 디펜더, 가드 사리아, 마운틴, 라 플루마, Mon3tr, 링과 씬의 소환물, 스팟, 예비 디펜더 地面单切/处决者 엘리트 적 1:1 대처 스페셜리스트-처형자 수르트, 텍사스 디 오메르토사, 키린 R 야토, Mon3tr, 레드 高台 C 기본 공격 및 결전 화력 스나이퍼, 캐스터 위셔델, 로고스, 첸 더 홀룽데이, 골든글로우 高台输出 대공 및 기본 공격 화력 스나이퍼, 캐스터 아르케토, 엑시아, 크루스, 스튜어드 速狙 물리 피해, 표준 사거리 스나이퍼 엘라, 엑시아, 케이퍼, 크루스 术师 마법 피해, 표준 사거리 캐스터-코어 캐스터 에이야퍄들라, 로고스, 스튜어드 辅助 후방 1칸 공격 가능 서포터 비르투오사, 스즈란, 케이퍼, 오키드 狙击 긴 사거리의 언덕 스나이퍼-투척수/공성사수 위셔델, 티폰, 로사 奶 치료 능력 메딕, 서포터 켈시, 스카디 더 커럽팅 하트, 히비스커스, 안셀 单奶 공격 범위 깊이 >= 4 메딕 켈시, 리드 더 플레임 섀도우, 에이야퍄들라 더 크비트 아스카, 히비스커스, 안셀 群奶 공격 범위 깊이 < 4, 후방 치료 가능 메딕, 서포터 나이팅게일, 프틸롭시스, 스카디 더 커럽팅 하트 回费 코스트 수급 뱅가드 머틀, 이네스, 팽, 바닐라 地刺 저지 불가, 피해 또는 감속 스페셜리스트-매복자 언펙터, 아스카론, 맨티코어 地面远程 지상 사거리 김, 디펜더 뒤 공격 지원 가드-교관/로드 혼, 팔라스, 쏜즈, 실버애쉬 领主 지상 공격 범위 깊이 > 4, 대공 가능 디펜더-포트리스, 가드-로드 쏜즈, 실버애쉬, 츄바이 盾法 짧은 사거리, 방어 능력 보유 캐스터-진법 캐스터 린, 카넬리안 炮灰 탄환 흡수, 재배치 스페셜리스트, 소환물 Mon3tr, 레드, 머틀, 예비 오퍼레이터 大龙 전방 방어, 합체 편의성 소환물 링의 소환물, 제시카 더 리버레이티드의 방패 补给站 메인 공격수 SP 보조 소환물 보급기, 메카 캐스터 소환물 无人机 언덕/지상 무시 치료 소환물 소환물 스카디의 해사, 사일런스의 드론 支援陷阱 지상 배치 폭발물 소환물 W의 지뢰, 도로시의 함정 障碍物 배치 수 미소모, 어그로/저지 소환물 새장, 장애물 其他地面 우선순위 낮은 지상 유닛 밀치기, 1저지 뱅가드, 소드마스터 백파이프, 크루아상 高台预备/其他高台 우선순위 낮은 언덕 유닛 광역 캐스터, 체인 캐스터, 전술가 오키드, 예비 오퍼레이터 팁
地面阻挡은 오퍼레이터의 종합적인 방어 능력을 고려합니다.奶는 종합적인 치유 능력을 고려합니다. 단일 메딕(4칸)이나 멀티 메딕(후방 커버 가능)의 공격 범위 구분이 필요한 경우 별도로 분류하여 사용해 주세요.高台输出는 순수 화력을 고려합니다. 공격 타입이나 범위 제한이 필요한 경우速狙,术师,辅助,盾法등을 별도로 사용해 주세요.함정류 소환물은 종류가 많으므로
支援陷阱그룹에 넣지 말고 MAA가 자동으로 배치하도록 하는 것이 효율적입니다.특수 조작이 필요한 그룹
위의 일반적인 분류 외에도 특정 오퍼레이터나 직군을 정교하게 조작해야 할 때가 있습니다. 예를 들어:
그룹 포함 오퍼레이터 주요 특징 益达 위셔델 언덕 딜러, 우선 배치하여 부담 경감 棘刺 쏜즈, 혼 지상 원거리 딜러, 팬텀 통합 전략 등에서 매우 좋은 자리가 있음 召唤类 켈시, 링, 씬 자체 저지 가능, 맵에 따라 우선 배치 필요, 소환물을 저지나 미끼로 활용 情报官 칸타빌레, 이네스 코스트 회복, 측면 딜링, 암살 모두 가능 浊心斯卡蒂 스카디 더 커럽팅 하트 저압 상황 힐링 준수, 특수 범위, 특정 맵에서 좋은 자리가 있음 焰苇 리드 더 플레임 섀도우 사미 통합 전략 권장 스타팅, 치유/공격 겸업, 특정 맵에서 좋은 자리가 있음 玛恩纳 무에나, 실버애쉬 지상 광역 결전 병기, 보스전 등에서 배치 史尔特尔 수르트 2차 정예화 후 3스킬 고정 사용 시 저지 능력 거의 없음, 배치 우선순위 매우 낮음 骰子 주사위 미즈키 통합 전략의 주사위는 별도 조작 필요
주의
현재 식별되지 않은 지상 오퍼레이터는 뒤에서 두 번째 그룹(其他地面) 뒤에, 식별되지 않은 언덕 오퍼레이터는 마지막 그룹(高台预备/其他高台) 뒤에 자동으로 추가됩니다.
팁
새로 추가된 오퍼레이터는 각 테마의 recruitment.json에 수동으로 추가해야 합니다. 개발자가 모든 오퍼레이터를 즉시 추가하지 못할 수 있습니다. 누락된 것을 발견하면 Issue를 제보하거나 직접 PR을 보내주세요.
편성 프리셋 — 편성 완성도 검사
클리어 또는 고층 등반을 위해 필수적인 핵심 멤버는 누구일까요? 몇 명이 필요할까요?
주의
현재 스크립트의 모집 로직은 '편성 완성도'를 만족하기 전까지는 희망 소모 0인 오퍼레이터(주로 3성) 와 KEY 오퍼레이터(화이트리스트) 만 모집하며, 고등급 KEY 오퍼레이터를 위해 희망을 아낍니다. (현재 구현 방식: 고성능 오퍼레이터와 3성에게 수동으로 KEY 태그 부여, 모집 시 KEY 오퍼레이터만 선택) (TODO: 0 희망 오퍼레이터 자동 식별)
따라서 완성도 총합을 적절하게 설정해야 합니다. 필요한 총 오퍼레이터 수(핵심 1, 지상 2, 힐러 1-2, 언덕 1 등)는 4~8명 정도가 적당합니다.
편성 완성도를 만족한 후에는 모집권을 얻을 때마다 오퍼레이터 점수와 2차 정예화 우선순위에 따라 모집합니다. 희망 자원 손실을 방지하려면 원하지 않는 오퍼레이터는 점수를 설정하지 않거나 동종 3성/예비대원보다 낮게 설정해 주세요. (확실히 원하는 오퍼레이터나 절대 원하지 않는 오퍼레이터는 점수를 극단적으로 높거나 낮게 설정할 수 있습니다. Sami의 止颂(레싱) 설정 참조)
작전 편성 시, 오퍼레이터 선택 화면의 기본 정렬(위->아래, 왼쪽->오른쪽) 순서대로 읽어들입니다. 이 순서에 기반해, 편성 완성도 조건을 만족하는 오퍼레이터 중 먼저 나온 순서대로 앞쪽에 배치하고, 조건이 충족되거나 대상이 없을 때까지 반복합니다. 그 후 예비 오퍼레이터를 맨 뒤로 보내고, 새로운 순서대로 선택합니다. 임시 모집 6성은 편성 시 기본적으로 맨 앞에 위치하므로 실제 편성에서 포함되기 쉽습니다. (TODO: 사용 불가능한 1정예 임시 모집 오퍼레이터 제외)
뉴비 계정의 경우: 10회 모집 동안 KEY 오퍼레이터가 절반도 모이지 않으면 완성도 검사를 포기하고 점수대로 아무거나 모집합니다. 따라서 3성을 키우지 않은 뉴비 계정은 6성 2~3개와 예비대원만 잔뜩 들고 가는 경우가 생길 수 있습니다.
{
"theme": "Phantom", // 통합 전략 테마
"priority": [ // 그룹
...
],
"team_complete_condition": [ // 편성 완성도 검사
{ // 하나의 조건(condition) 그룹
"groups": [ // 어느 그룹의 오퍼레이터가 필요한가
"高台输出" // (여기서는 고대출력 그룹의 오퍼레이터 1명 필요)
],
"threshold": 1 // 필요한 수량
},
{ // 여러 조건 그룹 설정 가능
"groups": [
"棘刺", // (여기서는 쏜즈, 지상저지, 지상암살, 포회 그룹 중 합해서 2명 필요)
"地面阻挡",
"地面单切",
"炮灰"
],
"threshold": 2
},
{
"groups": [
"奶" // (여기서는 힐러 그룹 오퍼레이터 1명 필요)
],
"threshold": 1
}
...
]
}위험
한 오퍼레이터가 여러 그룹에 속해 있어도, 하나의 조건 그룹 내에서는 한 번만 카운트됩니다. 예: 쏜즈가 棘刺 그룹과 地面阻挡 그룹에 모두 속해 있을 때, 위 예시의 두 번째 조건 그룹에서 쏜즈는 1명으로만 계산됩니다.
하지만 서로 다른 조건 그룹 간에는 중복 카운트됩니다. 예: 리드 더 플레임 섀도우가 高台输出와 奶 그룹에 모두 속해 있다면, 첫 번째 조건과 세 번째 조건을 동시에 만족시키는 데 기여할 수 있습니다.
오퍼레이터 모집 파라미터 조정
그룹 내 오퍼레이터 순서는 작전 배치 시 선택 우선순위를 의미합니다.
임시 모집 오퍼레이터는 기본 점수에 +600점이 추가됩니다.
랜덤 승급(바로 2차 정예화) 오퍼레이터 점수는 모집 점수 + 2차 정예화 점수 합산으로 계산됩니다.
그룹 내 각 필드의 의미와 스크립트 로직
{ "theme": "Phantom", "priority": [ "name": "地面阻挡", // 그룹명 (여기서는 지상저지) "doc": "기준: 1저지(잡몹처리/유지력 마운틴보다 강함) > 마운틴 > 2저지(2저지 이상, 자가회복) > 스팟. 유지력이 스팟보다 낮으면 1저지나 미끼 그룹으로.", // "doc" 필드는 json 내부 주석용이며 프로그램 실행에 영향 없음 "opers": [ // 포함된 오퍼레이터 (순서 = 배치 우선순위) { "name": "百炼嘉维尔", // 오퍼레이터 이름 (가비알 디 인빈서블이 1순위. 지상 저지 그룹 배치 시 먼저 확인) "skill": 3, // 사용 스킬 (여기선 3스킬) "skill_usage": 2, // 스킬 사용 모드 (자동지휘 프로토콜 참조. 여기선 안 쓰면 기본값 1) // (0:안씀, 1:쿨마다, 2:x번만(skill_times), 3:미지원) "skill_times": 2, // 스킬 사용 횟수 (skill_usage가 2일 때) "alternate_skill": 2, // 지정 스킬 없을 때 대체 스킬 (6성 2차 정예화 전 등. 예: 3스킬 없으면 2스킬 사용) "alternate_skill_usage": 1, // 대체 스킬 사용 모드 (미구현) "alternate_skill_times": 1, // 대체 스킬 사용 횟수 (미구현) "recruit_priority": 900, // 모집 우선순위. 높을수록 먼저 모집. 900↑: 보이면 필수로 집음. 400↓: 핵심 오퍼 2차 정예화보다 낮음. // 임시 모집은 자동으로 +600 "promote_priority": 600, // 승급(2차 정예화) 우선순위. 900↑: 희망 있으면 바로 승급. 400↓: 3성 모집보다 낮음. // 팁: 모집 우선순위를 낮추고 승급 우선순위를 높이면, 임시 모집으로 떴을 때 승급을 잘 시켜줌. "is_key": true, // true: 핵심(KEY) 오퍼레이터. 편성 완성 전에는 KEY와 0희망만 모집. "is_start": true, // true: 스타팅 오퍼레이터. 파티에 스타팅 멤버 없으면 스타팅과 0희망만 모집. // UI의 스타팅 오퍼레이터 설정과 연동됨. 사용자가 수동 입력하면 강제로 start로 설정됨. "auto_retreat": 0, // 배치 후 n초 뒤 자동 철수. 0보다 클 때 작동. (특수/뱅가드용. 2배속 고려하여 지속시간/2 추천) "recruit_priority_when_team_full": 850, // 편성 완성 후 모집 우선순위 (기본값: 모집 우선순위 - 100) "promote_priority_when_team_full": 850, // 편성 완성 후 승급 우선순위 (기본값: 승급 우선순위 + 300) "recruit_priority_offsets": [ // 현재 편성에 따른 모집 우선순위 조정 { "groups": [ // 조건 그룹 (중복 오퍼레이터 없이 그룹별 카운트) "凯尔希", "地面阻挡", "棘刺" ], "is_less": false, // false: 이상(>=), true: 이하(<=). 기본값 false. "threshold": 2, // 기준 수량. 기본값 0. "offset": -300 // 조정값. 기본값 0. // (예: 켈시, 지상 저지, 쏜즈 그룹 합쳐서 2명 이상이면 가비알 디 인빈서블의 모집 우선순위 -300) } ] }, ... ], ], "team_complete_condition": [ ... ] }주의
recruit_priority_offsets의groups내 그룹들 간에 오퍼레이터가 중복되지 않도록 하세요.auto_retreat설정 시 작전 계획에서 별도로retreat_plan을 설정할 필요가 없습니다.오퍼레이터 및 그룹 추가
새로운 그룹을 추가한 뒤, 기존 그룹에서 오퍼레이터를 복사해오거나 고수들의 평가를 참고하여 점수를 수정하세요.
통합 전략 2단계 — 전투 로직
resource/roguelike/테마명/autopilot/스테이지명.json은 각 스테이지의 작전 전략을 기술합니다.
MAA 통합 전략 공용 전투 로직
(해당 스테이지의 작전 파일이 없을 때 적용됨)
타일 속성에 따른 기본 전투
MAA는 타일이 방어 지점인지 적 출현 지점인지, 언덕인지 지상인지, 배치 가능한지 등을 판단하여 기본 전투를 수행합니다.
MAA는 맵 이름이나 번호만으로 로직을 결정하며, 일반/긴급, 맵 변형, 암호판 사용 여부 등을 구분하지 않습니다.
MAA는 지도 상에서 확실하지 않은 정보(예:
사육장의 제단 위치,군중심리의 적 출현 방향 등)는 판단하지 않습니다.
따라서, 하나의 맵 이름에 대해 모든 변수를 커버할 수 있는 범용적인 로직을 구성해야 합니다.
MAA 공용 전략 — 입구 막기
지상 오퍼레이터는 방어 지점 타일 위(이유는 후술)나 주변에 우선 배치하며, 적이 오는 방향(자동 계산)을 바라봅니다.
지상을 먼저 배치하고 힐러와 언덕을 배치합니다. 방어 지점을 중심으로 원형으로 퍼져나가며 배치합니다.
배치 가능한 모든 것(오퍼레이터, 소환물, 지원 도구 등)을 계속해서 배치합니다.
기본 전투 전략 최적화
방어 지점 대체
오퍼레이터를 무작정 방어 지점 앞에 쌓는 건 좋지 않습니다. 어떤 맵은 특정 길목을 막는 게 훨씬 효율적일 수 있습니다. 또한 방어 지점이 여러 개일 때 MAA가 엉뚱한 곳을 막을 수도 있습니다.
이때 지도 위키를 켜고,
설정에서좌표 표시를MAA로 바꾼 뒤 지휘해 봅시다.우선 방어해야 할 좌표와 방향을 찾아 json의
"replacement_home"에 적습니다.{ "stage_name": "蓄水池", // 스테이지명 "replacement_home": [ // 중요 방어 지점, 최소 1개 필수 { "location": [ // 맵 사이트에서 확인한 좌표 6, 4 ], "direction_Doc1": "우선 방향. 절대적인 건 아님 (알고리즘 판단)", "direction_Doc2": "생략 시 기본값 none (알고리즘이 알아서 판단)", "direction_Doc3": "none / left / right / up / down / 无 / 上 / 下 / 左 / 右", "direction": "left" // (6,4 좌표에 우선 배치하고 왼쪽을 보게 함. 주변 자동 배치도 왼쪽을 보려고 노력함) } ],팁
replacement_home은deploy_plan이 모두 끝났는데도 대기 중인 오퍼레이터가 있을 때 작동합니다. 로직은 공용 전략과 같습니다.배치 금지 구역
화염구가 지나가는 길, 보스의 바로 발밑, 딜 각이 안 나오는 곳 등 배치하면 안 되는 곳을
"blacklist_location"으로 지정합니다.주의
여기에 지정된 타일은 뒤에서 설명할
deploy_plan에 적혀 있어도 배치가 불가능합니다.... "blacklist_location_Doc": "예시입니다. 실제 저수지 맵에서 여기를 금지하라는 뜻은 아님", "blacklist_location": [ // 배치 금지 좌표 [ 0, 0 ], [ 1, 1 ] ],기타 맵 전략
예: 미즈키 통합 전략에서 방어 지점에 적이 들어오면 주사위를 굴릴 것인가?
"not_use_dice_Doc": "방어 지점 라이프 감소 시 주사위 사용 안 함 여부. 기본값 false (사용함)", "not_use_dice": false,
커스텀 작전 전략
"deploy_plan"(배치)과 "retreat_plan"(철수)을 사용하여 정교한 작전을 짭니다.
커스텀 전략은 공용 전략보다 우선합니다. 커스텀 전략이 모두 실행된 후 남은 오퍼레이터는 공용 전략에 따라 배치됩니다.
모든 전략을 다 작성할 필요는 없으며, 핵심적인 부분만 작성하고 나머지는 MAA에게 맡기는(공용 전략) 방식이 효율적일 수 있습니다.
그룹별 오퍼레이터 배치
"deploy_plan": [ // 배치 로직 로직 (위에서 아래로, 왼쪽에서 오른쪽으로 검색하여 첫 번째로 찾은 오퍼레이터 배치) { "groups": [ "百嘉", "基石", "地面C", "号角", "挡人先锋" ],// 이 단계에서 이 그룹들 중 오퍼레이터를 탐색 "location": [ 6, 4 ], // 가비알 디 인빈서블, 라인 유지 오퍼레이터, 지상 딜러, 혼 등의 그룹 순회 "direction": "left" // 첫 번째로 찾은 오퍼레이터를 6,4 좌표에 왼쪽을 보게 배치 }, // 없으면 다음 단계로 { "groups": [ "召唤" ], "location": [ 6, 3 ], "direction": "left" }, { "groups": [ "单奶", "群奶" ], "location": [ 6, 2 ], "direction": "down" } ]주의
MAA는 모든 배치 명령을 평탄화(flatten)한 뒤 가장 우선순위가 높은 행동을 수행합니다. 예: [6,4]에 ["A", "B"], [6,3]에 ["B", "C"]를 배치하라고 하면, 전체 목록은 [(6,4)-A, (6,4)-B, (6,3)-B, (6,3)-C]가 됩니다. 만약 [6,4]의 A가 죽었고 내 손에 B가 있다면, [6,3]이 아니라 [6,4]에 B를 우선 배치합니다.
즉, 거시적으로 볼 때 매번 배치 동작 후 처음부터 전략을 다시 검토합니다. (현재 단계 위치가 비어 있고, 배치 가능한 해당 그룹 오퍼레이터가 있는지)
팁
자주 쓰이는 조합 팁:
메인 방어선:
["地面阻挡", "处决者", "其他地面"](메인 탱커 죽으면 암살자로 시간 벌기). 압박 심할 때:["重装","地面阻挡", "处决者", "炮灰", "其他地面"]. 탱커 뒤:["地面远程","地面阻挡", "处决者", "其他地面"]. 어그로/미끼:["炮灰", "障碍物", "其他地面"].언덕 딜러:
["高台输出", "其他高台"]. 아무나 놔도 된다면:["高台输出", "狙击", "辅助", "盾法", "其他高台"].무에나나 매복자에게 적합한 위치:
["玛恩纳", "地刺"]:::
특정 시점에 배치 (조건부 배치)
팁
암살자나 미끼를 특정 타이밍에 쓸 때 유용합니다.
"deploy_plan": [ { "groups": [ "异德", "刺客", "挡人先锋", "其他地面" ], "location": [ 5, 3 ], "direction": "left", "condition": [ 0, 3 ] // 처치 수(kill count)가 0~3일 때만 수행 }, { "groups": [ "异德", "刺客", "挡人先锋", "其他地面" ], "location": [ 5, 3 ], "direction": "left", "condition": [ 6, 10 ] }, ... ]특정 시점에 철수
팁
유인용 오퍼레이터가 강해서 쓰러지지 않거나, 자리를 비워야 할 때 철수합니다.
같은 위치의 배치/철수
condition숫자가 겹치지 않게 주의하세요. (놓자마자 회수할 수 있음)"retreat_plan": [ // 특정 시점에 철수 { "location": [ 4, 1 ], "condition": [ 7, 8 ] // 처치 수 7~8일 때 [4,1] 오퍼레이터 철수. 없으면 패스. } ]특정 시점에 스킬 사용 (to do)
기타 필드 (권장하지 않음)
"role_order_Doc": "직업 배치 순서. 영문 입력. 미기재 시 가드, 뱅가드, 메딕, 디펜더, 스나이퍼, 캐스터, 서포터, 스페셜리스트, 소환물 순서", "role_order": [ // 비권장, deploy_plan 사용 권장 "warrior", "pioneer", "medic", "tank", "sniper", "caster", "support", "special", "drone" ], "force_air_defense_when_deploy_blocking_num_Doc": "필드에 저지 유닛 10000명 배치 시 대공 유닛 1명 강제 배치 시작 (기본값 false). 이 기간 동안 의료 유닛 배치 금지되지 않음.", "force_air_defense_when_deploy_blocking_num": { // 비권장, deploy_plan 사용 권장 "melee_num": 10000, "air_defense_num": 1, "ban_medic": false }, "force_deploy_direction_Doc": "특정 직업군의 강제 배치 방향 설정", "force_deploy_direction": [ // 비권장, deploy_plan 사용 권장 { "location": [ 1, 1 ], "role_Doc": "적용할 직업군", "role": [ "warrior", "pioneer" ], "direction": "up" }, { "location": [ 3, 1 ], "role": [ "sniper" ], "direction": "left" } ],
주의
MAA가 현재 스테이지 이름에 맞는 커스텀 전략 파일(스테이지명.json)을 찾지 못하면 공용 전략을 실행합니다.
스테이지 이름 인식 자체를 실패하면 아무것도 하지 않습니다.
특정 오퍼레이터 정밀 조작
해당 오퍼레이터를 별도 그룹으로 만드세요.
작업 작성 시 이 오퍼레이터와 기존 작업 간의 우선순위를 고려하세요.
아예 그 오퍼레이터 하나만 사용하는 작전 로직을 구성할 수도 있습니다.
참고 예시: 1. 팬텀 통합 전략 쏜즈, 2. 미즈키 통합 전략 특사스, 3. 사미 통합 전략 리드 더 플레임 섀도우/위셔델, 4. 살카즈 통합 전략 위셔델
통합 전략 3단계 — 우연한 만남(Encounter) 로직
resource/roguelike/테마명/encounter/default.json (레벨링 모드)
resource/roguelike/테마명/encounter/deposit.json (파밍 모드/스타팅 파밍 모드)
MAA의 우연한 만남 판단 방식
OCR로 이벤트 이름을 인식하지만, 선택지는 고정된 위치를 클릭합니다.
이벤트 이름 인식을 실패하면 선택지 아이콘(있으면)을 누르거나 가장 아래쪽 선택지를 누릅니다.
선택지 아이콘은 있는데 선택 불가능한 경우 가끔 멈출 수 있습니다 (TODO).
로직을 개선할 때 일반적으로 미세 조정만 하거나 아예 안 해도 됩니다 (고수들이 다 해놨으니까요).
선택지 우선순위 최적화 (Encounter)
PRTS 위키 등을 참고하여 선택지 효과를 확인하세요. (선택지는 고정이 아닐 수 있음)
특정 엔딩을 보거나 특정 보상을 원한다면 우선순위를 수정할 수 있습니다.
{
"theme": "Sami", // 테마
"stage": [ // 이벤트 목록
{
"name": "低地市集", // 이벤트 이름 (저지대 시장)
"option_num": 3, // 총 선택지 개수 (여기선 3)
"choose": 3, // 우선 선택할 선택지 번호 (여기선 3번째). 실패 시 런(주로 마지막).
"choices": [ // 선택 조건 (현재는 주석 용도, 로직 구현 시 참고용)
{
"name": "选择碎草药", // 선택지 이름 (잘게 썬 약초 선택)
"ChaosLevel": { // 간섭 지수 / 등불 수치 조건
"value": "3", // 기준값
"type": ">" // > 3 일 때 활성화
}
},
{
"name": "选择好看的织物",
"ChaosLevel": {
"value": "3",
"type": ">"
}
},
...팀 상황에 따른 동적 우선순위 조정 (TODO)
통합 전략 4단계 — 상점/소장품 우선순위
resource/roguelike/테마명/shopping.json은 상점 구매 및 소장품(전투 후 획득 포함?) 선택 전략을 기술합니다.
{
"theme": "Phantom", // 테마 (여기서는 팬텀)
"priority": [ // 구매 우선순위 (순서대로)
// chars, roles 필터링이 먼저 적용되므로 조건 안 맞으면 안 삼.
{
"name": "金酒之杯", // 소장품 이름 (금주에 든 술잔)
"no_longer_buy": true, // true: 이 소장품을 획득하면 더 이상 구매하지 않음.
"ignore_no_longer_buy": true, // true: 상점에 이 소장품이 있다면 "구매 중단" 상태여도 구매함.
"effect": "每有5源石锭,所有我方单位的攻击速度+7", // 효과 메모
"No": 167 // 도감 번호 메모
},
...
{
"name": "扩散之手", // 확산의 손
"chars": [ // 이 오퍼레이터가 있을 때만 구매
"异客" // (패신저가 있을 때 구매 시도)
],
"effect": "【扩散术师】、【链术师】和【轰击术师】每对一个单位造成伤害就回复2点技力值",
"No": 136
},
...
{
"name": "折戟-破釜沉舟", // 부러진 창 - 배수진
"roles": [ // 이 직군이 있을 때만 구매
"WARRIOR" // (가드 직군이 있을 때 구매 시도)
],
"effect": "所有【近卫】干员的防御力-40%,但攻击力+40%,攻击速度+30",
"No": 16
},
...
{
"name": "Miss.Christine摸摸券", // 미스 크리스틴 쓰다듬기 권
"promotion": 2, // 승급 가능한 오퍼레이터가 2명 이상일 때 구매(?)
"effect": "立即进阶两个干员(不消耗希望)",
"No": 15
},
...
{
"name": "警戒篱木", // 경계의 쐐기
"effect": "坍缩值-2,目标生命上限+2",
"No": 198,
"decrease_collapse": true // true: 획득 시 붕괴치 감소. (mode 5 붕괴 파밍 때는 안 삼)
},
...
"others": // 절대 구매하지 않는 목록 (엔딩 분기용 등)
{
"name": "无人起重机" // 무인 기중기
},통합 전략 특수 메커니즘
탐험가의 은빛 서리 끝자락 — 암호판
resource/roguelike/Sami/foldartal.json은 사미 통합 전략의 암호판 전략을 기술합니다.
{
"theme": "Sami", // 테마 (탐험가의 은빛 서리 끝자락)
"groups": [ // 암호판 사용 전략 그룹
{
"usage": "SkipBattle", // 용도: 전투 건너뛰기 (전투 노드 회피 등)
"doc": "전투 회피용, 파밍 모드",
"pairs": [ // 조합 목록. 위에서부터 확인해서 만들 수 있으면 다 씀. 없으면 진입.
{ // (상흔 + 공허 조합)
"up": [ // 상판
"伤痕"
],
"down": [ // 하판
"空无"
]
},
{ // (추방자+경악, 추방자+의혹... 순차 검색)
"up": [
"黜人",
"猎手",
...
],
"down": [
"惊讶",
"疑惑",
...
]
}
]
},
{
"usage": "Boss", // 보스전용
"doc": "보유한 모든 암호판 사용",
...
}
],
"foldartal": [ // 암호판 데이터 (참고용)
{
"name": "布局", // 유형 (배치)
"foldartal": [
{
"name": "黜人", // 이름 (추방자) - 중국어 원문 유지
"effect": "选择所有右侧邻近的战斗节点" // 효과
},탐험가의 은빛 서리 끝자락 — 붕괴 패러다임
check_collapsal_paradigms가 true일 때, MAA는 두 가지 방법으로 붕괴 상태를 확인합니다.
- Panel Check: 맵 선택 화면 상단 패널을 클릭하여 확인.
- Banner Check: 화면 오른쪽의 붕괴 알림 배너를 감지.
붕괴치가 증가하는 다양한 상황을 고려했습니다:
- 전투 후 비완벽 전투로 붕괴치 증가 -> Banner Check
- 전투 후 소장품 획득으로 붕괴치 변동 -> Banner Check
- 우연한 만남 선택지 선택 -> Banner Check
- 교활한 상인에서 구매 -> Banner Check
- 암호판 사용으로 붕괴치 감소 -> Banner Check
- 다음 층 진입 -> Panel Check
- Banner Check 중 붕괴 패러다임이 사라진 경우(소멸), 혹시 2단계가 한 번에 사라졌을 가능성을 대비해 다음 맵 화면에서 Panel Check.
double_check_collapsal_paradigms가true면 맵 화면 갈 때마다 Panel Check (놓친 거 확인용).
히든 붕괴 패러다임 파밍 예시 (히든 엔딩 조건 달성용):
{
"theme": "Sami",
"mode": 5,
"investment_enabled": false,
"squad": "远程战术分队",
"roles": "稳扎稳打",
"core_char": "维什戴尔",
"expected_collapsal_paradigms": ["目空一些", "睁眼瞎", "图像损坏", "一抹黑"]
}mode가 5일 때:
스테이지명_collapse.json작전 전략을 우선 사용합니다. (예:resource/roguelike/Sami/autopilot/事不过四_collapse.json)resource/roguelike/Sami/encounter/collapse.json이벤트 전략을 사용합니다.decrease_collapse가true인(붕괴치 낮추는) 소장품을 사지 않습니다.
mode가 5가 아니어도 check_collapsal_paradigms가 true면 붕괴를 체크하고, expected_collapsal_paradigms 목록에 있는 붕괴가 뜨면 작업을 정지합니다. (목록에 없는 게 뜨면 재시도 안 함)
히든 붕괴 파밍 추천 난이도: N10. 추천 덱:
- 위셔델 + 스팟 + 스튜어드
- 리드 더 플레임 섀도우 + 오키드 + 포푸카
- 티폰 + 스팟 + 스튜어드
쉐이의 기이한 계원 — 주화
resource/roguelike/JieGarden/coppers.json은 쉐이 통합 전략의 주화 배치/교환 전략을 기술합니다.
{
"theme": "JieGarden", // 테마 (쉐이의 기이한 계원)
"addons": { // 주화 접두어 효과 (참고용)
"锈色": "投出时,每经过一个节点,获得源石锭+1", // 녹슨
"存护": "加入钱盒时,获得护盾值+2", // 존호
"入幻": "加入钱盒时,获得希望+1", // 입환
"引光": "加入钱盒时,获得烛火+1", // 인광
"巡游": "投出时,每完成一场战斗,获得票券+1" // 순유
},
"coppers": [ // 주화 목록
{
"name": "大炎通宝", // 주화 이름 (대염 통보) - 중국어 원문 유지
"desc": "普通又空白,什么也没有", // 설명
"rarity": "NORMAL", // 희귀도
"pickup_priority": 0, // 줍기 우선순위 (높을수록 우선)
"discard_priority": 1000 // 버리기/교체하기 우선순위 (높을수록 먼저 버림)
},
{
"name": "衡-奇土生金", // 형 - 기토생금
"desc": "投出时,立即获得源石锭+4(下次投钱前变化为-大炎通宝)",
"rarity": "NORMAL",
"pickup_priority": 200,
"discard_priority": 800,
"cast_discard_priority": 999 // (선택) 이미 던져진 상태일 때의 버리기 우선순위.
// 던지고 나면 효과가 변하는(대염 통보가 되는) 것들에 사용.
},
{
"name": "厉-西廉贞", // 려 - 서렴정
"desc": "投出时,精英及领袖敌人的生命值、攻击力+10%,在险路恶敌及岁兽残识中攻击力、生命值额外+20%",
"rarity": "NORMAL",
"pickup_priority": 0,
"discard_priority": 1998,
"cast_discard_priority": 2098 // 던지면 디버프 걸리는 주화 등
},
...
]
}주화 교환 로직
MAA는 쉐이 통합 전략에서 자동으로 주화를 줍고 교환합니다.
활성화 조건
- 투자 모드: "투자 모드에서 쇼핑/모집/2층진입 켜기" 옵션 필요
- 기타 모드: 기본 활성화 :::
주화 줍기: 전투 종료 후 주화 드랍 창에서
pickup_priority가 가장 높은 것을 선택.주화 교환: 주머니가 꽉 찼을 때 새 주화를 주우면:
- 주머니 속 주화들의 유형/이름/투척상태 식별
discard_priority가 가장 높은(가장 쓸모없는) 주화 탐색- 새 주화의
discard_priority가 그것보다 낮으면(더 좋으면) 교체, 아니면 포기.
투척 상태 특수 처리:
cast_discard_priority가 설정된 주화가 '던져진' 상태라면,discard_priority대신cast_discard_priority를 사용하여 가치를 판단.
주화 식별 메커니즘
MAA는 다음 방법으로 주화를 인식하고 처리합니다:
- 템플릿 매칭으로 주화 유형 아이콘(려/형/화) 식별
- 유형 아이콘 위치 기반 ROI 오프셋으로 OCR 이름 식별
- 주화의 '투척됨' 상태 식별
- 교환 화면에서 목록을 스크롤하며 모든 주화 스캔 및 비교
인식 흐름 예시


주의
- OCR로 인식된 주화 이름이 설정 파일에 없으면, MAA는 디버그 이미지를
debug/roguelike/coppers/unknown디렉토리에 저장합니다.
향후 구현 예정 (TODO)
자동 편성 로직
- 맵별 고유 편성 완성도/스킬 우선순위 설정
- 현 편성으로 감당 불가능한 고난이도 맵 회피
길찾기 알고리즘 최적화 (초기 구현됨)
3층까지 전투 많이, 그 뒤로 전투 적게 등 성장 곡선 최적화. 노드 연결 인식 등
스킬 대기 (Skill Hold)
배치 후 x초 대기 후 스킬 발동 (택틱 최적화)
스킬 끄기
탄약형 스킬 끄기 등
