*Fix display of auras owned by out of range raid/party members.
--HG-- branch : trunk
This commit is contained in:
@@ -720,8 +720,11 @@ void WorldSession::BuildPartyMemberStatsChangedPacket(Player *player, WorldPacke
|
||||
{
|
||||
if(auramask & (uint64(1) << i))
|
||||
{
|
||||
*data << uint16(player->GetUInt32Value(UNIT_FIELD_AURA + i));
|
||||
uint32 updatedAura=player->GetUInt32Value(UNIT_FIELD_AURA + i);
|
||||
*data << uint16(updatedAura);
|
||||
*data << uint8(1);
|
||||
if(!updatedAura)
|
||||
player->UnsetAuraUpdateMask(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -801,8 +804,11 @@ void WorldSession::BuildPartyMemberStatsChangedPacket(Player *player, WorldPacke
|
||||
{
|
||||
if(auramask & (uint64(1) << i))
|
||||
{
|
||||
*data << uint16(pet->GetUInt32Value(UNIT_FIELD_AURA + i));
|
||||
uint32 updatedAura=pet->GetUInt32Value(UNIT_FIELD_AURA + i);
|
||||
*data << uint16(updatedAura);
|
||||
*data << uint8(1);
|
||||
if(!updatedAura)
|
||||
pet->UnsetAuraUpdateMask(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -886,7 +886,7 @@ void Aura::_AddAura()
|
||||
UpdateAuraCharges();
|
||||
|
||||
// update for out of range group members
|
||||
m_target->UpdateAuraForGroup(slot, true);
|
||||
m_target->UpdateAuraForGroup(slot);
|
||||
}
|
||||
}
|
||||
else // use found slot
|
||||
@@ -973,7 +973,7 @@ void Aura::_RemoveAura()
|
||||
|
||||
SetAuraApplication(slot, 0);
|
||||
// update for out of range group members
|
||||
m_target->UpdateAuraForGroup(slot, false);
|
||||
m_target->UpdateAuraForGroup(slot);
|
||||
|
||||
if( IsSealSpell(GetSpellProto()) )
|
||||
m_target->ModifyAuraState(AURA_STATE_JUDGEMENT,false);
|
||||
|
||||
+3
-9
@@ -12286,7 +12286,7 @@ uint32 Unit::GetCastingTimeForBonus( SpellEntry const *spellProto, DamageEffectT
|
||||
return CastingTime;
|
||||
}
|
||||
|
||||
void Unit::UpdateAuraForGroup(uint8 slot, bool apply)
|
||||
void Unit::UpdateAuraForGroup(uint8 slot)
|
||||
{
|
||||
if(GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
@@ -12294,10 +12294,7 @@ void Unit::UpdateAuraForGroup(uint8 slot, bool apply)
|
||||
if(player->GetGroup())
|
||||
{
|
||||
player->SetGroupUpdateFlag(GROUP_UPDATE_FLAG_AURAS);
|
||||
if(apply)
|
||||
player->SetAuraUpdateMask(slot);
|
||||
else
|
||||
player->UnsetAuraUpdateMask(slot);
|
||||
player->SetAuraUpdateMask(slot);
|
||||
}
|
||||
}
|
||||
else if(GetTypeId() == TYPEID_UNIT && ((Creature*)this)->isPet())
|
||||
@@ -12309,10 +12306,7 @@ void Unit::UpdateAuraForGroup(uint8 slot, bool apply)
|
||||
if(owner && (owner->GetTypeId() == TYPEID_PLAYER) && ((Player*)owner)->GetGroup())
|
||||
{
|
||||
((Player*)owner)->SetGroupUpdateFlag(GROUP_UPDATE_FLAG_PET_AURAS);
|
||||
if(apply)
|
||||
pet->SetAuraUpdateMask(slot);
|
||||
else
|
||||
pet->UnsetAuraUpdateMask(slot);
|
||||
pet->SetAuraUpdateMask(slot);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1392,7 +1392,7 @@ class TRINITY_DLL_SPEC Unit : public WorldObject
|
||||
void UpdateReactives(uint32 p_time);
|
||||
|
||||
// group updates
|
||||
void UpdateAuraForGroup(uint8 slot, bool apply);
|
||||
void UpdateAuraForGroup(uint8 slot);
|
||||
|
||||
// pet auras
|
||||
typedef std::set<PetAura const*> PetAuraSet;
|
||||
|
||||
Reference in New Issue
Block a user