diff options
-rw-r--r-- | src/game/SpellEffects.cpp | 2 | ||||
-rw-r--r-- | src/game/Unit.cpp | 10 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 39d2c3796b8..27196aa9a7a 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -4067,7 +4067,7 @@ void Spell::EffectTaunt(uint32 /*i*/) unitTarget->getThreatManager().addThreat(m_caster, itsThreat - myThreat); } - if(((Creature*)unitTarget)->IsAIEnabled) + if(((Creature*)unitTarget)->IsAIEnabled && !((Creature*)unitTarget)->HasReactState(REACT_PASSIVE)) ((Creature*)unitTarget)->AI()->AttackStart(m_caster); } diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index c287713b6c2..0588e5fe2a2 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -10681,6 +10681,9 @@ void Unit::TauntApply(Unit* taunter) if(!CanHaveThreatList()) return; + if(((Creature*)this)->HasReactState(REACT_PASSIVE)) + return; + Unit *target = getVictim(); if(target && target == taunter) return; @@ -10704,6 +10707,9 @@ void Unit::TauntFadeOut(Unit *taunter) if(!CanHaveThreatList()) return; + if(((Creature*)this)->HasReactState(REACT_PASSIVE)) + return; + Unit *target = getVictim(); if(!target || target != taunter) return; @@ -12813,8 +12819,8 @@ bool Unit::IsTriggeredAtSpellProcEvent(Unit *pVictim, Aura * aura, SpellEntry co return false; // Do not proc spells for totem if aura does not require family to proc - if (GetTypeId()==TYPEID_UNIT && isTotem() && ((*Totem)this)->target->IsControlledByPlayer()) - if (!spellProcEvent || !spellProcEvent->spellFamilyFlags) + if (GetTypeId()==TYPEID_UNIT && ((Creature*)this)->isTotem() && ((Totem*)this)->IsControlledByPlayer()) + if (!spellProcEvent || !spellProcEvent->spellFamilyName) return false; // Additional checks for triggered spells |