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