diff options
author | megamage <none@none> | 2009-01-16 22:59:24 -0600 |
---|---|---|
committer | megamage <none@none> | 2009-01-16 22:59:24 -0600 |
commit | fa2e6622ad9dca5051b451e14ea303670ec65fa6 (patch) | |
tree | 585a7216408a60c43037244c96b2be7bceffa568 /src/game/Unit.cpp | |
parent | 11239e9f5f9bf63e1ec07bb348b054accebd5b56 (diff) | |
parent | 0a1c601a1cc0e0036ad8fbfce68d87d14fa572d0 (diff) |
*Merge.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r-- | src/game/Unit.cpp | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index e497ab25d2b..23adc211ec3 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -8570,23 +8570,12 @@ void Unit::CombatStart(Unit* target) if(!target->IsStandState()/* && !target->hasUnitState(UNIT_STAT_STUNNED)*/) target->SetStandState(PLAYER_STATE_NONE); - //Call creature group update - if(GetTypeId()==TYPEID_UNIT && ((Creature *)this)->GetFormationID() && - CreatureGroupHolder.find(((Creature *)this)->GetFormationID()) != CreatureGroupHolder.end()) - CreatureGroupHolder[((Creature *)this)->GetFormationID()]->MemberHasAttacked(((Creature *)this)); - if(!target->isInCombat() && target->GetTypeId() != TYPEID_PLAYER && !((Creature*)target)->HasReactState(REACT_PASSIVE) && ((Creature*)target)->AI()) - { - SetInCombatWith(target); - target->SetInCombatWith(this); ((Creature*)target)->AI()->AttackStart(this); - } - else - { - SetInCombatWith(target); - target->SetInCombatWith(this); - } + + SetInCombatWith(target); + target->SetInCombatWith(this); Unit *who = target->GetCharmerOrOwnerOrSelf(); if(who->GetTypeId() == TYPEID_PLAYER) @@ -8600,6 +8589,14 @@ void Unit::CombatStart(Unit* target) me->UpdatePvP(true); me->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT); } + + //Call creature group update + if(GetTypeId()==TYPEID_UNIT && ((Creature*)this)->GetFormationID()) + { + CreatureGroupHolderType::iterator itr = CreatureGroupHolder.find(((Creature*)this)->GetFormationID()); + if(itr != CreatureGroupHolder.end()) + itr->second->MemberHasAttacked(((Creature*)this)); + } } void Unit::SetInCombatState(bool PvP) @@ -9297,12 +9294,15 @@ bool Unit::SelectHostilTarget() } // search nearby enemy before enter evade mode - if(Unit *target = ((Creature*)this)->SelectNearestTarget()) + if(((Creature*)this)->HasReactState(REACT_AGGRESSIVE)) { - if(!((Creature*)this)->IsOutOfThreatArea(target)) + if(Unit *target = ((Creature*)this)->SelectNearestTarget()) { - ((Creature*)this)->AI()->AttackStart(target); - return true; + if(!((Creature*)this)->IsOutOfThreatArea(target)) + { + ((Creature*)this)->AI()->AttackStart(target); + return true; + } } } |