From a2b1cf66ca00ae22bd19abd49051537179d144b3 Mon Sep 17 00:00:00 2001 From: Shauren Date: Wed, 11 Jul 2012 23:28:40 +0200 Subject: Core/PacketIO: Update structures of many packets sent during the login process --- src/server/game/Handlers/CharacterHandler.cpp | 36 ++++++++++++++++++++------- 1 file changed, 27 insertions(+), 9 deletions(-) (limited to 'src/server/game/Handlers/CharacterHandler.cpp') diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index 94b40b921e9..7800a06024f 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -848,8 +848,31 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder* holder) data.Initialize(SMSG_FEATURE_SYSTEM_STATUS, 7); // checked in 4.2.2 data << uint8(2); // unknown value - data << uint8(0); // enable(1) / disable(0) voice chat interface in client - data << uint32(0); // Complain System Status + data << uint32(0); + data << uint32(0); + data << uint32(0); + data << uint32(0); + data.WriteBit(0); + data.WriteBit(0); + data.WriteBit(0); + data.WriteBit(0); + data.WriteBit(0); + data.WriteBit(0); + data.FlushBits(); + //if (featureBit4) + //{ + // data << uint32(0); + // data << uint32(0); + // data << uint32(0); + // data << uint32(0); + //} + + //if (featureBit5) + //{ + // data << uint32(0); + // data << uint32(0); + // data << uint32(0); + //} SendPacket(&data); // Send MOTD @@ -916,13 +939,12 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder* holder) } data.Initialize(SMSG_LEARNED_DANCE_MOVES, 4+4); - data << uint32(0); - data << uint32(0); + data << uint64(0); SendPacket(&data); data.Initialize(SMSG_HOTFIX_INFO); HotfixData const& hotfix = sObjectMgr->GetHotfixData(); - data << uint32(hotfix.size()); + data.WriteBits(hotfix.size(), 22); for (uint32 i = 0; i < hotfix.size(); ++i) { data << uint32(hotfix[i].Type); @@ -977,15 +999,11 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder* holder) pCurrChar->SendInitialPacketsAfterAddToMap(); PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_CHAR_ONLINE); - stmt->setUInt32(0, pCurrChar->GetGUIDLow()); - CharacterDatabase.Execute(stmt); stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_ACCOUNT_ONLINE); - stmt->setUInt32(0, GetAccountId()); - LoginDatabase.Execute(stmt); pCurrChar->SetInGameTime(getMSTime()); -- cgit v1.2.3