Total War: THREE KINGDOMS Guide

토탈워 삼국 : 더 결집 샌드박스 모드 for Total War: THREE KINGDOMS

토탈워 삼국 : 더 결집 샌드박스 모드

Overview

토탈워 삼국에서 돌아가는 더 결집 샌드박스 모드 사용 설명서 입니다.더 결집 샌드박스 모드 소개 메뉴 아이콘과 입력창 로케일 : kr, en 처음 시작하기 즉시 명령 행동 명령 사용자 텍스트 파일 로그 파일 주의 사항

소개

샌드박스 모드는 약 3만 2천라인의 LUA 스크립트로 작성된 초대형 스크립트 모드입니다.

게임 상의 텍스트 입력 창으로 사용자가 원하는 명령을 실시간으로 입력하고, 스크립트가 동작하는 형태의 모드입니다.

사용자 원하는 턴에 원하는 영웅을 원하는 팩션으로 소환할 수 있습니다.
사용자 원하는 턴에 원하는 아이템을 원하는 팩션으로 수여할 수 있습니다.
사용자 원하는 트레잇(전설 포함)을 장수에게 부여/제거 할 수 있습니다.

사용자 script, 사용자 db 파일을 통해 ‘나만의 영웅 집결’ 모드를 구현할 수 있습니다.

이 모드는 다른 모드와의 호환성을 가장 중요하게 생각하는 모드입니다. 이 모드에서 삼탈워 데이터를 수정하는 부분은 ‘미성년 소환을 위한’ 나이 테이블 뿐입니다. 이 테이블을 제외한 어떤 데이블도 데이터를 가지고 있지 않습니다. 이 모드 천개 가량의 스크립트 이벤트도 초기에 ‘미생성’ 이벤트이며, 오직 사용자의 명령에 따라 생성되는 이벤트이기 때문에 다른 모드와 충돌할 가능성은 사용자가 의도하지 않는 이상 없습니다.

이 모드 대표적인 명령으로는

summon, 여포, player, 4 steal, 태사자, 풍뢰궁 trait, 손인, add, 사람을 휘어잡는 매력

과 같은 명령이 있습니다.

이 모드에서 지원하는 모든 기능은 켜거나 끌 수 있습니다. 심지어 UI도 꺼버릴 수 있고, 사용자가 명령하지 않은 어떤 일도 수행하지 않습니다. 다른 오버호울 모드와의 호환성, 그 속에 나만의 게임 환경을 만들고, 나만의 팩션 밸런스를 구현할 수 있는 기능 등을 보유했기 때문에 모드 이름을 ‘샌드박스’ 라고 붙였습니다.

최근 업데이트 내역 2.1.70

  • 2.1.70 – Core Object 20년 11월 9일
  • 2.1.60 – 새로운 “add_position, [세력/player], 직위” 명령
  • 2.1.54 – 마우스 중복 이벤트 해결
  • 2.1.50 – 새로운 설정
      TheG.mod.post_diplomacy_camera, true/false TheG.mod.skip_intro_cutscene, true/false TheG.mod.loading_auto_continue, true/false
  • 2.1.40 – 비정상적인 영웅 template_key 사용 모드와의 호환성 강화
  • 2.1.30 – 영웅 관계 설정 업데이트 rel.(brother,friend,nemesis…)
  • 2.1.20 – 더 결집 남만 업데이트
  • 2.1.10 – 남만 타이틀, heroes, clones, find_item
    • 남만 타이틀 1~3 단계 적용
    • heroes & clones
    • TheG.mod.confederated_faction_heroes – 아이템 흡수
  • 2.0.02 – TW:TK 1.6.1 업데이트. 20년 10월 9일
  • 2.0.02 – 2차 안정화 모드
  • 1.9.84 – ‘spawn, hero, faction
  • 1.9.79 – 1차 안정화 모드
  • 1.9.69 – ‘ef_satisfaction‘, etc
  • 1.9.62 – ‘ef_salay‘, etc & 지역 명칭 맵 모드
  • 1.9.53 – ]TW:TK 1.6.0 데이터 및 API 정리 1차 완료 9월 7일
  • 1.9.50 – TK 1.6.0 업데이트 시작, 20년 9월 4일
  • 삼탈워 1.6 대응 패치 시작. 9월 4일

  • 1.9.43 – TK 1.5.3 마지막 업데이트, 20년 4월 5일
  • 1.9.41 – ‘capital, 유비, 동해‘ 수도를 이전합니다. 이전 후 10턴 간 수도 변경 제한
  • 삼탈워 1.5 대응 패치 시작. 4월 1일

  • 1.9.32 – ‘give_exp, 영웅, 경험치
  • 1.9.32 – ‘exp_bonus, [세력/player/all/others], [0/25/50/100/200/300/500]
  • 1.9.20 – ‘num_live
  • 1.9.05 – ‘raze, 낙양_1‘ 도시나 부속 지역을 공백 상태로 만듭니다
  • 1.8.31 – ‘where, 조조
  • 1.8.30 – homeland_movement, recruit_rank 등의 효과 설정
  • 1.8.10 – ‘batch, input_item.txt
  • 1.8.02 – ‘db.info, 유비
  • 1.8.00 – $(game)/sandbox 디렉토리
  • 1.7.90 – ‘batch’ 명령으로 히스토리 파일을 지정
  • 1.7.84 – 총 42개의 아이템 세트를 사용자 db 택스트 파일과 샌드박스에 내장했습니다
  • 1.7.84 – 이제 ‘zh’와 ‘cn’ 로케일의 db 파일을 출력합니다. ‘out_text’ 명령을 사용하십시오
  • 1.7.84 – 새로운 부모 설정 명령여 ‘child_of
  • 1.7.84 – 외부 무장 등록 명령이 대폭 간소화
  • 1.7.63 – 새로운 팩션 리더와 후계자 교체 명령어 ‘post.leader & post.heir
  • 1.7.51 – ‘db.name’, ‘db.class’, ‘force_kill’
  • 1.7.42 – 스팀 가이드 및 사용자 텍스트에 MTU & Wu 모드 아이템 사용 샘플을 추가 했습니다
  • 1.7.34 – 새로운 ‘federate, 조조, 유대’ 명령어
  • 1.7.25 – 새로운 ‘set_title, 유비, 난세의 예견자’ 명령어
  • 1.7.02 – 중국어 간자체 모든 부분에서 지원합니다
  • 1.6.72 – ‘notify.show’ ‘notify.duration’ 알림 명령
  • 1.6.65 – 새로운 부대 지휘자의 순간이동 명령. ‘teleport, 유비, 낙양’
  • 1.6.58 – TheG.mod.tke_liu_bei_to_jingzhou, true – 군웅할거 유비 강릉 스타트
  • 1.6.52 – all_item, all, faction, 2 이제 세력과 숫자를 입력할 수 있습니다. ‘all’ = 347 아이템
  • 1.6.43 – MTU & Wu 호환성 업데이트
  • 1.6.31 – 새로운 ‘자동 트래잇’ 기능이 구현되었습니다.
  • 1.6.22 – 입력창 히스토리 세이브/로드 기능이 추가 되었습니다.
  • 1.6.12 – 새로운 ‘summon.moh’ 및 ‘all_item, moh’ 명령
  • 1.6.10 삼탈워 1.4 대응 패치 시작. 1월 18일

  • 1.5.1
    • 2019년 마지막 업데이트. 10월 12일
    • 사용자 입력 창 UI 다시 내장하였습니다. 샌드박스 콘솔 모드는 더 이상 필요하지 않습니다. 구독 해지하시기 바랍니다.

  • 1.4.55,6,7,8,9,0,1
    • 1.3.0 베타 대응 업뎃. 1.2.x 버전과 함께 사용할 수 있게 했습니다. 총 263명의 장수 번호가 1.3.0 베타에서 바뀌었습니다.
    • 스크립트 모드 초기화 부분에 대한 ‘대변혁?’이 1.3.0 베타에 있습니다. 일단 바닐라 소스를 수정하는 안정성/버그 패치를 제작하여 포함했고, 차차 안정화 시킬 예정입니다.

  • 1.4.5
    • 1턴 시작 전에 팩션 리더를 포함해서 타 팩션의 장수를 다른 AI 팩션으로 이동시키는 것이 다시 가능해졌습니다(8월25일 이전 처럼). 이제 실질적인 0턴 명령으로 구현된 소환, 킬 명령을 수행합니다.
    • 이벤트 제공하는 장수들(150여명)은 플레이어 팩션으로 소환할 때, 이제 즉시 소환됩니다.
    • 모든 장수의 ‘풀 데이터 키’를 내장하게 모드 내부를 개조해서 안정성을 더 높였습니다.

  • 1.4.42 – ‘search, 23’, ‘trait, 23, add, brave’
  • 1.4.4 – ‘set_wealth’ 명령
  • 1.4.3 – ‘trait.set’, ‘item.set’ 기능 추가. 9월 19일
  • 1.4.2 – 모든 아이템 데이터 내장
  • 1.4.2 – 새로운 ‘all_item’ 명령 추가
  • 1.4.0 – 중국어 번체 입력 가능. 8월 31일
  • 1.4.0 – 군웅할거, 팔왕자의 역사 영웅들 데이터를 모두 내장
  • 1.3.75 – remove_item, player, 산해경
  • 1.3.72 – 구글 쉬트에 중국어 번체 이름 쉬트를 추가
  • 1.3.7 새로우 게시물로 모드 재 업로드
  • 1.3.65
    • Vandy의 신고로 8월22일 CA가 샌드박스 모드를 스팀에서 제거

  • 1.3.6 – 새롭고 완전한 샌드박스 입력창 구현. 8월 20일 12시 30분 KST

  • 1.3.50 – 사용자 db 텍스트에 기본 알리아싱 추가
  • 1.3.50 – trait, 장수번호, add, 뛰어남
  • 1.3.40 – ‘en’, ‘kr’ 버튼 추가 및 out_text 파일 생성 오류 수정
  • 1.3.31 – CA가 삭제했다 복구한 ‘트레잇’ 16개 다시 사용 가능
  • 1.3.00 – 메인에서 팔왕 DLC 장수 및 아이템 소환, 혹은 팔왕에서 메인 장수 및 아이템 소환 가능
  • 1.3.0 – 스팀에 샌드박스 모드 등록. 8월 13일.

메뉴 아이콘과 입력창

Vandy의 신고로 이전 샌드박스가 CA에게 블럭된 뒤 버전 1.3.7에서 UI를 독립된 모드로 분리시켰습니다.
버전 1.5.1 (19년 10월)에 샌드박스 모드와 다시 합쳤습니다.

더 결집 샌드박스 콘솔

텍스트 입력창은 화면 상단 메뉴바 우측의 “S” 모양의 아이콘을 크릭하면 나옵니다.

현재 삼탈워 UI 텍스트 입력은 매우 느린 입력 속도를 가지고 있습니다. IME(한글,일본,중국 등)와 관련된 패치가 필요한 부분이라 하겠습니다. 긴 문자열을 Ctrl+C, Ctrl+V로 복붙하면 심하면 10초 정도 걸립니다. 가능한 입력 줄을 짧게 해서 복붙하는 것이 좋고, 자주 사용하는 명령줄은 미리 텍스트로 작성해놓고 복붙하는게 좋습니다.

1.6.1 버전에서 Ctrl-V 입력이 개선되었지만, 마우스 크릭이 두 번씩 이벤트를 발생하는 문제가 새로 생겼습니다.

입력창의 오른쪽 끝에 있는 작은 화살표를 위로 누르면 이 모드에서 사용할 수 있는 명령들의 예시가 들어있습니다.

처음 사용하시는 분들은 살펴보시고, 부담없이 실행해보시기 바랍니다.

샌드박스 모드의 파일 구성

모드 메니저에서 샌드박스를 활성화 시키면 샌드박스 Pack 파일은 사용자 스팀 워크샾 밑의 삼탈워 콘텐츠 디렉토리에 설치됩니다.

그 상태는 샌드박스의 기본 상태입니다.

  • 게임/sandbox 디렉토리

    샌드박스 모드는 “게임/sandbox” 디렉토리를 자동으로 생성합니다. 아래의 그림은 하나의 예시가 되겠습니다.

      sandbox_user_script
      사용자 샌드박스 모드 설정 파일
      sandbox_user_db
      사용자 샌드박스 모드 데이터 정의 파일
      sandbox_user_db_tke
      군웅할거에 사용될 데이터 정의 파일
      default_histories
      입력 패널에 기본으로 설정될 명령 히스토리 파일
      input_item
      사용자가 이름을 지정해서 저장한 히스토리 파일의 예시
      log_sandbox
      사용자 샌드박스 모드 기본 로그 파일

    이 모드는 사용자가 몇 가지 설정을 더하고, 아이템 및 장수 설정을 추가할 수 있습니다. 장수, 아이템 데이터를 사용자들이 알아보기 쉽게, 사용하기 쉽게 정리한 내용을 모드 내부에 가지고 있습니다.

  • out_text 명령
    out_text out_text, [kr/en/zh/cn] # 각 로케일에 해당하는 파일 출력 “sandbox_user_script_en”

    위 명령은 “sandbox_user_script”, “sandbox_user_db”라는 두 개의 파일을 “게임/sandbox” 디렉토리에 생성합니다.

    위 텍스트 파일들 중 ‘out_text’ 명령으로 출력되는 두개의 파일은 ‘사용자 script 텍스트’와 ‘사용자 db 텍스트’라고 불려지는 핵심 정보 파일입니다. 샌드박스 모드에 설정하고 싶은 정보는 두개의 기본 파일 속에 들어가야만 합니다.

  • out_log 명령
    out_log # 현재 설정 상태 출력 out_log, true # 로그의 파일 출력 시작

    기본 로그 파일은 “게임/sandbox/log_sandbox.txt” 파일입니다. 샌드박스를 하드하게 사용하시는 분에게 유용한 정보가 로그 파일로 출력됩니다.

    샌드박스 디렉토리에 로그 파일이 이미 있으면 출력되는 개발자용 로그도 있습니다.

    log_console.txt # 입력 패널에 관련된 로그 출력 log_sandbox.txt # 샌드박스 메인 로그

명령과 샌드 박스 데이터 파일

샌드박스 모드의 명령은 두 가지 방식으로 이루어집니다.

  1. 명령 입력창
    summon, 여포, player , 4 kill, 동탁, 53
  2. 텍스트 파일
    TheG.action.summon, 여포, player , 4, 1 TheG.action.kill, 동탁, 53, 1 TheG.action.kill, 동탁, , 1

미리 명령을 입력해 놓은 텍스트 명령에는 ‘턴’을 지정해줘야 하기 때문에 명령 줄 뒤에 옵션이 하나 더 있는 것을 알 수 있습니다. 텍스트 파일에 대해선 하단에서 자세히 설명합니다.

샌드박스 모드에서 명령을 간단히 사용하려면 정보가 필요합니다. 정보가 없다면 사용자는 풀 키를 사용해서 명령을 해야만 합니다

summon, 3k_main_template_historical_gan_ning_hero_fire, 3k_main_faction_cao_cao, 4, 1

위 명령은 샌드박스 입력 창에서 아래와 같은 명령입니다.

summon, 감녕, 조조, 4, 1

사용자 편의를 위한 샌드박스 모드의 데이터 정보는 다음과 같이 설정됩니다.

  1. 명령 입력창
    alias, 절영, 3k_main_ancillary_mount_shadow_runner alias, 옥새, 3k_main_ancillary_accessory_imperial_jade_seal
  2. 텍스트 파일
    TheG.db.item.alias, 절영, 3k_main_ancillary_mount_shadow_runner TheG.db.item.alias, 옥새, 3k_main_ancillary_accessory_imperial_jade_seal

위와 같은 정보를 바탕으로 아래와 같이 알기쉬운 명령을 입력창에 입력할 수 있습니다.

steal, 조조, 절영

텍스트 파일에 대해선 이 가이드의 뒷 부분에서 보다 자세히 설명합니다.

지원 로케일 : kr, en, zh, cn

1.2 버전에서 영어 locale을 지원합니다. 영문판 사용자는 영어로 keyword를 치고 메시지도 영어 locale에 담긴 장수 명칭과 아이템 명칭으로 볼 수있게 되었습니다. 영문판이라도 추가로 설치해야 하는 서브 모드가 없습니다.

locale locale, kr locale, en

locale 명령에 인자가 없으면 현재 로케일을 보여줍니다.

버전 1.3.4 부터 한/영 로케일 전환은 로케일 버튼 크릭으로 가능해졌습니다.

참고로 중국어 한자판에선

중국어는 간자체, 한자체 두 로케일이 있고, 지원하기 위해선 많은 노력이 필요해 차차 추이를 지켜볼 생각입니다.

1.7.0 버전에서 간자체까지 지원합니다.

영어 로케일, 한글 로케일이라도 사용하시는 윈도우즈 IME에 따라 입력할 수 있는 언어는 다를 수 있습니다. 일본어 자판 IME 상태면 한글을 입력할 수 없듯이 말입니다.

샌드박스 모드에 대한 이해 : 왜 사용자 복잡한 db 텍스트를 활용하는 가

CA 내부에서 도움을 받는 Vandy가 ‘Respec Character Skills when they join you’ 라는 모드를 발표했고, 한 때 삼탈워 최고 인기 모드가 되었죠. 그 모드의 짧은 30~40 라인 소스 중에 ‘reset_skills’ 라는 삼탈워 API를 보고 아마도 많은 스크립트 모더들이 분노했을 겁니다. 참 얍삽한 놈들이라고…

그 모드를 창작마당에 올린 몇칠 후에 일반 모더들이 LUA getmetatable 이라는 함수로 삼탈워 엔진에서 오픈된 API를 볼 수 있었습니다. 메타테이블은 엔진과 스크립트 간의 표준형 인터페이스 방식이라 보통은 막아놓기 전에는 항상 볼 수 있습니다. 막힌 메타테이블이 열리자 삼탈워 엔진에서 열어놓은 API를 볼 수 있었고, 거기에는 당연히 ‘reset_skills’ 라는 이름도 있었죠. 저런 기능의 API가 왜 뜬금없이 어울리지 않는 자리에 있는지는 제 엔지니어 인생 전체를 걸고 전혀 이해할 수 없습니다. 실제 바닐라 스크립트 전체에서 한 번도 사용되지 않는 API입니다. 차라리 장수의 출생 년도를 수정할 수 있는 ‘set_age’같은 API가 훨씬 더 유용하죠. 그랬다면 ‘0살 등용 모드’을 만들어 쓰며, ‘1살짜리’ 손인을 등용해서 게임하는 유저들의 고충도 덜어줬을텐데 말입니다.

리셋 스킬 API 이외에는 Vandy의 리스펙 모드처럼 짧은 코딩으로 활용할 수 있는 범용 API는 아예 없습니다. 굳이 있다면 무한 이동 가능하게 하는 것 뿐입니다.

CA가 삼탈워에서 스크립트 모드에 대해서도 지원한다는 메시지를 일반 사용자들에게 전달하며, 제대로된 스크립트 모드가 나오지 않는 건 모더들의 능력 문제라고 일축하고 싶었나 봅니다.

각설하고, 스크립트 모드에서 접근할 수 있는 API는 매우 한정적이며 엔진과 팩파일 데이터는 접근이 불가능합니다.

  1. 샌드박스 모드에서 사용자가 삼탈워 팩파일을 까보지 않는 이상 알 수 없는 데이터 키를 명령 옵션으로 활용할 수는 없습니다.

    search, 3k_main_template_historical_lady_bian_huilan_hero_wood

    위와 같은 명령은 사실상 쓸모가 없습니다.

    search, 변부인

    사용자가 친숙하게 입력할 수 있고, 그 키값으로 빠른 검색이 가능해야만 합니다.

  2. 정의된 key 값으로 검색하는 것과 장수 이름으로 검색하는 것은 마치 컴퓨터 RAM과 하드 디스크 속도 차이와 같습니다.

    search, ladysun

    search, sun_ren

    게임화면에 보이는 이름은 삼탈워에서 로딩하고 있지 않습니다. 필요할 때 마다 locale.kr(1.3기가 크기)에서 찾아 옵니다. 파일 크기가 말해 주듯이 크기도 크고, 항목도 많아 검색하고 데이터를 가져오는 데 시간이 많이 걸립니다.

    영문 사용자의 경우 눈에 보이는 장수 이름을 그대로 서칭하면 키값을 사용한 것과 엄청난 속도 차이가 납니다. 다수의 영웅 검색 실험에서 3초 vs 0.1초 정도의 차이가 납니다. 영문 사용자는 ‘_’ 문자를 써서 키값임을 나타내야 합니다. 샌드박스 모드에서는 이름과 키값이 구분 안되는 영문이 오히려 더 불편합니다.

    샌드박스 1.5.0부터 모든 영웅의 데이터를 내장하고 있습니다. 모든 영웅들에게 미리 정의된 키 값을 부여하고 있습니다. 샌드박스 구글 쉬트[docs.google.com]에서 확인할 수 있습니다.

    구글 쉬트에 없는 영웅(신무장이나 타 모드 영웅)의 경우 사용자 db 텍스트에 등록해야만 합니다.

  3. 샌드박스의 사용자 db 텍스트 파일에는 검색의 효율성과 사용자가 친숙하게 입력할 수 있는 환경을 제공하고자 복잡해 보이고, 어려워 보이는 문법을 사용했습니다.

    센드백스 사용자 db 텍스트는 최상의 방법은 아닐지라도, 적절한 방법임에는 틀림이 없습니다. 불편하시더라도 이해를 부탁드립니다.

  4. 이 모드는 1차로 아군을 검색합니다. 그 후에 등록된 장수와 다른 팩션을 검색합니다.

    샌드박스의 모든 명령은 아군 진영 내에서 먼저 찾습니다. 그 후에 ‘등록된 장수’를 찾고, 못 찾았을 경우 다른 팩션을 찾습니다. 대부분의 명령이 같은 방식이고, search 명령만이 전체 장수를 대상으로 복수의 장수를 검색합니다.

처음 시작하기

이 모드는 처음 시작하는 분에게 어렵습니다.

도스 콤맨드라인이나 윈도우즈 파워쉘을 사용하는 사용자 수준에서야 이 모드를 쉽게 이해할 수 있습니다.

가장 쉽게 시작하는 방법은 이 글을 따라서 해보는 겁니다.

  1. 이 가이드의 색션 “주의사항”에 가서 해당 ‘user_script’ 텍스트 파일이 찾아보고 있으면 반드시 지워야합니다.
  2. 모드메니저에서 #1, 맨 위에 이 모드를 드래그해서 올려놓습니다.
  3. 대형 모드는 잠시 꺼둡니다.
  4. 게임을 조조 세력으로 시작합니다.
  5. 상단의 “S” 아이콘을 크릭해서 입력창을 켭니다.
  6. 입력창 오른 쪽 ‘화살표’를 눌러 나오는 명령을 실행해봅니다.
  7. 중간에 실행되지 않는 명령이 있어도 상관없습니다. 늘상있는 일입니다.
  8. log_level 명령이 나오면 중단합니다.
  9. 입력창에 out_text를 입력하고 게임/sandbox 디렉토리에 텍스트 파일이 생성되는 지 확인합니다.
  10. 입력창에 summon,조운,player 라고 치고 실행합니다.
  11. 조운이 소환되어 있다면 이제 이 모드를 잘 사용할 준비가 되신 겁니다.

입력창 특성과 명령

  1. 히스토리 저장 기능

    • 입력된 명령은 이제 입력 패널의 ‘세이브’, ‘로드’ 버튼을 통해 저장되고 복구될 수 있습니다.
    • 기본 파일로 저장된 명령 이력은 다음 샌드박스가 실행될 때 자동으로 복원됩니다.
    • 세이브 버튼을 누르면 현재 입력되어 있는 명령들의 이력이 삼탈워 게임 루트 밑의 ‘sandbox’ 디렉토리에 ‘default_histories.txt’로 저장됩니다.
    • 로딩하면 위 파일 내용이 다시 복원됩니다.
    • 히스토리 저장 파일 지정 가능합니다.
      save save, summon.txt save, 조운트레잇.txt, 10

    • 파일 경로/이름을 지정하면 게임 디렉토리 하위 디렉토리에 지정한 파일로 출력합니다. 디렉토리 구분자는 ‘/’ 문자로 구분해야 하고, 디렉토리가 ‘sandbox’ 디렉토리 아래에 존재해야 합니다. 파일 이름에는 공백 문자나 특수 문자가 있어서는 안됩니다.
    • 저장할 히스토리 양을 숫자로 지정할 수 있습니다.위의 예시는 나중에 입력된 10개의 명령어 히스토리를 지정된 파일로 저장합니다.
    • 히스토리 복구의 용법도 저장과 같습니다.
      load load, summon.txt load, 조운트레잇.txt, 10

    • top & bottom

      히스토리 명령 줄의 위치를 바꿀 수 있습니다. top 가장 위 쪽으로 이동합니다. bottom은 가장 아랫쪽으로 이동하며 offset 을 지정할 수 있습니다.

      top, 5 bottom

    • 히스토리 파일 사용 예

      기본 히스토리 파일인 ‘게임/sandbox/default_histories.txt’ 에는 다른 히스토리를 로딩하는 부분을 지정해 놓고 ‘쓰기 금지’ 파일로 설정합니다.

      load, input_item.txt load, input_mtu.txt load, input_wu.txt

      각각의 다른 파일에는 다음 처럼 ‘save, load’ 명령을 조합하면 여러 히스토리 파일을 관리하며 사용하기 편합니다.

      save, input_mtu.txt load, input_mtu.txt find_item, 대파극 steal, 동탁, 대파극 find_item, 봉취도 steal, 원소, 봉취도 find_item, 이복파검 give_item, player, 이복파검 find_item, 빈찬합 steal, 한복, 빈찬합 bottom, 2

      샌드박스 2.0.0부터 “저장” 버튼은 최근에 로드된 파일로 저장합니다. 저장 버튼 툴팁으로 어느 파일로 저장되는 지를 알 수 잇게 했습니다. 이제 사용자 입력창 ‘로드 버튼'(기본 히스토리 파일) -> 각 히스토리 로딩(load, summon.txt) – ‘저장'(summon.txt로 저장) – ‘로드 버튼'(기본 히스토리 로드) 순서로 여러 개의 히스토리 파일을 순환하며 사용 가능합니다.

  2. batch

    batch, filename batch, tke_early_setup.txt

    $(game)/sandbox 에 있는 지정한 파일의 모든 명령어를 순차적으로 실행합니다. 순차 실행 중에 모든 알림은 출력 되지 않습니다.

  3. run

    run, filepath run, console/inspect.lua

    게임 외부에 있는 ‘.Lua’ 파일을 실행합니다.

    $(game) 디렉토리로부터의 상대 경로를 입력해야 합니다. “console/inspect.lua” 를 입력하면 $(game)/console/inspect.lua 파일을 찾아서 실행하게 됩니다.

    $(game)/sandbox/log_console.txt 파일의 로그를 보면 실행 로그를 볼 수 있습니다.

    LUA 스크립트를 사용해서 모드를 개발하는 분들을 위한 개발자 전용 명령입니다.

  4. console_log

    console_log, [true/false]

    입력창의 로그를 “게임/sandbox/log_console.txt” 파일로 출력 시킬 수 있습니다.

  5. destroy

    destroy

    샌드박스 메뉴 버튼과 입력창을 없애고, 모든 기능이 중지됩니다. 게임을 다시 로드해야만 샌드박스 모드가 동작하게 됩니다.

즉시 명령

즉시 실행 명령은 입력창에서만 동작하는 명령입니다. ‘search’, ‘heroes’ 명령과 같이 동적으로 실행되어야 하는 명령어 들입니다.

  1. search

    search, 조운 search, 7

    search 명령은 장수를 찾는 명령이며, 중복된 이름이 있는 장수를 찾아서 보여줍니다. 3명일 경우 UI문제로 알림 밑 부분이 잘릴 수 있습니다. 장수 번호로도 search 할 수 있습니다.

    첩자, FA, 사망에 대한 정보와 장수 번호를 보여줍니다.

    서칭된 영웅의 정보는 파일 로그 기능이 꺼져있어도 로그 파일로 강제 출력됩니다.

  2. where

    where, 조조

    조조가 포함된 부대 또는 ‘조조 세력’의 수도을 찾아서 카메라를 이동 시키고, 그 지역의 안개를 없애 사용자에게 보여줍니다.

  3. show

    show, [지역/world/shroud]

    ‘show’ 명령은 현재의 ‘맵의 장막(안개)’ 상태를 저장하고 ‘지역’ 또는 ‘전체 맵’을 볼 수 있게 합니다.

    지역 명을 입력하면 그 지역으로 카메라를 옮기고, 지역의 장막(shroud)을 벗기고 사용자가 볼 수 있게합니다. 지역 명은 [더 결집 : 지역 명칭 및 한글 패치] 모드와 데이터가 동기화 되어 있습니다.
    ‘world’는 전체 맵을 다 볼 수 있게 합니다.

    각 지역의 코드는 구글 쉬트[docs.google.com]에 있습니다.

    ‘shroud’는 ‘show’ 명령 이전의 상태로 맵의 장막(안개)를 복원합니다.

  4. give_exp

    give_exp, hero, 0 ~ 1000000 give_exp, 조조, 50000

    지정한 영웅에게 경험치를 줍니다. 1000 경험치를 지정해서 준다해도, 현재의 세력의 기술 수준과 건물 효과 및 관직 등에서 오는 추가 효과로 정확히 1000 경험치가 되지않고, 여러 가지 효과가 적용된 증가된 경험치라 부여됩니다.

  5. find_item

    find_item, 절영 find_item, 3k_main_ancillary_weapon_bow_bao_gong_faction

    아이템이 현재 맵에 존재하여 팩션이거나 영웅이 보유하고 있는 지를 알아냅니다.

    멸망한 세력이 아이템을 보유하고 있는 현상이 있어 유니크 아이템 활용에 방해가 되고 있습니다. “find_item” 명령은 멸망한 세력의 아이템도 검색하고 발견되면 제거합니다.

  6. force_kill

    영웅의 조건 없이 ‘kill’ 합니다. 예외는 없고, 아군 팩션 리더라해도 즉시 ‘kill’ 시도합니다.

    force_kill, 53 force_kill, 동탁

    게임 화면에 ‘장수 세부 정보’ 패널이 열려 있거나, 대상 장수가 게임에서 ‘선택’ 되어 있다면 게임 튕김을 방지하기 위해 이 명령은 수행되지 않습니다.

  7. teleport

    군대를 이끌고 있는 사령관을 지정하여 대상 지역으로 순간 이동시킵니다. 각 지역의 코드는 구글 쉬트[docs.google.com]에 있습니다.

    샌드박스 1.9.60부터 [더 결집 : 지역 명칭 및 한글 패치] 모드와 지역 명칭 데이터가 동기화 되어 있습니다.

    teleport, Liu_Bei, luoyang teleport, 馬超, 洛陽

    순간 이동의 성사 여부는 CA 엔진이 ‘그 지역에 소환할만한 장소’를 찾아내느냐 못하느냐에 달려있습니다. 200여개의 지역을 직접 돌아다니며 ‘좌표’를 모드에 내포하는 ‘노가다’는 하지 않았습니다.

  8. raze

    raze, 낙양

    도시 또는 부속 지방의 건물(목재소,제작소 등)을 주인이 없는 공백 상태로 만듭니다.

    TK 1.6.1에서 관문에도 동작합니다.

    샌드박스 1.9.60부터 [더 결집 : 지역 명칭 및 한글 패치] 모드와 지역 명칭 데이터가 동기화 되어 있습니다.

  9. can_federate

    합병 가능한지 검사합니다.

    can_federate, 유표, 원술

    앞의 세력이 ‘합병할’ 세력이고, 뒤가 ‘합병 당할 세력’ 입니다.

    합병 가능한 지는 CA 엔진에서 전적으로 판단합니다.

  10. heroes

    heroes heroes, 한나라 heroes, dead heroes, pool

    한 세력 소속 장수를 모두 ‘로그 파일’로 출력합니다. 한나라는 메인 캠페인 초기 약 130여명 됩니다.
    주 사용처는 고급 유저의 각 세력 모니터링과 모드 개발 및 디버깅 용입니다.

    세력 영웅들의 정보는 파일 로그 기능이 꺼져있어도 로그 파일로 강제 출력됩니다.

    명령 인자가 없으면 자기 세력의 영웅 목록을 출력합니다. “pool” 옵션은 전체 장수들 중에 임관 대기 중인 “역사” 장수들의 목록을 출력하고, “dead”는 죽은 역사 장수 모두를 출력합니다.

    출력되는 장수들 중에 Un-registered 는 클론을 의미합니다. 주둔근 클론(Castellan)을 보려면 “clones” 명령을 사용하십시오.

  11. clones

    clones clones, 한나라 clones, 1 # 팩션 CQI

    옵션이 없을 때는 현재 게임 내에 존재하는 모든 캐릭터들의 숫자를 표시합니다. (역사 / 클론 / 가드 / 반군 )

    반군은 팩션 CQI 1번에 존재하는 가상 팩션으로 반란이 발생했을 때 투입대기 한다고 보시면 됩니다. 현재 반군 세력에 소교/대교 등 타 모드 스폰 장수가 가끔 들어간다는 리폿이 있습니다.

    반군 목록을 보시려면, “clones, 1” 명령으로 팩션 CQI를 지정해서 볼 수 있습니다. “clones, rebels”는 인식하지 않습니다.

    출력되는 영웅 목록 중 Castellan 은 각 정착지 주둔군(클론)을 의미합니다. Castellan은 샌드박스 명령의 대상이 될 수 없습니다. CQI를 사용할 수 있는 명령이 몇 개 있지만, 튕김을 유발할 수 있습니다.

  12. db 명령어들

    db.name, 마난려, 화난려 db.class, 관은병, earth db.info, 관은병

    db.info 명령은 현재 샌드박스에 등록된 장수 정보를 확인할 수 있습니다.

    위 명령들에 대해서는 하단의 “사용자 텍스트 : db 장수 데이터” 부분을 참고하십시오.

  13. notify.show

    최근에 발생한 알림들을 모두 보여줍니다. 1,800 글자 제한이 있습니다.

    notify.show

  14. notify.duration

    어드바이스 알림 패널의 지속 시간을 지정합니다.

    notify.duration, 5

    지속 시간 범위는 2~20초 입니다.

  15. locale

    현재 샌드박스가 사용하고 있는 언어 설정을 바꾸거나 보여 줍니다.

    locale locale, kr/en/zh/cn

  16. turn

    현재 턴 숫자를 보여줍니다.

  17. out_log

    로그 파일(게임/sandbox/log_sandbox.txt)로 로그를 출력하거나, 출력을 중단합니다.

    out_log, true/false

  18. log_level

    출력하는 로그 정보의 양을 지정합니다. 0~5(Error ~ Verbose) 레벨. 기본은 3(Debug)입니다.

  19. out_text

    sandbox_user_script, sandbox_user_db 두 개의 텍스트 파일을 “게임/sandbox” 디렉토리에 생성합니다.

    out_text out_text, kr/en

    로케일 ‘kr’과 ‘en’을 지정할 경우 화일 이름에 ‘_kr’ 또는 ‘_en’ 을 붙여서 출력합니다.

    이 모드는 sandbox_user_script, sandbox_user_db 두 개의 파일만을 읽어드립니다. 두 개의 파일이 없을 경우 기본 설정으로 작동됩니다. 텍스트 파일들을 모두 지워도 모드 작동에는 아무 이상이 없습니다.

    출력할 텍스트 파일이 이미 있는 경우 덮어쓰지 않습니다.

  20. reload

    reload

    사용자 script 와 db 텍스트 파일을 새로 읽어 드립니다. 신무장이나 새로운 일러스트 모드를 테스트 한다면 change 명령과 함께 자주 사용되는 명령입니다. 새게임이나 세이브 로딩없이 설정을 새로 읽어드리고 바로 확인할 수 있습니다. 타 모드 개발자용 명령입니다.

  21. reindex

    reindex

    샌드박스에 등록된 장수들의 장수 번호 및 사망 상태를 새로 갱신합니다. 디버깅 명령입니다.

  22. destroy

    destroy

    메뉴 버튼, 입력창 UI를 없애고, 이 모드의 모든 외부 접점을 닿습니다. 새로운 게임/세이브 로딩을 하기 전까지 동작시킬 수 있는 방법은 없습니다.

즉시 명령 : 제국 명령

관도 DLC 와 함께 “협천자”, “모략” 및 “승계” 등의 새로운 기능들이 도입 되었습니다. 이 섹션은 그와 관련된 명령들에 대한 설명입니다.

  1. imperial

    • imperial.token

      imperial.token, faction

      imperial.token, 유비 # 유비를 황제의 보정대신(협천자)로 임명

      황제의 협력자 및 보정대신(輔政大臣)으로 세력의 리더를 설정합니다.

    • imperial.favour

      imperial.favour, player/faction, amount(-100~100)

      imperial.favour, 유비 # 유비 세력 황실 호의 알림 imperial.favour, player, 30 # 플레이어 세력 제국 호의 +30 imperial.favour, 조조, -20 # 조조 세력 제국 호의 -20

      천자, 제국의 호의를 지정 세력에 추가하거나 감소시킵니다.

행동 명령

샌드박스에서 행동 명령은 사용자 script 텍스트과 입력창 양쪽에서 실행되는 명령을 말합니다. 턴을 지정해서 실행할 수 있는 명령들이며, 입력창에서 수시로 실행할 수도 있습니다.

행동 명령 중에 summon과 kill 명령은 세력에서 특별한 지위의 장수와 게임 맵에 부대를 가지고 나와있는 장수에게 즉시 사용하는 것은 위험합니다. 장수가 턴 중간에 사라지면, 지연된 전투, 관직 관계 등의 많은 부분에서 CA 엔진의 많은 부분이 꼬일 수도 있기 때문입니다.

팩션 리더의 경우 CA 엔진에서 막을 수도 있습니다. 항상 막히는 건 아니고, 특정 턴에만 막히는 경우도 있어 그때 그때 다릅니다.

따라서, 그러한 영웅들에게 소환 및 사살 명령은 다음 차례에 예정되어 실행되긴 합니다만 항상 성공하는 것은 아닙니다. ‘summon’과 ‘kill’ 하기 전에 search 명령으로 소환 대상을 확인하시기 바랍니다.

  1. kill

    장수 중에 팩션 리더의 경우와 맵에 군대를 이끌고 있는 ‘사령관’의 경우 특별하여, 플레이어 턴이 끝난 후에 킬 명령이 처리됩니다. 그 외의 장수들은 즉시 킬됩니다.

    입력 창에선

    kill, 장수 kill, 장수, 장수 번호 kill, 장수 번호

    장수 번호는 search 명령으로 장수를 찾았을 때 장수 번호를 알 수 있습니다. 장수 번호를 사용하는 경우는 같은 데이터를 가진 ‘도풀갱어’가 있을 때, 확실한 대상을 kill 하기 위해 사용합니다.

    사용자 스크립트 택스트 파일에선

    TheG.action.kill, 장수, 장수 번호, 턴

    팩션 리더나 사령관은 사용자 턴 안에 실행하기 위험해서, 각 팩션의 진행 턴 속에서 실행됩니다. 강제로 즉시 kill 하려면 ‘force_kill’ 명령을 사용하십시오.

    TheG.action.kill, 장수,, 턴 kill, 53

    사용자 스크립트에서 장수 번호를 모르고 이름만으로 킬할 때에는 “,,” 과 같이 옵션을 주지 않습니다. 다른 명령들과 같이 장수 번호만으로도 대상을 지정할 수 있습니다.

  2. reform

    reform, player/faction/all/others, 0~5 reform, player, 3 # 플레이어 세력을 매 3턴 마다 완료한다 reform, player, 0 # 플레이어 세력의 진행 중인 개혁을 즉시 완료한다 reform, all, 3 # 모든 한나라 문화권 세력의 개혁을 3턴 주기로 한다 TheG.action.reform, cao_cao, 3 # 턴 지정없는 스크립트 명령. 첫 턴 명령

    ‘reform’ 명령은 ‘한나라’ 문화권 세력에게만 적용되는 명령으로, 도적, 황권과 남만에는 적용되지 않는다. 한 번 지정하면 설정이 저장되어 세이브를 로드 했을 때도 유지됩니다. 각 세력의 매턴 시작 시에 개혁턴을 설정하므로 개혁이 완료되었을 때 “5턴”으로 표시가 되더라도 다음 턴에는 정상적으로 설정됩니다.

    “0 턴”을 지정하면 현재 진행 중인 개혁이 즉시 완료되고, 새로운 개혁을 시작할 수 있습니다.

  3. capital

    capital, 유비 # 수도 지방 알림 capital, 유비, 동해 # 수도 지방 변경 TheG.action.capital, 한나라, 장안, 1 # 0턴 수도 이전

    대상 팩션의 수도를 지정한 지방으로 이동 시킵니다. 한 팩션의 수도를 이전 시킨 후에 그 팩션에 대해선 10턴 동안 다시 수도를 이전할 수 없습니다.

  4. federate

    AI 팩션들을 대상으로 세력들을 흡수 통합 시킵니다. 플레이어는 이 명령의 대상이 될 수 없습니다. 플레이어 팩션에 대한 흡수 통합은 외부 트레이너의 ‘외교 무조건 성공’ 옵션을 활용하십시오.

    can_federate, 유비, 공융 federate, 유비, 공융 TheG.action.federete, 원술, 유표, 1 # 0턴 합병 TheG.action.federete, 원술, 유표, 2 # 2턴 합병

    ‘A’ 팩션이 ‘B’ 팩션을 흡수 통합합니다. 대상 팩션의 리더를 포함한 모든 영웅들이 흡수 되지만, 몇몇 장수는 FA로 풀리거나, 죽거나(원인 세력 멸망)합니다. 죽은 장수 중 유명 장수의 경우 다시 스폰하려고 시도는 하지만 모두 성공하지는 않습니다.

  5. treasury

    treasury, 세력/all/others/player, -1,000,000 ~ 1,000,000 treasury, 조조, 3000 treasury, player, -3000

    대상 팩션에 자금을 지원하는 명령입니다. all/others 옵션을 사용해서 ‘전체’ 또는 AI 세력들에 자금을 지원하거나 감축 시킬 수 있습니다.

  6. reset_skills

    reset_skills, 조운

    대상 장수의 스킬을 초기화 합니다.

  7. rank_up

    rank_up, 조운, 4

    대상 장수의 경험치를 4레벨 근처까지 올려줍니다. 레벨에 필요한 경험치는 장수의 형태, 전설 트레잇 유무, 장수의 경력(킬 숫자,일기토 승리 등)에도 상관이 있어 스크립트에서 정확한 수치를 알 수 없어 대략적인 경험치를 추가해줍니다.

    보다 정확한 레벨업을 위해서는 ‘give_exp’ 명령을 사용하십시오.

  8. set_title

    장수에게 ‘고유 칭호’를 부여하고나, 다른 칭호로 교체합니다.

    set_title, emperor_ling, emperor_ling_great set_title, 유굉, 대한명군 set_title, 유협, 동궁 set_title, 하후돈, 애꾸눈의 망명자

    위의 3가지 예시된 칭호는 ‘복수 칭호’ 입니다. 하후돈의 경우 ‘혈기넘치는 군관’과 ‘애꾸눈의 망명자’ 2개의 고유 칭호를 가지고 있습니다.

    남만 DLC의 유니크들은 3개의 칭호를 가지고 있고, 각각 1, 4, 7 레벨에 활성화됩니다.

    샌드박스 1.9.60부터 [더 결집 : 지역 명칭 및 한글 패치] 모드와 데이터가 동기화 되어 있습니다. 현재 패치된 칭호 이름은 한글 패치 모드의 스팀 가이드나 샌드박스 구글 쉬트에서 확인할 수 있습니다.

    명령에 칭호는 이름으로 입력할 수도 있고, 키값으로 입력할 수도 있습니다. 구글 쉬트를 참고하십시오.

    set_title, 조조, 손견

    ‘set_title’명령의 칭호의 대상은 다른 장수일 수도 있습니다. 위 명령은 조조에게 손견의 ‘강동의 호랑이’ 칭호를 부여합니다.

    set_undercover, 조운, (true/false)

    장수가 첩자로 파견 될 수 있게하거나, 없게 합니다.

  9. add_position
    add_position, [세력/player], 직위 add_position, 조조, 황룡 TheG.action.add_position, [세력/player], 직위, 턴

    직위는 “황룡”, “정북장군”과 같이 세력에서 영웅에게 부여할 수 있는 “직위 타이틀”입니다. 이 직위들은 게임 내에서 특정 조건(100번승리)등을 만족하면 해금되는 방식입니다.

    ‘add_position’ 명령은 지정한 직위를 해제시킵니다.

    현재(TK 1.6.1)에서는 “철혈장군(Iron General)”은 해제되지 않습니다. CA 엔지 쪽 문제로 보입니다.

    지역 명칭, 호칭과 마찬가지로 “더 결집 : 지역 맵 명칭 및 한글 패치” 모드와 동기화되어 있습니다. 더 결집 한글 패치 모드를 사용할 때 보이는 “직위 이름”을 입력해야 정상 동작합니다

  10. post.leader

    post.leader, 세력, 영웅 post.leader, 유비, 장비

    지정한 세력의 리더를 교체합니다.

  11. post.heir

    post.heir, 세력, 영웅 post.heir, 유비, 장비

    지정한 세력의 후계자를 교체합니다.

  12. child_of

    child_of, 영웅, 부모 child_of, 장포, 장비

    영웅의 부모를 설정합니다. 이 때 자식 영웅이 이미 부모를 가지고 있다면, 그 관계는 계속 유지됩니다. 현재로서는 새로운 부모를 설정할 수는 있지만, 기존 부모 관계를 지울 수는 없습니다.

    양자의 개념이 삼탈워에 있으니, 양자로 생각하시면 될 것 같습니다.

행동 명령 : Summon

소환 명령은 맵 상의 영웅을 다른 세력으로 옮기기도 하고, 맵 상에 존재하지 않는 영웅을 생성하기도 합니다. 소환되는 영웅의 목적지는 아군, 또는 다른 AI 세력을 지정할 수 있습니다.

삼탈워 패치 버전에 따라 같은 API에 대해 CA 엔진이 여러 행태를 보여줬습니다. 그 변화에 따라 샌드박스는 여러가지 우여곡절을 격기도 했습니다. 심지어 모딩을 포기할 생각을 할 정도로 CA의 잠수 패치로 소환 관련 API의 행태가 들쭉날쭉 개념없이 진행되기도 했습니다. 게임 출시 후 반년 가까이 지난 2019년 10월경에야 안정화?가 아닌 일관성을 가지기 시작했습니다.

버전 1.4.0부터 현재까지 모든 장수는 ‘summon’ 명령 즉시 소환됩니다.

소환 명령의 용법은 다음과 같습니다.

summon, 장수, 팩션, 스킬 랭크 summon, 장수, 팩션 # 현재 스킬 랭크 또는 1~3 랭크 랜덤 summon, 장수 # 기본 플레이어 세력

스킬 랭크(레벨)은 생략될 수 있습니다. 생략되면 CA 데이터베이스에 설정된 기본 랜덤 레벨(보통 1~3) 범위에서 스킬 랭크가 설정됩니다. 제갈량, 사마의 같은 경우 7정도로 바닐라 데이터베이스에 설정되어 있습니다.

옵션의 팩션은 생략될 수 있습니다. 생략되면 ‘아군’으로 자동 지정됩니다.

소환 명령은 대상 영웅의 현재 상태에 따라 여러가지 행동 양태를 보이게 됩니다.

  • 이미 맵 상에 존재하는 영웅

    이미 맵 상에 존재하는 영웅의 경우는 현재 상태 그대로 다른 세력으로 이동시키고 임관 시킵니다.

  • 이미 존재하지만 임관 대기 중인 장수

    이 장수들은 대상 팩션으로 이동 시키고 “임관” 시킵니다.

  • 이미 존재하지만 팩션 리더인 경우

    팩션 리더의 경우 삼탈워 엔진에서 ‘막기도하고 안막기도 하고’ 그때 그때마다 다릅니다. 삼탈워 엔진에서 팩션 리더 이적에 대해 어떤 판단을 내리는 지에 대한 기준은 모르고, 각 패치 때 마다 다르게 반응합니다.

    무리한 팩션 리더의 이적은 미리 설계된 삼탈워 캠페인 방향에 혼란을 줄 수도 있어 사용자 스스로 판단해야하고, 어느 턴에 정상적으로 소환되는 지를 알려면 사용자 스스로의 실험 정신이 필요합니다.

    1.4.1 에서는 리더가 속한 해당 팩션의 턴이 되었을 때에 소환되는 행태를 보입니다.
    1.6.0 에서는 리더가 즉시 다른 팩션으로 이동합니다.

  • 맵 상에 존재하지 않는 경우

    영웅을 새로 생성합니다.

    영웅을 새로 생성할 때에는 ‘나이’가 문제가 됩니다. 오픈되어있는 CA API 중에 영웅의 ‘나이’를 수정할 수 있는 기능은 없습니다. 따라서, 현재 CA 데이터베이스에 정의되어있는 나이 범위로 소환되게 됩니다.

    제갈량 얼굴을 한번 보자고 소환하는 데, 0세로 소환되버리면 좀 이상하기 때문에… 샌드박스는 ‘네임드 영웅’ 들에 대해 ‘나이 테이블’을 수정해 데이터를 준비해놨습니다. 이 테이블은 게임의 현재 년도에 상관없이 ‘이름있는 영웅’의 나이가 18세로 소환되도록 변형시킨 것입니다.

    ‘네임드 영웅’ 리스트 [docs.google.com]

    <샌드박스 스폰 나이 팩>[drive.google.com]

    스폰 나이 팩은 ($game)/data 폴더에 넣어놓으면 됩니다.

    스폰 나이 팩을 사용하면 ‘네임드 영웅’들은 성인인 18세로 합류하게 됩니다. 그 외의 영웅은 CA 데이터베이스에 정의되어 있는 나이로 소환되게 됩니다. CA 데이터베이스의 ‘나이 테이블’ 정의는 사용자 스스로 각 게시판이나 포럼을 통해 노하우를 습득하셔야 할 것입니다.

    다른 모드의 ‘나이 테이블’이 $(게임)/data 폴더에 ‘movie’형태로 있거나, 모드 메니저의 순서에서 ‘윗 쪽’에 위치하고 있다면, 그 ‘나이 테이블’의 정의에 따라 영웅이 소환되게 됩니다.

  • 신무장인 경우

    신무장인 경우 사용자 db 텍스트 파일에 장수를 추가해주고, 보통 지정 일러 모드가 사용됩니다. 사용자 db 텍스트에 대한 설명은 하단에 있습니다.

    특히, MTU나 Wu 모도를 상용하시는 분은 해당 모드에 대한 이 가이드의 ‘색션’을 보시기 바랍니다.

  • 미성년이 이미 맵상에 존재할 경우

    이미 존재하며 미성년인 경우는 마초,손인,조창,조비,조앙 정도로 알고 있습니다. 기타 신무장을 startpos 속에 넣어놓은 모드(MTU, Wu 등)의 미성년 영웅도 포함됩니다.

    이 영웅들은 현재 나이 그대로 다른 팩션으로 이동됩니다. 성인으로 소환하고 싶다면, kill 한 후에 소환하시면 됩니다. 그 영웅의 원 소속 팩션의 가계도에는 그 장수의 ‘비석’을 보게 됩니다. 미성년을 죽이고 소환하는 것은 사용자의 판단에 따릅니다.

    미성년 영웅을 죽이고 18세로 소환하고 싶다면 위에 설명한 “샌드박스 스폰 나이 팩”을 설치하십시오.

summon.dlc 명령

  • 메인에서 팔왕자 DLC 장수 소환

    팔왕자 DLC를 보유하고 설치했을 경우 사용할 수 있는 명령입니다.

    메인에서 팔왕자 장수를, 팔왕 DLC에서 메인 장수 소환할 수 있습니다. 이 경우 캠페인 맵에는 소환하려는 장수가 없다는 전제 하에 ‘즉시 소환’ 합니다. 메인에서 한 턴에 8명의 유니크 팔왕자를 소환하고, 바로 부대 편성해서 전투를 진행할 수도 있습니다.

    summon.ep, 사마량, player, 4
  • 팔왕자에서 메인+황건적 장수 소환

    summon.main, 손인, player, 4

    팔왕자 DLC에서 메인+황건적 장수 소환은 즉시 명령이며 팩션 리더, 미성년에 대한 아무런 제약없이 실행됩니다.

    고유 갑옷을 제외한 다른 고유 아이템(의천검,풍뢰궁 등)은 없는 상태로 합류합니다. 그러나, 패치에 따라 유니크 무기가 다른 장수에 가기도 하고, 경우에 따라서는 고유 무기를 벗겨낼 수 없습니다. CA 엔진의 내부 오류로 보입니다.

    정강의 경우 다른 장수들에게는 설정되어있는 ‘기본 무기’가 설정되어 있지 않고, 팔왕으로 소환되었을 때 무기가 없거나 다른 무기를 착용할 수 없는 상태가 되기도 합니다.

  • 천명에서 메인.메인에서 천명 소환

    팔왕자와 용법이 같습니다. 명령은 summon.moh 를 사용합니다.

    summon.moh, 노식, player, 4 summon.moh, 하진

    summon.main, 손인, player, 4 summon.main, 정강

행동 명령 : Traits

삼탈워에는 트레잇이 성격과 체질 두 가지 트레잇이 있지만 실제로는 병.질환과 병.질환이 아닌 트레잇 2가지로 작동됩니다.

병.질환이 아닌 트레잇 7개가 보유할 수 있는 특성 최대치이고, 병.질환은 1개만 보유할 수 있습니다. 이 가이드에선 성격.체질과 병.질환 두 가지로 분류합니다.

  1. 성격.체질 트래잇 추가/제거 하기

    텍스트 파일에서는

    TheG.action.trait, 장수, (add|remove), 트래잇 키, 턴 TheG.action.trait, 장수, add, 야심참, 1 TheG.action.trait, 장수, remove, 야심참, 1

    add 는 추가하고 remove 는 지정한 트레잇을 제거합니다. 트래잇 키의 한글 이름에 띄어쓰기는 중요하지 않습니다.

    1.3.5버전 부터 ‘장수 이름’ 대신 ‘장수 번호’를 사용할 수 있게 되었습니다. 장수 번호는 ‘search’ 명령으로 볼 수 있습니다.

    입력창에서는

    trait, 장수, (add|remove), 트래잇 키 trait, 장수, add, 야심참 trait, 장수, remove, all

    입력창은 좀 더 단순하며, remove 인자에 all 옵션을 넣으면 장수가 보유한 모든 트레잇을 제거하려고 할 것입니다.

  2. 병.질환.불구 트래잇

    질병.불고.병 트레잇도 직접 추가하거나 제거할 수 있습니다. 이 트레잇들은 1개만 보유할 수 있습니다. 그 종류는

    흉터를 가짐, 육체적으로 아픔, 매독, 병약함, 불구, 애꾸눈, 절름발이, 절름발이

    6가지 입니다. ‘절름발이’가 한글 이름이 중복되어 maimed_leg를 고치려는 데 sprained_ankle과 혼동되어 지워지지 않는 경우가 있는데, 이럴 경우 ‘영문’ 트레잇 키를 사용하는 것이 좋습니다. 이 가이드 나중에 설명할 db 텍스트에 문서화 되어있습니다.

  3. 트레잇 세트 명령 1.4.3

    • 버전 1.4.3에 한번에 복수의 트레잇을 장수에게 부여할 수 있는 새로운 ‘trait_set’ 명령이 추가 되었습니다. 우선 사용자 db 텍스트에 다음과 같이 정의해야 합니다.
      TheG.db.trait.set.매력 덩어리, 사람을 휘어잡는 매력, 아름다움, 우아함, 자애로움
    • 트레잇 세트에 트레잇 갯수 제한은 없으나, 바닐라 상태에서는 한 영웅에 7개 이상의 트레잇 설정은 안됩니다.
    • 명령 ‘trait_set’ 실행은 사용자 script 텍스트와 입력창에서 할 수 있습니다.
      TheG.action.trait_set, sun_ren, 매력 덩어리, 1 trait_set, sun_ren, 매력 덩어리 — 입력창에서

  4. 자동 트래잇

    아군 세력으로 이적한 영웅, 성년이 되어 임관한 경우, 소환한 영웅들에게 자동으로 지정된 트래잇 세트를 부여합니다. 사용자 db 텍스트 파일에 다음과 같이 정의 합니다.

    TheG.db.trait.set.매력 덩어리, 사람을 휘어잡는 매력, 아름다움, 우아함, 친절함 TheG.db.trait.default.손인, 매력 덩어리, 뛰어남

    TheG.db.trait.default 설정에 따라 손인이 새로 아군에 헙류할 때에, 지정된 ‘매력 덩이리’ 트래잇 세트와 ‘뛰어남’ 트래잇을 부여하는 샘플입니다.

  5. 이름 중복된 트래잇 처리

    한글 명칭이 중복된 트레잇들이 있습니다. 영문에도 1개 중문에서 2개가 있고, 이름이 같아서 입력이 안되는 경우가 발생하는 데, 그 트래잇들은 다른 명칭으로 입력할 수 있도록 했습니다.

    트래잇 중복된 한글이름을 아래 처럼 처리합니다. 왼쪽이 변경된 트래잇 한글 이름입니다. 참고로 더결집 : 맵 명칭 및 한글 패치 모드로 UI 표시도 바꿀 수 있습니다.

    [겸허함] modest – humble 겸손함 [믿고보는] trusting – trustworthy 믿음직함 [경솔함] careless – unobservant 부주의함 [명료함] heaven_bright – clever 영리함 [자애로움] benevolent – graceful 우아함 [절뚝거림] sprained_ankle – maimed_leg 절름발이 [온화함] gentle_hearted – kind 친절함 [쾌활함] people_cheerful – energetic 활기참

행동 명령 : Items

  • find_item

    find_item, 3k_main_ancillary_weapon_one_handed_axe_exceptional find_item, 절영

    아이템 소유 팩션, 장수를 찾습니다. 키값을 아이템 데이터 키를 사용할 수도 있고, 사용자 db 텍스트에 설정한 별칭으로 찾을 수도 있습니다. 별칭 부분은 하단 사용자 db 텍스트에 설명되어 있습니다.

  • give_item

    give_item, 3k_main_ancillary_weapon_one_handed_axe_exceptional, player,1 give_item, 절영 give_item, 절영, 조조

    세력을 지정하지 않으면 기본 ‘아군’ 입니다. 수량은 기본 ‘1’개 입니다.

    아이템을 대상 팩션에 수여합니다. 유니크 아이템은 바닐라의 경우 ‘1’ 이상은 의미없습니다만, 유니크 갯수 제한 헤제 모드를 사용하면 가능할 지도 모르겠습니다.

    고급 아이템도 각각 갯수 제한이 있는 걸로 알고 있습니다.

  • give_set

    give_set, 하늘의 분노, 조조 give_set, 하늘의 분노

    사용자 db 텍스트에 정의해 놓은 아이템 세트를 수여합니다. 정의된 아이템 1개씩을 수여하고, 세트에 속한 각각의 아이템은 갯수 제한에 걸려 수여에 실패할 수도 있습니다.

  • all_item

    새로운 ‘all_item’ 명령이 추가 되었습니다. 1.4.2

    TheG.action.all_item, main.legendary TheG.action.all_item, main.unique all_item, main.exceptional.follower — 입력창

    위와 같은 방식으로 아이템 분류에 따른 전체 아이템을 가져올 수 있습니다.

    아이템 등급은 아래와 같습니다.

    • unique
    • legendary
    • exceptional
    • refined
    • common

    아이템 형태는 다음 같습니다.

    • armour
    • accessory
    • follower
    • mount
    • weapon

    사용자 script 파일의 all_item 명령은 미리 분류되어 있는 아이템들을 1턴에 플레이어에게 줍니다.

    #TheG.action.all_item, main # 263 #TheG.action.all_item, main.legendary #TheG.action.all_item, main.unique #TheG.action.all_item, main.exceptional.follower #TheG.action.all_item, main.refined.accessory #TheG.action.all_item, ytr # 34 #TheG.action.all_item, ep # 26 #TheG.action.all_item, moh # 24 – dlc04 #TheG.action.all_item, all # 374

    all_item 명령은 사용자 db 텍스트에 미리 분류되어 있는 아이템들을 1턴에 플레이어에게 줍니다. 아이템 분류를 3 단계로 지정할 수 있습니다.

  • remove_item

    remove_item, 3k_main_ancillary_mount_shadow_runner, cao_cao remove_item, shadow_runner remove_item, 3k_main_ancillary_accessory_erya, player, 2 remove_item, 유비, 3k_main_ancillary_accessory_erya

    옵션으로 개수를 지정하지 않으면 해당 아이템 모두를 없애버립니다.

  • steal

    steal, 조조, 3k_main_ancillary_mount_shadow_runner steal, 조조, 절영

    steal 명령을 사용하기 전에 우선 ‘find_item’으로 어느 세력/장수가 소유하고 있는 지 파악하는 게 중요합니다. 팩션이름과 장수 이름이 같은 경우, ‘조조’ 라고 명령하면 우선 조조 팩션을 검색하고, 조조 장수를 검색해서 강탈합니다.

    고유 갑옷은 강탈이 안됩니다. 또, 패치에 따라 특정 아이템(예:방천화극)은 강탈이 안되는 경우도 있습니다.

행동 명령 : 세력 봉기 (emergent)

  • Emergent 명령어
      세력 봉기란 하나 이상의 ‘정착지’에 특정 장수를 세력 지도자로 지정하고, 지정된 구성원들을 세력에 소환한 후, 1개의 군대를 맵에 등장시키는 것을 말합니다.1턴에 많은 장수(특히 고유 모델과 일러가 있는 유니크)들을 소환/생성할 경우 캠페인 로딩 후 첫 턴 시작까지 랙이 생길 수 있습니다.

      emergent, 하비, 여포, 초선 emergent, 하비, 설현, 여포, 초선, 장료, 고순, 여희
    • 정착지

      정착지는 최소 한 곳을 지정해야만 합니다. 최대 숫자는 정해져 있지 않습니다.

      명령 줄에 처음 시작은 정착지로 시작되며, 정착지를 계속 추가시키면서 여러 정착지를 세력의 점령지로 만들 수 있습니다.

      첫 번째 정착지는 특별한 의미를 가집니다. 첫 번째 지정한 정착지가 속한 ‘군’이름이 그 세력의 실제 세력명이 됩니다. 즉, <남군, 강릉> 정착지를 처음으로 지정했다면, 그 세력의 실제 세력명은 “남군”이 됩니다.

      정착지 중 첫번째 정착지가 세력의 수도가 됩니다. 위 예시에선 ‘하비’가 세력 수도로 지정됩니다.

    • 세력 지도자

      명령 줄에 settlement 지정이 끝나고, 첫번째 등장하는 영웅이 세력의 지도자가 됩니다. 위 예시의 경우 ‘여포’가 세력의 지도자가 되고 화면상에 ‘여포’ 세력으로 보이게 됩니다.

      게임 화면에 보이는 세력명이 ‘여포’로 보인다해도, 실제 세력명은 첫 정찾기의 ‘군’ 이름입니다. ‘search, 여포’ 명령을 사용하면 ‘하비군 소속입니다’라는 메시지를 볼 수 있습니다.

      남만, 도적 및 황건적 장수를 세력 지도자로 설정하는 것은 충분히 테스팅이 안되어 있습니다. 가급적 한나라 문화권 장수를 사용하십시오.

    • 세력 명칭

      각 캠페인마다 사용할 수 있는 세력이 “스타트 포스 맵”에 정해져 있습니다. 예를 들어 “여포” 세력은 “관도” 캠페인에서는 사용할 수가 없는 데, 스타트 포스 맵을 수정하면 “여포” 세력을 관도 캠페인에서 사용할 수 있습니다.

      스타트 포스 맵을 수정하면 기존 대형모드들과는 호환되지 않게되므로 샌드박스 모드에서는 할 수 없는 일입니다.

      만일 세력 지도자의 원래 세력명을 사용할 수 있는 맵이면, ’emergent’ 명령으로 생성되는 세력의 실제 세력명은 지도자의 원래 세력명을 사용하게 됩니다. 만일 세력 지도자의 원래 세력을 사용할 수 없는 맵에서는 첫 정착지가 속한 ‘군’ 이름이 됩니다.

      그러므로, “emergent, 하비, 여포” 명령을 “관도” 캠페인에서 사용하면, 여포가 속한 세력명은 “하비군”이 되며, ‘여포 세력’을 사용할 수 있는 “천명”, “군웅” 및 “배천” 캠페인에서는 “여포”이 실제 세력명이 됩니다.

      이 부분은 좀 혼동될 수 있으니 명령을 사용한 후에는 “search, 여포” 명령으로 실제 세력명을 확인하기 바랍니다.

      “천명” 캠페인에서는 “손책”, “장수”, “사섭” 등…
      “군웅” 캠페인에서는 “손책”, “노식”, “장수” 등…
      “배천” 캠페인에서는 “노식”, “도겸”, “손견” 등…
      “관도” 캠페인에서는 “공융”, “원술”, “여포” 등의 세력을 사용할 수 없습니다.

      스타트포스 맵을 지닌 모드에서 수정을 해준다면 자동으로 위 세력을 감지하고 활용합니다.

      세력 지도자의 원래 세력과 “지방군” 형태의 세력은 성향과 확장력 등에 차이가 큽니다. 세력 지도자의 성향을 신생 세력이 발휘하기 위해선 해당 세력을 사용할 수 있는 캠페인에서 생성하는 것이 좋습니다.

    • 세력 구성원

      세력 구성원은 현재 맵에 없으면 스폰되고, 맵에 생성되어 있는 장수는 이적하게 됩니다. 세력 구성원의 숫자에는 제한이 없습니다.

    • 부대 구성

      현재는 1개의 부대를 구성해서 세력의 수도 주변에 배치합니다. 부대는 세력 지도자와 세력 장수들의 가장 앞에 있는 2명으로 구성됩니다. 위 예시에선 “여포”, “초선”, “장료”로 한 부대가 구성되겠습니다.

    • 주의 사항
      • ‘팔왕자의 난’에서는 어떻게 동작할 지 잘 모릅니다. 실험정신이 있으신 분만 팔왕에서 사용해보십시오.
      • 황건적, 도적, 남만 세력을 만드는 방법은 현재는 없습니다.
  • 사용자 스크립트에서의 Emergent 명령어

    사용자 스크립트에 지정된 emergent 명령은 자동 1턴 명령이므로 턴을 지정하는 옵션이 없습니다.

    • 사용자 스크립트
      TheG.action.emergent, 하비, 설현, 여포, 초선, 장료, 고순, 여희

      스크립트에서의 명령 사용법은 콘솔에서의 사용법과 같습니다

    • 세력 생성 후 명령
      TheG.action.emergent, 하비, 설현, 여포, 초선, 장료, 고순, 여희 TheG.action.rank_up, 여희, 4, 1 TheG.action.treasury, 하비군, 10000, 1

      세력 봉기 명령(emergent) 명령 후에 생성된 세력에 대한 명령을 사용할 수 있게 됩니다. 구성원도 맵에 생성되어 있는 상태이므로 명령의 대상이 될 수 있습니다.

  • 캠페인 별 emergent 세력 구성

    샌드박스는 캠페인 별 사용자 스크립트를 분리할 수 있습니다.

    메인
    sandbox_user_script.txt
    군웅할거
    sandbox_user_script_tke.txt
    천명
    sandbox_user_script_moh.txt
    갈라진 운명
    sandbox_user_script_fd.txt

    메인인 sandbox_user_script.txt를 먼저 읽어서 처리하고, 캠페인에 해당하는 sandbox_user_script_[캠페인 약자].txt를 읽어 처리합니다.

    The [campaign abbreviation]s are ‘moh’, ‘tke’, ‘wb’ and ‘fd’.

    천명 캠페인에서는 아래와 같이 명령을 구성할 수 있습니다.

    #sandbox_user_script_moh.txt TheG.action.emergent, 하비, 설현, 여포, 장료, 고순, 학맹, 초선 TheG.action.treasury, 여포, 10000, 1

    갈라진 운명 캠페인에서는 아래와 같이 명령을 구성할 수 있습니다.

    #sandbox_user_script_fd.txt TheG.action.emergent, 하비, 설현, 여포, 초선, 장료, 고순, 여희 TheG.action.treasury, 하비군, 10000, 1

행동 명령 : 효과 명령 (ef_xxxx)

TW:TK 1.6.0에서 CA는 세력 효과 API를 강화했는데, 남만 특성을 팩션별로 나누고 강화 시키기 위한 작업이었을 겁니다. 그 API를 활용해서 세력에 효과를 주는 명령들을 샌드박스에 도입했습니다.

Effect bundle(효과 모음) API는 세력, 영웅, 군대, 지역 거주지에 각각의 특성을 줄 수 있습니다. 샌드박스는 주로 세력 효과 명령을 사용하고, 특정 영웅에 대한 명령은 소수에 그칠 것입니다.

효과 명령들

전체 세력 효과 명령들 : ef_resilience, player, 1 # 0, 1 = +생명력 ef_exp_bonus, others, 25 # 0, 25/50/100/200/300/400/500% ef_satisfaction, player, 10 # 0, 10/20/30/40 + 만족도 ef_job_satisfaction, player, 2 # 0, 1/2 # 1 = 감소, 2 = 무시 ef_recruit_rank, all, 2 # 0, 1~5 랭크 ef_armies, player, 3 # 0, 1~10 부대 ef_governors, 조조, 3 # 0, 1~10 명 ef_assignments, others, 3 # 0, 1~10 명 ef_deploy_cost, player, 30 # 0, 10/20/30/40/50% ef_retinue_upkeep, 조조, 30 # 0, 10/20/30/40/50% ef_force_movement, others, 30 # 0, 10/20/30/40/50% ef_salary, others, 100 # 0, 10~100% 특정 세력 효과 명령 : ef_research_rate, player, 100 # 0, 100/200/300/400/500% 영웅 개인 효과 명령 : ef_presented, 영웅 # 영웅에게 10턴동안 만족도 +40 선물 효과

구성과 동일한 효과 명령을 사용하려면 아래와 같이 사용자 스크립트에 입력하십시오. 게임에 들어가기 전에 실행됩니다.

TheG.action.ef_force_movement, player, 30, 1

세력 효과 명령
    세력 효과 명령은 효과 모음(effect bundle)을 세력에게 주는 것인데, 효과의 대상은 그 세력에 속한 영웅, 지역, 군대 등이 되겠습니다.세력효과 명령의 대상은 팩션으로 ( 세력 / player/ all / others ) 입니다. “player”는 현재 게임 내의 플레이 중인 팩션이며, all은 맵 상의 모든 세력, others는 플레어이 팩션을 제외한 나머지 모든 팩션을 뜻합니다.

    • 게임 좌측 상단

      게임 화면 왼쪽 상단에있는 일부 진영 효과 번들도 아이콘으로 표시되며 진영 요약 패널의 오른쪽에서도 확인할 수 있습니다. 현재는 UI 공간으로 인해 (움직임, 조사 율, 만족도, 직무 만족도) 만 표시됩니다. 기타 효과 번들들은 게임 화면의 다양한 UI에서 확인할 수 있습니다.

    • 세력 정보 패널 우측
  • ef_resilience
    ef_resilience, [세력/player/all/others], [ 0 / 1 ] ef_resilience, player, 0 # 이 명령 효과를 제거 ef_resilience, 한나라, 1 # 회복력없는 영웅에게 “+ 회복력” 부여

    player = 플레이어만, others = 다른 AI 팩션들 , all = 모든 팩션

    “1” 옵션은 지정한 팩션의 장수들에게 회복력 +1 효과를 줍니다. 이미 +1 회복력이 있는 전설적 영웅에게는 효과가 없습니다.
    “0”으로 주어진 효과를 제거합니다. 전설적 영웅들의 +1 회복력은 영향이 없습니다.

  • ef_exp_bonus

    ef_exp_bonus, [세력/player/all/others], [ 0, 25/50/100/200/300/500 ] ef_exp_bonus, player, 50 ef_exp_bonus, 조조, 200 ef_exp_bonus, all, 0

    player = 플레이어만, others = 다른 AI 팩션들 , all = 모든 팩션

    지정한 팩션의 장수들에게 경험치 보너스 % 효과를 줍니다. ‘0’으로 주어진 효과를 제거합니다.

  • ef_satisfaction

    ef_satisfaction, [세력/player/all/others], [ 0, 10/20/30/40 ] ef_satisfaction, player, 20 ef_satisfaction, 조조, 30 ef_satisfaction, all, 0

    player = 플레이어만, others = 다른 AI 팩션들 , all = 모든 팩션

    지정한 팩션의 장수들에게 + 만족도 효과를 줍니다. ‘0’으로 주어진 효과를 제거합니다.

    주어진 만족도는 영웅 상세 패널의 만족도에서 “최근의 사건”으로 표시됩니다. 게임 화면 좌상단의 세력 추가 효과에도 아이콘으로 표시되며, 세력 요약 패널의 우측에서도 확인할 수 있습니다.

  • ef_job_satisfaction

    ef_job_satisfaction, [세력/player/all/others], [ 0, 1, 2 ] ef_job_satisfaction, player, 1 ef_job_satisfaction, 조조, 2 ef_job_satisfaction, all, 0

    player = 플레이어만, others = 다른 AI 팩션들 , all = 모든 팩션

    지정한 팩션의 영웅들의 “승진 욕구 불만”에 효과를 줍니다. 승진 욕구가 만족도와 팩션을 떠나는 결정에 미치는 영향을 줄이거나 무시하는 효과를 설정합니다. 영웅 상세 패널 만족도에선 빨간 + 수치가 변하지는 않습니다.

    1 – 영웅들의 승진 욕구로 인한 불만이 만족도와 팩선 탈퇴에 미치는 영향을 절반으로 줄인다
    2 – 승진 욕구로 인한 불만을 아예 무시한다. 화면에는 보이나 게임 엔진 내부적으로 무시합니다.
    0 – 부여된 효과를 제거

  • ef_force_movement
    ef_force_movement, [세력/player/all/others], [ 0, 10/20/30/40/50 ]

    자기 세력과 동맹 세력의 영토 내에서 부대의 이동 거리를 증가시킵니다. 각 영웅들은 미리 설정된 AP(action point)를 가지고 있습니다. 이동, 요새화, 매복, 점령 등의 맵 행동에 포인트를 소모하는데, 이 효과는 이동에 소모되는 AP 비용 %를 낮추는 효과 입니다

  • ef_deploy_cost
    ef_deploy_cost, [세력/player/all/others], [ 0, 10/20/30/40/50 ]

    영웅을 맵에 군대로 배치할 때의 비용과 영웅이 새 유닛을 고용할 때에 소모되는 비용을 %로 감소 시킵니다.
    모든 세력에게 적용하면, AI가 고급 유닛을 사용할 가능성이 높아집니다.

  • ef_retinue_upkeep
    ef_retinue_upkeep, [세력/player/all/others], [ 0, 10/20/30/40/50 ]

    맵 상에 배치된 부대의 유지 비용을 감소 시킵니다.

    유지비용 감소는 지위 효과, 트레잇 효과, 사령관 효과 등 복합적인 중첩 효과라서 정확하지 않습니다. 게임 중후반의 10%~30%가 체감상 20%~50% 수준의 비용 감소 효과를 보여줍니다.

  • ef_salary
    ef_salary, [세력/player/all/others], [ 0, 10/20/30/40/50/60/70/80/90/100 ]

    봉록 비용을 감소 시킵니다. “100% = 봉록 0” 를 의미합니다.

    봉록을 ‘-100%’로 설정하면 영웅의 세부 정보창에서 +25 봉록 등으로 보일 수 있으나, 세력 전체 봉록 비용은 ‘0’이 됩니다.

행동 명령 : 효과 & 관계 명령

스팀 가이드의 한 섹션 페이지 크기는 8,126 바이트 제한이 있어 효과 명령 파트를 둘로 나눕니다

  • 세력 효과 명령 계속
      아래의 부대, 파견, 태수 숫자를 지정하는 명령은 기존 상태에 더 해지는 것이 아니라 새로 지정되니다. 즉 5명의 태수를 늘렸다 3으로 세팅하면 8이 아니라 3이 됩니다.

      • ef_armies

        ef_armies, [세력/player/all/others], [ 0, 1 ~10 ]

        player = 플레이어만, others = 다른 AI 팩션들 , all = 모든 팩션

        0 = 효과 제거
        1~10 = 1개에서 10개 부대까지 추가 생성 가능

        부대의 숫자를 늘렸다 줄여도 맵 상의 부대에는 영향이 없습니다

      • ef_governors
        ef_governors, [세력/player/all/others], [ 0, 1 ~10 ]

        player = 플레이어만, others = 다른 AI 팩션들 , all = 모든 팩션

        임명할 수 있는 태수의 숫자가 증가합니다. 0은 효과 제거

        태수 수를 늘렸다가 다시 줄이면, 세력에 따라 태수 수가 줄어들고 몇몇은 태수 자리를 잃게 됩니다. 태수 숫자를 줄이기 전에 퀵 세이브하십시오.

      • ef_assignments
        ef_assignments, [세력/player/all/others], [ 0, 1 ~10 ]

        파견 나갈 수 있는 인원 숫자를 추가 시킵니다. 0은 효과 제거

        파견 수를 늘렸다가 다시 줄이면 파견 수는 줄어들지 만 파견나간 영웅은 영향을 받지 않습니다.

    • 특정 세력 효과 명령
      • ef_research_rate
        ef_research_rate, [세력/player/all/others], [ 0, 25/50/100/200/300/400/500 ]

        연구 속도 속성이 있는 팩션의 연구 개발 속도를 올려줍니다. 연구 개발 속성은 모든 팩션에 있는 것이 아니라, 그 세력의 “서브 컬처(sub-culture)”에 따라 다르며 “유비”, “조조” 같은 세력은 “중국 문화” 세력이라 연구 개발 속성이 없습니다. 도적(엄백호), 황건적, 남만 종족 등에 연구 개발 속성이 있습니다.

        중국 문화권의 세력에게는 “연구 속도” 효과가 설정되지 않습니다.

        현재 연구 개발 속도는 개혁 패널의 최상단을 보면 확인 할 수 있습니다.

    • 영웅 개인 효과 명령
      • ef_presented
        ef_presented, [영웅]

        지정된 영웅에게 “선물 받은” 효과를 10턴 동안 부여합니다. 10턴이 지나면 효과는 사라집니다.
        “선물 받은” 효과는 영웅 상세 패널의 만족도에서 확인할 수 있고, +40 만족도의 효과입니다.

  • 영웅 관계 명령

    영웅 간의 관계를 설정하는 명령으로 게임 내부적으로는 친밀도로도 계산됩니다. -500 ~ 500 범위를 가지고 있으며 +300 이상이면 “의형제”, -300 이하면 “숙적”으로 표시되는 형식이며, 영구적인 특성 관계를 가졌을 때는 친밀도와 상관없이 의형제~숙적 관계가 됩니다.

    삼탈워 영웅들 간의 관계 중, 영구적인 관계는 다시 설정할 수 없습니다. 영구적 관계는 부모-자식, 어릴적 친구, 오래전 상관, 스타트 포스 의형제, 과거의 중대한 원한 사건(가족 살해, 배반 등)입니다.

    영웅 간의 친밀도는 과거 사건이 기억에 남아있는 효과가 쌓인 수치입니다. 과거 사건이 기억에서 사라지면 친밀도는 변하게 됩니다. 영구적 관계는 기억에서 사라지지 않고 영구적으로 친밀도에 영향을 미칩니다. 각 사건은 기억에서 사라지는 시간도 다르며, 친밀도에 미치는 영향도 매우 적음~극히 높음으로 다양합니다.

    예를 들면 씻을 수 없는 원한인 “가족 살해”, “배반” 등의 경우 친밀도와 상관없이 “숙적”이 됩니다. 의형제는 관우,유비,장비와 같이 스타트 포스 관계로 설정된 경우는 영원히 친밀도가 변하지 않게 됩니다. 영웅적 승리 등의 좋은 기억으로 친밀도가 매우 높아져 의형제로 표시된다 해도, 친밀도가 낮아지면 결국 친구로 변하게 됩니다.

    영웅들간의 친밀도는 “의견 조화/부조화”와는 상관이 없습니다.

    의견 조화/부조화는 영웅들이 가진 “트레잇”의 특성에 따라 서로 의견이 같거나, 달라지면서 발생합니다. 부조화는 한 영웅의 트래잇을 변경시키는 것으로 변화됩니다. 부조화적인 트레잇을 가진 영웅들이 한 부대에 있고, 전투를 빈번하게 치루고 패배할 때에는 “친밀도에 안좋은 사건”이 지속 발생해서, 결국 영웅 관계를 악화시킵니다.

    • 가족(family)
      rel.family, 주 영웅, 보조 영웅 rel.family, 관우, 관은병
      • 스타트 포스(게임 초기 맵)에 가족으로 설정되어 있을 때
      • 영웅이 게임에서 가족으로 태어났을 때
      • 군주들 간의 가족 관계는 외교 관계에 약간의 영향을 미칩니다

      이 명령은 “스타트 포스” 가족 관계를 설정하고, 친밀도를 매우 높은 과거의 사건 관계에 추가합니다. 가족 관계의 영웅들이 한 부대에 있으면, 친밀도가 높아질 확률이 조금 높아집니다

      가족 관계의 영웅들은 전투에서 서로 살해할 가능성은 없으며, 포로로 처형할 확률도 없습니다.

    • 친구(friend)
      rel.friend, 순욱, 순유
      • 스타트 포스(게임 초기 맵)에 친구로 설정되어 있을 때는 영구적입니다
      • 게임에서 친밀도가 기준치 이상 높아졌을 때 생기며, 친밀도가 떨어지면 사라집니다
      • 군주들 간의 친우 관계는 외교 관계에 어느 정도 영향을 미칩니다

      이 명령은 스타트 포스 “어릴적 친구” 관계를 설정하고, 친밀도를 매우 높은 과거의 사건 관계에 추가합니다.

      관계가 나빠져 “적수”가 된고 “친구” 관계가 사라진다 해도, “어릴 적 친구”관계는 남아있고 전투에서 서로 살해할 확률은 거의 없습니다.

    • 의형제(brother)
      rel.brother, 손책, 주유
      • 스타트 포스(게임 초기 맵)에서 의형제로 설정되어 있을 때는 영구적입니다
      • 게임내에서 친밀도가 기준치 이상 높아졌을 때 생기며, 친밀도가 떨어지면 사라질 수 있습니다
      • 군주들 간의 의형제는 외교 관계에 큰 영향을 미칩니다

      영구적인 스타트 포스 “의형제” 관계를 설정하고, 친밀도가 영구적으로 최고치로 유지됩니다. 이 관계가 설정되면 같은 전장에서 전투를 할 때 버프를 받게 됩니다.

      가족관계라도 의형제 설정이 됩니다.

    • 주종(master)
      rel.master, 상관, 부하 rel.master, 유비, 손건
      • 스타트 포스 상관과 부하 관계는 영구적입니다
      • 게임내에서 주군/사령관과 신하/장군으로 있게되면 관계가 발생합니다
      • 군주들 간의 주종 관계는 외교에 영향을 미치지 않습니다

      이 명령은 영웅들 간에 스타트 포스 “오래전 상관/부하” 관계를 설정합니다.
      영구적 관계 중에 친밀도와 외교, 전투에 거의 영향을 미치지 않습니다. 현제 세력의 군주에 대한 충성도에 영향을 미칩니다.

    • 적수(rival)
      rel.rival, 관우, 장료
      • 영구적인 설정은 없습니다
      • 게임 내에서 전투에서의 승패와 가족 관계 영웅의 해고 등으로 발생할 수 있습니다
      • 외교 관계에 약간의 영향을 미칩니다

      전투에서 서로에게 도발하고 죽일 확률이 높아집니다. 적수 관계의 영웅들이 한 부대에 있으면 계속 관계가 악화될 것입니다.

    • 숙적(nemesis)
      rel.nemesis, 원소, 공손찬
      • 영구적인 스타트 포스 숙적관계가 숙적(동탁, 조조)관계가 있습니다
      • 게임에서는 포로가 된 가족 처형, 연합 배반 등의 사건으로 숙적이 될 수 있습니다
      • 외교 관계에 매우 큰 영향을 미칩니다

      이 명령은 스타트 포스 숙적 관계를 영웅 간에 추가 합니다. 친밀도는 최악이 되고, 회복될 가능성은 거의 없습니다. 외교 관계에서 서로에게 전쟁을 선포할 확률이 높아집니다.

    • 개선(improve)
      rel.improve, 유비, 조조

      친밀도를 상당히 높이는 기억을 추가합니다. 친밀도가 높은 관계에 좋은 기억을 추가하게 되면 친구 관계가 될 수도 있습니다.

사용자 텍스트 파일 : script

사용자 텍스트 파일 : “sandbox/sandbox_user_script” 에서 “설정”과 샌드박스 “행동 명령”을 지정할 수 있습니다.

‘TheG.mod.’는 샌드박스 설정을 지정하는 방식입니다. 설정은 게임 로딩/시작 시에 설정되어 게임이 끝날 때까지 유지됩니다.

‘TheG.action.’로 시작하는 줄은 샌드박스 행동 명령을 지정된 턴에 실행 시키는 줄입니다. 턴은 1턴부터 끝턴은 천턴을 넘길 수는 없습니다.

  1. TheG.mod.locale, kr
    TheG.mod.locale, (kr/en/zh/cn)

    샌드박스는 한글, 영어(en), 번체(zh 한자), 간체자(cn 중국 간략화 한자)를 지원합니다. 기본은 kr(한글) 입니다.

  2. TheG.mod.log_to_file
    TheG.mod.log_to_file, (true/false), log level (1~5)

    기본은 로그파일을 생성하지 않는 false 이며, 로그 레벨은 3입니다. 로그 레벨이 높을 수록 자세한 로그를 남깁니다. Error( 0 ) ~ Debug( 3 ) ~ Verbose( 5 )

    기본 로그 파일은 “$(게임)/sandbox/log_sandbox.txt” 입니다

  3. TheG.mod.force_recruit_rank
    TheG.mod.force_recruit_rank, (none/all/others/player), (1 ~ 5)

    영웅의 수하 부대에 새로운 유닛을 고용할 때에 기본 ‘랭크’를 높입니다. 보너스 랭크는 1~5 범위 안에 설정할 수 있습니다.

  4. TheG.mod.reset_skills
    TheG.mod.reset_skills_when_join, (true/false) TheG.mod.reset_skills_when_start, (true/false)

    아무 장수라도 아군에 합류할 때 스킬 트리를 초기화 합니다. 새 캠페인 시작 시에 아군 소속의 장수들의 스킬 트리를 초기화 할 수도 있습니다.

  5. TheG.mod.default_trait_set
    TheG.mod.default_trait_set_when_start, (true/false) TheG.mod.default_trait_set_when_join, (true/false) TheG.mod.default_trait_set_others, (true/false)

    사용자 db 텍스트에서 ‘TheG.db.trait.default.손인’ 또는 ‘TheG.db.trait_set.손인’과 같이 설정되어 있는 장수의 트래잇들을 ‘새 캠페인’ 또는 아군에 합류할 때에 자동으로 설정해 줍니다.

    플레이어가 아군 세력의 임관 대기 풀에 있던 영웅을 등용했을 때도 자동 설정됩니다.

    “default_trait_set_others” 설정은 타 세력 장수들도 자동으로 지정된 트레잇 세트를 설정해줍니다. 아군 세력은 새 캠페인 0턴에, 타 세력은 각 세력의 1턴에 자동 설정됩니다.

  6. TheG.mod.default_title
    TheG.mod.default_title_when_start, (true/false) TheG.mod.default_title_when_join, (true/false) TheG.mod.default_title_others, (true/false)

    사용자 db 텍스트에서 ‘TheG.db.title.default.손인’과 같이 설정되어 있는 장수의 칭호를 ‘새 캠페인’ 또는 아군에 합류할 때에 자동으로 설정해 줍니다.

    플레이어가 아군 세력의 임관 대기 풀에 있던 영웅을 등용했을 때도 자동 설정됩니다.

    “default_title_others” 설정은 타 세력 장수들도 자동으로 지정된 칭호를 설정해줍니다. 아군 세력은 새 캠페인 0턴에, 타 세력은 각 세력의 1턴에 자동 설정됩니다.

  7. TheG.mod.ancillary_probability
    TheG.mod.ancillary_probability, (true/false), min(2~10), max(5~15)

    점령한 제작소의 무기와 갑옷 아이템 생산 주기를 줄이거나 늘립니다. 3단계 작업장의 기본 주기는 5~10턴 입니다.

  8. TheG.mod.ancillary_yield_ratio

    TheG.mod.ancillary_yield_ratio, (true/false), range(0.1~10)

    전투에서 승리하거나 거점을 점령했을 때, 아이템 획득 확률을 조정합니다. 기본은 1.0배 입니다.
    이 배율은 갬페인 시작 아이템 기본(2~4)개의 갯수도 함께 올리거나/내립니다.

  9. TheG.mod.post_diplomacy_camera

    TheG.mod.post_diplomacy_camera, true/false

    삼탈워에서 외교 화면을 여는 방식은 크게 3가지 입니다.

    첫째, 화면 좌상 세력 메뉴 바에서 “외교” 버튼으로 외교 화면을 시작합니다.
    둘째, 화면 우하 단축 아이콘 모음에서 세력 목록을 오픈하고, 목록 속의 세력을 우크릭해서 외교 협상을 시작합니다.
    셋째, 맵 도시 이름 태그를 더블 클릭해서 해당 세력과 외교 협상을 시작합니다.

    첫번째 방식은 외교 화면이 종료된 이후에 외교 시작하기 전의 맵 카메라 위치로 바로 복원됩니다만, 두번째와 세번째는 전체 맵 상태에서 이전 카메라 위치로 복원되지 않습니다.

    이 설정은 두번째와 세번째 방식에서 외교 시작 전 카메라 위치로 복원 시키는 설정입니다

  10. TheG.mod.skip_intro_cutscene

    TheG.mod.skip_intro_cutscene, true/false

    새 캠페인일 때 나오는 인트로 컷신(카메라 무빙 + 나레이션)을 생략합니다

  11. TheG.mod.loading_auto_continue

    TheG.mod.loading_auto_continue, true/false

    캠페인 로딩이 끝난 후 “계속” 버튼을 자동으로 크릭합니다

  12. 세력 멸망 시 영웅 흡수

    TheG.mod.confederated_faction_heroes, none 또는 TheG.mod.confederated_faction_heroes, named, exceptional, half, true

    옵션 순서 : 영웅, 아이템, 골드, 크론 킬

    이 설정은 AI 팩션에도 적용됩니다.

    일반적으로 타이틀 홀더의 경우 유명 장수이고 그들만 흡수하고 크론들은 킬하는 게 보통이겠습니다. (named, refined, half, true)

    상대 정착지가 하나 남았을 때 전투로 흡수 합병하게 되면 상대 장수들에게 “세력 원한” 플래그가 설정됩니다. 빨간 만족도가 떨어지지 않게 되죠. 이 설정은 합병 되기 직전, 즉 세력이 멸망하기 전에 상대 네임드 등을 흡수하므로 원한 플래그가 생기지 않게 됩니다.

    AI도 같이 적용되기 때문에 AI가 강제 합병 후 유명 영웅을 처형하는 일도 적어집니다.

    TK 1.6.0에서 멸망한 팩션이 아이템을 보유하는 현상이 있습니다. 그래서, 이 설정이 켜져있을 때는 영웅을 흡수하면서 상대 세력의 모든 아이템도 흡수합니다. 설정이 꺼져있다면 합병당하는 세력의 모든 아이템은 제거됩니다.

    네임드 영웅은 다음의 결집 구글 쉬트[docs.google.com]에서 확인하십시오.

    아이템 흡수는 모든 아이템을 다 흡수하진 않습니다. 20개 이상일 경우 상위 티어 아이템을 먼저 흡수하고, 40개를 넘기지 않기 위해 하위 티어는 버릴 수도 있습니다. 게임이 길어졌을 때, 몇 개 남지 않은 생존 세력은 아이템이 200개도 넘게 되고, 극 후반이라 불필요해진 일반 등급 아이템은 흡수하지 않기 위해서 입니다.

    골드도 일정 수준 이상의 골드가 감지되면 삭감한 후에 흡수합니다. 일정 수준은 현재 게임 내에 있는 세력들의 골드 평균을 과도하게 넘은 수치를 말합니다. 군웅에서 한나라가 초반에 수십만 골드로 늘어난 후에, 또는 사용자가 백만 골드를 준 세력이 흡수 당하는 경우 등에 해당합니다.

  13. 크론 자동 감지

    중복 생성된 역사 영웅을 감지하고 ‘한나라’ 세력으로 옮긴 후에 암살합니다.

    TheG.mod.detect_historical_heroes_clone, false # 역사 장수 중복 TheG.mod.detect_duplicated_name_clone, false # 이름 중복 크론

    historical_heroes = ‘관우’, ‘장비’, ‘길본’ 같이 TW:TK 데이터베이스에 있는 역사 장수가 중복 생성되는 것을 감지합니다.

    duplicated_name = TW:TK 엔진에서 자동 생성한 ‘크론’이 역사 장수와 이름이 같을 경우 암살 처리합니다.

  14. 샌드박스 알림 설정

    모드 데이터에 등록된 장수가 정해진 조건에 해당되면 알림을 보여줍니다.

    • TheG.mod.notify.last
      새로운 턴이 시작했을 때, 최근 알림을 모아서 보여줍니다.

    • TheG.mod.notify.died
      모드 데이터에 등록된 장수가 죽었을 때 알림을 보여줍니다.

    • TheG.mod.notify.goes_pool
      모드 데이터에 등록된 장수가 임관 대기(FA)가 되었을 때 알림을 보여줍니다.

    • TheG.mod.notify.comes_of_age
      모드 데이터에 등록된 장수가 성년이 되어 임관 되었을 때 알림을 보여줍니다.

    • TheG.mod.notify.join
      유명 장수가 아니더라도 어느 장수라도 아군에 합류하면 알림을 보여줍니다.

    • TheG.mod.notify.occupied
      AI 세력이 점령지를 늘렸을 때 알림을 보여줍니다.

    • TheG.mod.notify.federated
      AI 세력이 타 세력을 흡수/합병했을 때 알림을 보여줍니다.

    • TheG.mod.notify.duration
      AI 턴 중간 알림 지속 시간을 초 단위로 설정합니다. 사용자 턴의 알림은 지속됩니다.

    AI 턴 중간의 알림은 진행 중인 팩션이 바뀔 때마다 알림이 초기화되는 현상이 있어서, 지속 시간을 늘린다고 모든 메시지가 정해진 지속 시간 동안 유지되지는 않습니다.

사용자 텍스트 파일 : script : 행동 명령

  • 실행 명령

    사용자 script 텍스트 파일에선 입력창의 명령을 정해진 턴에 수행되도록 하는 ‘각본’이라고 생각합니다. 다른 오버호울 모드와 함께 재밋게 설정하면 ‘나만의 영웅 집결’ 캠페인 모드가 생성될 수도 있습니다.

    TheG.action.(command), [장수/팩션], [옵션/장수/팩션], 턴

    사용법은 명령 앞에 ‘TheG.action.’ 이 붙고, 뒤에 ‘턴’ 옵션이 붙는 다는 점을 제외하고는 입력창 명령 사용법과 동일합니다. 간략하게 소개만 하겠습니다.

    • 턴 지정없는 명령어들

      TheG.action.all_item TheG.action.num_lives TheG.action.ef_xxxx # 효과 명령들 TheG.action.ef_exp_bonus TheG.action.ef_armies 등등 TheG.action.reform

      사용자 script 파일 내의 위 명령들은 턴을 지정할 수 없습니다. 입력 창에선 수시로 입력 실행 가능합니다.

    • 턴 지정 명령어들

      • TheG.action.summon, 조운, 유비, 4, 1
      • TheG.action.summon.ytr, 공도, 조조, 6, 1
      • TheG.action.summon.ep, 사마량, 조조, 6, 1
      • TheG.action.summon.moh, 하진, 조조, 6, 1
      • TheG.action.summon.main, 여포, 여남왕, 7, 1
      • TheG.action.kill, 동탁,, 1
      • TheG.action.kill, 동탁, 53, 1
      • TheG.action.trait, 손인, add, 용감함, 1
      • TheG.action.trait_set, 손인, 매력 덩어리, 1
      • TheG.action.trait_legendary, 변부인, add, early, 1
      • TheG.action.steal, 절영, 조조, 1
      • TheG.action.give_item, 절영, 조조, 1
      • TheG.action.give_set, 하늘의 분노, 조조, 1
      • TheG.action.rank_up, 변부인, 4, 1
      • TheG.action.set_title, 조조, 한나라의 위대한 천자, 1
      • TheG.action.set_undercover, 변부인, true, 1
      • TheG.action.treasury, 유비, 3000, 1
      • TheG.action.treasury_to_faction, 조조, 3000, 1
      • TheG.action.federate, 유비, 도겸, 1
      • TheG.action.post.leader, 유비, 장비, 1
      • TheG.action.post.heir, 유비, 조운, 1
      • TheG.action.child_of, 장포, 장비, 1
      • TheG.action.teleport, 손견, 파동, 1
      • TheG.action.capital, 유비, 동해, 1

사용자 텍스트 파일 : script : 캠페인 별 기능

켐페인 맵에 따라 특정 장수들을 선호 세력으로 이동 시키거나, 특정 세력의 성장을 자금 지원을 통해 지원하는 등의 “정책적 부가 기능”이 있습니다.

  1. TheG.mod.han_empire_independence
    TheG.mod.han_empire_independence, (none/high/med/low), (3~999)

    한나라 세력의 장수들의 독립을 지원합니다. 독립할 야망을 키워놓고, 독립하면 특정한 버프를 줘서 성장을 약간이나마 돕습니다.

    3턴 부터 ~ 999 턴 내에서 시작 턴을 지정할 수 있습니다. ‘out_text’로 출력되는 사용자 설정 파일에 기본 20턴을 지정되어 있습니다.

    한나라 장수들이 독립 러쉬의 속도를 high, med, low로 지정할 수 있습니다.

    high = 지정한 턴 부터 10개의 속국이 생성되기 시작하고, 한나라 장수가 있는 동안 계속됩니다.
    med = 2~3 턴 마다 2~3개의 속국이 생성됩니다.
    low = 3~4턴 마다 1개의 속국이 생성됩니다.

  2. 군웅할거
    • TheG.mod.tke_liu_bei_to_jingzhou

      TheG.mod.tke_liu_bei_to_jingzhou, true

      유비 세력으로 군웅할거를 새로 시작할 때에 유비 부대를 강릉 손견 자리로 “순간 이동” 시킵니다.

      유비의 기본 튜토리얼 미션인 ‘황건적 퇴치’, ‘동군’, ‘낭야’, ‘동해’ 등의 미션은 샌드박스에서 자동으로 미션 완료 시켜서 ‘유표 토벌’ 미션으로 자연스럽게 미션 라인이 이어지게 합니다.

      손견과 전유는 파양군 철광산 근처의 확장하기 좋은 자리로 이동됩니다. 조백이 “순간 이동” 안되는 황건적이라 그렇습니다. 조백은 자기 자리에 남아있게 됩니다.

사용자 텍스트 파일 : db

사용자 텍스트 파일 : “게임/sandbox/sandbox_user_db” 는 명령을 위한 정보가 담긴 텍스트 파일입니다.

게임에 사용되는 정보를 보려면 샌드박스 구글 쉬트[docs.google.com]에 있습니다.

아이템 데이터

  1. TheG.db.item.alias
    TheG.db.item.alias, 절영, 3k_main_ancillary_mount_shadow_runner TheG.db.item.alias, 진사홍궁, 3k_main_ancillary_weapon_bow_lady_sun_faction

    1.3.2 버전에 도입된 알리아스 명령은 길고 긴 아이템 데이터 키에 ‘별칭’을 주어 알기쉽고 간단하게 만드는 명령입니다. 위와 같이 ‘절영’, ‘진사홍궁’을 알리아싱하면

    give_item, 절영, player, 1

    이와 같은 짧은 명령을 사용할 수 있게 됩니다. 입력창에서도 알리아싱할 수 있지만, 그 경우에 사용자 db 텍스트에 저장되지 않습니다.

  2. TheG.db.item.set.이름

    1.3.2 버전부터 세트템을 정의할 수 있습니다.

    TheG.db.item.alias, 점쟁이 예복, 3k_main_ancillary_armour_strategist_light_armour_water_extraordinary TheG.db.item.alias, 황실 활, 3k_main_ancillary_weapon_composite_bow_exceptional TheG.db.item.set.하늘의 분노, 점쟁이 예복 TheG.db.item.set.하늘의 분노, 황실활 TheG.db.item.set.하늘의 분노, 점쟁이 예복, 황실활

    1.4.3 버전부터 복수의 아이쳄을 한 줄의 아이템 세트 정의에 지정할 수 있습니다.
    세트템 정의에 한글을 사용할 수 있습니다. 한글 명칭의 ‘공백’ 문자는 무시됩니다.

    give_set, 하늘의 분노, player

    위는 ‘하늘의 분노’ 세트에 정의된 아이템을 1개씩 사용자에게 주는 예시입니다. 세트템에 유니크가 있고, 그 아이템이 이미 게임에 존재한다면 세트 구성 아이템 모두 수여되지 않을 수 있습니다.

  3. Google Sheet

    샌드박스 구글 쉬트에는 삼탈워 메인, 황건적, 팔왕 DLC, 천명 아이템들이 등급별로 분류가 되어있습니다. 각 등급별로, 아이템 분류별로 하나의 세트로 처리하여 all_item 명령의 인자로 사용되기도 합니다.


    아이템 정보는 다음과 같이 구성되어 있습니다.

    en name, kr name, zh name, cn name, dlc, tier, category, item ceo_key

    구글 쉬트의 데이터는 위 그림과 같고 순서는 위 ‘코드 순서’와 같습니다. 총 347개의 아이템으로 구성되어 있습니다.

    1.3.5 버전 부터 모든 아이템이 각 언어 팩별 아이템 이름을 기본 별칭으로 설정됩니다. 기본 별칭으로 ‘find_item’, ‘give_item’, ‘steal’ 명령을 사용할 수 있습니다.

트레잇 데이터

  1. TheG.db.trait.set.이름

    ‘trait_set’ 명령을 사용하려면, 우선 사용자 db 텍스트에 다음과 같이 트레잇 세트를 정의해야 합니다.

    TheG.db.trait.set.매력 덩어리, 사람을 휘어잡는 매력, 아름다움, 우아함, 자애로움 TheG.db.trait.set.손인, 매력 덩어리 # 손인의 default trait set 선언

    트래잇의 ‘en_key’와 모든 이름은 명령 줄에서 사용할 수 있습니다. 다른 trait_set도 명령 매개 변수에 사용될 수 있습니다.

    명령 ‘trait_set’ 실행은 사용자 script 텍스트와 입력창에서 할 수 있습니다.

    ‘trait.set’ 이름에 영웅 이름이 사용되면, 그 영웅의 default 트레잇 셋이 됩니다. ‘default trait set’은 설정에 따라 샌드박스가 자동으로 트레잇 세트를 해당 영웅에게 적용합니다.

    TheG.mod.TheG.mod.default_trait_set_when_start, true 등으로 트레잇 자동 설정을 정의할 수 있습니다.

    TheG.action.trait_set, sun_ren, 매력 덩어리, 1 trait_set, sun_ren, 매력 덩어리

  2. TheG.db.trait.default.장수

    자동 트래잇 기능은 지정된 장수가 생성되거나 소환되었을 때 자동으로 설정되어 있는 트래잇 세트를 해당 장수에게 부여하는 기능입니다.

    TheG.mod.TheG.mod.default_trait_set_when_start 등의 설정으로 자동 트레잇 부여를 정의할 수 있습니다.

    TheG.db.trait.default.손인, 매력 덩어리 TheG.db.trait.default.조조, 손인

    위 예시는 ‘손인’과 ‘조조’에게 기본 트래잇 설정을 한 것입니다. 위와 같이 설정해 놓고 사용자 script 파일에서 ‘default_trait_set_when_start’ 와 ‘default_trait_set_when_join’ 을 ‘true’로 설정하면 자동 트래잇이 동작하게 됩니다.

    ‘trait_set’ 이름에서 영웅 이름을 사용하면 자동으로 default 세트가 되니, 그런 영웅은 따로 trait.default를 설정할 필요가 없습니다.

  3. Google Sheet

    구글 쉬트에는 총 124개의 모든 트래잇에 대한 자료가 있습니다.

    키, 영문, 한글, 번체, 간체, dlc, 분류, ceo_key

    총 8개의 트레잇에서 한글 이름이 중복됩니다.

      겸손함
      humble
      modest
      겸허함
      믿음직함
      trustworthy
      trusting
      믿고보는
      부주의함
      unobservant
      careless
      경솔함
      영리함
      clever
      heaven_bright
      명료함
      우아함
      graceful
      benevolent
      자애로움
      친절함
      kind
      gentle_hearted
      온화함
      활기참
      energetic
      people_cheerful
      쾌활함
      절름발이
      maimed_leg
      sprained_ankle
      절뚝거림

    중복된 한글 트레잇 명칭 5개의 리스트이며 뒷 쪽이 스크립트에서 변경한 이름입니다. [더 결집 : 한글 패치]를 사용하지 않는다면 게임 화면에는 원래의 중복된 이름으로 표시됩니다.

칭호 데이터

The title data is consists of follows.

en key, ( en, kr, zh, cn ){ hero name, title name }, title ceo_key

  • TheG.db.title.default.장수

    TheG.db.title.default.손인, 손가의 부흥

    영웅의 default 타이틀을 정의합니다. ‘default’ 타이틀이 설정된 영운 설정에 따라 캠페인 초기에 default 타이틀이 자동으로 부여됩니다.

    TheG.mod.default_title_when_start, true 등의 설정으로 default 타이틀 동작을 지정할 수 있습니다. 캠페인 시작 시에 default 타이틀을 영웅들에게 부여하도록 설정하면, 플레이어 팩션의 장수들은 1턴 시작 전에, 다른 팩션의 영웅들은 각각 1턴이 진행되면서 default 타이틀이 설정됩니다

    지역 데이터

    The region data is consists of follows.

    en key, ( en, kr, zh, cn ){ region key, region locale name }, region data_key

    세력 데이터

    The faction data is consists of follows.

    en key, kr name, zh name, cn name, dlc, faction data_key

사용자 텍스트 파일 : db – 장수 데이터

  • 장수 데이터

    모든 장수 데이터는 샌드박스 모드 내에 이미 등록되어 있습니다. 그 중에 메인 123명, 팔왕 23명등 중요 장수는 따로 관리합니다. 그 장수들은 메인의 경우 많은 사람들이 알고 있을 듯한 팩션리더, 유니크 전설, 칭호 보유자와 네임드 위주로 선정했습니다. 팔왕의 경우 잘 알지못해 ‘칭호 보유자’ 23명을 유명 장수로 설정했습니다.

    유명 장수는 소환 시 이벤트 메시지를 보여줍니다.

    구글 쉬트 속의 데이터는 아래와 같이 구성되어있습니다.

    • 장수 키( ‘_’를 빼면 남성은 영문 이름과 같음)
    • 한글 키
    • 장수 출생 년도
    • 번체 및 간자체 중국어 이름
    • 장수 형태(화.수.목.금.토)
    • 장수 기본 팩션
    • 장수 테이터 키 형태(historical, generated, ancestral)의 앞 글자
    • 장수 번호(큰 의미 없음)
    • 장수 스타팅 맵 ID(개발자용 정보)
    • 장수 풀 데이터 키(유니크 키 값)

    구글 쉬트의 정보는 위와 같이 구성되어 있습니다.

    메인과 팔왕 장수 목록과 트레잇 데이터는 이 구글 쉬트[docs.google.com]에서 볼 수 있습니다. 구글 쉬트의 데이터는 샌드박스 모드에서 사용하는 형태로 정리된 것입니다.

    사용자 db 텍스트 파일 속의 ‘db.명령’ 형태의 설정으로 샌드박스에 내장된 장수들의 데이터를 변조할 수 있습니다.

    • TheG.db.info 명령
      TheG.db.info, 마운록

      샌드박스 db에 등록되어 있는 마운록의 정보를 보여줍니다. 등록되어 있지 않다면 그 사실을 알려줍니다. 사용자가 ‘사용자 db 텍스트’에 등록한 영웅이 정상적으로 처리되었는 지를 확인할 때에 사용되는 명령입니다.

    • 중국어 모드를 사용할 때, 한글화가 안되어 있다면 영웅의 이름을 검색하고 소환하는 데 애로 사항이 생기게 됩니다. 이럴 경우 복잡한 ‘add’, ‘change’ 명령 대신에 ‘db.name’ 명령으로 이름만 한글로 등록해서 영웅 조작을 편하게 할 수 있습니다.

      TheG.db.name, 마Yunlu, 마운록 TheG.db.name, ma_lanli, 화난려

    • TheG.db.class

      바닐라와 장수 형태를 다르게 구현한 모드를 사용할 때, 미리 그 형태를 쉽게 등록하거나 변경하는 명령입니다.

      TheG.db.name, 강유, water TheG.db.name, 관은병, wood
      db.name, 황월영, wood

      입력창에서 ‘db.name’ 명령으로 장수 소환 전에 쉽게 소환 형태를 바꿀 수 있습니다.

    • TheG.db.change

      보통은 사용할 일이 없는 명령어 입니다. 주 사용처는 ‘한글 키’를 바꾸는 데에 사용합니다만, 고급 사용자에게나 해당될 것입니다.

      1.7.80 부터 add, change 명령의 옵션이 대폭 간략화 되었습니다.

    • change

      change, zhang_bu, 張布, 172, zhang_bu, metal, main, liu_bei TheG.db.change, zhang_bu, 張布, 172, zhang_bu, metal, main, liu_bei

      주 사용처는 장수의 이름을 바꾸는 용도이거나, add 한 장수의 정보를 수정해서 summon 테스트를 하는 용도입니다. add로 추가한 장수가 제대로 소환되지 않을 경우 새로 게임을 로딩하지 말고, kill과 change 명령을 사용하여 재소환 하는 것이 좋습니다.

      TheG.db.change, hua_lanli, 華蘭麗, 161, lady_ma_lanli, metal, main, ma_teng,g,,,3k_main_template_generated_lady_ma_lanli_hero_metal

      위 명령은 ‘3k_main_template_generated_lady_ma_lanli_hero_metal’ 데이터 키를 가진 ma_lanli를 hua_lanli로 검색할 수 있도곡 해줍니다. 같은 목적이라면 더 간단한 ‘db.name’ 명령으로 아래와 같이 사용할 수 있습니다.

      db.name, ma_lanli, hua_lanli

    • TheG.db.add

      이 샌드박스 모드를 사용하는 데 가장 까다로운 부분이 기본으로 등록되지 않은 장수를 등록하는 부분일 것 입니다. 위 구글 쉬트에서 스타팅 맵 번호까지 카피해서 붙여넣고 ‘,’ 분리자로 정리해 주면 대부분의 장수는 정상적으로 등록 됩니다. 구글 쉬트를 잘 활용하시기 바랍니다.

      1.7.80 부터 add, change 명령의 옵션이 대폭 간략화 되었습니다.

      우선 많은 분들이 구독하신 Make them unique 모드 예시입니다.

    • add

      TheG.db.add, zhu_beng, 朱崩, wood, 3k_main_template_historical_lady_zhu_beng_hero_wood TheG.db.add, zhu_tu, 朱土, wood, 3k_main_template_historical_lady_zhu_tu_hero_wood

      샌드박스 기본 데이터에 등록안된 장수를 새로 등록합니다. 고급 사용자용 명령이며, 입력창에서 추가된 장수는 게임을 나가면 정보가 사라집니다. 그러므로, 보통 사용자 db 파일에 위와 같이 새로운 영웅을 정의하게 됩니다.

      특히, 일러 모드에 장수 형태(화.수.목.금.토)가 데이터 키와 일치하지 않는 경우가 많은 점에 주의하셔야 합니다. 또, ‘동백’이란 이름은 이미 삼탈워 내부에 2명이 사용하고 있습니다. 신무장 ‘동백'(코에이류)를 같은 한글로 사용했을 때, 삼탈워 기존 크론 무장하고 같은 한글 이름이라 검색에 혼동이 올 수도 있습니다. 그런 경우에는 소환하기 전에 ‘db.class’ 명령으로 일러 모드의 장수 형태로 샌드박스 db 의 데이터를 바꿔줍니다.

사용자 텍스트 파일 : db – 더 결집

샌드박스는 ”AI 자금 지원’ 기능에 대한 기본 데이터를 내장하고 있습니다.

  • AI 세력 지원 설정

    AI 세력에 성장을 위한 자금을 지원할 때에 가중치를 설정할 수 있습니다. 이 기능을 사용하기 위해선 사용자 script 파일에 다음과 같이 설정해야 합니다.

    TheG.mod.support_other_factions, true # 군웅 할거, 천명, 배신당한 세상

    가중치 1.0의 의미는 전체 세력의 평균 자금력입니다. 30개의 세력이 있을 때에 전체 세력이 보유한 현재 자금의 평균이 1.0입니다. 단, ‘한나라’ 세력의 경우 매우 자금이 많아 다른 세력이 1만의 자금을 가지고 있을 때, 20~30만의 자금을 가지고 있어, 중요 세력들의 경우 평균 1.0에 못미치는 0.5~0.6 정도의 자금을 가지고 있게 됩니다.

    그런 이유로 1.0 설정은 평균이 아니라 “평균 보다 많이 높은” 설정이 됩니다.

    Cao Cao 조조 曹操 曹操 1.45 Liu Bei 유비 劉備 劉備 1.45 Yuan Shu 원술 袁術 袁術 1.20 Dong Zhuo 동탁 董卓 董卓 1.15 Yuan Shao 원소 袁紹 袁紹 1.15

    ‘군웅 할거’의 기본 설정의 일부분입니다. 마이너한 군소 정당의 경우 0.4로 설정되어 있고, 0.4라고 해도 설정되어 있는 편이 없는 것 보다 성장이 조금이라도 빠릅니다.

    이 설정을 사용자 db 텍스트 파일에서 다음과 같이 바꿀 수 있습니다.

    TheG.db.set.ai_weight, 조조, 2.1 TheG.db.set.ai_weight, 손견, 0.3

    중원의 조조에게 좀 더 높은 가중치를 주고, 강남의 손견에게는 낮은 가중치를 주는 설정입니다. 설정 범위는 0.0 ~ 10.0 사이의 정수입니다.

    ‘군웅할거’와 ‘천명’ 켐페인에 따라 다른 설정이 필요할 때에는 ‘sandbox_user_db_tke.txt’와 ‘sandbox_user_db_moh.txt’ 두 개의 파일에 서로 다른 값을 설정할 수 있습니다.

사용자 텍스트 파일 : db – AI 팩션 지원

TheG.mod.support_other_factions, true

각 팩션에 대한 가중치를 설정해 놓고, 팩션들의 자금을 지속적으로 모니터링 하고 자금 지원을 하면서 성장을 도와주는 기능입니다. 현재는 조조, 유비 >= 손견, 원소 등의 기본 가중치로 설정되어 있어 삼국지의 ‘메이저” 팩션들이 안정되게 성장할 수 있도록 돕고 있습니다.

각 팩션에 대한 지원 가중치는 구글 쉬트 [docs.google.com] 에 있습니다.

이 기능은 결과적으로 켐페인의 난이도를 높이게 됩니다. 현재 기본 설정이 어느 정도의 난이도 상승을 가져오는 지 알지 못합니다. 모딩을 하다보면, 게임을 숫자와 기능으로 파고 들여다 보게 되면, 게임 진행에 대한 흥미를 자연히 잃어버리게 되는지라, 일인 모더가 테스트할 수 있는 부분이 아닌 듯 합니다. ^^

AI 팩션 지원 기능이 사용할 각 팩션에 대한 가중치를 사용자가 설정할 수 있습니다. “사용자 db 텍스트 : 더 결집”을 참고하십시오

  1. 군웅할거

    Cao Cao 조조 曹操 曹操 1.50 Liu Bei 유비 劉備 刘备 1.45 Yuan Shu 원술 袁術 袁术 1.20 Yuan Shao 원소 袁紹 袁绍 1.15 Dong Zhuo 동탁 董卓 董卓 1.15 Kong Rong 공융 孔融 孔融 0.80 Gongsun Zan 공손찬 公孫瓚 公孙瓒 0.80 Liu Biao 유표 劉表 刘表 0.80 Ma Teng 마등 馬騰 马腾 0.80 Liu Chong 유총 劉寵 刘宠 0.70 Liu Dai 유대 劉岱 刘岱 0.60 Han Fu 한복 韓馥 韩馥 0.60 Liu Yan 유언 劉焉 刘焉 0.60 Zheng Jiang 정강 鄭姜 郑姜 0.50 Zhang Yan 장연 張燕 张燕 0.50

    위 리스트 외의 모든 팩션의 기본 가중치는 0.40 입니다. 기본 0.40의 팩션도 바닐라 상태보다 성장이 약간이나마 빠릅니다.

  2. 천명

    군궁할거 기능과 같습니다. ‘한나라 황실’, ‘장각 형제들’이 있다는 점이 조금 다릅니다.

    Han Empire 한나라 大漢 汉帝国 2.00 Cao Cao 조조 曹操 曹操 1.50 Liu Bei 유비 劉備 刘备 1.45 Zhang Liang 장량 張梁 张梁 1.25 Zhang Bao 장보 張寶 张宝 1.25 Zhang Jue 장각 張角 张角 1.25 Yuan Shu 원술 袁術 袁术 1.20 Dong Zhuo 동탁 董卓 董卓 1.00 Lu Zhi 노식 盧植 卢植 1.00 Han Dynasty 황실 漢朝 汉朝 1.00 Yuan Shao 원소 袁紹 袁绍 1.00 Gongsun Zan 공손찬 公孫瓚 公孙瓒 0.80 Kong Rong 공융 孔融 孔融 0.80 Liu Biao 유표 劉表 刘表 0.80 Ma Teng 마등 馬騰 马腾 0.80 Liu Chong 유총 劉寵 刘宠 0.70 Lü Bu 여포 呂布 吕布 0.70 Zhang Yan 장연 張燕 张燕 0.50 Zheng Jiang 정강 鄭姜 郑姜 0.50

  3. 배신당한 세상

    “여포”와 “손책” 팩션이 있다는 점 외에 군궁할거와 기능이 같습니다.

    Lü Bu 여포 呂布 吕布 1.65 Cao Cao 조조 曹操 曹操 1.50 Liu Bei 유비 劉備 刘备 1.45 Yuan Shu 원술 袁術 袁术 1.20 Dong Zhuo 동탁 董卓 董卓 1.00 Yuan Shao 원소 袁紹 袁绍 1.00 Kong Rong 공융 孔融 孔融 0.80 Sun Ce 손책 孫策 孙策 0.80 Ma Teng 마등 馬騰 马腾 0.80 Gongsun Zan 공손찬 公孫瓚 公孙瓒 0.80 Liu Biao 유표 劉表 刘表 0.80 White Tiger Yan 엄백호 嚴白虎 严白虎 0.70 Liu Chong 유총 劉寵 刘宠 0.70 Zheng Jiang 정강 鄭姜 郑姜 0.50 Zhang Yan 장연 張燕 张燕 0.50

  4. 갈라진 운명

    “여포”와 “동탁”이 사라지고 “원담”, “원희” 세력이 등장합니다.

    Yuan Tan 원담 袁譚 袁谭 2.00 Yuan Xi 원희 袁熙 袁熙 2.00 Yuan Shao 원소 袁紹 袁绍 2.00 Sun Ce 손책 孫策 孙策 1.65 Cao Cao 조조 曹操 曹操 1.45 Liu Bei 유비 劉備 刘备 1.45 Liu Biao 유표 劉表 刘表 0.80 Ma Teng 마등 馬騰 马腾 0.80

MTU : 장수 및 아이템

삼탈워 원본과 다른 외부 모드의 유니크 모델의 영웅을 소환할 수 있게 샌드박스에 등록해야 합니다. 만일 외부 모드에 의해 영웅의 형태가 ‘용장’에서 ‘모사’ 형태 등으로 바뀐 경우에는 ‘db_class’ 명령으로 해당 장수의 형태를 바꾸는 것으로 쉽게 ‘계란’을 피할 수 있습니다.

db.class, 관은병, earth # 입력 창에서 TheG.db.class, 관은병, earth # 사용자 db 텍스트

  1. MTU 영웅

    MTU는 기존 장수 데이터와 같은 데이터를 사용하고 있고, 신무장만 샌드박스에 등록이 필요합니다. DB 섹션에 예시한 MTU 장수는 원본과 같은 데이터이고, 이제 샌드박스는 원본 데이터 속의 모든 장수 데이터를 내장하고 있어 따로 등록할 필요가 없습니다.

    • 원본과 데이터가 같은 경우

      MTU는 타모드와의 호환성을 고려해 기존 이름의 장수는 원본과 같은 데이터를 사용하고 있는 것으로 알고 있습니다. 원본 장수와 이름이 같다면 따로 등록할 필요가 없습니다.

      동민, 변부인, 이건여정, 오부인,고순 등…

    • 중복 무장인 경우

      화흠, 방덕과 같이 중복된 이름의 역사 무장이 있는 MTU 고유 무장의 경우에는 MTU 무장을 등록해두는 편이 좋습니다.

      사용자가 샌드박스 로케일을 한글에서 영문으로 바꾸거나 했을 경우, “search, 화흠” 명령이 삼탈워 바닐라 “화흠”을 검색하려고 할 것입니다.

      TheG.db.add, hua_xin, 화흠, water, 3k_mtu_template_historical_li_ru_hero_water TheG.db.add, pang_de, 방덕, wood, 3k_mtu_template_historical_chen_jiu_hero_wood

    • 신무장인 경우

      마운록 등의 경우 스타트포스 영웅이며 샌드박스가 감지하면 자동으로 정보를 마운록으로 부터 취합하기 때문에 등록할 필요가 없습니다. 오프맵 영웅인 경우는 정보를 등록해야만 합니다.

      TheG.db.add, ma_yunlu, 마운록, metal, 3k_mtu_template_historical_lady_ma_yunlu_hero_metal TheG.db.add, zhu_beng, 주뱅, wood, 3k_mtu_template_historical_lady_zhu_beng_hero_wood TheG.db.add, zhu_tu, 주투, wood, 3k_mtu_template_historical_lady_zhu_tu_hero_wood TheG.db.add, hua_lanli, 華蘭麗, metal, 3k_mtu_template_generated_lady_ma_lanli_hero_metal TheG.db.change, gao_shun, 고순, fire, 3k_mtu_template_historical_gao_shun_hero_fire TheG.db.add, hua_xin, 화흠, wood, 3k_mtu_template_historical_li_ru_hero_water

  2. MTU 아이템 사용

    ‘alias’ 명령으로 아이템 별칭을 만듭니다.

    alias, 대파극, 3k_mtu_ancillary_weapon_line_breaker_faction TheG.db.item.alias, 대파극, 3k_mtu_ancillary_weapon_line_breaker_faction

    입력창에서 ‘alias’ 명령을 사용할 수도 있고, 사용자 db 텍스트 파일에 지정해 둘 수 있습니다. 다음은 MTU 아이템들에 대한 예시입니다.

    alias, 대파극, 3k_mtu_ancillary_weapon_line_breaker_faction alias, 봉취도, 3k_mtu_ancillary_weapon_phoenix_beak_faction alias, 이복파검, 3k_mtu_ancillary_weapon_hidden_flow_faction alias, 빈찬합, 3k_mtu_ancillary_accessory_empty_lunchpail

    무기는 HV 모드에서 온 것으로 보입니다. 빈찬합은 Wu 모드에서 카피해서 쓰는 듯…

    TheG.db.item.alias, 영자팔법, 3k_mtu_ancillary_accessory_eight_principles_of_yong TheG.db.item.alias, 비분시, 3k_mtu_ancillary_accessory_poem_of_sorrow_and_anger TheG.db.item.alias, 성관창, 3k_mtu_ancillary_weapon_comet_spear TheG.db.item.alias, 외교관, 3k_mtu_ancillary_weapon_diplomat TheG.db.item.alias, 매궁, 3k_mtu_ancillary_weapon_hawk TheG.db.item.alias, 고향의 활, 3k_mtu_ancillary_weapon_hometowns_bow TheG.db.item.alias, 애각창, 3k_mtu_ancillary_weapon_invincible TheG.db.item.alias, 거궐, 3k_mtu_ancillary_weapon_juque TheG.db.item.alias, 승사, 3k_mtu_ancillary_weapon_shengxie TheG.db.item.alias, 북풍, 3k_mtu_ancillary_weapon_wind_of_north TheG.db.item.alias, 첨광, 3k_mtu_ancillary_weapon_sharp_light

  3. MTU 아이템 키값 찾기

    아이템 키값을 알아내는 방법은 RPFM으로 MTU 모드를 열고 text 디렉토리를 보면 loc 파일들이 아이템 종류별로 잘 구분해서 정리되어 있을 겁니다. MTU 한글 에드온을 열어도 상관 없습니다.

    ceo_nodes_title_3k_mtu_ancillary_weapon_juque 앞 부분의 “ceo_nodes_title_” 부분을 잘라내면… 3k_mtu_ancillary_weapon_juque 아이템 키 값이 됩니다

    위 방법으로 아이템 키 값을 찾지 못했다면, “Wu 모드 아이템 섹션의 아이템 키 값 찾기” 부분을 참고하시기 바랍니다.

  4. 신규 등록 장수를 천명등에서 어린 나이로 소환하기

    샌드박스 1.9.8부터는 1.6.0의 기능으로 새로운 ‘spawn’ 명령을 사용하시면 됩니다. ‘spawn’ 명령은 18~50세의 성인으로 영웅을 생성합니다. 18세 확정으로 소환하고 싶다면, 샌드박스 모드 설명 페이지의 공지 사항에 있는 “스폰 나이 팩”을 활용하십시오.

    db.info 명령과 search 명령으로 확인해보시고 spawn 명령을 쓰는게 좋습니다.

    아래는 TK 1.6.0 이전에 사용한 방법에 대한 글이고, 현재도 유효하긴 합니다.

    (이전 방법) 네이버 토탈워 카페의 팁게에 있는 팁 글[cafe.naver.com]을 참고 하시기 바랍니다.

  5. 레이우스(Radious) 모드를 사용할 때의 로딩 오더

    0. Sandbox 1. Radious part II 2. Radious part I 3. Puzzle 3D 4. [WDG] Season 2 Update 5. Puzzle Illustration 6. MTU 2.6d

Wu_Kingdaissance : 장수 소환

이 색션의 내용에는 네이버 토탈워 카페의 ‘송사리씨’님의 글[cafe.naver.com]을 참고한 부분이 많습니다. 장수 관련해서는 Wu 모드를 깊이 열어본 것은 아니라 틀릴 수 있습니다.

잠깐 돌려보니 Wu 모드안에 이 섹션에 있는 장수 외에 하후씨, 장포, 조(주.邹)부인, 신비, 반봉, 국의, 사씨, 엄안 등이 있는 것 같습니다. 간자체라 제 컴에서 제대로 보이질 않네요.

  • 원본과 데이터가 같은 경우

    일러만 수정되고 데이터는 같다면 따로 등록할 필요가 없습니다.

  • 신무장인 경우

    TheG.db.add, zhen_ji, 견희, water, 3k_main_template_historical_lady_zhen_ji_hero_water TheG.db.add, zhou_cang, 주창, wood, 3k_main_template_historical_zhou_cang_hero_wood TheG.db.add, gao_lan, 고람, wood, 3k_main_template_historical_gao_lan_hero_wood TheG.db.add, wen_pin, 문빙, metal, 3k_main_template_historical_wen_pin_hero_metal TheG.db.add, yi_ji, 이적, water, 3k_main_template_historical_yi_ji_hero_water TheG.db.add, xu_sheng, 서성, fire, 3k_main_template_historical_xu_sheng_hero_fire TheG.db.add, xin_pi, 신비, water, 3k_main_template_historical_xin_pi_hero_water TheG.db.add, chen_dao, 진도, earth, 3k_main_template_historical_chen_dao_hero_earth

  • 데이터가 중복되는 신무장의 경우

    관은병의 경우 영문 이름과 한글 이름이 같지만 데이터는 다릅니다. 이럴 경우 원본의 관은병 데이터를 Chage 명령을 사용해 신무장의 정보로 덮어씁니다.

    TheG.db.change, guan_yinping, 관은병, wood, 3k_main_template_historical_lady_guan_yinping_hero_wood

  • 원본의 변형인 경우

    원본 영웅과 장수 유형만 바뀐 경우인데 모드 간의 호환성은 무시하는 거죠. Wu 사용자들이 귀찮아, 그 덕분에 이 색션을 만듭니다. 어째든, 원본 데이터와 장수 형태가 다르거나 data_key가 다른 경우 ‘change’ 명령을 사용합니다.

    신헌영 정보에서 바뀐 부분은 장수 형태이고, ‘원본 Water – 모드 earth’ 면 sub-type 만 earth로 바꿔줍니다.

    TheG.db.class, xin_xianying, earth # 신헌영, 辛憲英, 辛宪英 TheG.db.class, jiang_wei, water # 강유, 姜維, 姜维 TheG.db.class, huang_yueying, wood # 황월영, 黃月英, 黄月英 TheG.db.class, guan_yinping, wood # 관은병, 關銀屏, 关银屏 TheG.db.class, bu_zhi, wood # 보즐, 步騭, 步骘

  • 이도 저도 잘 모르겠다

    Add 명령으로 전체 정보를 입력하면 샌드박스에서 알아서 처리하게 됩니다. 시스템이 불안정하고 오류의 가능성이 있습니다.

    TheG.db.add, zhen_ji, 견희, water, 3k_main_template_historical_lady_zhen_ji_hero_water TheG.db.add, zhou_cang, 주창, wood, 3k_main_template_historical_zhou_cang_hero_wood TheG.db.add, gao_lan, 고람, wood, 3k_main_template_historical_gao_lan_hero_wood TheG.db.add, wen_pin, 문빙, metal, 3k_main_template_historical_wen_pin_hero_metal TheG.db.add, yi_ji, 이적, water, 3k_main_template_historical_yi_ji_hero_water TheG.db.add, xu_sheng, 서성, fire, 3k_main_template_historical_xu_sheng_hero_fire TheG.db.add, xin_pi, 신비, water, 3k_main_template_historical_xin_pi_hero_water TheG.db.add, chen_dao, 진도, earth, 3k_main_template_historical_chen_dao_hero_earth TheG.db.add, guan_suo, 관색, metal, 3k_main_template_historical_guan_suo_hero_metal TheG.db.add, zhong_hui, 종회, metal, 3k_main_template_historical_zhong_hui_hero_metal TheG.db.add, hao_zhao, 학소, metal, 3k_main_template_historical_hao_zhao_hero_metal TheG.db.add, du_yu, 두예, water, 3k_main_template_historical_du_yu_hero_water TheG.db.add, yang_hu, 양호, earth, 3k_main_template_historical_yang_hu_hero_earth TheG.db.add, zhang_ning, 장녕, metal, 3k_main_template_historical_lady_zhang_ning_metal TheG.db.add, wang_yi, 왕이, earth, 3k_main_template_historical_wang_yi_hero_earth TheG.db.add, lu_lingqi, 여령기, fire, 3k_main_template_historical_lady_lu_lingqi_hero_fire TheG.db.add, zhang_xingcai, 장성채, fire, 3k_main_template_historical_lady_zhang_xingcai_hero_fire TheG.db.add, ma_yunlu, 마운록, wood, 3k_main_template_historical_lady_ma_yunlu_hero_wood TheG.db.add, zhao_yu, 조구, earth, 3k_main_template_historical_lady_zhao_yu_hero_earth TheG.db.add, zhao_zhen, 조정, fire, 3k_main_template_historical_lady_zhao_zhen_hero_fire TheG.db.add, bu_lianshi, 보연사, water, 3k_main_template_historical_lady_bu_lianshi_hero_wood TheG.db.add, wu_anguo, 무안국, wood, 3k_main_template_historical_wu_anguo_hero_wood

  • Wu 모드 장수의 이름 충돌

    Wu 모드에서 바닐라에 있는 장포를 ‘스타트 포스’ 속에 새로운 영웅으로 구현하면서 발생한 현상입니다. 이 신영웅의 이름을 ‘zhang_bao’로 했는데, 천명 DLC의 장씨 형제의 ‘장보’와 같습니다.

    애초에 장포를 스타트 포스가 아닌 유니크로 만들었다면 아무 문제가 없었겠죠.

    ‘re-mapped’ { 장보(張寶) -> zhang_bao_v, dlc04_zhang_bao_veteran } ‘new hero’ { zhang_bao -> 장포(張布), main_zhang_bao_fire } ‘Zhang Bu’ { zhang_bu -> 장포(張布), main_zhang_bu_fire }

    장보의 이름과도 같게 되버려 꼬여버린 것을 위와 같이 장보를 zhang_bao_v로 키를 바꾸는 것으로 해결했습니다.

    샌드 박스는 피할 수없는 이름 충돌을 감지 할 때 속성의 원래 이름 + “_”+ 첫 글자로 새 키를 생성하여, 기존 장수의 키를 바꾸어 새로운 장수가 같은 키로 우선 순위를 가지게 합니다.

Wu_Kingdaissance : 아이템

입력창에서 ‘alias’ 명령을 사용할 수도 있고, 사용자 db 텍스트 파일에 지정해 둘 수 있습니다. 다음은 MTU 아이템들에 대한 예시입니다.

  • 악세사리 및 추종자

    기본 아이템 키워드에 “3k_main_ancillary_(accessory/follower)를 합친 데이터 키 형태입니다.

    빈찬합, 3k_main_ancillary_accessory_empty_lunchpail # 紫檀食盒 낙신부, 3k_main_ancillary_accessory_luo_shen # 洛神赋 토동격문, 3k_main_ancillary_accessory_tao_dong # 讨董檄文 – exceptional 걸강조, 3k_main_ancillary_accessory_xiang_zhao # 乞降诏 호위군, 3k_main_ancillary_follower_hu_wei # 虎卫军 길평, 3k_main_ancillary_follower_ji_ping # 吉平 이의, 3k_main_ancillary_follower_li_yi # 李意 동연, 3k_main_ancillary_follower_tong_yuan # 童淵 우길, 3k_main_ancillary_follower_yu_ji # 于吉 좌자, 3k_main_ancillary_follower_zuo_ci # 左慈

  • 무기와 보조 활

    무기와 보조 활은 아이켐 키워드에 ‘faction’을 붙인 것과 붙이지 않은 형태 2가지가 있습니다.

    흑산쌍부, 3k_main_ancillary_weapon_hei_shan_faction # 黑山双斧 – limit 없음 소호겸, 3k_main_ancillary_weapon_zhao_hu # 召虎镰 백홍검, 3k_main_ancillary_weapon_bai_hong # 白虹剑 alias, 백홍검, 3k_main_ancillary_weapon_bai_hong alias, 자전검, 3k_main_ancillary_weapon_zi_dian alias, 벽사검, 3k_main_ancillary_weapon_bi_xie_sword_faction alias, 유성검, 3k_main_ancillary_weapon_liu_xing alias, 청명검, 3k_main_ancillary_weapon_qing_ming_sword_faction alias, 백리검, 3k_main_ancillary_weapon_bai_li alias, 천자검, 3k_main_ancillary_weapon_bao_jian_faction

    제가 알아본 활에는 모두 ‘faction’이 붙어있는 형태입니다. ‘faction’이 없는 것도 있겠죠.

    锦帆弓, 3k_main_ancillary_weapon_bow_jin_fan_faction 龙舌弓, 3k_main_ancillary_weapon_bow_long_she_faction 铁胎弓, 3k_main_ancillary_weapon_bow_tie_tai_faction 震天弓, 3k_main_ancillary_weapon_bow_yan_yan_faction 河北强弓, 3k_main_ancillary_weapon_bow_he_bei_faction – exceptional 夜梅弓, 3k_main_ancillary_weapon_bow_du_jian_faction 宝雕弓, 3k_main_ancillary_weapon_bow_bao_gong_faction 竹弓, 3k_main_ancillary_weapon_bow_zhao_zhen_faction

  • 갑옷

    갑옷은 대부분 장수에게 귀속되어 있고, 하후가문의 보물 갑옷이라는 아이템이 보입니다. 특이한 데이터키를 가지고 있습니다.

    하후보갑, xiahou_ancillary_armour_heavy_armour_fire_unique

    이외에 갑옷을 제외하고 60여개 정도의 아이템이 있는 것으로 보입니다. 각 key 값 앞에 “3k_main_ancillary_” 를 붙이고, 무기나 활인 경우 뒤에 ‘faction’을 붙여보면서 ‘alias’ 명령을 통해 사용할 수 있겠습니다. 아이템 확인은 시간이 많이 걸리는 작업이라 목록만 제공합니다.

    empty_lunchpail(紫檀食盒), bai_li(百里剑), bao_jian(天子剑), bi_xie_sword(辟邪剑), mount_bao_ma(象龙), mount_han_xue(汗血), bird_spear(虎头金枪), bo_yun(拨云枪), butcher_knife(窄刃刀), di_tu(西蜀地形图), du_ren(青蛇), fa_zan(桃红发簪), fei_ji(飞戟), general_seal(大将军印), guan_dao(家传大砍刀), heptachord(七弦古琴), hu_fu(虎骑兵符), jiu_tan(酒坛), liang_tou(三尖刀), liu_xing(流星剑), lu_lingqi(凤鸣戟), luo_shen(洛神赋), ma_bian(棘马鞭), liu_xing(流星剑), lu_lingqi(凤鸣戟), luo_shen(洛神赋), ma_bian(棘马鞭), mei_fu(美妇), mei_jian(虎贲大刀), meng_de(孟德新书), mount_bao_ma(象龙), mount_han_xue(汗血), mount_jing_fan(惊帆), mount_white_beauty(照夜玉狮子), nv_shi(郿坞女侍), pan_gu(盘古巨斧), pi_pa(秦汉子), qi_ce(十二奇策), qiang_nv(羌族少女), qing_ming_sword(青冥剑), she_mao(铁脊蛇矛), shi_nv(仕女图), shi_ren(曹丕的诗友), tao_dong(讨董檄文), tie_chui(北海巨锤), tie_ji(双铁戟), yi_dai(春秋), yuan_jia(袁氏故吏), zhang_ren(雁翎枪), zhao_yu(青竹双刃), zhao_yun_spear(涯角枪), zhong_xing(中兴剑), zi_dian(紫电剑)

  • 아이템 키 값 찾아내기

    아이템 키값을 알아내는 방법은 RPFM으로 Wu 모드를 열고 text/db/ceo_nodes.loc 파일을 보시면 됩니다. 한글 에드온이 있다면 그 파일을 열어도 상관 없습니다.

    ceo_nodes_title_3k_main_ancillary_zhao_yun_spear 涯角枪 앞 부분을 잘라내면… 3k_main_ancillary_zhao_yun_spear 키 값이 됩니다

    보통은 ceo_nodes_title에 사용되는 키값과 아이템 키 값이 일치하지만, 경우에 따라서는 다를 수도 있습니다. 그런 경우에는 아이템 키 값뒤에 “_faction”을 붙여보는 것도 방법인데, 가장 확실한 방법은 그 아이템을 장착한 영웅을 소환해서 장비를 확인하고 CEO를 검사해보는 것입니다.

    summon, hero inspect, hero

    inspect 명령은 개발용 명령어로 대상 영웅이 가진 모든 CEO 값을 로그로 출력합니다.

    ceo np. 1 xp. 1 = data = “3k_main_ancillary_weapon_trident_halberd_faction” — 방천화극

    data key 값이 바로 아이템 키 값이 됩니다.

  • 테스트 용 db 텍스트 내용과 명령어 히스토리
    TheG.db.item.alias, 빈찬합, 3k_main_ancillary_accessory_empty_lunchpail TheG.db.item.alias, 백홍검, 3k_main_ancillary_weapon_bai_hong TheG.db.item.alias, 흑산쌍부, 3k_main_ancillary_weapon_hei_shan_faction TheG.db.item.alias, 낙신부, 3k_main_ancillary_accessory_luo_shen TheG.db.item.alias, 호위군, 3k_main_ancillary_follower_hu_wei TheG.db.item.alias, 하후보갑, xiahou_ancillary_armour_heavy_armour_fire_unique

    save, sandbox/input_wu.txt load, sandbox/input_wu.txt log_level, 5 top find_item, 빈찬합 steal, 한복, 빈찬합 find_item, 백홍검 give_item, player, 백홍검 give_item, player, 3k_main_ancillary_weapon_bow_bao_gong_faction give_item, player, 3k_main_ancillary_weapon_bow_jin_fan_faction find_item, 3k_main_ancillary_weapon_bow_yan_yan_faction steal, 유언, 3k_main_ancillary_weapon_bow_yan_yan_faction find_item, 3k_main_ancillary_weapon_bow_tie_tai_faction steal, 유표, 3k_main_ancillary_weapon_bow_tie_tai_faction find_item, 3k_main_ancillary_weapon_bow_long_she_faction steal, 동탁, 3k_main_ancillary_weapon_bow_long_she_faction find_item, 3k_main_ancillary_weapon_bow_du_jian_faction steal, 정강, 3k_main_ancillary_weapon_bow_du_jian_faction find_item, 3k_main_ancillary_weapon_bow_zhao_zhen_faction steal, 사섭, 3k_main_ancillary_weapon_bow_zhao_zhen_faction give_item, player, 3k_main_ancillary_accessory_xiang_zhao bottom

로그 파일

사용자 script 파일과 UI 입력창에서 로그 파일 출력을 활성화 시킬 수 있습니다.

로그 파일은 새로운 게임이나 저장된 세이브를 로드하면 처음부터 새로 로그가 시작 됩니다.

텍스트 : TheG.mod.log_to_file, true, 3 입력창 : out_log, true

로그가 활성화 되면 게임 디렉토리에 “sandbox/log_sandbox.txt” 라는 파일을 만들고 로그를 남깁니다. 라이트한 유저는 내용을 볼 일이 없겠지만, 한 번쯤 내용을 보시면 이 모드를 이해하는 데 크게 도움이 될 것입니다.

가끔 스파이도 알아낼 수도 있습니다. 누가 죽었는 지도 찾아볼 수 있습니다. 이 모드의 에러나 경고 상황을 찾아보고 버그 리포팅에 활용할 수도 있습니다.

7 give_item 3k_main_faction_cao_cao 이아 TheGathering_sendbox:Give Item 3k_main_faction_cao_cao 1 이아 8 steal taishi_ci 3k_main_ancillary_weapon_bow_taishi_ci_faction Error find_faction_ceo_key query_faction is null taishi_ci Warn Steal NOT found taishi_ci 3k_main_ancillary_weapon_bow_taishi_ci_faction 9 steal huang_zhong 3k_main_ancillary_weapon_bow_huang_zhong_faction Error find_faction_ceo_key query_faction is null huang_zhong Warn Steal NOT found huang_zhong 3k_main_ancillary_weapon_bow_huang_zhong_faction

위와 같이 ‘Error’ 가 출력되면, 그 부분을 카피해서 버그 리포트에 사용할 수 있습니다.

더 결집 : 코어 오브젝트

  • 설명

    삼탈워에서 이벤트는 게임의 심장 박동과 같습니다. 삼탈워 엔진의 이벤트를 받아 처리하고 전달하는 구성 요소가 바로 코어 오브젝트입니다.

    그 코어 오브젝트를 이 모드에서 개조했습니다.

    A, B, C, D 구성 요소가 하나의 이벤트를 기다린다면 코어는 A, B, C, D의 이벤트 처리기를 순차적으로 호출합니다. 처리기 호출 중 하나의 이벤트 처리기에서 에러가 발생하면 코어는 그 에러를 처리하고 나머지 처리기를 호출해야 합니다. 그런데, 삼탈워의 스크립트 엔진 코어는 에러가 나면 기능이 중단되고 나머지 처리기는 이벤트를 받지 못하게 되어있습니다.

    전문용어로 이벤트 예외처리(exception handling)를 삼탈워 스크립트 코어에서 하지 않습니다.

    [더 결집 : 코어 오브젝트]는 코어를 개조해서 예외처리를 합니다

    삼탈워 내부에서 가장 많이 등록하는 이벤트는 “턴 시작” 이벤트인데, 많게는 40 여개의 삼탈워 스크립트 구성 요소들이 기다립니다. 하나의 처리기에서 오류가 나서 후순위의 처리기들이 이벤트를 받지 못하게 되는 현상이 반복되면 게임 내부 데이터가 꼬이게 됩니다.

    삼탈워 모드 스크립트 로딩도 코어에서 하는데 이벤트 처리와 비슷하게 예외처리를 하지 않습니다. DLC 천명부터는 복수의 모드 스크립트 로딩과 하위 디렉토리의 루아 스크립트 로딩에 오류가 발생합니다.
    이 모드에서 코어를 개조하여 복수/하위 디렉토리의 루아 스크립트가 자연스럽게 로딩되도록 하고, 오류가 발생한 모드만 실패하고 다른 모드 스크립트들은 정상적으로 로딩되도록 합니다.

    이 모드는 모든 이벤트 예외 처리를 하지만 게임 성능에는 전혀 영향이 없습니다.

  • 중요 기능
    1. 코어 오브젝트를 개조하여 이벤트 체인이 끊기지 않게 예외 처리를 한다
    2. 코어 오브젝트의 이벤트 추가 기능을 개조해서 중복 이벤트가 등록되는 혼란을 방지한다
    3. 삼탈워 엔진의 타이머 이벤트의 예외처리도 수행한다
    4. 코어 오브젝트의 모드 스크립트 로딩 기능을 개조하여 오류가 난 모드만 로딩되지 않게 한다.
    5. 발생한 에러를 “$(game)/lua_mod_log.txt”로 출력하여, 모더들은 “/script/all_script.lua”를 내장하지 않아도 이벤트 처리 에러를 확인할 수 있다
    6. 게임 유저도 게임에 이상이 있을 때 모드들의 스크립트 에러를 “lua_mod_log.txt”에서 쉽게 확인할 수 있다

    코어 오브젝트 기능은 독립 모드 [더 결집 : 코어 오브젝트]로 만들어져 있습니다.

주의 사항

이 모드는 호환성을 매우 중요시하며, 데이터 모딩을 최소화해서 바닐라 데이터를 거의 변경하지 않는 스크립트 모드입니다. 가급적 모드 메니저에서 1번, 맨 위에 위치하는 게 좋습니다. 일반적인 경우 이 모드는 다른 데이터 모드와 데이터 충돌을 일으키거나, 일러스트 모드에서 장수 오행을 바꾼 경우외에는 호환성 충돌을 전혀 일으키지 않습니다.

비 호환 모드

바닐라 장수의 오행을 바꾸는 모드의 경우 샌드박스가 오행이 바뀐 영웅을 바닐라 형태로 소환하게 되면 일러와 3D 모델이 깨지게 됩니다. 그런 장수의 경우 샌드박스 사용자 db 텍스트 파일 속에 TheG.db.add 명령으로 해당 장수의 오행을 소환 전에 반드시 등록시켜놔야 합니다.

구식 user_script.txt 문제

토탈워 아틸라? 시절부터 사용하던 사용자 스크립트 모드 메니징 방식은

$(사용자)AppDataRoamingThe Creative AssemblyThreeKingdomsscriptsuser_script.txt

이 파일을 사용하는 구 토탈워 방식이 아직 삼탈워 내부에서 사용되고 있습니다. 또, PFM 또한 ‘모드 설치’ 명령을 사용하면 위 user_script.txt 라는 파일에 ‘내 모드’ 파일을 등록합니다.

삼탈워는 새로운 방식의 모드 메니징을 제공합니다. 하지만, 삼탈워 바닐라 스크립트 내에는 아직 구 버전의 흔적이 남아있어서 user_script.txt 가 있고 내용이 잘못되어 있거나, 등록된 모드 중 어느 하나의 모드 오류에도 ‘모든 모드’ 속의 스크립트가 작동하지 않게 만들어 버립니다.

해당되는 사용자 분들은 매우 적겠지만 삼탈워 모드 메니저 패치 1.1 전에 스크립트 포함 모드를 “movie” 형태가 아니라 “mod” 형태로 사용했던 분에게 흔적이 남아있을 수 있습니다. 저 파일이 있다면 지워버리시고, PFM을 사용하시는 분은 아예 scripts 디렉토리를 읽기 전용으로 만들어 버리는 것도 좋습니다.

모드 등록 확인

$(game)/used_mods.txt 에는 아래와 같은 내용이 있습니다.

add_working_directory “D:/SteamLibrary/steamapps/workshop/content/779340/1843327136”; mod “TheGathering_sandbox.pack”;

모드 메니저에서 샌드박스를 활성화 시키고, 게임을 실행시키면 위와같은 내용이 ‘used_mods.txt’에 생성됩니다. 모드 메니저에서 활성화만으로는 위 내용이 생기지 않습니다.

샌드박스를 활성화 시키고 게임을 실행했는 데도 위의 내용이 없다면 모드 메니저 관련 오류입니다.

모드 로딩 실패 확인

게임 디렉토리에 ‘lua_mod_log.txt’라고 삼탈워에서 기본으로 만드는 로그 파일이 있습니다. 이 로그 파일에 정상적으로 로딩이 되면 다음과 같은 내용이 들어있게 됩니다.

**************************** Loading Mods (other mods) Mod [scriptcampaignmodthegathering_sandbox.lua] loaded successfully (other mods) ****************************

위와 같이 ‘End loding’ 이 끝에 있어야 정상적 로딩이 된 것입니다. 정상적이지 않으면 어떤 문제, 혹은 이 모드의 버그로 로딩에 실패한 것입니다.

lua_mod_log.txt로 모드 에러 확인

“Failed to execute loaded mod file [TheGathering_sandbox.lua], error is: …. ”

샌드박스에 오류가 있어 로딩에 실패했을 때에는 $(game)/lua_mod_log.txt에 외와같이 샌드박스 Lua 스크립트 파일 로딩에 실패하고 에러가 무엇인지 로깅됩니다.

에러 메시지를 긁어서 리폿해주시면 원인을 쉽게 파악할 수 있게 됩니다.

샌드박스 로그로 모드 초기화 실패 확인

이 모드 입력상이나 사용자 script 텍스트에서 log를 활성화했는 데

### [ Sandbox Mod initialized. <1.4s> ] ###

로그 파일에 위 라인이 없다면, 초기화에 실패한 것입니다. 모드 충돌일 수도 있고, 이 모드의 버그일 수도 있습니다.

입력창이 멈춰서 입력이 안될 때
  1. 샌드박스 UI 문제가 발생하면 우선 샌드박스 구독 해지하시고 아래와 같이 게임 디렉토리 속의 txt 파일을 지우신 후에 샌드박스를 다시 구독하시기 바랍니다.
  2. @minkyu
    • game root/lua_frontend_mod_log 파일 삭제
    • game root/lua_mod_log 파일 삭제
    • game root/sandbox 디렉토리 삭제

  3. If @minkyu 님 방식이 작동하지 않는다면

    마지막으로 해볼 수 있는 방법은 $(User)/AppData/Roaming/The Creative Assembly/ThreeKingdoms 디렉토리를 세이브를 백업한 이후에 지우는 것입니다. 위 디렉토리를 지우면 튜토리얼이 새로 시작되는 것 외에 게임에 영향이 없습니다.

  4. @inter-object
    • 샌드박스 구독 해지
    • 삭제 $(User)AppDataRoamingThe Creative AssemblyThreeKingdomscache
    • 샌드박스 구독
    • 안된다면 세이브 파일을 백업하시고, 구독 해지 후에
    • 삭제 $(User)AppDataRoamingThe Creative AssemblyThreeKingdoms
    • 다시 구독
    • 마지막으로 게임 재설치

관도 DLC 이후 튕기거나 UI 문제가 생길 때

1.6.1에서 1.7.0으로 패치된 삼탈워 사용자의 모드 UI가 바뀌면 모드 런처의 그래픽 랜더링 캐쉬 파일 쪽에 문제가 발생하는 것 같습니다.

이 문제를 해결하기 위해선 다음과 같은 조치를 취하기 바랍니다.

  • 모드 메니저에서 구동 해지(이 때 모드의 로컬 카피도 삭제된다. 경우에 따라 확인 필요)
  • 스팀 페이지에서 재구독한다.

재구독으로 안되면

  • 스팀 앱에서 게임 무결성 검사를 한다.
    스팀 앱 -> 내 게임/라이브러리 -> 삼탈워 게임 우클릭 -> 속성 -> 로컬 파일 -> 무결성 검사

이 방법으로 안되면

  • UI 사용 모드들을 모드 메니저에서 구독 취소(로컬 카피 삭제) 후 스팀 페이지에서 재구독 한다.
  • UI 사용 모드들은 일단 비활성화 시킨다.
  • 게임을 돌려보고 이상 없으면 UI 사용 모드들을 활성화 시킨다.

이 방법으로 안되면

  • $(User)/AppData/Roaming/The Creative Assembly/ThreeKingdoms 위 디렉토리를 백업 후 날린다.

위 디렉토리를 삭제하고 삼탈워가 새로 위 디렉토리를 생성하게 해도 안되면

$(game)/data 폴더를 지우고 스팀 앱으로 무결성 테스트를 시작해서 $(game)/data 폴더를 재설치한다.

그래도 안되면…

  • 게임을 재설치 한다.

마지막으로 “카드린 모드 메니저”를 사용해 보시기 바랍니다.

카드린 모드 매니저 github 다운로드[github.com]

카드린 모드 매니저 실행 후 상단 메뉴 -> Game -> Three Kingdoms 를 선택하고 경로 설정하면 됩니다. 사용법은 구글링하십시오.

SteamSolo.com