order: 3 icon: ph:sword-bold

자동지휘 프로토콜

resource/copilot/*.json 파일의 사용법 및 각 필드 설명

::: tip JSON 파일은 주석을 지원하지 않으므로, 텍스트 내의 주석은 예시용입니다. 직접 복사하여 사용하지 마세요. :::

전체 필드 목록

{
    "stage_name": "暴君", // 스테이지명, 필수. 스테이지 중문명, code, stageId, levelId 등 유일성만 보장되면 가능
    "opers": [
        // 특정 오퍼레이터 지정
        {
            "name": "重岳", // 오퍼레이터명
            "skill": 3, // 스킬 번호. 선택 사항, 기본값 1, 범위 [0, 3]
            "skill_usage": 2, // 스킬 사용법. 선택 사항, 기본값 0
            // 0 - 자동 사용 안 함 ("actions" 필드에 의존)
            // 1 - 쿨타임 찰 때마다 사용 (예: 쏜즈 3스킬, 머틀 1스킬 등)
            // 2 - X회 사용 (예: 마운틴 2스킬 1회 전환, 총웨 3스킬 5회 사용 등, "skill_times" 필드로 설정)
            // 3 - 자동 판단 (구현 예정)
            // 완전 자동 시전 스킬(패시브 등)인 경우 0 입력
            "skill_times": 5, // 스킬 사용 횟수. 선택 사항, 기본값 1
            "requirements": {
                // 육성 상태 요구. 예약된 필드로 아직 미구현. 선택 사항, 기본값 비어 있음
                "elite": 2, // 정예화 단계. 선택 사항, 기본값 0 (요구 없음)
                "level": 90, // 오퍼레이터 레벨. 선택 사항, 기본값 0
                "skill_level": 10, // 스킬 레벨. 선택 사항, 기본값 0
                "module": 1, // 모듈 번호. 선택 사항, 기본값 0
                "module_level": 3, // 모듈 레벨, 선택 사항, 기본값 0
                "potential": 1 // 잠재(돌파) 요구. 선택 사항, 기본값 0
            }
        }
    ],
    "groups": [
        {
            "name": "任意正常群奶", // 그룹명, 필수
            // 임의로 이름을 지으면 되며, 아래 deploy의 name과 일치하면 됨
            "opers": [
                // 오퍼레이터 중 하나 선택, 순서 없음, 육성 상태 높은 것 우선 선택, 사용법은 위 opers 필드와 동일
                {
                    "name": "夜莺",
                    "skill": 3,
                    "skill_usage": 2 // 특정 시점인 경우, 오퍼레이터마다 스킬 쿨타임이 다를 수 있으니 주의
                },
                {
                    "name": "白面鸮",
                    "skill": 2,
                    "skill_usage": 2
                }
            ]
        }
    ],
    "actions": [
        // 전투 중 조작. 순서가 있으며, 이전 동작이 완료되어야 다음 동작 실행. 필수
        {
            "type": "部署", // 조작 유형, 선택 사항, 기본값 "Deploy"
            // "Deploy" | "Skill" | "Retreat" | "SpeedUp" | "BulletTime" | "SkillUsage" | "Output" | "SkillDaemon" | "MoveCamera" | "ResetStopwatch"
            // "部署"   |  "技能"  |  "撤退"   | "二倍速"   |  "子弹时间"  |  "技能用法"   | "打印"  |  "摆完挂机" | "移动镜头" | "重置全局计时器"
            // 중/영문 모두 가능, 효과 동일
            // "Deploy"인 경우, 코스트가 부족하면 코스트가 모일 때까지 계속 대기 (timeout 제외)
            // "Skill"인 경우, 스킬 쿨타임이 안 찼으면 쿨타임 찰 때까지 계속 대기 (timeout 제외)
            // "二倍速"은 토글 방식임. 한 번 쓰면 2배속, 다시 쓰면 1배속으로 돌아옴
            // "子弹时间"은 임의의 오퍼레이터를 클릭한 후 1/5 속도로 만드는 것. 다른 action을 수행하면 정상 속도로 복구됨
            //      "name" 또는 "location" 중 하나 필수. 어떤 오퍼레이터를 눌러 저속 모드에 진입할지 지정. 전장 또는 대기열 오퍼레이터 모두 가능 (자동 판단)
            //      만약 다음 동작이 "Skill" / "Retreat"라면, 다음 동작과 동일한 "name" 또는 "location"을 입력해야 함
            //      만약 다음 동작이 "Deploy"라면, 아무나 적어도 됨 (단 대기열에 있는 오퍼레이터는 누르면 인식이 가려질 수 있으므로 피하는 게 좋음)
            // "打印" 화면에는 이 단계가 표시되지 않으며, doc 내용만 출력됨 (설명 표시 용도)
            // "摆完挂机" "스킬 재사용 대기시간 완료 시 사용" 설정된 스킬만 사용하며, 전투 종료까지 아무것도 하지 않음
            // "移动镜头" "인도자의 시련" 모드에서 사용, distance 필드 필요
            // "重置全局计时器" 전역 타이머 리셋, "time_elapsed" 조건 참고
            // 현재 아래 5개 조건은 AND 관계임 (&&)
            "kills": 0, // 킬 수 조건, 도달 못하면 계속 대기. 선택 사항, 기본값 0 (즉시 실행)
            "costs": 50, // 코스트 조건, 도달 못하면 계속 대기. 선택 사항, 기본값 0 (즉시 실행)
            // 코스트는 잠재 등의 영향을 받으므로 정확하지 않을 수 있음. 타임라인이 엄격하지 않은 전투에 적합
            // 그렇지 않으면 아래 cost_changes 사용 권장
            // 또한 코스트가 두 자리 수일 때만 인식이 비교적 정확함. 세 자리 수는 인식 오류 가능성 있음. 비추천
            "cost_changes": 5, // 코스트 변화량 조건, 도달 못하면 계속 대기. 선택 사항, 기본값 0 (즉시 실행)
            // 이 action을 실행하기 시작한 시점부터 계산 (즉 이전 action이 끝난 시점의 코스트 기준)
            // 음수 지원 (제이 등 코스트 지속 소모 오퍼레이터로 인해 코스트가 줄어드는 경우)
            // 또한 코스트가 두 자리 수일 때만 인식이 비교적 정확함. 세 자리 수는 인식 오류 가능성 있음. 비추천
            "cooling": 2, // 쿨타임 중인 오퍼레이터 수 조건, 도달 못하면 계속 대기. 선택 사항, 기본값 -1 (인식 안 함)
            "time_elapsed": 1000, // 밀리초(ms) 단위 전역 타이머 조건, 도달 못하면 계속 대기. 선택 사항, 기본값 0 (즉시 실행)
            // 이전 type:ResetStopwatch action이 실행된 시점부터 계산됨
            // 사용 전 반드시 type:ResetStopwatch action을 실행하여 타이머를 초기화해야 함. 안 그러면 멈춤
            // TODO: 기타 조건
            // TODO: "condition_type": 0,    // 실행 조건 간 관계, 선택 사항, 기본값 0
            //                        // 0 - AND; 1 - OR
            "name": "棘刺", // 오퍼레이터명 또는 그룹명. type이 "Deploy"일 때 필수, "Skill" | "Retreat"일 때 선택
            "location": [
                5,
                5
            ], // 오퍼레이터 배치 위치
            // type "Deploy" 시 필수
            // type "Skill" | "Retreat" 시 선택
            // "Skill": 필드 위 자동 장치 등에 추천 (name 없이 location으로 스킬 발동). 일반 오퍼레이터는 name 권장
            // "Retreat": 동명의 소환물이 여러 개일 때 추천 (name 없이 location으로 퇴각). 일반 오퍼레이터는 name 권장
            // 좌표 정보는 https://map.ark-nights.com/areas 에서 확인 가능. 설정에서 "좌표 표시"를 "MAA"로 선택하면 MAA 좌표 확인 가능
            "direction": "左", // 배치 방향. type "Deploy" 시 필수
            // "Left" | "Right" | "Up" | "Down" | "None"
            // "左"   |  "右"   | "上"  | "下"   |  "无"
            // 중/영문 모두 가능, 효과 동일
            "skip_if_not_ready": false, // type "Skill" 시 유효. 스킬 사용 불가 시 해당 동작 건너뛰기 허용. 주로 다 못 쓴 탄약 스킬 끄는 용도. 선택 사항, 기본값 false
            "skill_usage": 1, // 스킬 용법 수정. type "SkillUsage" 시 필수
            // 예: 머틀 배치 직후에는 몹을 잡아야 해서 스킬을 안 쓰다가, 중반부터 자동으로 스킬을 써야 할 때
            // 해당 시점에 1로 설정하면 됨
            "skill_times": 5, // 스킬 사용 횟수. 선택 사항, 기본값 1
            "pre_delay": 0, // 전행 딜레이. 선택 사항, 기본값 0, 단위 ms
            // 현재 action의 모든 조건이 충족된 후 타이머 시작, 종료 후 type 동작 실행
            "post_delay": 0, // 후행 딜레이. 선택 사항, 기본값 0, 단위 ms
            // 현재 action의 type 동작 완료 후 타이머 시작, 종료 후 다음 action 진행
            //
            // "timeout": 999999999,   // 예약된 필드, 미구현
            // 타임아웃. type "Deploy" | "Skill" 시 선택. 기본값 INT_MAX, 단위 ms
            // 타임아웃 시 현재 동작 포기하고 다음 동작 실행
            "distance": [
                4.5,
                0
            ], // type "MoveCamera" 시 필수
            // [ x 이동 칸수, y 이동 칸수 ], 소수 가능, 음수 가능
            // x 양수면 카메라 우측 이동, y 양수면 카메라 위쪽 이동
            // 예: "distance": [-1, 1], "location": [5, 6]이면 실제로는 [6, 7]에 배치됨
            // 주의: x > +2 인 경우 강제로 화면 전환을 기다리며, 전환 후 동작 완료. 그 외에는 즉시 실행 및 완료
            "doc": "下棘刺了!", // 설명, 선택 사항. 인터페이스에 표시됨, 실제 기능 없음
            "doc_color": "orange" // 설명 글자색, 선택 사항, 기본값 회색. 인터페이스에 표시됨, 실제 기능 없음
        },
        // 예시 1
        {
            "name": "任意正常群奶",
            "location": [
                5,
                6
            ],
            "direction": "右"
        },
        // 예시 2
        {
            "name": "史尔特尔",
            "location": [
                4,
                5
            ],
            "direction": "左",
            "doc": "你史尔特尔奶奶来啦!",
            "doc_color": "red"
        },
        // 예시 3
        {
            "type": "二倍速"
        }
    ],
    "minimum_required": "v4.0", // MAA 최소 요구 버전, 필수
    "doc": {
        // 설명, 선택 사항
        "title": "低练度高成功率作业",
        "title_color": "dark",
        "details": "对练度要求很低balabala……", // 여기에 작성자명, 공략 영상 링크 등을 적으세요
        "details_color": "dark"
    },
    "difficulty": 0 // 작업 난이도, 선택 사항, 기본값 0
    // 0: 기본, 미설정
    // 1: 일반 모드 지원
    // 2: 하드 모드 지원
    // 3: 일반, 하드 모드 지원
}

예시

OF-1