soma0sd

코딩 & 과학 & 교육

mount & blade warband 모드 개발: WRECK, 향상된 컴파일러 키트

반응형

어제는 모듈 시스템의 구조와 기능, 절차를 알아보고 모듈 시스템 작업 이후에 모드를 완성하기 위해 무엇이 더 필요한지를 살펴봤습니다. 오늘은 모듈 시스템의 비효율을 개선한 유저 컴파일러에 대해 알아봅니다.

W.R.E.C.K

테일월드 포럼에 올라온 이 컴파일러는 유명 모드를 개발한 사람들이 추천하는 컴파일러입니다. 테일월드가 배포하는 기본 모듈 시스템은 배치파일(build_module.bat)이 process_파일을 정해진 순서대로 실행하여 결과물을 출력하는 방식입니다.

향상된 컴파일러 키트 W.R.E.C.K(Warband Refined & Enhanced Compiler Kit)는 작업속도의 향상과 더불어 파일 시스템의 개선과 플러그인 시스템의 도입 등 추가기능을 붙였습니다.

설치

포럼에서 키트를 다운로드 받은 후, 압축을 해제합니다. 압축을 해제한 디렉토리 안에 copy_n_forget라는 폴더가 있는데, 폴더 안의 내용물을 모듈 시스템으로 옮깁니다.

다음으로 module_info.py를 제외한 모든 module_*.py파일을 열어 아래 코드를 스크립트 최상단에 추가합니다. 단 # -*- coding: cp1254 -*-과 같은 인코딩을 지정하는 내용이 문서의 제일 위에 있는 경우에는 그 아랫줄에 붙여넣습니다.

from compiler import *

여기까지 끝났다면 이제 build_module.batprocess_로 시작하는 모든 파일들은 쓸 일이 없습니다.

플러그인 시스템

plugin_{이름}.py과 같은 형태의 파일을 만들어 플러그인으로 활용할 수 있습니다. 플러그인은 다음 내용으로 시작합니다.

from compiler import *
register_plugin(__name__)

이제 모듈 시스템에서 사용하는 변수, 예를 들어 플러그인 파일에서 부대 정보를 의미하는 module_troops.pytroops를 불러오면 부대를 추가할 수 있습니다.

troops = [
    ["npc_new_1","New Companion","New Companion",tf_hero|tf_unmoveable_in_party_window, 0, reserved,  fac_commoners,[itm_leather_jerkin,itm_nomad_boots, itm_sword_medieval_a],
   str_10|agi_9|int_13|cha_10|level(10),wp(110),knows_warrior_npc| knows_weapon_master_2|knows_power_strike_2|knows_riding_2|knows_athletics_2|
   knows_power_throw_2|knows_first_aid_1|knows_surgery_1|knows_tactics_2|knows_leadership_2,
   0x000000057f1074002c75c6a8a58ad72e00000000001e1a890000000000000000]
]

종속성

플러그인이 다른 플러그인의 데이터를 참조할 때,

from compiler import *
register_plugin(__name__)
require_plugin("plugin_require")

와 같은 형태로 종속성을 표시할 수 있습니다. 여러 플러그인을 참조할 경우에는

from compiler import *
register_plugin(__name__)
require_plugin("plugin_basic_math", "plugin_advanced_math")

처럼 콤마(,)를 사용하여 참조 플러그인을 표시할 수 있습니다.

반응형
태그:

댓글

End of content

No more pages to load