# WL813p Probe 2026-09-09 08:35:32 (edit mode · Play 0 · 로그인 0) playMode=False ── ⓪ 준비 BossArena.HoldSpawn=True GateArmed=True 존 4개 · 보스 813010 [PASS] 813d 게이트 무장(존 누적 카운터 사용 가능) [PASS] 가짜 메인 PC IsMainPC()=true ── ① 에셋 · SOT (WLRunSettings) [PASS] Resources.Load("WL/WLRunSettings") [PASS] Enabled(에셋·enabled·RuntimeDisabled·코어) = True (core=True) 값: enabled=True verboseLog=False runSeconds=180 tickIntervalSeconds=1 pollSeconds=0.1 pauseTimerWhileWorldHeld=True 값: bossSpawnerId=813010 openGateOnZonesCleared=True openGateAtSec=120 autoStartOnMapEnter=True skipLobby=True endOnMapLeave=True 값: restartWarpsPlayer=True restartHealRate=1 restartRearmsBossGate=True restartResetsPotions=True [PASS] zoneSpawnerIds/zoneClearKills 길이 일치 = 4 / 4 [PASS] 존0 id=813001 zoneClearKills=24 MonsterAppear n_MaxMonsterCount=12 ×2=24 [PASS] 존1 id=813002 zoneClearKills=30 MonsterAppear n_MaxMonsterCount=15 ×2=30 [PASS] 존2 id=813003 zoneClearKills=28 MonsterAppear n_MaxMonsterCount=14 ×2=28 [PASS] 존3 id=813004 zoneClearKills=16 MonsterAppear n_MaxMonsterCount=8 ×2=16 [PASS] 보스 스포너 813010 n_MaxMonsterCount=1 (MonsterAppear 실측) lootByGrade 길이 = WLLootSettings.GradeSlots(9) + 1 = 10 ※ 발주서 §1 은 [6] 이라 적혀 있으나 실측 등급 슬롯은 9 이라 그쪽에 맞췄다 ── ② 계약 — RunEvents 6종 · RunDirector 가 무는 소스 11종 RunEvents 구독자(프로브 6개): RunStarted=1 ZoneCleared=1 BossGateOpened=1 BossStarted=1 RunEnded=1 RunTick=1 [PASS] 813q 가 구독할 6종이 전부 살아 있다 [PASS] EnsureSubscribed ×2 → 소스 11종 각각 +1 (중복 구독 0) · Subscribed=True ── ③ 런 1회(승리) — 존 4 클리어 → 게이트 → 보스 등장 → 처치 [PASS] RunStarted 1회 · phase=Zones runIndex=1 · 시작 즉시 RunTick 1회 [PASS] 스냅샷 차감 — BossArena.KillsOf(813001)=5 인데 런 진행률=0 (0 이어야 한다) [PASS] ZoneCleared 4회 / 존 4개 · 마지막 zoneIndex=3 · ZonesCleared=4 [PASS] BossGateOpened 1회 reason=ZonesCleared · BossArena.GateOpen=True resume 호출=1 [PASS] BossStarted 1회 · phase=Boss [PASS] RunEnded 1회 outcome=Win phase=Ended 집계 대조 (입력 → RunResult) [PASS] kills 99 / 기대 99 [PASS] bossKills 1 / 기대 1 [PASS] maxChain 9 / 기대 9 [PASS] maxDamage 1234.5 / 기대 1234.5 [PASS] maxDamageBurst 8888.5 / 기대 8888.5 [PASS] level 11→14 / 기대 11→14 [PASS] deaths 2 / 기대 2 [PASS] potionsUsed 3 / 기대 3 [PASS] skillCasts 7 / 기대 7 [PASS] lootTotal 45 / 기대 45 [PASS] gold 777 / 기대 777 [PASS] lootByGrade 길이 10 / 기대 10 [PASS] lootByGrade[0..9] = 0,1,2,3,4,5,6,7,8,9 / 기대 0,1,2,3,…,9 [PASS] zonesCleared 4/4 [PASS] zoneClearSec 전 존 기록됨 [PASS] zoneKills = zoneClearKills(스냅샷 차감 후) · 존0 = 24 [PASS] bossGateSec=0.00 bossStartSec=0.00 bossClearSec=0.00 [PASS] runIndex=1 runSeconds=180 BossArena 누적 보존 — KillsOf(813001)=29 (런 전 5 + 이번 런 24) [PASS] BossArena 값 리셋 0(발주서 §1) [PASS] 종료 후 처치는 집계에 안 들어간다(phase=Ended) ── ④ 시간 종료 — openGateAtSec → 게이트 · runSeconds → Timeout [PASS] 존 미달(12/24) → ZoneCleared 0 · BossGateOpened 0 [PASS] openGateAtSec(120s) 경과 → BossGateOpened reason=TimeLimit phase=BossGate [PASS] RunEnded outcome=Timeout totalSec=300.5 (runSeconds=180) [PASS] 보스 미처치 — bossKills=0 bossClearSec=-1 · zonesCleared=0/4 [PASS] runIndex=2 (두 번째 런) ── ⑤ 다음 런 — RunDirector.Restart() [PASS] runIndex 2 → 3 [PASS] RunStarted 1회 · phase=Zones [PASS] 집계 리셋 — zonesCleared=0 zone0 진행=0 [PASS] 게이트·보스 상태 리셋 — GateOpened=False BossStarted=False [PASS] BossArena.ResetGate() — GateOpen=False GateArmed=True BossKilled=False [PASS] BossArena 존 누적 보존 42 → 42 (리셋 금지 조항) [PASS] 재시작 후 존0 재클리어 ZoneCleared=1 (진행 1/4) ※ Restart() 의 PC 워프(MyActor.On_Regen → Set_Warp(Get_ReincanationPos))는 에디트 모드에 PC·LoadMapMgr 가 없어 미측정 =「미확인」 ── ⑥ RunTick 주기 (SO tickIntervalSeconds) [PASS] 같은 프레임 강제 틱 100회 → RunTick +0 (간격 미만이면 0 이어야 한다) [PASS] 절반(0.5s) 경과 → +0 [PASS] 나머지 절반 경과 → +1 = 1 Hz(tickIntervalSeconds=1) [PASS] 10초 진행 → RunTick +10 (기대 10) ── ⑦ GC — 틱·집계 100회 본시험 ΔGetTotalMemory=0 B · ΔMonoUsed=0 B · gc0 253→253 대조군 ΔGetTotalMemory=4096 B · ΔMonoUsed=4096 B (문자열 100개 · junk[100]) [PASS] 틱·집계 100회 할당 0 B ── ⑧ C8 롤백 [PASS] RuntimeDisabled=1 → Enabled=False · StartRun 무동작 · phase=Idle [PASS] 코어 off → Enabled=False · 런 구조도 안 걸린다(집계 소스가 죽으므로) [PASS] 복구 후 Enabled=True ── ⑨ 정리 — 임시 GameObject 파괴 · 구독 해제 · 런타임 스위치 복구 (에셋/씬 저장 0) RunEvents.TotalRaised=133 last=RunEnded RESULT PASS