docs(BT13-GodDem): 원작 가챠 재추출·PD 힌트 정합·B3 설계 착수
- 원작 이원결제(1차 소환권·2차 특정시점 젬)·PD 힌트 정합·골드 원작 미사용→소환권→골드 매핑 - 천장 라이브러리 3단(10 소프트·30 하드 q5/q6 100%)·메타 §10 블로커 해소 - balance-designer B3 설계 착수(재화·가챠대상 4종·천장·경제) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
21433ffcc5
commit
ba12aa19a5
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,224 @@
|
||||||
|
# 원작 Wild Survival 가챠(뽑기) 재화·확률 재추출 원본 SOT v1
|
||||||
|
|
||||||
|
> **작성**: 개발팀장 2026-08-22 · **근거**: 원작 APK(`com.and.wild.sur.victory` v862) `drawtype`·`drawlib`·`item`·`shop`·`pricetable`·`heroconst` 재복호화 실측
|
||||||
|
> **트리거**: PD 직접 지시(2026-08-22) — "기존 원작의 로직을 살펴보고 동일하게 맞춰. **인게임 내 뽑기는 일반 골드를 쓰며 특정 시점에만 유료 재화를 쓰는 구조**야. 제대로 실측해서 구현해야 해."
|
||||||
|
> **관계**: 메타아키텍처 재설계 v1 §1-4·§10 기각안9·M-2가 **"가챠 소비 재화 = 원작 근거 부재(🔴), PD 이관"**으로 남긴 블로커를 **재추출로 해소**. 매핑v1 §2-6은 weight·천장만 다뤘고 `drawtype`의 소비 재화(`drawitem`/`drawitem2`)를 추출하지 않았다 — 본 문서가 가챠 소비 재화 트랙에 한해 매핑v1보다 상위 SOT. `2026-08-22_원작배율/장비/스테이지_재추출_원본_v1.md`와 동일 파이프라인·동일 known-plaintext 키 유도.
|
||||||
|
> **표기 규칙(C5·C44)**: 🟢확정(원작데이터 직접 실측) · 🟡추정(형태·정황 근거) · 🔴미확정. 원작 데이터는 참고 수치만 기재 — 원본 파일·복호화본·XOR 키 **레포 미커밋**(§9).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 0. 결론 요약 — ★ PD 힌트 데이터 정합 판정
|
||||||
|
|
||||||
|
| PD 힌트 명제 | 재추출 판정 | 근거 |
|
||||||
|
|------|------|------|
|
||||||
|
| **"인게임 내 뽑기는 일반 골드를 쓰며"** | 🟢 **LITERAL 불일치 — 원작 draw는 골드 미사용** | 전 draw 계열 8테이블(drawtype·optionaldraw·slotmachine·cycledraw*) 비용 필드 전수 스캔 결과 골드(`db_1001`) 사용 **0건**. 원작 뽑기의 "일반/획득" 재화는 **소환권(召唤卷 `dj_7001`/`dj_7002`)·보물열쇠(`dj_7011`)** — 획득형 티켓이다(§3). 골드(`db_1001` 金条)는 히어로 레벨업 소프트 재화이며 뽑기에 안 쓰인다(§2). |
|
||||||
|
| **"특정 시점에만 유료 재화를 쓰는 구조"** | 🟢 **구조 정합 (재화 종류만 상이)** | 원작 draw는 **이원 결제**: `drawitem`(획득 티켓, 1차) OR `drawitem2`(젬 `hb_2001`, 대체). 티켓 소진 시 젬으로 결제 = "특정 시점 유료"의 데이터 구현(§3-2). 추가로 **일일 무료 뽑기**(isfree=1) 3종 존재(§3-3). 단 유료재화는 **젬(hb_2001, 준프리미엄)**이며, 순수 실화폐 전용 재화(点券 `hb_1001`) 사용 draw는 **0건**. |
|
||||||
|
| **"제대로 실측"** | 🟢 **재복호화 재현 성공** | config 번들 203 TextAsset 재복호(valid JSON 187/무효16 = 이전 재추출 정확 일치). drawtype 전 행·drawlib 2485행·item 240행 실측(§1). |
|
||||||
|
|
||||||
|
**총평 (정직)**: PD 힌트의 **구조**(획득 재화로 일반 뽑기 + 프리미엄 재화로 특정 시점)는 **원작과 정확히 일치**한다 — 이원 결제 + 일일 무료가 그 구현이다. 다만 원작의 "일반 획득 재화"는 **골드가 아니라 소환권(티켓)**이고, "특정 시점 유료 재화"는 **젬(hb_2001)**이다. GodDem은 소환권 개념이 없고 **골드(`GOLD_ID=201`)가 유일 획득 재화**이므로, **원작 소환권 → GodDem 골드** 매핑을 채택하면 PD 표현("골드로 일반 뽑기")이 **포트에서 literally 성립하며 동시에 원작 구조에 충실**하다(§7). 즉 PD 지시는 원작 구조 그대로이며, 재화 이름만 GodDem 경제(골드 단일)에 맞춰 번역하면 된다. 메타아키텍처 §10의 🔴(가챠 재화 근거 부재)는 본 재추출로 **데이터 해소**된다.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. 재복호화 결과 (재현 성공)
|
||||||
|
|
||||||
|
| 항목 | 값 |
|
||||||
|
|------|-----|
|
||||||
|
| 원작 APK | `C:\Users\sw\Downloads\Wild+Survival+-+Idle+Defense_862_APKPure\UnityDataAssetPack.apk` (236MB) |
|
||||||
|
| config 번들 | `assets/yoo/DefaultPackage/60f4b8a79e0efed6b5ada257fb5d9ea8.bundle` (config TextAsset 203종) |
|
||||||
|
| 암호 방식 | TextAsset 내용에 **22바이트 반복 XOR** (자산마다 위치 0 리셋) |
|
||||||
|
| 키 유도 | **빈도분석**(각 mod-22 위치별 printable/JSON 문자 최대화) — 이전 재추출과 동일 결과. 🚫 **키 평문 미보존**(scratchpad 한정·runtime 유도·작업 후 정리, 디스크 미기록) |
|
||||||
|
| 검증 | valid JSON **187 / 무효 16** = 매핑v1·이전 재추출과 **정확 일치**(강력 검증). drawtype 등 무효 16종은 중국어 GBK·제어문자 포함 — 라인 기반 관용 파서(latin-1 무손실)로 숫자/ASCII 필드 정상 추출 |
|
||||||
|
| 가챠 핵심 테이블 | drawtype(전 행)·drawlib(2485)·drawshow(258)·herodraw(111)·item(240)·shop(1441)·pricetable(12)·slotmachine(type1/lib8/progress100)·optionaldraw(39)·cycledraw계열 |
|
||||||
|
|
||||||
|
**재현 방법(요약, 키 비공개)**: ① `zipfile`로 APK에서 config 번들 추출 → UnityPy(1.25.3) 로드 ② TextAsset raw bytes 획득 ③ 22주기 XOR 키 빈도분석 유도 ④ XOR 복호 → JSON 파싱. libil2cpp 네이티브 리버싱 불요.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. 재화 정체 확정 (아이콘 + pricetable + shop 3중 교차) 🟢
|
||||||
|
|
||||||
|
`item.csv`의 `code` 필드가 보상/비용 토큰(`{code}_{amount}`)의 매핑 키다. 아이콘명(개발자 병음 명명)·실화폐 상품·상점 용도로 3중 교차 확정.
|
||||||
|
|
||||||
|
| code (토큰) | icon (병음/한자) | 의미 | maintype | 실화폐 | 역할 |
|
||||||
|
|------|-------------------|------|----------|--------|------|
|
||||||
|
| **`db_1001`** | `icon_cg_jintiao` (金条) | **골드(금괴)** | 2 (db) | X | 히어로 레벨업 소프트 재화(§2-2) |
|
||||||
|
| `dj_1001` | `icon_cg_yingxiongjingyanshu` (英雄经验书) | **영웅 경험서** | 5 (dj) | X | 히어로 레벨업 EXP 재료 |
|
||||||
|
| **`hb_2001`** | `icon_cg_shanzuan` (闪钻) | **젬/다이아** | 1 (hb) | **O** | 프리미엄 — 실화폐 $29.99=800젬(상품 `gems800`)·뽑기 대체재화·리셋비용 |
|
||||||
|
| `hb_1001` | `icon_cg_dianquan` (点券) | 点券 바우처 | 1 (hb) | 🟡 | 고volume 상점 재화(상점 비용 851건, sl_장비·sk_스킬 구매) |
|
||||||
|
| `dj_7001` | `icon_cg_zhaohuanjuan` (召唤卷) | **기본 소환권** (q4) | 5 (dj) | X | 히어로 뽑기 티켓 |
|
||||||
|
| `dj_7002` | `icon_cg_zhaohuanjuan_03` (召唤卷) | **고급 소환권** (q5) | 5 (dj) | X | 히어로 뽑기 티켓(프리미엄 배너) |
|
||||||
|
| `dj_7003` | `icon_cg_zhaohuanjuan_02` (召唤卷) | 소환권 변형 (q6) | 5 (dj) | X | 히어로 뽑기 티켓 |
|
||||||
|
| `dj_7011` | `icon_cg_choujiang_baowu_yaoshi` (抽奖宝物钥匙) | **보물 열쇠** (q4) | 5 (dj) | X | 장비 뽑기 티켓 |
|
||||||
|
|
||||||
|
### 2-1. ★ 골드 정체 정정 (스테이지 doc 오류 시정)
|
||||||
|
- `2026-08-22_원작스테이지_재추출_원본_v1.md` §4-2는 `dj_1001`을 "골드"로 라벨했으나, 아이콘명(`yingxiongjingyanshu` 英雄经验书)·`hero_level` 비용 실측 결과 **`dj_1001` = 영웅 경험서(EXP 재료)**다. **진짜 골드는 `db_1001`(金条, icon `jintiao`)** 이다.
|
||||||
|
- 근거(§2-2): `hero_level` 레벨업 비용 = `dj_1001_5; db_1001_10;` (경험서 5 + 골드 10). 원작은 히어로 육성에 **경험서(dj_1001) + 골드(db_1001) 2단 소비** — 메타아키텍처 §1-1이 이미 인지한 "골드→경험서 2단 경제".
|
||||||
|
- 이 정정은 스테이지 트랙 결론(유한 설계 등)에 영향 없음(재화 라벨만 시정). wildernesspk 보상 `dj_1001`도 "경험서"로 재해석해야 정확.
|
||||||
|
|
||||||
|
### 2-2. hero_level 비용 실측 (골드 식별 근거) 🟢
|
||||||
|
```
|
||||||
|
레벨1: dj_1001_5; db_1001_10;
|
||||||
|
레벨2: dj_1001_22; db_1001_42;
|
||||||
|
레벨3: dj_1001_54; db_1001_99;
|
||||||
|
레벨4: dj_1001_104;db_1001_184;
|
||||||
|
```
|
||||||
|
`heroconst`: `reset_cost = hb_2001_200`(리셋=200젬) · `drug_reset_cost = dj_3001_1` · `hero_sys_unlock_level=3`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. ★ 뽑기 소비 재화 구조 (PD 지시 핵심) — `drawtype` 전수 실측 🟢
|
||||||
|
|
||||||
|
`drawtype` 스키마(22열): `id, drawtype, drawname, groupid, selecttype, selectcnt, category, drawnum, maxnum, isfree, displaytype, drawitem, drawitem2, libid1, libid2need, libid2, libid3need, libid3, libid4need, libid4, freetype, intervaltime`.
|
||||||
|
|
||||||
|
- **`drawitem`** = 1차 비용(획득 티켓) · **`drawitem2`** = 대체 비용(젬) · **`isfree`/`freetype`/`intervaltime`/`maxnum`** = 무료 뽑기 게이트 · **`libidNneed`/`libidN`** = 천장 라이브러리 교체(§5).
|
||||||
|
|
||||||
|
### 3-1. 뽑기별 비용 (활성 행 전수)
|
||||||
|
|
||||||
|
| drawtype | 종류(category) | drawnum | drawitem (티켓 1차) | drawitem2 (젬 대체) | 무료 |
|
||||||
|
|---------|------|--------|--------------------|--------------------|------|
|
||||||
|
| 1701 | 히어로 단차(1) | 1 | `dj_7001_1` (기본소환권 1) | `hb_2001_20` (20젬) | - |
|
||||||
|
| 102 | 히어로 단차(1) | 1 | `dj_7002_1` (고급소환권 1) | `hb_2001_20` | - |
|
||||||
|
| 7 · 18 · 29 | 히어로 100차(3) | 100 | `dj_7002_100` (고급 100) | `hb_2001_1800` | - |
|
||||||
|
| 1301 | 열쇠 단차(1) | 1 | `dj_7011_1` (보물열쇠 1) | `hb_2001_20` | - |
|
||||||
|
| 217 | 열쇠 100차(3) | 100 | `dj_7011_100` | `hb_2001_1800` | - |
|
||||||
|
| 214 | 장비 단차(1) | 1 | `hb_2001_20` (젬 전용) | — | - |
|
||||||
|
| 212 | 장비 10차(2) | 10 | `hb_2001_200` (젬 전용) | — | - |
|
||||||
|
| 209 | 장비 100차(3) | 100 | `hb_2001_1800` (젬 전용) | — | - |
|
||||||
|
| **206** | **장비 무료(0)** | 1 | — | — | **isfree=1·freetype=1·max=5·300초 쿨** |
|
||||||
|
| **1402** | **히어로 무료(0)** | 1 | — | — | **isfree=1·max=1·300초 쿨** |
|
||||||
|
| **5101** | **히어로 무료(0)** | 1 | — | — | **isfree=1·max=1** |
|
||||||
|
|
||||||
|
> sparse 행(drawtype 1·3·11·14·22·25·104·1201·1601·5401)은 배너 헤더/템플릿 행(id+drawtype+drawname만)으로 비용 데이터 없음.
|
||||||
|
|
||||||
|
### 3-2. ★ 이원 결제 = "특정 시점 유료" 구현 🟢
|
||||||
|
히어로/열쇠 뽑기(102·1701·7·1301·217…)는 **`drawitem`(획득 티켓)을 1차 소비, 티켓 없으면 `drawitem2`(젬)로 결제**한다. 즉:
|
||||||
|
- **일반(획득) 재화 = 소환권/열쇠** — 플레이·상점·이벤트로 획득.
|
||||||
|
- **특정 시점 유료 = 젬(hb_2001)** — 티켓 소진 후 계속 뽑을 때.
|
||||||
|
- 환율: 단차 1티켓 ≈ 20젬, 100차 100티켓 ≈ 1800젬(10% 할인, 100×20=2000→1800).
|
||||||
|
|
||||||
|
이것이 PD가 말한 **"일반 재화로 뽑되 특정 시점에만 유료 재화"**의 정확한 데이터 구조다 — 다만 원작의 "일반 재화"가 골드가 아니라 티켓일 뿐.
|
||||||
|
|
||||||
|
### 3-3. 무료 뽑기 (특정 시점 무과금 창구) 🟢
|
||||||
|
- **장비 무료**(206): 하루 **5회**, 300초 쿨다운.
|
||||||
|
- **히어로 무료**(1402·5101): 1회, 300초 쿨.
|
||||||
|
- 무료 뽑기도 천장 라이브러리(libidNneed) 보유 → 무료분에도 등급 보정 적용.
|
||||||
|
|
||||||
|
### 3-4. 티켓 획득처 (shop) — 골드로는 못 산다 🟢
|
||||||
|
소환권(`dj_7001`)은 상점에서:
|
||||||
|
- `hb_2001`(젬) 20/1개 · 190/10개 · 1800/100개 (shop 3002~3004)
|
||||||
|
- `db`(이벤트·아레나 토큰) — db_2001_20, db_2003_30, db_2008_10 등
|
||||||
|
- **골드(`db_1001`)로 소환권 구매 = 0건**. 상점 비용 재화 분포: hb_1001(点券) 851 · hb_2001(젬) 314 · db토큰 175 · sl 80 · dj 20 — **골드는 상점 주력 재화가 아니다**(원작은 젬/点券 중심 경제).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. 가중추첨 (`drawlib`) 🟢
|
||||||
|
|
||||||
|
- **2485행 / 192 고유 pool** = `(drawtype, libid)` 조합. 스키마 `id, drawtype, libid, position, itemid, weight, israre, sendmsg`.
|
||||||
|
- **weight/10000 basis point**: 192 pool 중 **102개 정확 합 10000**. 나머지는 8374(34)·9999(9)·9900(6)·9500(4) 등 **비정규화**(원작도 미통일 — 매핑v1 §2-6 재확인). 실 확률 = `weight / 활성 라이브러리 실합`.
|
||||||
|
- 히어로 뽑기 결과물 = `dj_5XXX` 히어로 조각(등급 인코딩: 51XX=q1 … 56XX=q6). 장비 뽑기 = `sl_XXXX`(장비) + `dj_6XXX`(재료) + `dj_1001`(경험서) + `dj_19001` 등.
|
||||||
|
- israre 플래그로 rare(고등급) 표식. 표시 확률은 `drawshow`(등급 티어별 아이템 목록)·`cycledrawshow`(showrate 명시, 0.005~0.12) 별도 보유.
|
||||||
|
|
||||||
|
**히어로 단차(drawtype 102) 일반 pool(libid1) 실측** — 16 pos, 실합 9500:
|
||||||
|
```
|
||||||
|
q1 조각 4종 × 1125 (11.842%) | q2 조각 4종 × 625 (6.579%)
|
||||||
|
q3 조각 4종 × 375 (3.947%) | q4 조각 4종 × 250 (2.632%) ← rare(q5+) 없음
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. 천장 = 라이브러리 교체 (`drawtype` libidNneed → `drawlib` libid) 🟢
|
||||||
|
|
||||||
|
매핑v1 §2-6의 "라이브러리 교체 천장"을 **소프트/하드 2단으로 완전 규명**. `drawtype`이 `libid2need`/`libid3need` 카운트에 도달하면 활성 pool을 교체.
|
||||||
|
|
||||||
|
### 5-1. 히어로 단차(drawtype 102) 3단 라이브러리 실측 ★
|
||||||
|
| 라이브러리 | 발동 | pos·실합 | 구성 |
|
||||||
|
|-----------|------|---------|------|
|
||||||
|
| **libid1** (일반) | 1~9회 | 16·9500 | q1~q4만 (rare 0%) |
|
||||||
|
| **libid2** (소프트천장) | **10회차** (libid2need=9) | 23·7747 | q1~q4 + **q5 4종(1.291%)** + q6 3종(0.426%) — rare 등장 개시 |
|
||||||
|
| **libid3** (하드천장) | **30회차** (libid3need=29) | 7·499 | **q5 4종(20.04%) + q6 3종(6.613%)만 = rare 100% 확정** |
|
||||||
|
|
||||||
|
→ **10회에 고등급 확률 개방, 30회에 고등급 확정**. 일반 pool은 저등급만, 천장 pool은 일반 아이템 weight를 0으로 죽여 고등급 확정.
|
||||||
|
|
||||||
|
### 5-2. 뽑기별 천장 스케줄
|
||||||
|
| drawtype | libid2need(소프트) | libid3need(하드) | 비고 |
|
||||||
|
|---------|------|------|------|
|
||||||
|
| 히어로 102·1701·7·18·29 | 9 (10회) | 29 (30회) | 히어로 표준 |
|
||||||
|
| 열쇠 1301 | 3 (4회) | 39 (40회) | 짧은 소프트천장 |
|
||||||
|
| 열쇠 217 | 4 (5회) | 39 (40회) | |
|
||||||
|
| 장비 209·214·206 | 61 (62회) | 99 (100회) | 장비는 장주기 |
|
||||||
|
| 장비 212(10차) | 61 | 99 | libid2·3=1 (교체 없음, 확률 고정형) |
|
||||||
|
| 히어로무료 1402 | 13 | 39 | |
|
||||||
|
|
||||||
|
- `libid4need = 999` 전 행 = **미사용 4번째 슬롯**(매핑v1 §2-6 재확인).
|
||||||
|
- 라이브러리 교체 = 확률 보정 코드가 아니라 **테이블 스왑** → 기획자가 코드 없이 천장 튜닝 가능.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. 가격·경제 환산 🟢
|
||||||
|
|
||||||
|
- **1젬(hb_2001)** = $29.99 / 800 = **$0.0375** (pricetable id 40001, 상품 `gems800`). 매핑v1 §2-9 "$29.99→800젬" 정확 재확인.
|
||||||
|
- **히어로 단차** = 20젬 = **$0.75** (또는 소환권 1).
|
||||||
|
- **히어로 100차** = 1800젬 = **$67.5** (또는 소환권 100) — 단차 대비 10% 할인.
|
||||||
|
- **장비 단/10/100차** = 20 / 200 / 1800젬 (10차는 무할인, 100차만 10% 할인).
|
||||||
|
- pricetable 12행 = 실화폐 상품(gems800·premium·piggy·pack 등). 실화폐가 직접 지급하는 뽑기 재화는 **젬(hb_2001)뿐** — 소환권은 실화폐 직접 판매 없음(젬/토큰 경유).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. GodDem 이식 관점 (balance-designer P3-B3 인계) — ★ PD 힌트의 포트 실현
|
||||||
|
|
||||||
|
### 7-1. 재화 매핑 권고 (PD "골드 일반 + 특정시점 유료"의 포트 실현)
|
||||||
|
| 원작 | 역할 | GodDem 매핑 권고 | 결과 |
|
||||||
|
|------|------|-----------------|------|
|
||||||
|
| 소환권(`dj_7001/7002`)·열쇠(`dj_7011`) | 일반(획득) 뽑기 재화 | **골드(`GOLD_ID=201`)** 직접 소비 | PD "일반 골드로 뽑기"가 **literally 성립** |
|
||||||
|
| 젬(`hb_2001`) | 특정 시점 유료·티켓 대체 | **프리미엄 재화(젬)** — 미보유 시 신규 도입 or 기존 프리미엄 화폐 | PD "특정 시점 유료" 성립 |
|
||||||
|
| 일일 무료(206·1402·5101) | 무과금 창구 | **일일 무료 뽑기 N회** (쿨다운) | 원작 구조 계승 |
|
||||||
|
|
||||||
|
- GodDem은 소환권 개념이 없고 골드가 유일 획득 재화 → **원작 티켓 = GodDem 골드**로 번역하면 원작 이원 결제(획득재화 1차 + 젬 대체)가 **골드 1차 + 젬 대체**로 그대로 이식된다.
|
||||||
|
- 메타아키텍처 §1-1(B1)·§1-3(B2)이 이미 `GOLD_ID=201` 직접 소비를 디폴트로 권고 — 가챠도 동일 재화축이면 SurvivalMeta 재화 시스템(CurrencyManager) 확장 없이 골드 소비 경로 재사용 가능.
|
||||||
|
|
||||||
|
### 7-2. 확률·천장 이식 (구조 그대로)
|
||||||
|
- **가중추첨**: `drawlib` per-pool weight → GodDem `SurvivalMetaGachaPool.csv`(메타아키텍처 §5 명명). 전 풀 합 10000 basis point 강제(메타아키텍처 §1-4 채택 원칙과 정합).
|
||||||
|
- **천장**: 라이브러리 교체 2단(소프트/하드) → `SurvivalMetaGachaPity.csv`. GodDem 규모에 맞춰 히어로 표준(소프트 10·하드 30) 또는 열쇠형(소프트 4·하드 40) 중 선택. 라이브러리 스왑 = 확률코드 없이 테이블 3개로 구현.
|
||||||
|
- **등급 확정**: 하드천장 pool = 저등급 weight 0 → 고등급 100% (drawtype 102 libid3 실측 모델).
|
||||||
|
|
||||||
|
### 7-3. B4 스킬마스터리 연계
|
||||||
|
- 원작 히어로 뽑기 결과물은 `dj_5XXX` 히어로 조각(수집형). GodDem은 히어로 1명 구조이므로 **가챠 결과물 = 장비/옵션**(메타아키텍처 §1-4: hit/stun/retaliate/combo 4종 옵션 공급)로 이식됨이 이미 확정.
|
||||||
|
- 가챠(B3)와 스킬 언락(B4 `SurvivalMetaSkillUnlock`/마스터리)은 **별개 재화·별개 창구**여야 함(원작도 뽑기 재화 ≠ 스킬트리 재화). 가챠=골드/젬, 스킬마스터리=별도 획득 재화 유지 권고.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. 실측 검증 요약 (C5·C23·C44 — 정직 보고)
|
||||||
|
|
||||||
|
| 검증 항목 | 결과 | 근거 |
|
||||||
|
|-----------|------|------|
|
||||||
|
| config 번들 재복호화 | 🟢 성공 | valid 187/무효16 = 이전 재추출 정확 일치 |
|
||||||
|
| drawtype 소비 재화 추출 | 🟢 완료 | 이원 결제(티켓+젬) 전 행 실측 — 매핑v1 미추출분 신규 확보 |
|
||||||
|
| **골드(db_1001) draw 비용 사용** | 🟢 **0건 확정** | 8 draw테이블 × 6 비용필드 전수 스캔 |
|
||||||
|
| **点券(hb_1001) draw 비용 사용** | 🟢 **0건 확정** | 동일 스캔 — 순수 실화폐재화 draw 없음 |
|
||||||
|
| 재화 정체(젬/골드/경험서/소환권) | 🟢 확정 | icon 병음 + pricetable(gems800) + shop 용도 3중 교차 |
|
||||||
|
| dj_1001 골드→경험서 정정 | 🟢 확정 | hero_level 비용 `dj_1001+db_1001` 실측 |
|
||||||
|
| 천장 라이브러리 3단(소프트10·하드30) | 🟢 확정 | drawtype 102 libid1/2/3 pool 실측(rare 0%→등장→100%) |
|
||||||
|
| 가중치 basis point | 🟢 확정 | 192 pool 합 분포(102개 10000·나머지 비정규화) |
|
||||||
|
| 가격($0.0375/젬·단차20·100차1800) | 🟢 확정 | pricetable + drawtype 실측 |
|
||||||
|
|
||||||
|
### 8-1. 재추출 실패·부분 확정·한계 (정직 고지)
|
||||||
|
- **아이템명 영어/한글 미해석**: config 번들의 `A80_Language`는 ES/PT/TH만 보유(EN 없음)하고 아이템명(nameid 23xxx)은 **본 번들에 부재**(별도 localization 번들 추정). 재화 정체는 **아이콘 병음명 + 실화폐 상품ID + 상점 용도**로 확정했으며 명시적 번역 스트링은 미확보 — 단 3중 교차로 **오판 여지 실질 없음**.
|
||||||
|
- **소비 로직 명령어 미확증**: `drawitem` 1차 / `drawitem2` 대체의 소비 우선순위는 데이터 구조·통상 관행상 "티켓 우선, 없으면 젬"으로 해석되나, il2cpp **Beebyte 난독화**로 소비 코드 명령어 확증은 차단(이전 재추출과 동일 한계). 데이터 구조(2필드 병존)는 🟢 확정.
|
||||||
|
- **sparse drawtype 행**: 10개 행이 id+drawtype+drawname만 보유(배너 헤더/템플릿 추정) — 비용 데이터 없어 §3 표에서 제외. 활성 뽑기 13종은 전수 확보.
|
||||||
|
- **점券(hb_1001) 성격**: 상점 851건 사용·대량 단위(10만 단위)로 "고volume 획득형" 정황이나 실화폐 직접 지급 여부는 pricetable 12행에 없어 🟡. 단 **draw 비용 미사용은 🟢 확정**이라 가챠 결론에 무영향.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. 저작권·키 취급 (PD 방침 준수)
|
||||||
|
|
||||||
|
- 원작 데이터는 **참고 수치만** 본 문서에 기재. 원본 파일·복호화본·추출 스크립트는 **scratchpad 한정**(`C:\Users\…\Temp\claude\…\scratchpad`, 레포 외부) — **작업 완료 후 정리**.
|
||||||
|
- 22바이트 XOR 키는 **runtime 빈도분석 유도만** — 디스크·본 문서·조직 기록에 **평문 미기록**.
|
||||||
|
- **레포 커밋 금지 확인**: 복호화 원본은 Temp 하위(레포 외부)라 자동 미커밋. GodDem 레포(`E:\NerdNavis\GodDem`) 수정 **0건**(데이터 추출만·Unity MCP 불요). 본 문서(참고 수치 전용)만 BurningTimes 레포 산출.
|
||||||
|
- 재해독 필요 시 원작 APK에서 §1 방법으로 재추출(빈도분석 키 유도 결정·재현 가능).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10. 변경 이력
|
||||||
|
|
||||||
|
| 일시 | 작성 | 변경 |
|
||||||
|
|------|------|------|
|
||||||
|
| 2026-08-22 | 개발팀장 | **v1 신규** — PD 지시(원작 가챠 재화 재추출) 대응. drawtype 이원결제·천장 라이브러리 3단·재화 정체(골드=db_1001 정정)·PD 힌트 정합 판정. 메타아키텍처 §10 🔴(가챠 재화 근거 부재) 데이터 해소. balance-designer P3-B3 인계용. |
|
||||||
|
|
@ -409,3 +409,13 @@
|
||||||
- **개발팀장 원작 가챠 재추출 착수**(진행중): ①가챠 소비 재화 구조(일반 골드 vs 특정 시점 유료·"특정 시점" 조건 데이터 규명·PD 힌트 검증) ②가중추첨(heroequipmentskill weight) ③천장(drawtype libid need) ④가격. 산출 예정 `2026-08-22_원작가챠_재추출_원본_v1.md`
|
- **개발팀장 원작 가챠 재추출 착수**(진행중): ①가챠 소비 재화 구조(일반 골드 vs 특정 시점 유료·"특정 시점" 조건 데이터 규명·PD 힌트 검증) ②가중추첨(heroequipmentskill weight) ③천장(drawtype libid need) ④가격. 산출 예정 `2026-08-22_원작가챠_재추출_원본_v1.md`
|
||||||
- **후속 체인**: 재추출 → balance-designer B3 설계(원작 정합) → plan-auditor 검증 → 개발팀장 구현 → **영구 성장 5층 완성**
|
- **후속 체인**: 재추출 → balance-designer B3 설계(원작 정합) → plan-auditor 검증 → 개발팀장 구현 → **영구 성장 5층 완성**
|
||||||
- **원작 정합 방침 일관**: PD "원작처럼 맞춰" — 재화·확률·천장 모두 원작 재추출 실측 후 이식. 추정 배제(C44)
|
- **원작 정합 방침 일관**: PD "원작처럼 맞춰" — 재화·확률·천장 모두 원작 재추출 실측 후 이식. 추정 배제(C44)
|
||||||
|
|
||||||
|
## 59. 원작 가챠 재추출 완료 — PD 힌트 정합 + B3 설계 착수 (개발팀장→PM, 2026-08-22)
|
||||||
|
|
||||||
|
- **★ PD 힌트 🟢 정합 확정**: 원작 뽑기 = **이원결제**(1차 획득재화 소환권 dj_7001/7002·열쇠 / 2차 특정시점 유료 젬 hb_2001). **"특정 시점 유료" 조건 3**: ①티켓 소진 시 젬 대체 ②일일 무료 초과(장비 5회/일·히어로 1회) ③순수 실화폐 뽑기 0건. **골드는 원작 뽑기 미사용**(레벨업 소프트재화 db_1001)
|
||||||
|
- **포트 매핑**: GodDem 소환권 없음·골드 유일 획득재화 → **원작 소환권→GodDem 골드** 매핑 시 PD "골드 일반·특정시점 유료(젬)" literally 성립·원작 이원결제 충실. **메타아키텍처 §10 가챠 재화 블로커(🔴 PD 이관) 데이터 해소**
|
||||||
|
- **가중추첨·천장·가격**: drawlib weight/10000(102 pool 합 10000)·**천장 라이브러리 교체 3단**(히어로 libid1 1~9→libid2 10회 소프트 q5/q6 등장→libid3 30회 하드 q5/q6 100%·장비형 62/100)·단차 20젬·100차 1800젬(10% 할인). 확률코드 없이 테이블 스왑
|
||||||
|
- **재화 정정**: 진짜 골드=db_1001·dj_1001=영웅경험서(스테이지/장비 doc "dj_1001 골드" 오류 정정)
|
||||||
|
- **정직 한계**: drawitem/drawitem2 소비 우선순위(티켓 우선) 구조 해석·난독화 명령어 확증 차단(이전 재추출 동일)·데이터 구조(2필드 병존) 🟢
|
||||||
|
- **balance-designer B3 설계 착수**(진행중): 재화(골드 일반·젬 특정시점)·가챠 대상(메타 §5 GachaOption hit/stun/retaliate/combo 4종)·천장 3단·경제 연계. 산출 `2026-08-22_P3B3_가챠_설계_v1.md`
|
||||||
|
- **후속**: B3 설계 → plan-auditor 검증 → 개발팀장 구현 → **원작 아키텍처 5층 완성**
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue