aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorArcticDevil <none@none>2009-05-10 18:49:04 +0200
committerArcticDevil <none@none>2009-05-10 18:49:04 +0200
commit9171455b73e5aaf685a5541e1b79e3a6c84c024b (patch)
tree258a87092ba9ae649765c4f2a3c716f0a9f2a035 /src
parentfcf0fdc1c15d42b228d11ae1d325df08d1bbeab2 (diff)
Send cc aura duration to party members
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/game/SpellAuras.cpp18
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);