본문으로 건너뛰기
검색어를 입력하세요.
이 페이지는 기계 번역의 도움을 받아 번역되었습니다. 정확한 기준은 중국어 간체 문서입니다.

전투 스크립트 보충 설명

전투 스크립트는 전투 안에서 시나리오 이벤트, 스킬 효과, 피해 계산과 유닛 부착 스크립트를 구성할 때 사용합니다. 전투 시나리오 명령, 전투 조회와 스킬 명령은 별도 색인으로 제공되며, 이 페이지는 그 규칙과 공통 형식을 보충합니다.

전투 중 이벤트 실행

“전투 중 이벤트 실행” 섹션

전투에서는 독립된 시나리오 이벤트 실행 시스템을 사용합니다. 월드맵 시나리오 이벤트 실행기와 비슷하지만, 이벤트 실행 시 전투를 강제로 멈추지 않습니다. 전투를 멈추거나 이어서 진행해야 할 때는 이벤트 안에서 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_dmgaddBuff 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_AA 측 고정 내장 유닛입니다. 특정 시전자가 없는 스킬 명령을 구현할 때 사용합니다.
GM_BB 측 고정 내장 유닛입니다. 특정 시전자가 없는 스킬 명령을 구현할 때 사용합니다.
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%][<=]0
SET_DG_INTVAR*test_counter_1#1#1
SKILL_CMD*THIS#THIS#0#add_buff#neutral#caster
B_TALK*THIS#그만! 항복하겠다!
CMD_RETREAT*1
[CMD_END]