전투 스크립트 보충 설명
전투 스크립트는 전투 안에서 시나리오 이벤트, 스킬 효과, 피해 계산과 유닛 부착 스크립트를 구성할 때 사용합니다. 전투 시나리오 명령, 전투 조회와 스킬 명령은 별도 색인으로 제공되며, 이 페이지는 그 규칙과 공통 형식을 보충합니다.
전투 중 이벤트 실행
“전투 중 이벤트 실행” 섹션전투에서는 독립된 시나리오 이벤트 실행 시스템을 사용합니다. 월드맵 시나리오 이벤트 실행기와 비슷하지만, 이벤트 실행 시 전투를 강제로 멈추지 않습니다. 전투를 멈추거나 이어서 진행해야 할 때는 이벤트 안에서 PAUSE, RESUME 같은 전투 시나리오 명령을 사용하세요.
전투 중 콘솔을 열면 bs@ 뒤에 명령 내용을 붙이는 형식으로 전투 스크립트 명령을 입력해 디버그할 수 있습니다.
bs@KILL_ALL*1캐릭터 속성 필드 트리거 방식
“캐릭터 속성 필드 트리거 방식” 섹션일부 캐릭터 속성 필드는 단순 수치가 아니라 전투 중 명령을 트리거할 수 있습니다. 트리거 방식은 필드를 언제 검사하는지, 조건 매개변수를 어떻게 쓰는지, 명령이 어떤 대상에 작용하는지를 결정합니다.
| 트리거 방식 | 조건 매개변수 | 설명 |
|---|---|---|
| by_code | 게임 내부 로직이 처리하거나 기본 구현이 없는 속성 필드입니다. | |
| halo | 오브젝트유형#거리 | 오라 효과입니다. 매 프레임 오라 안의 대상에게 트리거 명령을 실행합니다. 오브젝트 유형: 0 아군, 1 적군, 2 양측, 3 공명. |
| hit_chance | 공격 유형 목록; 명령*조건 추가 가능 | 대상 명중 시 필드 값을 확률로 트리거합니다. 공격 유형: 0 근접, 1 원거리, 2 스킬. swallow_dmg로 이번 피해를 지우고 후속 판정을 멈출 수 있습니다. |
| do_crit | 공격 유형 목록 | 치명타 발생 시 트리거됩니다. |
| every_5hits | 공격 5회마다 필드 값을 확률로 트리거합니다. | |
| hit_by | 공격 방식 | 공격받을 때 트리거됩니다. 0 전체, 1 근접, 2 원거리. |
| on_crit | 공격 방식 | 치명타를 받을 때 트리거됩니다. 0 전체, 1 근접, 2 원거리. |
| on_dodge | 공격 방식 | 회피할 때 트리거됩니다. 0 전체, 1 근접, 2 원거리. |
| on_block | 공격 방식 | 방어할 때 트리거됩니다. 0 전체, 1 근접, 2 원거리. |
| on_dead | 명령*조건 | 사망 시 트리거됩니다. stop으로 이번 사망 판정을 멈출 수 있습니다. |
| on_skill | 스킬 계열 | 캐릭터가 스킬을 사용할 때 트리거됩니다. 비우면 모든 스킬을 뜻합니다. |
| in_abnormal | 이상 상태 유형 | 캐릭터가 이상 상태에 들어갈 때 트리거됩니다. 0 전체, 1 기절, 2 속박, 3 도발, 4 침묵, 5 평정, 6 공포, 7 은신, 8 제어 또는 혼란. |
| out_abnormal | 이상 상태 유형 | 캐릭터가 이상 상태에서 벗어날 때 트리거됩니다. 유형은 in_abnormal과 같습니다. |
| buff_weaken | 대상 Buff ID | 지정 Buff를 가진 대상에게 주는 피해 효과를 높입니다. 증가율은 Buff 중첩 수 * 필드 값 / 100입니다. |
| buff_dmgadd | Buff ID | 자신이 지정 Buff를 가진 경우 받는 피해 효과를 높입니다. 증가율은 Buff 중첩 수 * 필드 값 / 100입니다. |
| defeat_tag | 적을 쓰러뜨릴 때 트리거됩니다. | |
| on_frienddown | 아군이 쓰러질 때 트리거됩니다. | |
| on_enemydown | 적군이 쓰러질 때 트리거됩니다. | |
| polymorph | 모델ID#모델동작ID#변신특수효과ID#복구특수효과#동적모델정보 | 유닛 변신 효과입니다. 모델 ID, 동작 ID 또는 동적 모델 정보에 RAW를 쓰면 원래 모델 정보를 사용합니다. |
| global_add_stat | 조건 표현식 그룹 | 전투 전에 조건에 따라 지정 대상 범위에 속성을 추가합니다. |
| week_getitem | 아이템ID | 매주 지정 아이템을 획득합니다. 여러 아이템 ID는 #으로 구분하며 주인공에게만 적용됩니다. |
| name_prefix | 색상코드#이름텍스트크기 | 이름에 접두사를 추가합니다. 색상은 16진수 코드이며 텍스트 크기는 생략할 수 있습니다. |
피해 표현식 형식
“피해 표현식 형식” 섹션공격, 스킬, 특수효과와 명령이 유닛에게 피해를 줄 때는 보통 피해 표현식으로 계산 매개변수를 설명합니다. 피해 표현식은 여러 키-값 쌍으로 구성되며 세미콜론으로 구분합니다.
key1:value1;key2:value2;...;keyN:valueN| 키 | 설명 |
|---|---|
| type | 피해 유형입니다. 0 일반 근접, 1 일반 원거리, 2 스킬 피해, 3 치유, 4 마나 회복, 5 빈 판정. |
| dmg | 물리 피해 수치입니다. 값은 피해 공식입니다. |
| t_dmg | 고정 피해 수치입니다. 치유 효과도 이 값을 사용합니다. |
| hit | 명중 매개변수입니다. 범위는 -1000부터 1000까지이며, 회피 불가일 때 1000을 입력합니다. |
| blk | 막기 매개변수입니다. 범위는 -1000부터 1000까지이며, 막기 불가일 때 -1000을 입력합니다. |
| cri | 치명타 매개변수입니다. 범위는 -1000부터 1000까지이며, 치명타 불가일 때 -1000을 입력합니다. |
| act | 피격 동작을 재생할지 여부입니다. 1은 예, 0은 아니요입니다. |
| eft | 피격 특수효과 ID입니다. |
| trig | 피해 효과를 트리거할지 여부입니다. 예: 반사 피해. |
| attack_type | 피해의 무기 공격 유형을 지정합니다. 유형 900은 주술 공격이며 주술 방어에 대응합니다. |
| buff | 이 피해를 받을 때 함께 적용할 Buff입니다. 형식: BuffID,[time],[overlay]. 시간과 중첩은 선택 매개변수입니다. |
피해 값 공식은 +, -, *, /, ^, %, 괄호를 지원하며 [%cmd%] 형식의 사전 정의 필드를 포함할 수 있습니다.
| 필드 | 설명 |
|---|---|
| [%rnd:min_val,max_val%] | min_val 이상 max_val 이하의 정수를 무작위로 반환합니다. |
| [%field%] | field를 임의의 캐릭터 속성 필드로 바꾸면 해당 필드의 수치를 반환합니다. |
전투의 특수 오브젝트 ID
“전투의 특수 오브젝트 ID” 섹션전투 명령에서 대상 유닛을 지정할 때 캐릭터 ID 외에도 다음 내장 오브젝트 ID를 사용할 수 있습니다.
| 특수 ID | 설명 |
|---|---|
| PLAYER | 플레이어 유닛입니다. |
| GM_A | A 측 고정 내장 유닛입니다. 특정 시전자가 없는 스킬 명령을 구현할 때 사용합니다. |
| GM_B | B 측 고정 내장 유닛입니다. 특정 시전자가 없는 스킬 명령을 구현할 때 사용합니다. |
| THIS | 현재 명령을 실행하는 유닛 자신입니다. 유닛 부착 스크립트에서 자주 사용합니다. |
| RND_ENEMY_UNIT | 무작위 적군 병사 유닛입니다. 적군 기준은 현재 PLAYER 측과의 관계입니다. |
| RND_FRIEND_UNIT | 무작위 아군 병사 유닛입니다. 아군 기준은 현재 PLAYER 측과의 관계입니다. |
| EMITTER={EMITTER_ID} | ID가 EMITTER_ID인 발사기 유닛을 지정합니다. |
유닛 오브젝트 부착 트리거 스크립트
“유닛 오브젝트 부착 트리거 스크립트” 섹션던전 유닛 오브젝트는 트리거 명령 안에 부착 트리거 스크립트를 정의할 수 있습니다. 캐릭터 설정에서도 TAG 필드 attached_script에 스크립트 이벤트 ID를 지정해 해당 캐릭터에 부착 트리거 스크립트를 걸 수 있습니다. 한 오브젝트에는 여러 트리거를 붙일 수 있습니다.
[CMD_BEGIN]#트리거유형1#트리거조건(선택)#트리거매개변수(선택)명령줄1명령줄2...[CMD_END][CMD_BEGIN]#트리거유형2#트리거조건(선택)#트리거매개변수(선택)명령줄1명령줄2...[CMD_END]| 트리거 유형 | 설명 |
|---|---|
| on_spawn | 유닛이 생성될 때 트리거됩니다. |
| enter_combat | 전투에 들어갈 때 트리거됩니다. |
| get_hurt | 유닛이 피해를 받을 때 트리거됩니다. |
| dead | 유닛이 사망할 때 트리거됩니다. |
| on_timer | 유닛에 걸린 타이머가 끝날 때 트리거됩니다. 타이머는 SET_UNIT_TIMER로 설정합니다. |
| on_skill | 유닛이 스킬 시전을 시작할 때 트리거됩니다. 트리거 매개변수는 스킬 ID입니다. |
| hp_pct | 유닛 체력이 처음으로 대상 백분율보다 낮아질 때 트리거됩니다. 매개변수는 대상 체력 백분율입니다. |
| interactive | 전투 내 상호작용 오브젝트가 있는 유닛이 상호작용할 때 트리거됩니다. |
[CMD_BEGIN]#enter_combat#B_TALK*THIS#문을 닫아라![CMD_END][CMD_BEGIN]#get_hurt#[%this_hp_pct%][<=]5&[%dg_int_val:test_counter_1%][<=]0SET_DG_INTVAR*test_counter_1#1#1SKILL_CMD*THIS#THIS#0#add_buff#neutral#casterB_TALK*THIS#그만! 항복하겠다!CMD_RETREAT*1[CMD_END]