diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 838e673d7..037a80080 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -17753,6 +17753,9 @@ void Player::learnSkillRewardedSpells() void Player::SendAurasForTarget(Unit *target) { + if(target->GetVisibleAuras()->empty()) // speedup things + return; + WorldPacket data(SMSG_AURA_UPDATE_ALL); data.append(target->GetPackGUID()); @@ -17776,12 +17779,12 @@ void Player::SendAurasForTarget(Unit *target) // charges data << uint8(aura->m_procCharges); - if(!(auraFlags & AFLAG_NOT_GUID)) + if(!(auraFlags & AFLAG_NOT_CASTER)) { - data << uint8(0); // packed GUID of someone (caster?) + data << uint8(0); // packed GUID of someone (caster?) } - if(auraFlags & AFLAG_DURATION) // include aura duration + if(auraFlags & AFLAG_DURATION) // include aura duration { data << uint32(aura->GetAuraMaxDuration()); data << uint32(aura->GetAuraDuration()); diff --git a/src/game/SpellAuraDefines.h b/src/game/SpellAuraDefines.h index 47f1b28d0..6d744df6b 100644 --- a/src/game/SpellAuraDefines.h +++ b/src/game/SpellAuraDefines.h @@ -26,8 +26,8 @@ enum AURA_FLAGS AFLAG_EFF_INDEX_0 = 0x01, AFLAG_EFF_INDEX_1 = 0x02, AFLAG_EFF_INDEX_2 = 0x04, - AFLAG_NOT_GUID = 0x08, // caster guid? - AFLAG_UNK1 = 0x10, // positive? + AFLAG_NOT_CASTER = 0x08, + AFLAG_POSITIVE = 0x10, AFLAG_DURATION = 0x20, AFLAG_UNK2 = 0x40, AFLAG_NEGATIVE = 0x80 diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 81b883ae9..1f5c5ff04 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -969,7 +969,7 @@ void Aura::_AddAura() if(slot < MAX_AURAS) // slot found { SetAura(false); - SetAuraFlags((1 << GetEffIndex()) | AFLAG_NOT_GUID | (GetAuraMaxDuration() ? AFLAG_DURATION : AFLAG_NONE) | (IsPositive() ? AFLAG_NONE : AFLAG_NEGATIVE)); + SetAuraFlags((1 << GetEffIndex()) | AFLAG_NOT_CASTER | ((GetAuraMaxDuration() > 0) ? AFLAG_DURATION : AFLAG_NONE) | (IsPositive() ? AFLAG_POSITIVE : AFLAG_NEGATIVE)); SetAuraLevel(caster ? caster->getLevel() : sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)); UpdateAuraCharges(); SendAuraUpdate(false); @@ -1126,7 +1126,7 @@ void Aura::SendAuraUpdate(bool remove) data << uint8(GetAuraLevel()); data << uint8(GetAuraCharges()); - if(!(auraFlags & AFLAG_NOT_GUID)) + if(!(auraFlags & AFLAG_NOT_CASTER)) { data << uint8(0); // pguid }