이 페이지는 기계 번역의 도움을 받아 번역되었습니다. 정확한 기준은 중국어 간체 문서입니다.
시나리오 이벤트와 트리거
시나리오 이벤트는 게임에서 시나리오 스크립트를 구성하는 기본 단위입니다. 트리거는 적절한 시점에 이벤트를 찾아 호출하고, 이벤트 안의 명령은 시나리오 이벤트 큐에 들어가 순서대로 실행됩니다.
스크립트 기호
“스크립트 기호” 섹션스크립트의 특수 기호는 모두 영어 반각 기호를 사용하는 것을 권장합니다. 예: *, #, :, ;, |, [, ], $. 시나리오 텍스트와 설정표에서도 이러한 기호를 일반 문자로 잘못 사용하지 않도록 주의하세요.
시나리오 이벤트
“시나리오 이벤트” 섹션하나의 시나리오 이벤트는 주로 이벤트 ID, 명령 내용, 결과 세 부분으로 구성됩니다.
| 구성 | 설명 |
|---|---|
| 시나리오 이벤트 ID | 트리거나 EVENT, SUB_EVENT 같은 명령이 호출하는 고유 식별자입니다. |
| 명령 내용 | 이벤트가 트리거된 뒤 실행되는 명령 항목입니다. 여러 줄 명령은 순서대로 실행 큐에 들어갑니다. |
| 결과 | 명령 반환 결과에 따라 조건을 판정하고 다른 이벤트로 이동하거나 현재 이벤트를 끝냅니다. |
트리거 실행 방식
“트리거 실행 방식” 섹션트리거는 게임의 상호작용, 맵 진입, 퀘스트 완료, 전투 결과 같은 시점을 시나리오 이벤트와 연결합니다. 트리거가 맞더라도 모든 흐름을 즉시 끊고 실행하는 것이 아니라, 대응 이벤트를 시나리오 이벤트 큐에 넣고 실행기가 순서대로 처리합니다.
| 인터페이스 유형 | 트리거 시점 | 오브젝트 매개변수 |
|---|---|---|
| passive | 수동 트리거입니다. 맵 편집기 트리거나 TRIGGER 명령으로 직접 실행할 때 자주 사용합니다. | |
| talk | NPC와 상호작용할 때 트리거됩니다. | |
| first_in | 처음 게임에 진입할 때 트리거됩니다. | |
| encounter | 샌드박스 맵의 유닛과 상호작용할 때 트리거됩니다. | 대상 유닛 제어 ID |
| before_enter_map | 대상 맵에 들어가기 전에 트리거됩니다. 이벤트가 응답하면 현재 맵 진입 행동을 중단합니다. | 대상 맵 ID |
| enter_map | 맵에 들어갈 때 트리거됩니다. | 대상 맵 ID |
| before_leave_map | 현재 맵을 떠나기 전에 트리거됩니다. 이벤트가 응답하면 현재 맵 이탈 행동을 중단합니다. | 현재 맵 ID |
| leave_map | 현재 맵을 떠날 때 트리거됩니다. | 현재 맵 ID |
| enter_place | 장소에 들어갈 때 트리거됩니다. | 대상 장소 ID |
| reach_place | 월드맵에서 장소에 들어가기 전에 트리거됩니다. 이벤트가 응답하면 장소 진입 행동을 중단합니다. | 대상 장소 ID |
| leave_place | 장소를 떠날 때 트리거됩니다. | 현재 장소 ID |
| before_leave_place | 장소를 떠나기 전에 트리거됩니다. 이벤트가 응답하면 장소 이탈 행동을 중단합니다. | 현재 장소 ID |
| reach_building | 시설에 들어가기 전에 트리거됩니다. 이벤트가 응답하면 시설 진입 행동을 중단합니다. | 대상 시설 ID |
| set_lord | AI가 플레이어를 성주로 임명하거나 해임할 때 트리거됩니다. | 트리거 유형과 오브젝트 ID |
| job_cmd | 플레이어에게 업무 명령을 내릴 때 트리거됩니다. | |
| see_warband | 월드맵에서 다른 부대의 전투를 마주칠 때 트리거됩니다. | |
| curplace_inwar | 플레이어가 있는 장소가 공격받을 때 트리거됩니다. | |
| quest_done | 퀘스트 조건이 모두 달성되었지만 아직 제출되지 않았을 때 트리거됩니다. | 퀘스트 ID |
| on_end_work | 어느 장소의 작업을 끝낼 때 트리거됩니다. | |
| occupy_place | 플레이어가 장소 점령에 성공할 때 트리거됩니다. | 대상 장소 ID |
| new_day | 새로운 하루가 시작될 때 트리거됩니다. | 대상 날짜 |
| reward_follower | 플레이어 부하에게 포상할 때 트리거됩니다. | |
| reward_player | 플레이어가 포상을 받을 때 트리거됩니다. | |
| dip_event | 플레이어 세력이 외교 이벤트를 만날 때 트리거됩니다. | 외교 이벤트 유형과 상대 세력 ID |
| dip_ret_success | 플레이어 세력이 요청한 외교 활동이 성공했을 때 트리거됩니다. | 외교 이벤트 유형과 상대 세력 ID |
| dip_ret_fail | 플레이어 세력이 요청한 외교 활동이 실패했을 때 트리거됩니다. | 외교 이벤트 유형과 상대 세력 ID |
| player_failed | 플레이어가 조우전에서 패배할 때 트리거됩니다. | |
| reinforce_request | 플레이어와 관련된 지원 이벤트가 발생할 때 트리거됩니다. | |
| is_fall | 세력이 붕괴할 때 트리거됩니다. | 세력 ID |
| is_to_fall | 세력이 모든 거점을 잃어 곧 붕괴할 때 트리거됩니다. | 세력 ID |
| before_cash_present | 포상 전에 트리거됩니다. 포상을 중단하는 데 사용할 수 있습니다. | |
| before_present | 선물 전에 트리거됩니다. 선물을 중단하는 데 사용할 수 있습니다. | |
| on_present | 선물할 때 트리거됩니다. | |
| encounter_role | 캐릭터를 만나 공통 대화에 들어가기 전에 트리거됩니다. | 대상 캐릭터 ID |
| helped_camp | 양측 전투 조우에서 한쪽을 도운 뒤 트리거됩니다. | 상대 부대 대장의 소속 진영 |
| on_saodang | 야외 장소를 소탕한 뒤 트리거됩니다. | |
| on_place_rep_up | 장소 공헌도가 오를 때 트리거됩니다. 최신 공헌도는 arg_int_val1에서 읽을 수 있습니다. | |
| on_place_rep_down | 장소 공헌도가 내려갈 때 트리거됩니다. 최신 공헌도는 arg_int_val1에서 읽을 수 있습니다. | |
| team_dismiss | 부대가 해산될 때 트리거됩니다. | 부대 유형 |
| team_into_place | 부대가 장소에 들어갈 때 트리거됩니다. | 부대 유형과 장소 ID |
| in_game | 게임 생성 또는 저장 불러오기 후 트리거됩니다. | |
| bar_challenge | 플레이어가 술집에서 도전을 시작할 때 트리거됩니다. | |
| tournament_start | 플레이어가 현지 격투 대회에 참가할 때 트리거됩니다. | |
| be_promoted | 플레이어 작위 등급이 오를 때 트리거됩니다. tagrole은 세력 영주입니다. | |
| be_demoted | 플레이어 작위 등급이 내려갈 때 트리거됩니다. tagrole은 세력 영주입니다. | |
| space_move | 플레이어가 도시 내부 구역을 전환할 때 트리거됩니다. | enter 또는 leave, 구역 ID |
| on_diplomacy_strategy | 정보 화면의 외교 버튼을 누를 때 트리거됩니다. tagcamp는 대상 세력입니다. | |
| on_diplomacy_quit | 정보 화면의 나가기 버튼을 누를 때 트리거됩니다. tagcamp는 대상 세력입니다. | |
| after_generate_role | 캐릭터 생성 후 트리거됩니다. tagrole은 생성된 캐릭터입니다. | 생성 템플릿 ID |
| match_prepare | 격투 대회 준비가 시작될 때 트리거됩니다. | 격투 대회 ID |
| match_start | 격투 대회가 정식으로 개최될 때 트리거됩니다. | 격투 대회 ID |
| match_end | 격투 대회가 끝날 때 트리거됩니다. | 종료 유형과 격투 대회 ID |
| match_fight | 격투 대회 전투가 시작될 때 트리거됩니다. | 격투 대회 ID |
| match_watch_fight | 격투 대회를 관전할 때 트리거됩니다. | 격투 대회 ID |
| match_fast_fight | 격투 대회를 빠른 전투로 처리할 때 트리거됩니다. | 격투 대회 ID |
| match_join_team | 격투 대회 팀에 참가할 때 트리거됩니다. arg_int_val1은 신청한 팀 ID입니다. | 격투 대회 ID |
| match_end_talk | 격투 대회 종료 대화 시 트리거됩니다. | 결과 유형과 대화 캐릭터 |
스크립트 프리셋 필드
“스크립트 프리셋 필드” 섹션프리셋 필드는 현재 문맥의 오브젝트를 대신해 쓸 수 있어 재사용 가능한 공통 이벤트를 작성할 때 유용합니다.
| 필드 | 설명 |
|---|---|
CUR_ROLE | 현재 조우 캐릭터 템플릿 ID입니다. 대화 상자와 선택 상자에서 자주 사용합니다. |
CUR_BATTLE | 현재 조우한 월드맵 갱신 유닛에 대응하는 전투 ID입니다. |
전투 매개변수 정보
“전투 매개변수 정보” 섹션특정 전투표의 제한 조건 필드와 BATTLE 같은 명령의 전투 매개변수는 원래 전투 설정을 덮어쓸 수 있습니다.
매개변수1ID:매개변수1;매개변수2ID:매개변수2;...| 매개변수 | 설명 |
|---|---|
player | 플레이어 측 출전 영웅 유닛을 덮어씁니다. 형식: 캐릭터ID|캐릭터ID2. |
units | 플레이어 측 출전 편제를 덮어씁니다. 형식: 병종카드ID,수량,레벨|병종카드ID2,수량,레벨. 레벨을 비우면 카드 초기 레벨을 사용합니다. |
add_stat | 초기 배치 캐릭터에 속성을 추가합니다. |
place_stat | 전투 장소에 속성 필드를 추가합니다. |
can_capture | 이번 전투에서 패배 측을 포로로 잡을 수 있는지 지정합니다. 1은 가능, 0은 불가입니다. |
can_loot_equip | 이번 전투에서 적 장비가 드롭될 수 있는지 지정합니다. 1은 가능, 0은 불가입니다. |
결과 스크립트 형식
“결과 스크립트 형식” 섹션결과 스크립트는 조건에 따라 이벤트를 다른 후속 명령으로 보냅니다. 게임은 첫 줄부터 판단하며, 처음 성립한 조건의 대응 명령을 실행합니다.
조건표현식그룹1:실행명령1조건표현식그룹2:실행명령2...조건표현식그룹N:실행명령N전역 저장 조회
“전역 저장 조회” 섹션| 형식 | 설명 |
|---|---|
[%global_int:ID%] | 전역 정수 필드 ID 값을 반환합니다. |
[$global_str:ID$] | 전역 문자열 필드 ID 값을 반환합니다. |
내장 전역 변수
“내장 전역 변수” 섹션| 필드 | 설명 |
|---|---|
save_max_hard_level | 이미 해금한 최고 난이도입니다. 기본값은 0입니다. |
내장 사용자 지정 변수
“내장 사용자 지정 변수” 섹션| 필드 | 설명 |
|---|---|
system_沙盒模式 | 현재 샌드박스 모드 여부를 표시합니다. |
system_探索地图点数 | 탐험 맵 포인트를 기록합니다. |
system_星星 | 별 개수를 기록합니다. |
system_敌方角色血量百分比 | 플레이어와 적 캐릭터가 전투할 때 상대 체력의 추가 배율입니다. |
system_敌方角色攻击百分比 | 플레이어와 적 캐릭터가 전투할 때 상대 공격력과 마법 공격력의 추가 배율입니다. |
config_ai_level | 현재 AI 강도입니다. 0 쉬움, 1 보통, 2 어려움입니다. |
config_roll_limit | 전투 구르기 제한 여부입니다. 0 꺼짐, 1 켜짐입니다. |
config_hunger_penalty | 굶주림 페널티 여부입니다. 0 꺼짐, 1 켜짐입니다. |
config_upgrade_cost_reduce | 유닛 업그레이드 경험치와 재료 비용의 할인율입니다. |
config_soldier_dead_scale | 병사 사망 확률 배율입니다. |
초기 설정 필드
“초기 설정 필드” 섹션초기 설정 필드는 캐릭터 생성, 시작 맵, 기본 시간 속도와 전투 기본 공식 같은 기초 설정에 사용됩니다.
| 필드 | 설명 |
|---|---|
| init_pos | 기본 시작 위치 정보입니다. |
| init_statu | 플레이어가 시작할 때 적용되는 기본 속성 상태입니다. |
| init_money | 기본 시작 재산입니다. |
| home_place | 기본 시작 장소 ID입니다. |
| init_skillpages | 처음부터 활성화되는 스킬 페이지입니다. |
| init_skills | 주인공이 처음부터 보유하는 스킬 목록입니다. |
| init_equip | 주인공의 시작 장비 정보입니다. |
| init_camp_rl | 초기 진영 관계표입니다. 형식은 진영A,진영B,관계상태,우호도|... 입니다. |
| gametime_scale | 월드맵에서 게임 시간이 흐르는 배율입니다. |
| battletime_scale | 전투 중 게임 시간이 흐르는 배율입니다. 0이면 조우전이나 공성전에서 게임 시간이 멈춥니다. |
| custom_intval_watcher | 기본 사용자 지정 변수 감시 필드입니다. 형식은 ADD_INTVAL_WATCHER와 같습니다. |
| def_dropitem_model | 전투 중 아이템이 바닥에 떨어질 때 사용하는 기본 모델과 특수효과 정보입니다. |
| default_role_model_male / default_role_model_female | 캐릭터 모델을 지정하지 않았을 때 사용하는 기본 남성/여성 캐릭터 모델입니다. |
| default_role_act_male / default_role_act_female | 무기 유형에 맞는 동작을 찾지 못했을 때 사용하는 기본 남성/여성 동작 ID입니다. |
| default_weapons_speed | 모든 무기 유형에 대응하는 기본 공격 속도입니다. |
| def_formula_phy_x / def_formula_mag_x | 물리 방어와 주술 방어 계산 공식의 계수입니다. |