도구: 분류, 사용 효과, 측량, 항해 용품, 보물 지도
도구 100개의 표와 "사용" 명령의 처리 코드를 정리했습니다. 표시 방법은 index.md를 따릅니다.
상륙해서 보물을 파내는 규칙은 landing.md, 무기·갑옷 수치가 쓰이는 결투 공식은 combat.md에 있습니다.
1. 도구 기록
확인됨[직접] (DATA1.LZW 15번 엔트리 = 세이브 슬롯 0x7514부터 26바이트 × 100, 기록 그룹 11)
| 오프셋 | 크기 | 내용 |
|---|---|---|
+0x00 | 21 | 이름(CP949, NUL로 끝남) |
+0x15 | 1 | 그림 번호(KAO.LZW 128 + 85 + n) |
+0x16 | 2 | 가격 ÷ 100 |
+0x18 | 1 | 성능(무기 공격력, 갑옷 방어력, 측량기 눈금 등). 보물 지도는 새 게임 때 이 값이 숨긴 발견물 번호로 바뀜 |
+0x19 | 1 | 하위 4비트 = 분류 |
설명은 ITEM.MES에 124바이트씩 있습니다(data-formats.md). 영문판 기록은 22바이트이고 성능이 +0x14, 분류가 +0x15입니다(확인됨[직접]: 아래 보물 숨기기 루틴이 영문판은 +0x14·간격 0x16, 한글판은 +0x18·간격 0x1A를 씀).
분류(+0x19 & 0x0F): 0 검, 1 스트레이트 소드, 2 커브 소드, 3 헤비 소드, 4 방패, 5 방어 무기, 6 갑옷, 7 측량기, 8 항해 용품, 9 소모품, 10 장신구, 11 보물, 12 지도, 13 국보급 보물.
한글판 도구 표 (발췌)
확인됨[직접] (기록을 직접 읽음; 가격은 원래 단위)
| 번호 | 이름 | 분류 | 성능 | 가격 |
|---|---|---|---|---|
| 0~2 | 단도 / 숏 소드 / 롱 소드 | 0 | 5 / 10 / 20 | 500 / 1,000 / 4,000 |
| 3~5 | 레이피어 / 에페 / 에스톡 | 1 | 15 / 10 / 20 | 3,000 / 2,000 / 6,000 |
| 6~8 | 숏 사브르 / 시미타 / 일본도 | 2 | 10 / 20 / 25 | 3,000 / 8,000 / 20,000 |
| 9~11 | 커트라스 / 브로드 소드 / 청룡언월도 | 3 | 10 / 20 / 30 | 1,500 / 5,000 / 24,000 |
| 12, 13, 14, 15 | 프람베르그 / 바스터드 소드 / 클레이모어 / 사브르 | 1 / 0 / 3 / 2 | 25 / 25 / 25 / 15 | 14,000 / 14,000 / 15,000 / 3,000 |
| 16~19 | 하드 레더 / 체인 메일 / 하프 플레이트 / 플레이트 메일 | 6 | 10 / 20 / 30 / 40 | 1,000 / 2,000 / 4,000 / 8,000 |
| 20~22 | 사분의 / 육분의 / 경위의 | 7 | 5 / 2 / 1 | 4,000 / 8,000 / 12,000 |
| 23~25 | 회중시계 / 망원경 / 고양이 | 8 | 1 | 2,000 / 5,000 / 2,000 |
| 26 | 백호반월도 | 3 | 25 | 18,000 |
| 27, 28 | 망원경(두 번째) / 공백 | 8 | 0 | 5,000 |
| 29~34 | 사략허가서 (P)(S)(O)(E)(I)(H) | 8 | 0 | 0 |
| 35~40 | 면세증 (P)(S)(O)(E)(I)(H) | 8 | 0 | 10,000 |
| 41~43 | 쥐약 / 성스런 향유 / 라임 주스 | 9 | 1 | 500 / 1,000 / 1,000 |
| 44 | 왕관 | 10 | 1 | 300,000 |
| 45~49 | 성스런 향유(두 번째) / 속죄상 / 면죄부 / 공백 / 공백 | 9 | 1 / 0 / 0 / 0 / 0 | 1,000 |
| 50~58 | 비단 숄 ~ 벨벳 가운(장신구) | 10 | 2~12 | 1,000~12,000 |
| 59~69 | 다이아몬드 왕관 ~ 루비 반지(보물) | 11 | 3~100 | 3,000~100,000 |
| 73~78 | 요도촌정 / 룬 블레이드 / 성기사의 갑옷 / 성기사의 검 / 시바신의 마검 / 에롤즈플레이트 | 2 / 0 / 6 / 1 / 2 / 6 | 40 / 40 / 70 / 40 / 30 / 55 | 280,000~600,000 |
| 80~89 | 가면의 지도 ~ 성자의 지팡이의 지도, 낡은 지도 | 12 | 0 | 0 |
| 90~99 | 순금 가면 ~ 최후의 보물(국보급 보물) | 13 | 0 | 0 |
사략허가서 괄호는 나라(P 포르투갈, S 에스파냐, O 오스만, E 잉글랜드, I 이탈리아, H 네덜란드)입니다. 사략허가서와 면세증의 효과는 trade.md·relations.md에 있습니다.
2. "사용" 명령의 분기
확인됨[직접] (KO 0x2E79A, 영문판 EN 0x2F8C4와 명령어 차이 0)
분류 = 도구[+0x19] & 0x0F
7 측량기 → KO 0x2E644
8 항해 용품 → KO 0x2E4AE
9 소모품 → KO 0x2E5A7
12 지도 → KO 0x2E792 (지도 보기)
그 밖 → KO 0x2E3CB: "무기는, / 방패는, / 갑옷은, / 이 아이템은, " + "이 곳에서는 사용할 수 없습니다." (공통 대사 1093~1098)
바다에서 도구 메뉴는 장비와 사용만 있어서 버릴 수는 없습니다(확인됨[대조]).
3. 측량기: 위도·경도 재기
확인됨[직접] (KO 0x2E644)
- 항구 안에서 쓰면 "경도·위도의 계측은 배 위에서 해 주세요."(공통 대사 756)만 나옵니다.
- 바다에서는 주인공의 기술 바이트(
+0x30) 비트0x10(측량술)을 봅니다. 없으면 "측량술을 가지고 있는 동료를 선택해 주세요."(757)로 동료를 고르게 하고, 고르지 않으면 주인공이 직접 잽니다(758 "할 수 없군요. 잘은 모르지만 내가 측량해 보겠어요.").
확인됨[대조] (영문판과 명령어 4개만 다름, 상수 같음):
- 값은 도구 성능 바이트(
+0x18) 단위로 내림합니다. 사분의 5°, 육분의 2°, 경위의 1°(성능 값은 위 표에서 확인됨[직접]). 그래서 정확한 도(°)는 경위의만 보여 줍니다. - 측량술이 있는 사람이 없으면 위도·경도 둘 다에
random(100) + 1이 더해집니다. - 측량기는 써도 없어지지 않습니다.
4. 항해 용품
출항할 때만 읽는 망원경·고양이
확인됨[직접] (KO 0x0D7E5~0x0D80C)
출항할 때 소지품 20칸(DS:0x2D93)을 훑어 도구 0x18(망원경)이 있으면 DS:0xC158 비트 0x80, 0x19(고양이)가 있으면 비트 0x40을 켭니다. 이 바이트는 출항 때만 다시 계산됩니다.
두 번째 망원경(27번, 0x1B)은 이 검사에 걸리지 않으므로 효과가 없습니다.
- 망원경 비트: 망대 시야가 넓어집니다(navigation.md의 발견 거리). 확인됨[대조]
- 고양이 비트: 쥐가 생기지 않습니다(항해 30일 뒤
random(floor(항해 레벨/5)+2) = 0이고random(105) > 운이면 쥐 발생, 배마다 하루 식량 1통 손실). 확인됨[대조]
"사용"했을 때
확인됨[직접] (KO 0x2E4AE의 도구 번호 분기표)
| 도구 번호 | 처리 | 결과 |
|---|---|---|
| 0x17 회중시계 | KO 0x2E430 | 지금 시각 표시 |
| 0x18 망원경, 0x1A, 0x1B 망원경(두 번째), 0x1C 공백 | KO 0x2E47C | "멀리 보인다"는 한 줄만 나옴. 효과 없음 |
| 0x19 고양이 | KO 0x2E495 | 고양이 울음 한 줄만 나옴. 효과 없음 |
0x1A(26번)는 한글판에서 백호반월도(분류 3)라 실제로는 이 분기에 오지 않습니다.
회중시계 표시(확인됨[대조]): 시 = floor(틱/3) mod 12(0은 12로), 분 = (틱 mod 3) × 30. 한 틱은 20분인데 분을 30씩 세므로 :00, :30, :60만 나옵니다(예: 8시 40분이 "8:60"). 오전/오후는 틱 24 미만일 때만 오전이라, 8:00~11:40 오전도 오후로 표시됩니다.
5. 소모품
확인됨[대조] (KO 0x2E5A7, 영문판 EN 0x2F6C2와 명령어 차이 0)
| 도구 | 효과 |
|---|---|
| 41 쥐약 | 쥐를 없앰 |
| 42 성스런 향유 | 폭풍 중이면 폭풍을 끝냄 |
| 43 라임 주스 | 괴혈병을 고침 |
| 45 성스런 향유(두 번째), 46 속죄상, 47 면죄부, 48~49 공백 | 처리기 없음(아무 효과 없음) |
소모품은 효과가 있었든 없었든 쓰면 없어집니다. 쥐와 괴혈병은 항구에 들어가면 저절로 낫습니다(navigation.md).
6. 보물 지도
새 게임 때 보물 숨기기
KO 0x1B577(영문판 EN 0x1B9A2와 명령어 차이 0, 상수 차이는 도구 기록 크기 22→26과 필드 위치뿐). 1번은 확인됨[대조], 2번은 확인됨[직접](KO 0x1B5C2~0x1B605를 직접 읽음)입니다.
- 발견물 98곳 전부에 "이번 게임에 쓰지 않음" 비트
0x80을 켠 뒤,random(98)로 서로 다른 50곳을 골라 비트를 끕니다. 그래서 한 게임에 발견물은 50곳뿐입니다. - 보물 k = 0~9마다, 아직
0x80이 켜져 있고 내용이 보통(90 미만)인 기록 하나를 무작위로 골라 내용을 도구90 + k로 바꾸고, 지도 도구80 + k의 성능 바이트(한글판+0x18)에 그 발견물 번호를 적습니다.
따라서 보물은 "고르지 않은 48곳" 중에 숨고, 그 마을 아이콘에 상륙하면 마을 메뉴가 아니라 빈 땅 메뉴가 나옵니다(landing.md).
지도 보기
확인됨[대조] (KO 0x22AEF, 영문판 EN 0x2308C와 명령어 3개만 다름)
- 지도는 써도 없어지지 않습니다. 낡은 지도(89)도 같은 처리입니다.
- 48 × 48칸 범위를 보여 주며, 중심이 아니라 24칸 격자에 맞춥니다.
`text
cx = floor(X / 24), X mod 24 < 12 이면 1을 뺌 (세계는 가로로 이어짐)
cy = floor(Y / 24), Y mod 24 < 12 이고 cy > 0 이면 1을 뺌
시작점 = (24 × cx, 24 × cy)` - 범위 안의 모든 발견물 자리(마을 아이콘 타일
0x7C~0x7F)가 X로 그려집니다. 지도의 보물이 아닌 곳도 X로 나옵니다. 항구는 땅으로 바뀌어 보이지 않습니다. - 보물을 파내는 법은 landing.md의 "빈 땅 탐색"을 보세요.
확인하지 못한 것
- 공백 도구(28, 48, 49)와 예비(79)를 게임이 어디서 주는지.
- 망원경이 시야를 몇 칸 늘리는지 한글판에서 직접 읽지 않았습니다(navigation.md의 표시를 따름).
- 장신구(50~58)의 효과는 주점 아가씨에게 주는 선물이라는 영문판 연구가 있으나 한글판에서 확인하지 않았습니다(외부자료).