자 이제 스크립트 파일은 만들어졌습니다. 앞에 작성한 스크립트 파일 ms_yCheatXP.lua 파일을 C:\Program Files\The Guild 2 - Pirates of the European Seas\Scripts\Measures 폴더에 카피해 넣는 것 까지 해서 스크립트 파일의 설치까지 다 마쳤습니다.. 그런데.. 이 스크립트 파일이 C:\Program Files\The Guild 2 - Pirates of the European Seas\Scripts\Measures 폴더에 있는 것 만으로 더길드2에서 이 스크립트 파일을 인식을 할까요?? 대답은 전혀 아니올시다 입니다. 이렇게 만들어진 스크립트 파일이 C:\Program Files\The Guild 2 - Pirates of the European Seas\Scripts\Measures 폴더에 존재하는 것과 더길드2 게임이 이 스크립트를 인식하고 사용자가 이 스크립트 파일을 더길드2 게임에서 사용하도록 준비하는 것과는 사실 아무런 상관이 업습니다. 이렇게 만들어진 스크립트 파일은 사용자가 사용할 수 있도록 더길드2 게임에 등록을 해 주어야 합니다..
스크립트를 게임 내에서 사용할 수 있도록 해 주기 위해서는 몇 가지 db 파일들을 만져 주어야 합니다. Measures.dbt 파일과 MeasureToObject.dbt 파일 그리고 Text.dbt 파일등 이렇게 세개의 파일이 그렇습니다. 각각의 파일들이 어떠한 역할을 하는지를 한 번 살펴보도록 하지요..
먼저 Measures.dbt 파일은 더길드2 컴맨드들의 집합 같은 역할을 합니다. 더길드2에서 사용되는 거의 모든 컴맨드들이 먼저 이 Measures.dbt 파일에 등록이 되어야 합니다. 작성된 스크립트를 더길드2가 알아먹을 수 있도록 하기 위해서는 역시 Measures.dbt 파일에 먼저 등록을 해야 합니다. 이 파일을 메모장 등으로 열어서 보시면 아시겠지만 더길드2에서 동작하는 거의 모든 종류의 컴맨드들이 이 Measures.dbt 파일에 등록이 되어 있습니다..
다음 MeasureToObject.dbt 파일은 Measures.dbt 파일에 등록되어 있는 컴맨드들을 조금 더 구체화 시켜서 사용자가 사용할 수 있는 형태로 체계화 합니다.
마지막으로 Text.dbt 파일은 게임 내에서 사용하는 모든 Text의 정보들이 들어가 있습니다. 만들어 놓은 스크립트에 사용할 몇 가지 타이틀과 설명 등의 텍스트를 이 파일에 등록을 할겁니다.. 그럼 하나 하나 조금 더 자세하게 살펴보도록 하지요.
먼저 Measures.dbt 파일에 대한 설명입니다. 밑에 ww321in 님께서 올리신 자료가 있는데 몇 가지 더 보충해서 제가 다시 설명을 하겠습니다.
"id" INT : 번호입니다. 이 번호가 각각의 Measure 또는 컴맨드의 고유 인식번호가 됩니다. 따라서 이 번호는 중첩되어서는 안됩니다. 모드를 깔아서 혹시나 실행이 되지 않는 기능이 있다거나 한다면 거의 100% 이 번호의 중첩 문제입니다. 만일 중간에 중첩되는 번호가 있다면 먼저 나온 컴맨드는 무시되고 나중에 나온 컴맨드가 활성화 됩니다. 이 곳에 정의되는 번호는 나중에 MeasureToObject.dbt 파일에서도 중요하게 사용이 됩니다.
"script" STRING : 등록할 스크립트의 파일 이름입니다. 이곳에 스크립트의 파일 이름을 명시함으로 인해서 비로서 스크립트가 더길드2에 정식 명령으로 등록이 되게 됩니다.
"classscript" STRING : 별 의미 없습니다. (Measures.dbt 파일에서 사용된 경우를 보지 못했습니다.)
"name" STRING : Text.dbt 에서 사용할 스크립트의 이름입니다.
"interruptvalue" INT : 동시에 두 가지 이상의 명령이 내려졌을 때 우선순위를 결정하는 듯 합니다. 이 곳의 값이 클수록 우선순위가 큰듯 합니다. 99로 설정합니다.
"icon_path" STRING : 컴맨드에 쓰일 아이콘을 설정합니다.
"runtype" INT : 컴맨드가 외부 스크립트인지 아니면 GuildII.exe 파일에 내장되어 있는 컴맨드인지를 결정하는듯 합니다. 외부 스크립트는 0으로 설정합니다.
"type" INT : 이 곳은 아이콘의 위치를 결정을 합니다. 위치 정보는 MeasureType.dbt 파일에 있습니다.
"basexp" INT : 이 컴맨드가 실행 되었을때 얻는 경험치를 설정합니다. 향수를 뿌리거나 재촉을 했을 때 얻는 경험치들이 이 곳에서 설정이 됩니다.
"panel" STRING : 잘 모르겠네요.
"panelparam" STRING : 역시 잘 모르겠네요.
"guiorder" INT : 아이콘의 정렬 순서를 정해줍니다.
"repeat_time" INT : 컴맨드가 사용된 후 다음 시간까지의 대기 시간입니다. 쿨타임이라고도 하지요. 이 곳의 1은 실제 게임에서의 1시간과 같습니다. 24일 경우는 하루가 되겠지요.
"duration" INT : 컴맨드의 지속시간입니다. 역시 이 곳의 1은 게임에서의 1시간과 같습니다.
"rangeeffect" STRING : 범위용 컴맨드 사용시의 반경을 표시하는 파일을 지정한답니다.
"rangeradius" INT : 범위용 컴맨드 사용시의 반경의 크기를 결정한답니다.
"notargetattach" INT : 알려진바가 없습니다.
아래는 ms_yCheatXP.lua 스크립트 파일을 위한 각각의 값들입니다.
"id" INT : 29010
"script" STRING : "ms_ycheatXP.lua"
"classscript" STRING : "-"
"name" STRING : "CheatXP"
"interruptvalue" INT : 55
"icon_path" STRING : "hud/buttons/btn_220_Train.tga"
"runtype" INT : 0
"type" INT : 15
"basexp" INT : 20
"panel" STRING : ""
"panelparam" STRING : ""
"guiorder" INT : 1
"repeat_time" INT : 0
"duration" INT : 0
"rangeeffect" STRING : "none"
"rangeradius" INT : 0
"notargetattach" INT : 0
먼 저 id는 유럽해의 해적 뿐 아니라 BttR이나 SE, Venice까지 고려해서 최대한 다른 게임들과 겹치지 않을 숫자로 결정을 했습니다. 유럽해의 해적이 11083에서 끝나는 것을 감안해서 뒷자리 숫자인 29000번대로 정했습니다. 이 숫자가 대략 35000 이상이 되면 더길드2가 인식을 하지 못하니 너무 뒷자리는 선택하지 않는게 좋을 것 같습니다. 이 번호는 나중에 MeasureToObject.dbt 파일에서도 중요하게 사용됩니다.
두 번째 script 이름은 파일명인 ms_yCheatXP.lua 파일을 적어주었습니다.
네 번째 name은 Text.dbt 파일에서 쓸 것입니다. CheatXP로 정했습니다.
여섯 번째 icon은 새로 만들어 넣기는 좀 힘이 들겠지요. 기존에 있는 아이콘들 중에서 훈련 아이콘을 그냥 사용했습니다.
여 덟번째 type의 경우는 임의로 아무 숫자나 적어 넣는 것이 아니라 MeasureType.dbt 파일에 있는 줄번호를 넣어 주는 것입니다. 여기에서는 제가 임의로 MeasureType.dbt 파일에 15번 항목을 만들어서 넣었습니다. MeasureType.dbt 파일에 대한 내용은 나중에 기회가 되면 언급을 하도록 하겠습니다. 그리 어려운 것은 아니니 한 번씩 뜯어보시기 바랍니다.
기타 다른 부분들은 크게 어려울 것이 없을 것 같습니다. Measures.dbt 파일은 쿨타임과 컴맨드 지속시간때문에 관심들을 가지실텐데 repeat_time 부분과 duration 부분만 살짝 손을 보면 쿨타임을 없앨수도 있고 만들수도 있습니다.
이제는 위의 내용을 Measures.dbt 파일의 포맷으로 변경해서 등록해 주어야 할텐데.. Measures.dbt 파일의 포맷은 위의 내용들을 그냥 한 줄로 적어주면 됩니다. 항목과 항목은 한 칸씩만 떨어트려주면 되고요.. 아래의 내용이 완성된 Measures.dbt 등록형식입니다. 단 오른쪽 맨 마지막 부분에는 | 를 반드시 넣어주셔야 합니다.
29010 "ms_ycheatXP.lua" "-" "CheatXP" 55 "hud/buttons/btn_220_Train.tga" 0 15 20 "" "" 1 0 0 "none" 0 0 |
위와 같이 해서 Measures.dbt 파일의 제일 밑에 줄에 추가해 주시면 되겠습니다. 그러면 Measures.dbt 파일의 등록은 마무리가 되었군요.
P.S.: 더 길드 2에 대해 더 자세하고 다양한 정보를 얻기 원하시면 네이버의 더길드 카페(http://cafe.naver.com/theguildz2)를 방문해 보세요.
'800 컴퓨터 게임 > 803 더길드2 모드 강좌란' 카테고리의 다른 글
중급 스크립트 강좌 - 여러 파일에 소스 분할하기 (0) | 2011.05.10 |
---|---|
중급 스크립트 강좌 - 함수에서 다른 함수 불러오기 (0) | 2011.05.10 |
경험치 올리기 모드 강좌 - MeasureType.dbt 및 기타 (0) | 2011.05.10 |
경험치 올리기 모드 강좌 - Text.dbt (0) | 2011.05.10 |
경험치 올리기 모드 강좌 - MeasureToObjects.dbt (0) | 2011.05.10 |
경험치 올리기 모드 강좌 - 소스 스크립트 분석 5 (0) | 2011.05.10 |
경험치 올리기 모드 강좌 - 소스 스크립트 분석 4 (0) | 2011.05.10 |
경험치 올리기 모드 강좌 - 소스 스크립트 분석 3 (0) | 2011.05.10 |
경험치 올리기 모드 강좌 - 소스 스크립트 분석 2 (0) | 2011.05.10 |
경험치 올리기 모드 강좌 - 소스 스크립트 분석 1 (0) | 2011.05.10 |