mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-20 17:27:36 +01:00
Core/Packets: fixed packet structure and opcode for SMSG_UPDATE_TALENT_DATA (for real this time)
This commit is contained in:
@@ -40,28 +40,34 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Talent::TalentInfo const&
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Talent::TalentGroupInfo const& talentGroupInfo)
|
||||
{
|
||||
data << uint32(talentGroupInfo.GlyphInfo.size());
|
||||
data << uint32(talentGroupInfo.TalentInfos.size());
|
||||
data << uint32(talentGroupInfo.SpecID);
|
||||
data << uint8(talentGroupInfo.Talents.size());
|
||||
data << uint32(talentGroupInfo.Talents.size());
|
||||
|
||||
for (uint16 glyph : talentGroupInfo.GlyphInfo)
|
||||
data << uint16(glyph);
|
||||
data << uint8(talentGroupInfo.GlyphIDs.size());
|
||||
data << uint32(talentGroupInfo.GlyphIDs.size());
|
||||
|
||||
for (auto& talentInfo : talentGroupInfo.TalentInfos)
|
||||
data << talentInfo;
|
||||
data << uint8(talentGroupInfo.SpecID);
|
||||
|
||||
for (auto const& talent : talentGroupInfo.Talents)
|
||||
data << talent;
|
||||
|
||||
for (uint16 glyphId : talentGroupInfo.GlyphIDs)
|
||||
data << uint16(glyphId);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Talent::UpdateTalentData::Write()
|
||||
{
|
||||
_worldPacket << uint8(ActiveGroup);
|
||||
_worldPacket << uint32(UnspentTalentPoints);
|
||||
_worldPacket << uint8(ActiveGroup);
|
||||
_worldPacket << uint32(TalentGroupInfos.size());
|
||||
|
||||
for (auto& talentGroupInfo : TalentGroupInfos)
|
||||
for (auto const& talentGroupInfo : TalentGroupInfos)
|
||||
_worldPacket << talentGroupInfo;
|
||||
|
||||
_worldPacket.WriteBit(IsPetTalents);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
|
||||
@@ -41,9 +41,9 @@ namespace WorldPackets
|
||||
|
||||
struct TalentGroupInfo
|
||||
{
|
||||
uint8 SpecID = 0;
|
||||
std::vector<TalentInfo> TalentInfos;
|
||||
std::vector<uint16> GlyphInfo;
|
||||
int32 SpecID = 0;
|
||||
std::vector<uint16> Talents;
|
||||
std::vector<uint16> GlyphIDs;
|
||||
};
|
||||
|
||||
class UpdateTalentData final : public ServerPacket
|
||||
@@ -55,6 +55,7 @@ namespace WorldPackets
|
||||
|
||||
uint32 UnspentTalentPoints = 0;
|
||||
uint8 ActiveGroup = 0;
|
||||
bool IsPetTalents = false;
|
||||
std::vector<TalentGroupInfo> TalentGroupInfos;
|
||||
};
|
||||
|
||||
|
||||
@@ -1929,19 +1929,19 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_SEASON, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_ARENA_TEAM_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_BATTLE_PET_NAME_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_CREATURE_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GAME_OBJECT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_CREATURE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GAME_OBJECT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GARRISON_PET_NAME_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GUILD_FOLLOW_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GUILD_INFO_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_ITEM_TEXT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_NPC_TEXT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_NPC_TEXT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PAGE_TEXT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PETITION_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PET_NAME_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PLAYER_NAME_BY_COMMUNITY_ID_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PLAYER_NAMES_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_QUEST_INFO_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PLAYER_NAMES_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_QUEST_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_REALM_GUILD_MASTER_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_TIME_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUEST_COMPLETION_NPC_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
@@ -2196,7 +2196,6 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_INSTANCE_OWNERSHIP, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_LAST_INSTANCE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_OBJECT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_PET_TALENT_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_PRIMARY_SPEC, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_REALM_HIDDEN_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_RECENT_PLAYER_GUIDS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
|
||||
@@ -1841,10 +1841,9 @@ enum OpcodeServer : uint16
|
||||
SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x26A9,
|
||||
SMSG_UPDATE_LAST_INSTANCE = 0x2688,
|
||||
SMSG_UPDATE_OBJECT = 0x27CB,
|
||||
SMSG_UPDATE_PET_TALENT_DATA = 0x25D7,
|
||||
SMSG_UPDATE_PRIMARY_SPEC = 0x25D8,
|
||||
SMSG_UPDATE_REALM_HIDDEN_INFO = 0x28AC,
|
||||
SMSG_UPDATE_TALENT_DATA = 0x25D6,
|
||||
SMSG_UPDATE_TALENT_DATA = 0x25D7,
|
||||
SMSG_UPDATE_WORLD_STATE = 0x2748,
|
||||
SMSG_USERLIST_ADD = 0x2BB9,
|
||||
SMSG_USERLIST_REMOVE = 0x2BBA,
|
||||
|
||||
Reference in New Issue
Block a user