최종 갱신 (KST)

← 일감 목록
T-068

클라 — 계정 레벨 표시 · 특성 트리 화면 · 산업 레벨 선택 칸

태웅 Closed 우선순위 높음 목표 미정 · 보관됨

배경

서버에 계정 레벨과 특성 트리가 섰다(2026-09-19, T-021). 캐릭터가 얻은 경험치가 그대로 계정 경험치가 되고, 5레벨마다 특성 포인트 1점을 준다. 포인트로 특성 노드를 찍으면 산업 레벨(Lv2~5) 이 열리거나 산업별 작업속도(+10%씩 5단) 가 붙는다.

클라에는 아직 이것을 보여 주거나 누를 자리가 없다 — 지금은 상위 산업 레벨을 열 방법이 없다.

할 일

  • [x] 계정 레벨 표시 (2026-09-20) — S_AccountLevelResponse { Level, Exp, TraitPoint } 수신(로그인 직후 · 경험치 오를 때 · 포인트 쓸 때). 필요 경험치는 AccountLevelTable.RequiredExp
  • [x] 특성 트리 화면 (2026-09-20) — UserTraitTable(노드 · 비용 · 효과) + UnlockTable(같은 TID 행의 계정 레벨 · 선행)로 그린다. 찍었는지는 열린 해금 목록(S_UnlockListResponse · S_UnlockResponse)
    • 요청 C_UserTraitLearnRequest { UserTraitTID } → S_UserTraitLearnResponse { Result, UserTraitTID }
    • 결과 코드: NotEnoughTraitPoint · UnlockLocked(계정 레벨·선행 미달) · AlreadyUnlocked · InvalidUserTraitTID
    • 잠긴 노드도 조건과 함께 보인다(해금 규칙 — 숨기지 않는다)
  • [x] 작업슬롯 세팅 화면의 산업 레벨 선택 칸 (2026-09-20) — 열린 레벨만 고를 수 있게. 열렸는지 = IndustryLevelTable.UnlockTID가 열린 해금 목록에 있는가(Lv1은 0 = 항상)
  • [x] ⏳ 실측 (사용자 확인 2026-09-21) — 속도 특성을 찍으면 슬롯 속도가 S_WorkStationSlotSyncResponse로 바뀌어 온다 — 카운트다운이 따라가는지 확인
  • [x] 결과 문구 — ResultMessages에 NotEnoughTraitPoint · TraitOnlyUnlock · InvalidUserTraitTID 추가 (IndustryLevelLocked 문구도 다듬었다 — 산업 자체를 가리키는 것처럼 읽혔다)

완료 조건

✅ 2026-09-21 사용자 실측 — "기능들은 다 정상 작동한다". 같은 날 UI 한 곳을 다듬었다: 계정 경험치가 가로 띠 → 닉 아이콘을 두르는 원형 진행도로 바뀌었다 (43px을 위아래로 나누니 재화 줄이 눌렸다 — 근거는 State 규칙.md). ⚠️ 검증은 트리에서 직접 찍어서 한다. 치트 「해금」으로 특성 노드를 열면 포인트가 안 빠진다 (이슈 #31 — 2026-09-22 종료, 포인트 미차감은 치트의 정의대로 유지).

치트(GiveAccountExp = 9)로 계정 레벨을 올린 뒤 특성 트리에서 "낚시 Lv2"를 찍으면 포인트가 1 줄고, 작업슬롯에서 낚시 Lv2를 골라 배치할 수 있다. 속도 노드를 찍으면 그 산업 슬롯의 주기가 짧아진다.

막고 있는 것 / 선행 일감

  • 없음 — 서버·패킷·데이터가 섰다 (T-021)
  • 창고 특성 탭(T-043)과 같은 화면으로 정했다 (2026-09-20) — #Storage Canvas의 자식 Trait Presenter. 특성 탭에서만 켜지고 격자를 쓰지 않는다

관련 커밋

  • da7aa66 코드 — 수신 층 · 특성 화면 · 산업 레벨 선택
  • 32af50a 씬 — Trait Presenter · 상태 패널 · Industry Level Panel
  • 3be0d6b 문서
  • e89e3dd · 31c1e98 씬·문서 — 경험치를 원형 진행도로 (2026-09-21)

참고

  • 기획: 특성 2·3장 · 산업 레벨 3장 · 해금 4.2
  • 치트창 「해금」 51줄 중 45줄이 특성 노드다(노드 TID = UnlockTID). 치트 경로가 TraitOnlyUnlock 검사를 지나치는 건은 이슈 #31에서 2026-09-22 종료 — 서버가 속도 재정산을 해금 공통 후속(ApplyUnlock)으로 옮겨 치트 해금도 즉시 속도가 붙는다. 포인트는 치트 정의대로 차감하지 않는다 → 치트창은 지금 목록 그대로 두고, 포인트까지 볼 때는 트리에서 직접 찍는다
  • ⚠️ PacketId·EResultCode 번호가 바뀌었다(적성 포인트 27·28 → 32·33, 캐릭터 결과 코드 600 → 700) — 미러를 다시 받으면 이름은 그대로라 클라 코드 수정은 없다