diff --git a/internal/gameserver/dispatch.go b/internal/gameserver/dispatch.go index 5c1507c..8d6d2af 100644 --- a/internal/gameserver/dispatch.go +++ b/internal/gameserver/dispatch.go @@ -124,6 +124,12 @@ func isDangerCmd(cmdID uint16) bool { case 4143, 4146, 8541, 5410, 5449, 7142, 3174, 9252, 8175: return true } + // GetMapRotationData: an empty reply NREs the client's map init + // (AdventurePhase._EnterStep1_InitializeMapInfo) - drop until real + // RotaterData is implemented + if cmdID == 6827 { + return true + } return false } diff --git a/internal/gameserver/handlers_ui.go b/internal/gameserver/handlers_ui.go index 2e6d794..7960213 100644 --- a/internal/gameserver/handlers_ui.go +++ b/internal/gameserver/handlers_ui.go @@ -39,11 +39,10 @@ func init() { return nil }) - // Amphoreus map rotation (teleport pillars) — empty but valid - handle("GetMapRotationData", func(s *Session, req *goproto.GetMapRotationDataCsReq, rsp *goproto.GetMapRotationDataScRsp) error { - rsp.Retcode = 0 - return nil - }) + // NOTE: GetMapRotationData (6827) must NOT be answered with an empty + // ScRsp - the client enters map-rotation mode with a null state and NREs + // in AdventurePhase._EnterStep1_InitializeMapInfo (no scene load). + // Implement real RotaterData before answering this one. handle("GetPamSkinData", func(s *Session, req *goproto.GetPamSkinDataCsReq, rsp *goproto.GetPamSkinDataScRsp) error { rsp.Retcode = 0