From 073535340531a2546ca05327ce97d0b4b3804790 Mon Sep 17 00:00:00 2001 From: savis <106487343+savisxss@users.noreply.github.com> Date: Sun, 28 Dec 2025 16:44:26 +0100 Subject: [PATCH] Fix SEQUENCE mismatch error in packet validation --- src/game/desc.cpp | 7 ++++++- src/game/desc.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/game/desc.cpp b/src/game/desc.cpp index 2f6c450..567babc 100644 --- a/src/game/desc.cpp +++ b/src/game/desc.cpp @@ -77,6 +77,8 @@ void DESC::Initialize() m_bChannelStatusRequested = false; m_SequenceGenerator.seed(SEQUENCE_SEED); + // Pre-generate the first expected sequence to match what client will send + m_bNextExpectedSequence = m_SequenceGenerator(UINT8_MAX + 1); m_pkLoginKey = NULL; m_dwLoginKey = 0; @@ -911,7 +913,10 @@ bool DESC::IsAdminMode() BYTE DESC::GetSequence() { - return m_SequenceGenerator(UINT8_MAX + 1); + // Return the next expected sequence and then generate the one after that + BYTE bCurrentExpected = m_bNextExpectedSequence; + m_bNextExpectedSequence = m_SequenceGenerator(UINT8_MAX + 1); + return bCurrentExpected; } void DESC::SendLoginSuccessPacket() diff --git a/src/game/desc.h b/src/game/desc.h index bc81300..1ffb2ca 100644 --- a/src/game/desc.h +++ b/src/game/desc.h @@ -226,6 +226,7 @@ class DESC bool m_bPong; pcg32 m_SequenceGenerator; + BYTE m_bNextExpectedSequence; // Next expected sequence number from client CLoginKey * m_pkLoginKey; DWORD m_dwLoginKey;