11. 랑그릿사2 아이템 데이터

랑그릿사2 PC판의 아이템 이름과 설명에 대해서는 5번 글에서 살펴봤습니다.

ITEM.DAT 파일을 살펴보면, 아이템의 순서가 다음과 같음을 알 수 있습니다.

1. 나이프
2. 워 해머
3. 그레이트 소드
4. 완드
5. 플레임 랜스
6. 데빌 액스
7. D-슬레이어
8. 랑그릿사
9. 랑그릿사
10. 철 아령
11. 메사이얀 소드
12. 오브
13. 홀리 로드
14. 홀리 로드
15. 다크 로드
16. 롱 보우
17. 아바 레스트
18. 알하자드
19. 알하자드
20. 오딘의 방패
21. 스몰 실드
22. 라지 실드
23. 체인 메일
24. 플레이트아머
25. 아절트 슈트
26. 로브
27. 드래곤 스케일
28. 미라쥬 로브
29. 아뮬렛
30. 크로스
31. 넥크리스
32. 스피드 부츠
33. 크라운
34. 그레이프 닐
35. 룬스톤 

랑그릿사, 알하자드는 2개씩 있는데, 8번은 "봉인된 랑그릿사"이고 18번은 "봉인된 알하자드"입니다.
(그런데 홀리 로드는 왜 2개(13번과 14번)가 있는지는 모르겠습니다.)

아이템 데이터는 메모리 주소 00_44_15_30 (헥스에디터 기준 00_04_03_30) 에 있습니다.
아이템이 총 35개가 있고 아이템 하나당 16바이트씩 정보가 있으므로 총 35 x 16바이트 = 560바이트가 있습니다.
헥스에디터로 langpc2.exe를 열어봅시다.

Offset (h)
00000000 : 00 00 01 00  FF FF FF FF  FF FF FF FF  FF FF FF FF  (1. 나이프)
00000010 : 00 00 02 00  FF FF FF FF  FF FF FF FF  FF FF FF FF  (2. 워 해머)
00000020 : 00 00 04 00  FF FF FF FF  FF FF FF FF  FF FF FF FF  (3. 그레이트 소드)
00000030 : 06 00 02 00  07 00 01 00  FF FF FF FF  FF FF FF FF  (4. 완드)
...

하나의 아이템은 최소 0개 최대 4개의 보정치를 가질 수 있습니다.
보정치 하나당 4바이트를 사용해서 정의합니다.
보정치가 없다면 데이터는 FF FF FF FF 로 채워집니다.
예를 들어, 나이프의 첫번째 보정치는 "00 00 01 00"으로 정의돼있습니다.
나머지 데이터는 FF FF FF FF 이므로 보정치는 딱 1개만 존재합니다.
"00 00 01 00"에서 첫번째 바이트는 00이며 00은 AT에 해당됩니다. 세번째 바이트는 01이며 숫자 그대로 +1에 해당됩니다. 즉, 나이프의 보정치는 AT +1 입니다.
그레이트 소드에 대해서도 해석해보면, 우선 보정치는 2개가 존재하며, "06 00 02 00"에서 첫번째 바이트 06은 마법사거리를 의미하므로, 첫번째 보정치는 마법사거리 +2에 해당되고, "07 00 01 00"에서 첫번째 바이트 07은 마법데미지를 의미하므로, 두번째 보정치는 마법데미지 +1에 해당됩니다.
첫번째 바이트는 00부터 09까지 의미가 있으며 각각 다음과 같이 해석합니다.

00 : AT
01 : DF
02 : MV
03 : 지휘범위
04 : A
05 : D
06 : 마법사거리
07 : 마법데미지
08 : MDF(마법내성)
09 : 소환수

(그 밖의 특수효과(룬스톤의 클래스 초기화 효과, 오브의 MP 2배 효과, 메사이어 소드의 획득 경험치 2배, 롱 보우와 아베리스트의 공격범위 증가 효과)는 아마도 프로그램 내에 하드 코딩된 듯 합니다.)
세번째 바이트는 숫자 그대로 해석하면 되지만, 2의 보수 형태로 음수를 나타냅니다. (즉, FF는 -1을 의미하고, FE는 -2를 의미하고, FD는 -3을 의미하고, ...)
단, 첫번째 바이트가 09(소환수)인 경우는 세번째 바이트는 소환수의 종류를 의미합니다. 소환수는 다음과 같이 해석됩니다.

00 : 발키리
01 : 프레이어
02 : 화이트 드래곤
03 : 사라만다
04 : 아이언 골렘
05 : 데몬 로드
06 : 슬레이프닐
07 : 펜릴
08 : 아니키
09 : 빌더

댓글

글 목록