워크래프트3 맵을 수정하는 원리는 '빼고 수정하고 넣는다'로 통일된다.
어떻게 빼고, 어떻게 수정하고, 어떻게 넣느냐에 따라 그 방법이 갈릴 뿐이다.
여기서는 일반적으로 쓰이던 3가지 방법에 대해 설명하겠다.
일반적으로 쓰이던 방법이 있다면, 당연히 한 가지만으로 하는 방법도 있다.
그러나 여기서는 예전에 쓰이던 방법부터 설명한다. 그래야 지금 쓰이는 것보다 더 나은 것을 찾을 수 있지 않겠는가.
여기에 소개되는 툴은 차후에 자료실로 올린다. 그 전에 구하고 싶다면 구글등에서 검색해보길 바란다.
--------------------------------------------------------------------------------
이 방법으로는 일부맵에만 적용할 수 있다. 그 이유는 여기서 사용할 방법에서 찾을 수 있다.
1. Zoid Unprotect로 사본 맵을 강제로 연다.
2. 기본 트리거를 삭제한다.
3. 맵을 원하는대로 수정하고 저장한다.
4. 원본맵에서 수정하려는 파일을 추출한다. (스크립트는 war3map.j, 문자열은 war3map.wts 등)
5. 스크립트와 문자열은 메모장에서 편집할 수 있다.
6. 그림파일인 blp를 편집하려면 blp2tga 변환기와 포토샵등의 프로그램이 필요하다.
7. 수정이 끝난 후, 사본 맵에 수정했던 파일을 삽입한다.
Zoid Unprotect를 사용하여 사본 맵을 여는 방식을 취하고 있기 때문이다.
따라서, ZU로 열지 못할 경우엔 1번조차 따라할 수 없게 된다.
--------------------------------------------------------------------------------
0. MPQ Master(이하 QM)와 MPQ Recover(이하 QR)를 받는다.
1. QR을 열고 오른쪽 위의 열린폴더 아이콘을 클릭하여 맵을 불러온다.
- Add List를 눌러 완전한 목록파일로 만들려고 하는 파일을 추가한다.
- Brute Force를 눌러 기본 목록파일을 추출한다.
- Scan을 눌러 추가 목록파일을 추출한다.
- Deep MPQ scanning에 체크하고 다시 Scan을 눌러 최종 목록파일을 추출한다.
- Save List를 눌러 목록파일을 저장한다.
2. QM을 열고 QR에서 저장한 목록파일을 사용하여 맵을 연다.
3. 모든 파일을 추출한다.
4. 원하는 파일을 수정한다.
- 스크립트는 war3map.j나 scripts\war3map.j에, 문자열은 war3map.wts에 있으며 편집은 메모장으로 한다.
- 그림파일인 blp파일은 tga로 변환한뒤 포토샵 등으로 편집한다.
5. 월드에디터로 새 맵을 만든다.
- 불러오기 매니저를 열고 추출했던 모든 파일을 삽입한다.
6. 삽입된 파일을 원본맵과 같은 경로로 수정한다.
이 방법에는 허점이 있다.
QR을 통해 완전한 목록을 추출할 수 없을 경우엔 원본과 똑같은 맵일 수 없다.
불러오기 매니저에서 수정해야할 경로를 모르기 때문이다.
(추가)
원본이름을 찾는 MPQ에디터도 있으나, 그 정확한 이름을 찾아내는 데에는 상당한 시간이 걸린다.
또한, QR은 다른 파일로부터 맵에 사용된 파일명을 찾는 방식을 사용하고 있기 때문에,
QR에서 찾을 수 없었던 파일의 이름은 맵에서 사용하지 않았으므로, 확장자만 알고 있다면 맘대로 수정해도 상관없다.
--------------------------------------------------------------------------------
준비물: 도타맵, MPQ에디터(이하 MPQ), 목록파일
1. 준비됐다면, MPQ로 목록파일을 사용하여 도타맵을 연다.
2. Scripts폴더에 war3map.j파일이 존재하는데, 이 파일의 경로를 바꾼다.
Scripts\war3map.j → war3map.j
사용하는 MPQ에디터에 따라 경로를 바로 수정할 수도 있고 그렇지 않기도 하다.
바로 수정할 수 없는 경우라면, 저 war3map.j를 추출한 뒤 재삽입하는 번거로움이 있다.
3. 기본 상태인 war3mapunits.doo와 war3map.w3i가 필요하다.
이 파일은
월드에디터에서 새 맵을 만들어 MPQ로 추출한 다음, 도타맵에 재삽입한다.
만약 많은 파일을 수정하고자 한다면, (attributes)를 삭제해야 게임에서 튕기는 것을 막을 수 있다.
여기서 war3mapunits.doo와 war3map.w3i를 재삽입하는 것은 월드에디터에서 맵을 오류없이 열 수 있게 한다.
(참고: 타일셋을 바꾸려면 w3i를 추출하기 전에, 지형에 관한 파일도 추출해야 한다.)
4. 되었다면, 맵이 열릴것이다. 트리거를 확인해보면 스크립트 상태로 존재한다.
이는 war3map.j는 정상적이나 트리거 정보를 담고 있는 war3map.wtg파일이 삭제되었음을 뜻한다.
따라서, 트리거를 수정하려면 j파일을 직접 수정하든가, j파일을 wtg로 변환한뒤 에디터에서 수정해야 한다.
여기서는 j파일을 직접 수정하는 방법을 취한다.
5. war3map.j를 메모장으로 열고 chatevent를 검색하자.
call TriggerRegisterPlayerChatEvent(aaa,AL[1],"TRIGSTR_9991",true)등을 찾을 수 있을 것이다.
→ 문자열 9991번에 해당하는 내용을 입력할 때 발동한다' 라는 조건이다.
→ 그러면 문자열 9991번은 어디에 나오나? war3map.wts에서 찾는다. wts는 Warcraft Trigger String이다.
→ 실행부에서는 조건을 만족했을때 9990번 문자열을 화면에 표시하며 100만골드를 주는 등의 스크립트로 이루어져 있다.
원하는대로 수정한다.
정상적으로 수정하였다면, 게임에서 오류없이 열릴것이다.
(참고: MPQ작업을 할때, 파일을 삭제하거나 재삽입할 때는 항상 Compact를 사용해야 한다.)
6. 스크립트를 어떻게 편집해야 할지 모르겠다면, 아래 링크로 이동하여 그 방법을 각자 알아보기로 한다.
http://world-editor-tutorials.thehelper.net/cat_usersubmit.php?view=21329
--------------------------------------------------------------------------------