diff options
| -rw-r--r-- | src/game/Unit.cpp | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 794a3e7bcd0..961fb623b72 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -11533,7 +11533,7 @@ Unit* Creature::SelectVictim() // No taunt aura or taunt aura caster is dead standart target selection target = m_ThreatManager.getHostilTarget(); } - else + else if(!HasReactState(REACT_PASSIVE)) { // We have player pet probably target = getAttackerForHelper(); @@ -11541,25 +11541,24 @@ Unit* Creature::SelectVictim() { if (Unit * owner = ((TempSummon*)this)->GetOwner()) { - if (HasReactState(REACT_AGGRESSIVE) || HasReactState(REACT_DEFENSIVE)) + if (owner->isInCombat()) + target = owner->getAttackerForHelper(); + if (!target) { - if (owner->isInCombat()) - target = owner->getAttackerForHelper(); - if (!target) + for(ControlList::const_iterator itr = owner->m_Controlled.begin(); itr != owner->m_Controlled.end(); ++itr) { - for(ControlList::const_iterator itr = owner->m_Controlled.begin(); itr != owner->m_Controlled.end(); ++itr) + if ((*itr)->isInCombat()) { - if ((*itr)->isInCombat()) - { - target = (*itr)->getAttackerForHelper(); - if (target) break; - } + target = (*itr)->getAttackerForHelper(); + if (target) break; } } } } } } + else + return NULL; if(target) { |
