ㅇ의 휴식터/연구

Atrox, Parameter 분석

wnsrn3436 2016. 6. 13. 02:17


아트록스의 파라미터 파일은 SPM에서 LHA 압축을 풀면 나오는 맵데이터(MAPDATA) 파일에서 얻을 수 있다. 원래 아트록스에서 파라미터는 유닛의 능력치를 의미하지만, 아트록스의 맵에디터에서 보이듯 능력치, 업그레이드, 특수능력의 한 쌍으로 이루어졌다고도 볼 수 있다. 그래서 이 포스트에서도 업그레이드와 특수능력의 분석까지 다루게 되었다.


먼저, 맵데이터 파일에서 파라미터 구조는 다음과 같다.


플레이어1 유닛 능력치

플레이어1 업그레이드

플레이어1 특수능력

...

플레이어8 유닛 능력치

플레이어8 업그레이드

플레이어8 특수능력


파라미터로 가기 위해서는 플레이어1 유닛 능력치의 주소를 알아내야 하는데, 아직 그것까지는 분석하지 않았고(이것을 얻기 위해서는 모든 맵데이터의 정보를 알아내야 할 것 같은 느낌이라서 포기했다) 급한 대로 SPM상의 플레이어1 엔지니어의 이름을 검색하면 해당 주소를 구할 수 있다.


유닛 능력치의 유닛별 크기는 0xC2byte이며, 구조는 다음과 같다. ([]는 byte 크기를 나타냄)


[4]기본설정 [4]기본이름 [100]이름 [4]체력 [4]장갑 [4]방어력 [2]시간 [2]뮤온 [2]쿼크 [20]대지공격 [4]대지기본 [4]대지추가 [4]대지히트 [20]대공공격 [4]대공기본 [4]대공추가 [4]대공히트 [4]맵에등장

//아트록스의 유닛은 총 123개이니까 유닛 능력치의 총 크기는 0x5D36byte가 된다. 이다음 바이트부터는 업그레이드의 주소이다.


업그레이드의 항목별 크기는 0x20byte이며, 구조는 다음과 같다.


[4]기본설정대로한다 [4]시간기본 [4]시간추가 [4]뮤온기본 [4]뮤온추가 [4]쿼크기본 [4]쿼크추가 [4]개발가능하다

//업그레이드의 개수는 총 58개이니까 총 크기는 0x740byte가 된다. 그다음 바이트부터는 특수능력의 주소이다.


특수능력의 항목별 크기는 0x24byte이며, 구조는 다음과 같다.


[4]기본설정대로한다 [4]에너지소모 효과/데미지/속도 [4]증가치 [4]사정거리 [4]효과범위 [4]유효시간 [4]단계적용시간 [4]사용한다

//이중, 유효시간과 단계적용시간은 소수 작성이 가능한 float로 기록되어 있다. 특수능력은 총 32개이며 그러므로 특수능력의 총 크기는 0x480byte가 된다.

Comments