diff --git a/src/game/Opcodes.h b/src/game/Opcodes.h index f7db2af42..73884b939 100644 --- a/src/game/Opcodes.h +++ b/src/game/Opcodes.h @@ -710,6 +710,7 @@ enum Opcodes SMSG_PVP_CREDIT = 0x6015, // 4.3.4 15595 SMSG_AUCTION_REMOVED_NOTIFICATION = 0x2334, // 4.3.4 15595 CMSG_GROUP_RAID_CONVERT = 0x6E27, // 4.3.4 15595 + CMSG_GROUP_REQUEST_JOIN_UPDATES = 0x2583, // 4.3.4 15595 CMSG_GROUP_ASSISTANT_LEADER = 0x6025, // 4.3.4 15595 CMSG_BUYBACK_ITEM = 0x6C17, // 4.3.4 15595 SMSG_SERVER_MESSAGE = 0x6C04, // 4.3.4 15595 @@ -979,7 +980,7 @@ enum Opcodes CMSG_SEND_COMBAT_TRIGGER = 0x1395, CMSG_MAELSTROM_GM_SENT_MAIL = 0x1396, SMSG_RESET_FAILED_NOTIFY = 0x4616, // 4.3.4 15595 - SMSG_REAL_GROUP_UPDATE = 0x1398, + SMSG_REAL_GROUP_UPDATE = 0x0F34, // 4.3.4 15595 SMSG_LFG_DISABLED = 0x1399, CMSG_ACTIVE_PVP_CHEAT = 0x139A, CMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY = 0x139B, diff --git a/src/game/Server/Opcodes.cpp b/src/game/Server/Opcodes.cpp index b9f388deb..eca7de900 100644 --- a/src/game/Server/Opcodes.cpp +++ b/src/game/Server/Opcodes.cpp @@ -732,6 +732,7 @@ void InitializeOpcodes() OPCODE(SMSG_PVP_CREDIT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(SMSG_AUCTION_REMOVED_NOTIFICATION, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(CMSG_GROUP_RAID_CONVERT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupRaidConvertOpcode ); + OPCODE(CMSG_GROUP_REQUEST_JOIN_UPDATES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupRequestJoinUpdates); OPCODE(CMSG_GROUP_ASSISTANT_LEADER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupAssistantLeaderOpcode); OPCODE(CMSG_BUYBACK_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBuybackItem ); OPCODE(SMSG_SERVER_MESSAGE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); @@ -1002,7 +1003,7 @@ void InitializeOpcodes() //OPCODE(CMSG_SEND_COMBAT_TRIGGER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_MAELSTROM_GM_SENT_MAIL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); OPCODE(SMSG_RESET_FAILED_NOTIFY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_REAL_GROUP_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_REAL_GROUP_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_LFG_DISABLED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_ACTIVE_PVP_CHEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_CHEAT_DUMP_ITEMS_DEBUG_ONLY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); diff --git a/src/game/Server/WorldSession.h b/src/game/Server/WorldSession.h index 00883437b..ef5518f88 100644 --- a/src/game/Server/WorldSession.h +++ b/src/game/Server/WorldSession.h @@ -551,6 +551,7 @@ class WorldSession void HandleRaidReadyCheckOpcode(WorldPacket& recv_data); void HandleRaidReadyCheckFinishedOpcode(WorldPacket& recv_data); void HandleGroupRaidConvertOpcode(WorldPacket& recv_data); + void HandleGroupRequestJoinUpdates(WorldPacket& recv_data); void HandleGroupChangeSubGroupOpcode(WorldPacket& recv_data); void HandleGroupAssistantLeaderOpcode(WorldPacket& recv_data); void HandlePartyAssignmentOpcode(WorldPacket& recv_data); diff --git a/src/game/WorldHandlers/Group.h b/src/game/WorldHandlers/Group.h index 5b758b7fb..3e54a4058 100644 --- a/src/game/WorldHandlers/Group.h +++ b/src/game/WorldHandlers/Group.h @@ -259,6 +259,7 @@ class Group uint32 GetId() const { return m_Id; } ObjectGuid GetObjectGuid() const { return ObjectGuid(HIGHGUID_GROUP, GetId()); } bool IsFull() const { return (m_groupType == GROUPTYPE_NORMAL) ? (m_memberSlots.size() >= MAX_GROUP_SIZE) : (m_memberSlots.size() >= MAX_RAID_SIZE); } + GroupType GetGroupType() const { return m_groupType; } bool isRaidGroup() const { return m_groupType & GROUPTYPE_RAID; } bool isBGGroup() const { return m_bgGroup != NULL; } bool IsCreated() const { return GetMembersCount() > 0; }