diff options
author | ArcticDevil <none@none> | 2009-05-10 18:49:04 +0200 |
---|---|---|
committer | ArcticDevil <none@none> | 2009-05-10 18:49:04 +0200 |
commit | 9171455b73e5aaf685a5541e1b79e3a6c84c024b (patch) | |
tree | 258a87092ba9ae649765c4f2a3c716f0a9f2a035 /src | |
parent | fcf0fdc1c15d42b228d11ae1d325df08d1bbeab2 (diff) |
Send cc aura duration to party members
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/SpellAuras.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index c2be850370c..8c9c640c86b 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -774,12 +774,28 @@ void Aura::UpdateAuraDuration() Unit* caster = GetCaster(); - if(caster && caster->GetTypeId() == TYPEID_PLAYER && caster != m_target) + if(caster && caster->GetTypeId() == TYPEID_PLAYER) + { SendAuraDurationForCaster((Player*)caster); + + Group* CasterGroup = ((Player*)caster)->GetGroup(); + if (CasterGroup && (spellmgr.GetSpellCustomAttr(GetId()) & SPELL_ATTR_CU_AURA_CC)) + { + for (GroupReference *itr = CasterGroup->GetFirstMember(); itr != NULL; itr = itr->next()) + { + Player* player = itr->getSource(); + if(player && player != caster) + SendAuraDurationForCaster(player); + } + } + } } void Aura::SendAuraDurationForCaster(Player* caster) { + if (caster == m_target) + return; + WorldPacket data(SMSG_SET_EXTRA_AURA_INFO_NEED_UPDATE, (8+1+4+4+4)); data.append(m_target->GetPackGUID()); data << uint8(m_auraSlot); |