Measures.dbt 파일에 ms_yCheatXP.lua 파일을 등록을 시킴으로 인해서 이제 스크립트 컴맨드는 더길드2에 등록이 되었습니다. 하지만 이렇게 한다고 해서 더길드2에서 해당 스크립트를 사용할 수 있는 것은 아닙니다. MeasureToObjects.dbt 파일에 이 스크립트 컴맨드를 등록시켜주어야 비로서 게임에서 스크립트를 사용할 수 있게 됩니다. 이제는 MeasureToObjects.dbt 파일에 이 스크립트 컴맨드를 등록시키는 방법을 보도록 하겠습니다..
역시 MeasureToObjects.dbt 파일은 ww321in 님께서 설명을 해 주셨습니다.. 하지만 한 번 더 짚고 넘어가겠습니다.. ^^;
"id" INT : 역시 고유번호입니다. 여기 역시 번호가 중첩되어서는 안됩니다.
"measureid" INT : Object로 만들 Measure의 고유번호입니다.
"selectionmode" INT : 이런게 있었네요. 잘 모르겠군요.
"targetfilter" INT : 호감도와 같이 컴맨드의 대상이 있을때에 그 대상에 대한 필터링을 할 수 있습니다. 필터링 정보는 DB 폴더 안에 filter.dbt 파일에 있습니다.
"objectfilter" INT : 컴맨드를 행하는 주체 즉 사용자에 대한 필터링을 할 수가 있습니다. 필터링 정보는 DB 폴더 안에 filter.dbt 파일에 있습니다.
"object" INT : 사용자의 조건 설정합니다. 사용자에 대한 구체적인 정보는 DB 폴더 안의 MeasureObjects.dbt 파일에 정의되어 있습니다. 내용은 아래와 같습니다.
0 "None"
1 "Sim"
2 "Building"
3 "Cart"
4 "Position"
5 "Ship"
6 "DynastySim"
7 "Vehicle"
8 "Resource"
9 "Office"
10 "Squad"
99 "All"
위의 내용들 중에서 1번 "Sim"과 6번 "DynastySim"이 다른점은, 1번은 노동자들이고 6번은 가문이 있는 집안의 심들입니다.
"mouseicon" STRING : 호감도처럼 대상이 있을 때, 대상을 선택하는 동안에 뜰 마우스 아이콘입니다.
"targets" LIST : 호감도와 같이 대상이 있을 때, 대상의 조건을 설정합니다. 대상은 사용자와 같이 MeasureObjects.dbt에서 선택을 합니다.
"targetflag" STRING : 이 부분에 "MEASUREINIT_SELECTION" 이라는 flag가 걸리는 경우가 있습니다. 이 때에는 targets에 대상이 선택되어 있지 않더라도 스크립트 내에 대상을 선택하는 스크립트 명령어를 넣어서 임의로 대상을 선택하도록 하는 경우가 있습니다.
"useinstantmeasure" INT : 분석을 해 보아야 할 듯 하네요.
"instantmeasurefilter" INT : 역시 분석을 해 보아야 할 듯 합니다.
이제 ms_yCheatXP 에서 어떻게 적용이 되었는지를 보실까요?
"id" INT : 29010
"measureid" INT : 29010
"selectionmode" INT : 0
"targetfilter" INT : 0
"objectfilter" INT : 0
"object" INT : 6
"mouseicon" STRING : ""
"targets" LIST : ()
"targetflag" STRING : ""
"useinstantmeasure" INT : 0
"instantmeasurefilter" INT : 0
먼저 id에 고유번호를 역시 다른 모드들과 확장팩의 번호와 겹치지 않게 뒷자리로 했습니다. 또 Measures.dbt에 등록되어 컴맨드와 연관되도록 같은 번호를 썼습니다.
두 번째 measureid는 이 object에 연계시킬 Measures.dbt에 등록되어 있는 컴맨드의 고유번호를 적어줍니다. 우리가 등록한 ms_yCheatXP.lua 파일의 고유 등록번호가 29010번이었기 때문에 이 곳에는 29010을 적어줍니다.
이 명령어는 따로 대상이 없기 때문에 targetfilter와 targets등은 따로 설정할 필요가 없습니다. 모두 0으로 채우시던지 아니면 공란으로 둡니다.
object 는 두 가지를 쓸겁니다. Dynasty Sim들을 위해서는 6을 그리고 일반 Sim들을 위해서는 1을 쓸겁니다. 그래서 게임상의 모든 Sim들이 이 명령어를 사용할 수 있도록 하려고 합니다. 만일 이 대상을 플레이어 캐릭터로만 한정하고 싶다면 objectfilter에는 10을 그리고 object에는 6을 적어주시면 됩니다.
자 이제 MeasureToObjects.dbt 파일에 들어갈 최종적은 형식을 보도록 하지요. 역시 위의 선택된 부분을 공란으로 구분하면서 한 줄로 쭈욱 적어주시면 됩니다. 줄이 끝나는 곳에서는 반드시 | 로 마쳐주시는 것 잊지 마시고요.
29010 29010 0 0 0 6 "" () "" 0 0 |
29011 29010 0 0 0 1 "" () "" 0 0 |
위 의 두 줄을 MeasureToObjects.dbt 파일의 제일 밑에 복사해 넣으시면 되겠네요. 줄을 두 줄은 만든 것은 6번째 항목의 사용자를 일반 Sim과 Dynasty Sim 두 종류의 사용자를 모두 다 등록하기 위해서 입니다. 맨 앞에 두 줄의 id 번호가 다른 것과 그 뒤의 measure id 번호가 같은 것에 주의해 주세요.
P.S.: 더 길드 2에 대해 더 자세하고 다양한 정보를 얻기 원하시면 네이버의 더길드 카페(http://cafe.naver.com/theguildz2)를 방문해 보세요.
'800 컴퓨터 게임 > 803 더길드2 모드 강좌란' 카테고리의 다른 글
모든 능력치(abilities)에 할당된 impacts들 (0) | 2011.05.10 |
---|---|
중급 스크립트 강좌 - 여러 파일에 소스 분할하기 (0) | 2011.05.10 |
중급 스크립트 강좌 - 함수에서 다른 함수 불러오기 (0) | 2011.05.10 |
경험치 올리기 모드 강좌 - MeasureType.dbt 및 기타 (0) | 2011.05.10 |
경험치 올리기 모드 강좌 - Text.dbt (0) | 2011.05.10 |
경험치 올리기 모드 강좌 - Measures.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 |