|
오프셋 |
Player |
Unit ID |
X 좌표: 0x006CDDAC |
1 |
27618 |
Y 좌표: 0x006CDDB0 |
2 |
27618 |
[2] 트리거 사용법
맵의 1칸은 각각 가로, 세로 32pixel로 되어 있다.
따라서, Death 조건을 사용할 때 넣을 death 수치는 픽셀 단위로 넣어야 한다.
예를 들어, (2, 3) 좌표에 마우스 포인터가 들어 왔을 때를 조건으로 하고 싶다면,
Player 1 has suffered at least 32 deaths of UnitID:27618.
Player 1 has suffered at most 64 deaths of UnitID:27618.
Player 2 has suffered at least 64 deaths of UnitID:27618.
Player 2 has suffered at most 96 deaths of UnitID:27618.
이렇게 작성해야 한다.
[3] 예제맵
여기서는 마우스의 좌표를 읽어내도록 만들어져 있는데, 미리 배치해 둔 로케이션에 마우스를 가져가는 것으로 발동되도록 만들어져 있다.
(로케이션 없이 마우스의 위치가 뜨게 하는 것은 아직 모르겠음)
[4] 하다가 알게 된 것들
1. 리플레이를 저장해서 그것을 재생하면 플레이했던 장면은 볼 수 없고, 리플레이를 실행시킨 방 안에서도 맵으로 만들었을 때처럼 마우스의 위치를 인식하고 트리거를 발동시킨다.
2. 리플레이 파일로 저장될 때, 기존의 맵 파일이 MPQ압축되는데 자세한 이유는 잘 모르겠음. (L MPQ로 보면 Hash와 Seed에서 차이남)
3. 현재 화면에서의 마우스의 위치를 뜻하지, 절대적인 위치를 뜻하는 것이 아니다.
* Siient_Killer님께서 제보해 주셨습니다. 감사합니다.
4. 현재 내 마우스의 위치와 다른 플레이어의 마우스 위치가 다름으로써 발생하는 문제에 의해 멀티플레이어가 되지 않는다.
* Josh님께서 제보해 주셨습니다. 감사합니다.
5. 화면의 위치가 달라져도 마우스의 위치를 똑같이 인식하는 문제는 화면의 위치를 인식하는 EUD를 혼용하면 해결가능하다.
6.
|
첫댓글 32단위가 아니라 16단위로 하면 타일의 반만큼만 인식되나요?
그렇죠~ 근데 로케이션 크기도 16x16으로 해야 됩니다.
(X)X(Y)는 주로 크기를 표시할 때 쓰고, 위치는 (X, Y)와 같이 쓰는 게 일반적입니다.
템플러 프로텍터에 EUD기능 넣던지 EUD 편집용 SCM드래프트 2 플러그인을 만들어야겠어요.
오랜만이군요. 요즘 cmp라고 열라 허접한 프로텍터가 나와서 한심한데 템플러 프로텍터는 그렇지 않을거라 믿습니다. 혹시 EUD관련 자료가 있다면 글 올려 주세요. 외국은 이런 게 있으면 공유해서 좋은데 우리나라는 서로 잘났다고 공유를 안 해서 EUD 관련 자료가 없네요.
EUD 편집용 플러그인이라면 MPQDraft용 플러그인이 있긴 한데, 써 보질 않아서 잘은 모르겠네요. 만약 가능하다면 캠페인 에디터에서도 된다는 얘긴데..
열라허접한프로텍터........
CMP는 1.2a2라는 말로 보아 분석 안 해봐도 SP1보다 조금 못할것 같더군요. :) TP는 SP3보다 높은 수준을 지향합니다. (오타 아니예요.)
cmp는 대충 ssmu랑 수준이 비슷하고 하나 잘난 게 있다면 uu2의 허점을 파고 들었다 뿐이죠. TP는 개발 중단했다고 들었는데 알고 보니 헛소문이었군요. 스타2가 나올 마당에 프로텍터니 언프로텍터니 싸울 이유가 뭐 있나요. 그냥 지식 공유하자는 차원에서 자료 좀 공유하자는데 무슨 STR 문자열개수에 M3에서 만들었네 어쨌네 은근히 표시하면서 mapdori주소 쓰고 cmp라고 이름 속이고 MP에 쓰인 기술 훔쳐 쓰고 그런게 싫을 뿐이죠. TP는 잘은 몰라도 독자적인 기술이 있어, 저를 즐겁게 해 줄 수 있을 것 같습니다.
대충 EUDTrig 프로그램을 이용해 삽질해보니 1바이트씩 다룰 때 기준으로 0x58A34C(5808972)에다가 유닛식별번호 * 12 + 플레이어번호 - 1을 연산하면 오프셋이 나옵니다. 그러니 이걸 역으로 하면 오프셋에서 0x58A34C(5808972)를 빼준 다음, 12로 나누면 그 몫은 유닛식별번호가 되고 나머지는 플레이어번호에서 1을 뺀 값(0-based player number)이 되겠군요.
근데 MP는 뭔가요? 그리고 스타2가 나오면 전 더 즐거워질 것 같습니다. WoW Burning Crusade부터 MPQ 형식이 2GB 이상을 다룰 수 있도록 업그레이드돼서, 뭔가 MPQ 플텍거리가 많아질 것 같거든요. (그리고 언프로텍터 제작자들도 storm.dll을 갖다쓰려면 한참 더 삽질해야 하겠죠?)
음.. 제 생각이랑은 약간 다르네요. 저는 Unit ID가 1차이날 때 48달라지고 Player number가 1차이날 때 4달라졌으니 기본위치를 빼 준 값에서 4로 나누고 다시 12로 나눈 몫이 Unit ID가 되고 나머지에 1을 더한 것이 Player number로 봤는데요.. 그런데........ 번역게시판 82번 글을 보면 플레이어 번호가 12를 넘는 것들이 많고, 그것들이 1.13일때 실제로 작동되었던 것들이라 이게 어찌된 일인지는 모르겠네요. 12를 주기로 해서 플레이어 번호가 바뀌는 것일지, 아니면 EUDTrig가 잘못된 것일지, 아니면 버전이 달라서 그런 것인지........
rpgkdh님 생각이 옳은 것 같습니다. :( 제가 메모리 오프셋 세부변화를 계산이 넣지 않았나봐요.
MP는 유틸자료실에 올려져 있습니다. Unused님께서 만든 것인데 스타에디트(chk)게시판의 6편에 제가 적어 놓은, 유즈맵이 안되게 하는 밀리맵 압축 기술입니다. 스타2가 나오면 저는 워크3때 처럼 아예 그 게임을 안 하거나 아니면 플텍/언플텍에서 손 뗄 것 같네요. scenario.chk를 연구했던 것도 순전히 궁금해서 그런 것이었는데, 외국과는 달리 우리나라 사람들은 서로 잘났다고 지식을 공유하려고 하지 않았거든요. 공유하고 나면 플텍 기술이 다 쓸모없는 것 아니냐고 할 사람들도 있겠지만, 그건 언플 기술에서도 마찬가지입니다. 예를 들면 ISOM 정도가 되겠군요. 이건 제가 아주 오래 전에 한번 연구해 보기로는 일부밖엔 모르겠더군요
아 그 MP였군요. Unused님께 직접 말씀까지 들었는데 왜이러지.. 그런데 MPQ 플텍은 공유하면 쓸모없어진다더군요. :)