From b5f66f835c2139266cfc6a5fda0845df8b30844d Mon Sep 17 00:00:00 2001 From: zamalaev Date: Mon, 17 Feb 2020 15:51:38 +0000 Subject: [PATCH] Fix HandleCharCreateOpcode --- src/game/Object/Player.h | 6 +++--- src/game/WorldHandlers/CharacterHandler.cpp | 14 +++++--------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/game/Object/Player.h b/src/game/Object/Player.h index dd44199a5..9578cca95 100644 --- a/src/game/Object/Player.h +++ b/src/game/Object/Player.h @@ -65,9 +65,9 @@ struct AreaTrigger; typedef std::deque PlayerMails; -#define PLAYER_MAX_SKILLS 128 -#define PLAYER_MAX_DAILY_QUESTS 25 -#define PLAYER_EXPLORED_ZONES_SIZE 156 +#define PLAYER_MAX_SKILLS 448 +#define PLAYER_MAX_DAILY_QUESTS 750 +#define PLAYER_EXPLORED_ZONES_SIZE 200 // 2^n internal values, they are never sent to the client enum PlayerUnderwaterState diff --git a/src/game/WorldHandlers/CharacterHandler.cpp b/src/game/WorldHandlers/CharacterHandler.cpp index 62028fc9c..982a68282 100644 --- a/src/game/WorldHandlers/CharacterHandler.cpp +++ b/src/game/WorldHandlers/CharacterHandler.cpp @@ -209,17 +209,13 @@ void WorldSession::HandleCharEnumOpcode(WorldPacket & /*recv_data*/) void WorldSession::HandleCharCreateOpcode(WorldPacket& recv_data) { std::string name; - uint8 race_, class_; + uint8 race_, class_, gender, skin, face, hairStyle, hairColor, facialHair, outfitId; - recv_data >> name; + recv_data >> gender >> hairColor >> outfitId; + recv_data >> race_ >> class_ >> face>> facialHair >> skin >> hairStyle; - recv_data >> race_; - recv_data >> class_; - - // extract other data required for player creating - uint8 gender, skin, face, hairStyle, hairColor, facialHair, outfitId; - recv_data >> gender >> skin >> face; - recv_data >> hairStyle >> hairColor >> facialHair >> outfitId; + uint8 nameLength = recv_data.ReadBits(7); + name = recv_data.ReadString(nameLength); WorldPacket data(SMSG_CHAR_CREATE, 1); // returned with diff.values in all cases