최종 갱신 (KST)

← 일감 목록
T-106

클라 — 시간 조작 치트로 시간 기능(경매 만료·시세·우편 삭제 등)을 로컬에서 시험 (서버 게임 시계 대기)

태웅 New 우선순위 보통 목표 261024

배경

시간이 지나야 결과가 보이는 기능이 늘었다. 지금은 진짜로 기다리는 것 말고는 시험할 방법이 없다(2026-10-01 사용자 제기).

기능 기다려야 하는 시간 어디서 판정
경매 매물 만료 → 우편 반환 AuctionListingHours 경매장 서버 SweepService
거래소 전일 평균가 한국 시간 자정 경계 경매장 서버 AuctionEngine (MarketDayOffset)
받은 우편 삭제 받은 뒤 7일 메인 서버
전체 우편 기간 템플릿 PeriodDays 메인 서버
채취 판정 · 오프라인 누적 판정 주기 · 접속 끊긴 시간 메인 서버 (Settle 치트는 판정 횟수만 앞당긴다)
(기획 들어오면) 시세 변동 · 일일 초기화 등 하루 · 주 —

앞으로 시간이 걸린 기능을 만들 때마다 로컬에서 시간을 넘겨 확인할 수 있어야 한다. 그래서 시간을 한 시계로 모으는 서버 작업을 요청하고, 클라는 그 시계를 따라 표시만 맞춘다.

할 일

서버 몫 — ✅ T-128 · 이슈 #48 (2026-10-06). 치트 번호는 AdvanceTime = 12 · ResetTime = 13(11은 SetTraitLevel이 먼저 썼다) · 서버 시각은 ServerPacketHandler.ServerTimeReceived · 시간을 넘겨도 채취는 쌓이지 않는다

클라 몫 (서버가 끝나면)

  • [ ] ServerClock(Managers) — 서버가 알려 준 시각과 PC 시각의 차이를 들고 UtcNow를 준다. 치트로 시간을 넘기면 함께 넘어간다(PC 시계가 틀린 경우도 덤으로 맞는다)
  • [ ] 클라가 "지금"을 쓰는 네 곳을 ServerClock으로 — AuctionText.FormatRemaining(경매 남은 시간) · MailPresenter.FormatDeleteIn(우편 삭제까지) · WorkStationProgress(채취 진행도) · PlayerDataModel(828줄 부근)
  • [ ] 치트 창(Editor/cheat-console)에 시간 넘기기 버튼 — +1시간 · +1일 · +7일 · 직접 입력(초)
  • [ ] 규칙 문서 — "시간을 보여 주는 코드는 DateTimeOffset.UtcNow 대신 ServerClock" (Managers 규칙.md · cheat-console 규칙.md)
  • [ ] 실측 — 경매 등록 → +24시간 → 만료 우편 · 우편 받기 → +7일 → 삭제 · 거래소 → +1일 → 전일 평균

완료 조건

치트 창에서 시간을 넘기면 서버 판정(만료·삭제·전일 평균)과 클라 표시(남은 시간·삭제까지)가 같은 시각으로 함께 움직인다.

막고 있는 것 / 선행 일감

  • 없음 — 서버 게임 시계 끝남(T-128, 2026-10-06)

관련 커밋

  • 없음