diff options
author | QAston <none@none> | 2009-05-18 19:00:20 +0200 |
---|---|---|
committer | QAston <none@none> | 2009-05-18 19:00:20 +0200 |
commit | 6c7f2d2b242f950ab0e80a9da546806e672d37c1 (patch) | |
tree | 905e7a9a829721f2c65cbf075c86f4f5b6d724d4 /src/game/Unit.cpp | |
parent | e45c57f298acfb496947be150dd379e3f39bc673 (diff) |
*Spell_proc_event entries for Malestorm Weapon - by throneinc
*Fix bug that some spells can't proc
*Add spell_proc_event entries for some items.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r-- | src/game/Unit.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 8b7677e6d2f..7cfb6a1d16c 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -12012,14 +12012,14 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag if (!isTriggerAura[aurEff->GetAuraName()] && triggerData.spellProcEvent==NULL) continue; triggerData.effMask |= 1<<i; - if (procExtra & (PROC_EX_INTERNAL_TRIGGERED | PROC_EX_INTERNAL_CANT_PROC)) - itr->second->SetCanProc(false); - else - itr->second->SetCanProc(true); } } if (triggerData.effMask) + { procTriggered.push_front(triggerData); + if (procExtra & (PROC_EX_INTERNAL_TRIGGERED | PROC_EX_INTERNAL_CANT_PROC)) + itr->second->SetCantProc(true); + } } // Nothing found @@ -12189,6 +12189,11 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag i->aura->DropAuraCharge(); } } + + // Cleanup proc requirements + if (procExtra & (PROC_EX_INTERNAL_TRIGGERED | PROC_EX_INTERNAL_CANT_PROC)) + for(ProcTriggeredList::iterator i = procTriggered.begin(); i != procTriggered.end(); ++i) + i->aura->SetCantProc(false); } SpellSchoolMask Unit::GetMeleeDamageSchoolMask() const |