배경
시간이 지나야 결과가 보이는 기능이 늘었다. 지금은 진짜로 기다리는 것 말고는 시험할 방법이 없다(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)
관련 커밋
- 없음