Project_WL/AgentScripts/WL813l2_PROBE.txt

68 lines
5.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# WL813l2 Probe 2026-09-09 14:41:18 (edit mode · Play 0 · 로그인 0)
playMode=False
── 준비
[OK] 구독 ON · MyValue.bMyPC=False(월드 PC 없음 = 로비·에디트 경로)
── ⓪ 설정 에셋 · 성장 입력 값 전수 (C45 · 코드 상수 0)
[OK] WLPowerDeltaSettings 로드
[OK] Enabled · enabled_=True
성장 입력: useLevelUpPayload=True readGrowthFromServerData=True statPointWeight=1 atkGain=1 hpGain=22 perLevel=5 levelWeight=0 levelBase=1
기존 산식: atk=BaseDmg(폴백 ATK) hp=MaxHP hpWeight=0.1 powerScale=1 최소 표시 0.5% suppressToastOnLevelUp=True
[OK] statPointsPerLevel=5 (원본 실측 ServerClass.cs:2770 Get_Point() = (Lv1)*5 사용분)
[OK] 포인트 환산 ATK +1 / MaxHP +22 (원본 실측 MyValue.cs:335-336 dic_MainStatMultiplier[STR] = ATK 1 · MaxHP 22)
── ① 🔴 D-28 원인 실증 — 원본 스탯은 레벨업으로 안 움직인다 · 움직이는 것은 미사용 포인트뿐
Lv 1 → 16 · 스탯 포인트 사용 0 · 장비 변화 0 일 때 원본이 주는 것:
[OK] Get_Point() 0 → 75 (= (Lv1)*5 · 미사용 포인트만 늘어난다)
[OK] SD_PC.Get_Stat(STR) 0 → 0 (= **사용한** 포인트만 셈 · table_classconfig.Get_PureStat:246 이 읽는 값) → ActorStatInfo 는 그대로
⇒ `ActorStatInfo.Reset`(MyValue.cs:286-453)은 SD_PC.Lv 를 한 번도 안 읽는다 = 813l 이 폴링해도 값이 상수
(Q6 D-28 `PollCount 1573` 인데 `LastPower 52.000000` 불변 · 레벨 1→16)
[OK] ApplyGrowth ↔ 원본 Get_Point() 대조 — 내 값 70 · 원본 70 · level=16 (사용 5점 반영)
[OK] 813l 산식 회귀 4건(성장 입력 0) — 200.00 / 210.00 / 230.00 / 486.00 (기대 200 / 210 / 230 / 486)
[OK] 포인트 5점 → 216.00 (기대 216.00 = 105 + 111.0)
[OK] 포인트 10점 → 232.00 (기대 232.00 · 레벨당 +16.0)
[OK] 레벨업 1회 증가율 8.00% (최소 표시 0.5% 를 넘는다)
[OK] 포인트 사용 전/후 연속 — 미사용 216.00 ↔ 사용 후 216.00 (statPointWeight=1 의 뜻)
── ② 813k GrowthEvents.LevelUp 실 Dispatch — prev ATK 100 → new 112 (발주서 §1-3)
dispatch GrowthEvents.LevelUp 6→7 pt=30 · 구독자=1
[OK] 수신 1회 · 소스 "levelUp(813k 페이로드)"
[OK] 페이로드 전투력 prev=280.00 new=308.00 (기대 280.00 / 308.00 · 손계산)
[OK] 🔴 LastPower 0 → 308.00 (D-28 = 여기가 52 로 고정이었다)
[OK] 레벨업 프레임 토스트 생략(Suppressed=1 Toast=0) — 같은 값을 팝업 줄이 보여준다
[OK] 팝업 줄 "전투력 280 → 308 (+10.0%)" (기대 280 → 308 · +10.0%)
[OK] 토스트 1회 · 문구 "전투력 +10.0%" (기대 "전투력 +10.0%")
[OK] useLevelUpPayload=0 → 소스 "levelUp(스탯 읽기 실패)" · 토스트 0회 · LastPower 없음(= 813l 원래 경로)
── ③ 🔴 D-28 재현 · 수리 — 스탯이 **하나도 안 바뀌는** 원본 기본 동작(813k 보고 ①)에서
dispatch GrowthEvents.LevelUp 7→8 pt=35 · 구독자=1 · 스탯 3종 prev == new (원본 기본값)
[OK] 전투력 296.00 → 312.00 (기대 296.00 → 312.00)
[OK] ✅ 수리 후 — 토스트 1회 "전투력 +5.4%"
[OK] ❌ 재현(statPointWeight=0) — 레벨 7→8→9 인데 전투력 200.00 불변 · 토스트 0회 = Q6 D-28 그대로
[OK] 다단(5→8 · 3레벨) prev 포인트 역산 → prev 전투력 264.00 (기대 264.00 = 포인트 20점)
── ④ 레벨업 팝업 전투력 줄 — 813y StatPopup 왕복(구독 → Dispatch → 줄)
init: 구독 ON · box pos=(0.00, 180.00) size=(1080.00, 296.00) rows=3 power=on unitsPerPx=1.0000 titleFont=72.0 edge[LiberationSans SDF Material (WL813y Edge) shader=TextMeshPro/Mobile/Distance Field outlineW=0.260 outlineC=0D0805FF underlay=000000BF off(0.45,-0.45) soft=0.20 UNDERLAY_ON=True]
[OK] StatPopup.PowerLineOn
[OK] StatPopup 구독=True · GrowthEvents.LevelUp 구독자=2(StatPopup + PowerDeltaToast)
팝업 표시: rows=1 level=10 text="LEVEL 10 / +5 포인트 <size=70%>(보유 45)</size> / 전투력 328 → 344 (+4.9%)"
[OK] 🔴 팝업 전투력 줄 "전투력 328 → 344 (+4.9%)" (기대 328 → 344 · +4.9%)
[OK] 중복 표시 0 — Suppressed=1 Toast=0
[OK] 프레임 스탬프 prev=328.00 new=344.00 → 팝업/토스트가 같은 값을 본다(구독 순서 무관)
── ⑤ GC 0 (폴링 · 페이로드 · 포인트 산식)
[OK] Tick × 1000 → GetTotalMemory 0 B · MonoUsedSize 0 B (폴링 2회)
[OK] ApplyGrowth × 1000 = 0 B ↔ 원본 Get_Point() × 1000 = 0 B (원본은 LINQ Select+Sum · sink=138000)
레벨업 Dispatch × 1000 — 헬퍼만 126976 B · 구독 포함 176128 B → 내 경로 몫 49152 B / 1000회 (813l 때부터 있던 진단 문자열 · **프레임 경로 아님**)
대조군 new object() × 1000 = 24576 B (0 이 아니어야 측정이 살아 있다) · keep=1000
── ⑥ C8 롤백
[OK] Enabled=false
[OK] 레벨업 무시(LevelUpSeen=0 Toast=0)
[OK] BuildStatPopupLine()=null
[OK] 해제 후 Enabled=true
[OK] statPointWeight=0 · levelWeight=0 → 레벨 16 · 포인트 75 여도 200.00 (813l 원래 산식과 동일 = 값 하나로 되돌린다)
RESULT PASS