어디에서 입력하나요?
시뮬레이터에서 캐릭터를 준비한 뒤 전투 조건 → APL 선택 → 커스텀 APL을 선택하세요. YAML 입력창에 작성한 내용을 붙여 넣으면 됩니다.
처음에는 기존 프리셋을 복사하고, 규칙 하나만 바꿔 보세요. 아래 예시는 아르카나 문법 연습용이며 최적 딜사이클은 아닙니다.
빠른 시작
- 스크래치 딜러·스파이럴 엣지·셀레스티얼 레인을 스킬 구성에 선택하세요.
- 아래 YAML을 커스텀 APL에 붙여 넣으세요.
- 한 번 실행한 뒤 루인 4스택에서 레인을 사용했는지 시전 기록을 확인하세요.
들여쓰기는 항목 2칸, 조건 항목 6칸, 조건 필드 8칸을 사용하세요. 스킬·카드 이름은 표시 이름과 정확히 같아야 합니다.
name: "나의 황후 APL"
class: "arcana"
build: "empress"
skills:
- "스크래치 딜러"
- "스파이럴 엣지"
- "셀레스티얼 레인"
card_actions:
- card: "도태"
conditions:
- type: "next_skill"
skill: "셀레스티얼 레인"
actions:
- skill: "셀레스티얼 레인"
conditions:
- type: "target_debuff_stacks"
debuff: "ruin"
operator: ">="
value: 4
- skill: "스크래치 딜러"
conditions:
- type: "target_debuff_stacks"
debuff: "ruin"
operator: "<"
value: 4
- skill: "스파이럴 엣지"
conditions:
- type: "target_debuff_stacks"
debuff: "ruin"
operator: "<"
value: 4예시에서는 대상의 루인 스택이 4 이상이면 레인을, 4 미만이면 스택트 스킬을 시도합니다. 스킬이 실제로 선택돼 있고 사용 가능한지도 확인합니다. 스킬 이름은 게임 데이터의 한글 이름과 정확히 같아야 합니다.
실행 규칙
APL은 정해진 순서대로 한 번씩 쓰는 목록이 아닙니다. 선택할 때마다 맨 위부터 확인해 사용 가능하고 조건을 만족한 첫 행동을 사용합니다. 쿨타임이나 조건이 맞지 않으면 다음 줄로 넘어갑니다. 따라서 상단 스킬이 계속 준비돼 있으면 아래 스킬이 전혀 사용되지 않을 수도 있습니다.
skills만 있으면 적힌 순서가 우선순위입니다. 이름을 적는 것만으로 일반 스킬을 장착하지는 않습니다.actions가 하나라도 있으면 그 목록이 실행 순서를 대체합니다.skills를 다 쓴 다음 실행하는 목록이 아닙니다.- 한 행동의 조건은 모두 충족해야 합니다(AND). 둘 중 하나만 만족해도 되는 규칙은 같은 행동을 두 번 적습니다(OR). 조건을 생략하면 추가 조건이 없습니다.
name,class,build는 설명용이며 캐릭터의 직업이나 세팅을 바꾸지 않습니다.
1. 먼저 우선순위만 정하기
skills:
- "셀레스티얼 레인"
- "스크래치 딜러"
- "스파이럴 엣지"레인이 준비돼 있으면 먼저 사용하고, 사용할 수 없으면 스크래치 딜러와 스파이럴 엣지를 순서대로 확인합니다.
2. 루인 4스택 조건 붙이기
actions:
- skill: "셀레스티얼 레인"
conditions:
- type: "target_debuff_stacks"
debuff: "ruin"
operator: ">="
value: 4
- skill: "스크래치 딜러"위 규칙을 넣으면 레인은 4스택일 때만 선택합니다. 조건이 맞지 않으면 아래 스크래치 딜러를 시도합니다. 쿨타임은 기본으로 확인하므로 모든 행동에 cooldown_ready를 반복할 필요는 없습니다.
3. 조건을 조합하기
4스택이면서 도태 버프도 필요하다면 같은 conditions 아래에 buff_active를 추가하세요. 4스택이거나 종료 직전이면 쓰고 싶다면 같은 스킬의 행동을 두 줄로 나누어 각각의 조건을 적으세요.
actions:
# 4스택이면서 도태가 활성일 때
- skill: "셀레스티얼 레인"
conditions:
- type: "target_debuff_stacks"
debuff: "ruin"
operator: ">="
value: 4
- type: "buff_active"
buff: "도태"
# 또는 전투 종료까지 5초 이하일 때
- skill: "셀레스티얼 레인"
conditions:
- type: "time_remaining"
operator: "<="
value: 5두 번째 규칙은 스택·버프 조건을 생략했으므로 종료 직전에 이를 요구하지 않습니다. 문법 예시이며 실제 빌드에서는 필요한 스택 조건을 유지할지 따로 판단하세요.
기본 공격은 일반 스킬 슬롯 없이 기본 공격으로 적습니다. 삼두사 버프 중에는 자동으로 변형되며 기본 프리셋에 평타를 자동 추가하지는 않습니다.
카드 사용 규칙 작성하기
카드는 actions가 아니라 card_actions에 적으세요. 목록에 없는 카드는 이 APL에서 사용하지 않습니다.
1. 손패에 들어오면 사용하기
card_actions:
- card: "도태"조건을 생략하면 손패에 도태가 있을 때 사용합니다. 다른 카드를 사용하려면 같은 목록에 항목을 추가하세요.
2. 주력기 직전까지 보류하기
card_actions:
- card: "도태"
conditions:
- type: "next_skill"
skill: "셀레스티얼 레인"card_actions는 스킬 목록과 별도로 평가합니다. 카드가 손패에 있을 때만 사용하며 스킬 시전 시간을 소비하지 않습니다. 예시의 next_skill은 다음에 사용할 스킬이 레인일 때 도태를 쓰겠다는 뜻입니다.
next_skill은 현재 상태에서 고를 다음 스킬을 확인합니다. 아직 사용하지 않은 카드의 효과까지 미리 적용해 예측하지는 않습니다.
카드를 써도 진행 중인 스킬의 모션 잠금은 풀리지 않습니다. 손패와 버프가 바뀌면 카드 목록을 다시 확인하므로 같은 시각에 여러 카드를 쓸 수 있습니다. 일반 스킬은 모션이 끝난 뒤 다시 선택합니다. 설치한 스킬의 지연 타격은 그 이후에도 발생할 수 있습니다.
지원 조건 참조
확인할 상태를 고르고, 표의 필드를 conditions에 적으세요. 예를 들어 도태 버프가 있을 때만 스킬을 쓰려면 다음 조건을 붙입니다.
conditions:
- type: "buff_active"
buff: "도태"현재 지원하는 조건은 아래 15개입니다. 수치 비교에는 operator와 value를 함께 적으세요. 생략하면 현재 파서는 각각 >=와 0을 사용하므로 의도하지 않은 조건이 될 수 있습니다.
| 조건 | 필드 | 판정 |
|---|---|---|
| cooldown_ready | 없음 | 현재 스킬 쿨타임 완료. 스킬 목록용 |
| skill_cooldown_ready | skill | 지정 스킬 쿨타임 완료. 자원은 검사하지 않음 |
| skill_cooldown_remaining | skill, operator, value | 지정 스킬 남은 쿨타임(초) |
| resource | name, operator, value | 자원의 절대량 |
| card_held | card | 손패에 지정 카드가 있음 |
| card_count | card, operator, value | 손패의 지정 카드 개수 |
| next_skill | skill | 다음 선택 스킬이 일치. 카드 전용 |
| buff_active | buff | 자신의 버프 활성 |
| buff_inactive | buff | 자신의 버프 비활성 |
| buff_remaining | buff, operator, value | 자신의 버프 남은 시간(초) |
| target_debuff_stacks | debuff, operator, value | 대상의 디버프·스택 개수 |
| skill_target_stack_gain | debuff, operator, value | 현재 스킬의 확정 스택 추가 최댓값. 검증하기 탭의 제한 참고 |
| combo_phase | skill(생략 가능), operator, value | 다음 콤보 입력 단계(0부터) |
| chain_phase | skill(생략 가능), operator, value | 다음 체인 입력 단계(0부터) |
| time_remaining | operator, value | 전투 종료까지 남은 시간(초) |
비교에는 operator와 value를 사용합니다. 연산자는 <, >, <=, >=, ==, !=입니다. 시간 값은 초 단위입니다. 버프는 고유한 게임 데이터 이름으로 적을 수 있지만, 같은 이름이 여러 효과를 가리키면 구체적인 내부 ID가 필요합니다.
아르카나 루인은 debuff: "ruin"으로 적습니다. 자원 이름은 Hp, MaxHp, Mp, CardGauge, UltimatePoint이며 hp·mp 별칭도 가능합니다. 현재 아르카나의 두 게이지는 최대 10000이므로 50%는 5000입니다. MP 조건을 실제 전투의 마나 관리로 해석하지 마세요.
콤보·체인의 단계는 피해 타수가 아니라 다음 입력 단계입니다. 스킬 목록에서 skill을 생략하면 현재 행동을 조회하고, 카드 목록에서는 명시해야 합니다. 두 조건은 같은 단계 조회를 사용하므로 스킬의 실제 조작 방식에 맞게 고르세요.
없는 버프의 남은 시간은 0입니다. 버프가 활성일 때만 남은 시간을 비교하려면 buff_active를 함께 쓰세요. 카드 목록에는 현재 스킬이 없으므로 cooldown_ready 대신 skill_cooldown_ready와 스킬 이름을 사용하세요.
기록으로 검증하기
- APL에 적은 스킬이 현재 스킬 구성에도 선택돼 있는지 확인하세요. 아르카나의
기본 공격은 예외로, 선택 슬롯 없이 APL에서 바로 사용할 수 있고 삼두사 버프 중에는 자동으로 변형됩니다. - 입력창 아래의 APL 실행 우선순위와 APL 확인 필요 메시지를 확인하세요.
- 존재하지 않는 스킬·카드, 지원하지 않는 조건이나 잘못된 YAML은 실행 준비 단계에서 오류가 납니다.
- 한 번에 규칙 하나만 바꾸고 같은 세팅·전투 시간·실행 모드·시드로 시전 기록을 비교하세요. 대기가 생기면 조건이 너무 엄격한지 먼저 확인하세요.
- 루인 적중 직전 스택과 카드 사용 직후 버프를 보세요. 시전 시각과 실제 피해 발생 시각은 다를 수 있습니다.
- 규칙이 의도대로 실행되는지 확인한 뒤 반복 실행의 평균과 오차를 비교하세요. 우선순위가 맞아도 DPS가 반드시 증가하는 것은 아닙니다.
- 문제를 공유할 때는 YAML 원문·세팅·전투 시간·모드·시드와 문제가 시작되는 시각을 남기세요. 엔진이나 게임 데이터 버전이 바뀌면 같은 시드라도 결과가 달라질 수 있습니다.
APL은 실제 레이드 패턴이나 이동을 알지 못합니다. 시뮬레이션의 가정과 제한사항을 함께 확인하세요.
예상대로 실행되지 않을 때
- 우선 스킬이 선택돼 있는지, 표시 이름과 들여쓰기가 맞는지 확인하세요. 변수·하위 목록 호출·자유로운
if표현식은 지원하지 않습니다. skill_target_stack_gain은 모든 입력 단계에서 확률 100%인 적중 스택 추가 하나의 최댓값을 조회합니다. 이번 입력의 총 획득량, 스택 설정, 균형 카드나 변형 스킬을 반영한 예측값이 아닙니다. 삼두사 조건에는 사용을 권장하지 않습니다.- 남은 쿨타임·버프 시간 조건은 검사 시점의 값을 비교합니다. 경계 시각에 재검사하는 처리가 불완전하므로 정확히 그 시각에 사용할 것이라고 보장하지 않습니다.
next_skill은 카드 목록에만 쓰세요.- 웹 미리보기는 완전한 YAML/JSON 검증기가 아닙니다. 준비 단계 오류와 실제 실행 기록까지 확인해야 합니다.