자동지휘 프로토콜
약 550 단어약 2 분
resource/copilot/*.json 파일의 사용법 및 각 필드 설명
팁
JSON 파일은 주석을 지원하지 않으므로, 텍스트 내의 주석은 예시용입니다. 직접 복사하여 사용하지 마세요.
전체 필드 목록
{
"stage_name": "暴君", // 스테이지명, 필수. 스테이지 중문명, code, stageId, levelId 등 유일성만 보장되면 가능
"opers": [
// 특정 오퍼레이터 지정
{
"name": "重岳", // 오퍼레이터명
"skill": 3, // 스킬 번호. 선택 사항, 기본값 1, 범위 [1, 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: 일반, 하드 모드 지원
}