diff options
author | megamage <none@none> | 2009-05-25 11:08:52 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-05-25 11:08:52 -0500 |
commit | 7e1ca8f2ce85b0caa9fcd00d0c8352e18e17a1bf (patch) | |
tree | 6abf707ad39baa6d76a0e505e2b97aeb22b482f1 /src/game/Unit.cpp | |
parent | 98049925a6805f8bdb9008bd006fcb1ed5eeffe3 (diff) | |
parent | ee40287ef72ec00d3ede4abe5ad5aa68ac6cd7af (diff) |
*Merge.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r-- | src/game/Unit.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 21f34d49ac3..18fe23728ca 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -6864,6 +6864,17 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig Item* castItem = triggeredByAura->GetParentAura()->GetCastItemGUID() && GetTypeId()==TYPEID_PLAYER ? ((Player*)this)->GetItemByGuid(triggeredByAura->GetParentAura()->GetCastItemGUID()) : NULL; + + AuraMap::iterator i,next; + for (i = m_Auras.begin(); i != m_Auras.end(); i = next) + { + next = i; + ++next; + if (!(*i).second) continue; + if ( (*i).second->GetSpellProto()->Id == trigger_spell_id) continue; + if (spellmgr.IsNoStackSpellDueToSpell(trigger_spell_id, (*i).second->GetSpellProto()->Id, (pVictim == this))) + return false; + } // Try handle unknown trigger spells if (sSpellStore.LookupEntry(trigger_spell_id)==NULL) |