상륙: 상륙할 수 있는 땅, 물 찾기, 마을 탐색·환대·약탈, 보물 파내기
바다 메뉴의 "상륙"부터 마을의 발견물까지입니다. 표시 방법은 index.md를 따릅니다.
1. 상륙할 곳 고르기
확인됨[대조] (KO 0x39A51부터, 영문판 EN 0x3ABC3)
- 함대(2 × 2칸)를 둘러싼 8칸 중 하나를 고릅니다(모서리 4칸은 제외).
- 상륙, 탐색, 물 싣기는 시간이 흐르지 않습니다.
고른 칸에 따라(KO 0x39BD1, 영문판 EN 0x3AD49와 명령어 차이 0):
| 칸 | 결과 |
|---|---|
평지(0x41, 0x49, 0x51) | 상륙, 물을 찾을 수 있음 |
사막(0x59) | 상륙, 물은 절대 없음 |
항구·보급항(0x74~0x7B) | 기항과 같음 |
마을(0x7C~0x7F) | 상륙 |
| 그 밖(바다, 해안, 산, 강 등) | 공통 대사 441 "그곳에는 상륙할 수 없습니다." |
마을 칸이 발견물의 2 × 2칸 안이고 그 발견물이 이번 게임에 쓰이면(0x80 꺼짐) "부락에 상륙하겠습니다. 좋습니까?"(439+440) 후 마을 메뉴, 아니면 빈 땅 메뉴가 나옵니다.
2. 물 찾기
확인됨[직접] (KO 0x39953~0x39975)
상륙을 확정한 순간 한 번 굴립니다.
샘 발견 = 운 × W > random(100) W = 사막 0, 그 밖 1
- 운은 주인공 자신의 운(인물
+0x23)입니다. 동료는 상관없습니다. - 결과는
DS:0xBC86에 저장되어, 상륙해 있는 동안 몇 번 "탐색"해도 같은 답입니다. 다시 상륙하면 다시 굴립니다. - 사막에서는 "이런 곳에 물이 있을 것 같지는 않습니다만, 일단 찾아보겠습니까?"(424)를 묻고, 결과는 425 "물은 발견되지 않았습니다." 또는 426 "깨끗한 물을 발견했습니다."입니다.
물은 공짜이고 배마다 빈 짐칸만큼 실을 수 있습니다. 실으면 그 배의 물이 (floor(물/10) + n) × 10(10분의 1 단위)가 되어 끝자리가 버려집니다(확인됨[대조]).
3. 빈 땅 메뉴: 수리·탐색·대기
확인됨[대조]
- 수리: 함대 안 목재 1개로 내구·조타·추진 중 하나를 5 올립니다. 한 번에
min(목재, floor((모자란 값 + 4) / 5))개까지(KO 0x38F47, 영문판EN 0x39F76과 명령어 구조 같음). - 탐색: 그 칸의 발견물이 "쓰이지 않음 + 지도 구입함 + 아직 안 파냄"(
0x80과0x20켜짐,0x10꺼짐)이면 보물을 파냅니다. 소지품의 지도가 보물로 바뀌고 기록에0x10이 켜집니다(KO 0x392D0). 아니면 물 찾기 결과를 알려 줍니다. - 대기: 닻을 내린 채 시간을 보냅니다. 그동안 식량·물 소비가 절반이고 폭풍 피해가 없습니다.
4. 마을: 탐색·환대·약탈
탐색
확인됨[직접] (KO 0x394FD~0x3956D)
점수 = floor(7 × 직감 / 20) + floor(3 × 운 / 20) + 친밀도 (8비트로 계산)
성공 = 점수 > 발견물 난이도(기록 +5)
- 직감(
+0x1F)과 운(+0x23)은 주인공의 값입니다. 난수는 쓰지 않습니다. - 친밀도(
DS:0xBFD2)는 마을 메뉴에 들어올 때마다 0에서 시작하고, 환대 한 번에 5 오릅니다. 환대 없이 점수는 최대 50입니다. - 식량이 없으면 탐색할 수 없고, 이미 찾은 발견물이면 432 "색다른 물건은 하나도 없습니다.", 실패하면 429 "아무것도 발견되지 않았습니다."입니다.
- 성공하면 발견물 종류(기록
+6하위 3비트)에 따라 보물 상자 그림·효과음을 내고 431 "%s(를) 발견했습니다."를 보인 뒤, 발견물 카드(COLONY.DAT의 그림·이름·설명)를 보여 줍니다. 발견 그 자체로는 명성·돈·경험이 없고, 수집가에게 보고할 때 받습니다(npc.md).
확인됨[대조]:
- 종류 5(괴물)는 발견 대신 430 "%s에게 습격당했습니다."와 선원 손실이 일어나지만, 발견 표시는 똑같이 켜지므로 보고하면 보수를 받습니다.
- 괴물이 아니면 1/16 확률(
random(16) = 7)로 선원 일부가 마을에 남습니다.
선원 손실
확인됨[직접] (KO 0x39496, 반격 쪽 계산 KO 0x3975B~0x3978A)
h = floor(검술 / 2)
p = floor((100 − min(100, h + floor(h × 전투 레벨 / 25))) / 2)
손실 = floor(p × 선원 / 100) (함대의 쓰이는 배마다, 배 칸 +8 & 0x30 = 0x10)
모든 배가 같은 비율 p(최대 50%)를 잃습니다. 검술과 전투 레벨이 높으면 손실이 0이 됩니다.
환대
확인됨[대조] (KO 0x3962F, 영문판 EN 0x3A794와 명령어 차이 0): 식량 2통을 내고(식량이 2통 이상인 첫 배에서) 친밀도 +5.
약탈
확인됨[직접] (KO 0x396FE~0x3978A)
- 436 "현지인으로부터 약탈하겠습니까?"에 예라면 식량
(random(5) + 2) × 10통(20~60)을 빼앗습니다(437). random(4) = 0(1/4)이면 438 "원주민에게 반격을 받고," 후 위 공식으로 선원을 잃습니다.
확인됨[직접](KO 0x3979E–0x397C7): 약탈하면 운이 min(2, 운)만큼 내려가고 친밀도가 0이 되며, 매력은 min(2, 매력 − 50)을 부호 없이 계산해 뺍니다. 그래서 매력 50·51은 50에서 멈추고, 0·1이면 254·255로 넘어갑니다.
5. 발견물 기록과 표시 비트
확인됨[직접] (위치·크기: 세이브 슬롯 0x7258부터 7바이트 × 98, 기록 그룹 10)
| 오프셋 | 내용 |
|---|---|
+0 | X (u16) |
+2 | Y (u16) |
+4 | 내용(보물을 숨기면 90~99) |
+5 | 난이도 |
+6 | 하위 3비트 종류, 상위 비트는 진행 표시 |
종류: 0 문화 유물, 1 기념물, 2 동물, 3 식물, 4 유적, 5 괴물, 6 자연 경관(이름표는 DS의 종류 이름; 확인됨[대조]).
표시 비트(확인됨[대조]):
| 비트 | 뜻 | 켜는 곳 |
|---|---|---|
0x80 | 이번 게임에 쓰지 않음 | 새 게임(KO 0x1B577) |
0x40 | 마을을 봄 | 망대(KO 0x35CCD), 이때 모험 명성 +50 |
0x20 | 찾음, 또는 보물 지도를 삼 | 마을 탐색, 주점에서 지도 구입, 피에트로 시나리오 |
0x10 | 보고함, 또는 보물을 파냄 | 수집가 보고, 보물 파내기 |
확인하지 못한 것
- 약탈의 1/16 선원 잔류는 한글판에서 상수를 직접 읽지 않았습니다(대조만). 운·매력 감소는 직접 확인했습니다(church.md 7절).
- 발견물이 마을 칸 2 × 2 범위에 드는지 판단하는 좌표 계산은 한글판에서 따로 읽지 않았습니다.