diff options
| author | Shauren <shauren.trinity@gmail.com> | 2016-07-26 20:55:24 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2016-07-26 20:55:24 +0200 |
| commit | 83555367a786230fcd5ed3672e1ff3eac42c6f68 (patch) | |
| tree | b199412f587a5207ea44c4d9623a4d3a5e9f6f1a /src/server/game/Server | |
| parent | 060256000b1a553a21581b9b65e12f7cb034e148 (diff) | |
Core/Auras: Visibility changes
* Changed max visible aura amount to 255
* All auras are now sent to clients, many passives that client needed to see were incorrectly hidden (also client properly filters aura bar by itself)
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/PartyPackets.cpp | 64 |
1 files changed, 29 insertions, 35 deletions
diff --git a/src/server/game/Server/Packets/PartyPackets.cpp b/src/server/game/Server/Packets/PartyPackets.cpp index 91b6ca4e18d..686123de4d6 100644 --- a/src/server/game/Server/Packets/PartyPackets.cpp +++ b/src/server/game/Server/Packets/PartyPackets.cpp @@ -600,30 +600,27 @@ void WorldPackets::Party::PartyMemberState::Initialize(Player const* player) MemberStats.VehicleSeat = player->GetVehicle()->GetVehicleInfo()->SeatID[player->m_movementInfo.transport.seat]; // Auras - for (uint8 i = 0; i < MAX_AURAS; ++i) + for (AuraApplication const* aurApp : player->GetVisibleAuras()) { - if (AuraApplication const* aurApp = player->GetVisibleAura(i)) - { - WorldPackets::Party::PartyMemberAuraStates aura; + WorldPackets::Party::PartyMemberAuraStates aura; - aura.SpellID = aurApp->GetBase()->GetId(); - aura.ActiveFlags = aurApp->GetEffectMask(); - aura.Flags = aurApp->GetFlags(); + aura.SpellID = aurApp->GetBase()->GetId(); + aura.ActiveFlags = aurApp->GetEffectMask(); + aura.Flags = aurApp->GetFlags(); - if (aurApp->GetFlags() & AFLAG_SCALABLE) + if (aurApp->GetFlags() & AFLAG_SCALABLE) + { + for (AuraEffect const* aurEff : aurApp->GetBase()->GetAuraEffects()) { - for (AuraEffect const* aurEff : aurApp->GetBase()->GetAuraEffects()) - { - if (!aurEff) - continue; + if (!aurEff) + continue; - if (aurApp->HasEffect(aurEff->GetEffIndex())) - aura.Points.push_back(float(aurEff->GetAmount())); - } + if (aurApp->HasEffect(aurEff->GetEffIndex())) + aura.Points.push_back(float(aurEff->GetAmount())); } - - MemberStats.Auras.push_back(aura); } + + MemberStats.Auras.push_back(aura); } // Phases @@ -652,30 +649,27 @@ void WorldPackets::Party::PartyMemberState::Initialize(Player const* player) MemberStats.PetStats->CurrentHealth = pet->GetHealth(); MemberStats.PetStats->MaxHealth = pet->GetMaxHealth(); - for (uint8 i = 0; i < MAX_AURAS; ++i) + for (AuraApplication const* aurApp : pet->GetVisibleAuras()) { - if (AuraApplication const* aurApp = pet->GetVisibleAura(i)) - { - WorldPackets::Party::PartyMemberAuraStates aura; + WorldPackets::Party::PartyMemberAuraStates aura; - aura.SpellID = aurApp->GetBase()->GetId(); - aura.ActiveFlags = aurApp->GetEffectMask(); - aura.Flags = aurApp->GetFlags(); + aura.SpellID = aurApp->GetBase()->GetId(); + aura.ActiveFlags = aurApp->GetEffectMask(); + aura.Flags = aurApp->GetFlags(); - if (aurApp->GetFlags() & AFLAG_SCALABLE) + if (aurApp->GetFlags() & AFLAG_SCALABLE) + { + for (AuraEffect const* aurEff : aurApp->GetBase()->GetAuraEffects()) { - for (AuraEffect const* aurEff : aurApp->GetBase()->GetAuraEffects()) - { - if (!aurEff) - continue; - - if (aurApp->HasEffect(aurEff->GetEffIndex())) - aura.Points.push_back(float(aurEff->GetAmount())); - } - } + if (!aurEff) + continue; - MemberStats.PetStats->Auras.push_back(aura); + if (aurApp->HasEffect(aurEff->GetEffIndex())) + aura.Points.push_back(float(aurEff->GetAmount())); + } } + + MemberStats.PetStats->Auras.push_back(aura); } } } |
