From cf2267af3f95b539a1d32efae38066d83cdd9e5e Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Sat, 20 Feb 2021 13:49:41 +0100 Subject: [PATCH] Core/Packets: correct sending party member auras to other clients --- .../game/Server/Packets/PartyPackets.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/server/game/Server/Packets/PartyPackets.cpp b/src/server/game/Server/Packets/PartyPackets.cpp index 632e0840040..c1cea864480 100644 --- a/src/server/game/Server/Packets/PartyPackets.cpp +++ b/src/server/game/Server/Packets/PartyPackets.cpp @@ -109,14 +109,13 @@ void WorldPackets::Party::PartyMemberState::Initialize(Player const* player) MemberStats.VehicleSeat = player->GetVehicle()->GetVehicleInfo()->SeatID[player->m_movementInfo.transport.seat]; // Auras - MemberStats.AuraMask = player->GetAuraUpdateMaskForRaid(); + uint64 auraMask = 0; for (uint8 i = 0; i < MAX_AURAS; ++i) { - if (!(MemberStats.AuraMask & (uint64(1) << i))) - continue; - if (AuraApplication const* aurApp = player->GetVisibleAura(i)) { + auraMask |= (uint64(1) << i); + WorldPackets::Party::PartyMemberAuraStates aura; aura.SpellID = aurApp->GetBase()->GetId(); aura.Flags = aurApp->GetFlags(); @@ -134,12 +133,13 @@ void WorldPackets::Party::PartyMemberState::Initialize(Player const* player) MemberStats.Auras.push_back(aura); } + + MemberStats.AuraMask = auraMask; } // Phases PhasingHandler::FillPartyMemberPhase(&MemberStats.Phases, player->GetPhaseShift()); - // Pet if (player->GetPet()) { @@ -158,14 +158,13 @@ void WorldPackets::Party::PartyMemberState::Initialize(Player const* player) MemberStats.PetStats->MaxPower = player->GetMaxPower(player->GetPowerType()); // Auras - MemberStats.PetStats->AuraMask = player->GetAuraUpdateMaskForRaid(); + auraMask = 0; for (uint8 i = 0; i < MAX_AURAS; ++i) { - if (!(MemberStats.PetStats->AuraMask & (uint64(1) << i))) - continue; - if (AuraApplication const* aurApp = pet->GetVisibleAura(i)) { + auraMask |= (uint64(1) << i); + WorldPackets::Party::PartyMemberAuraStates aura; aura.SpellID = aurApp->GetBase()->GetId(); aura.Flags = aurApp->GetFlags(); @@ -184,6 +183,8 @@ void WorldPackets::Party::PartyMemberState::Initialize(Player const* player) MemberStats.PetStats->Auras.push_back(aura); } } + + MemberStats.PetStats->AuraMask = auraMask; } }