[7697] Interrupt casting at enter to evade mode. Author: VladimirMangos
--HG-- branch : trunk
This commit is contained in:
@@ -47,7 +47,7 @@ void AggressorAI::EnterEvadeMode()
|
||||
{
|
||||
DEBUG_LOG("Creature stopped attacking cuz his dead [guid=%u]", m_creature->GetGUIDLow());
|
||||
i_victimGuid = 0;
|
||||
m_creature->CombatStop();
|
||||
m_creature->CombatStop(true);
|
||||
m_creature->DeleteThreatList();
|
||||
return;
|
||||
}
|
||||
@@ -90,7 +90,7 @@ void AggressorAI::EnterEvadeMode()
|
||||
|
||||
m_creature->DeleteThreatList();
|
||||
i_victimGuid = 0;
|
||||
m_creature->CombatStop();
|
||||
m_creature->CombatStop(true);
|
||||
m_creature->SetLootRecipient(NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -1081,7 +1081,7 @@ void CreatureEventAI::EnterEvadeMode()
|
||||
m_creature->InterruptNonMeleeSpells(true);
|
||||
m_creature->RemoveAllAuras();
|
||||
m_creature->DeleteThreatList();
|
||||
m_creature->CombatStop();
|
||||
m_creature->CombatStop(true);
|
||||
|
||||
if (m_creature->isAlive())
|
||||
m_creature->GetMotionMaster()->MoveTargetedHome();
|
||||
|
||||
@@ -67,7 +67,7 @@ void GuardAI::EnterEvadeMode()
|
||||
i_state = STATE_NORMAL;
|
||||
|
||||
i_victimGuid = 0;
|
||||
m_creature->CombatStop();
|
||||
m_creature->CombatStop(true);
|
||||
m_creature->DeleteThreatList();
|
||||
return;
|
||||
}
|
||||
@@ -98,7 +98,7 @@ void GuardAI::EnterEvadeMode()
|
||||
m_creature->RemoveAllAuras();
|
||||
m_creature->DeleteThreatList();
|
||||
i_victimGuid = 0;
|
||||
m_creature->CombatStop();
|
||||
m_creature->CombatStop(true);
|
||||
i_state = STATE_NORMAL;
|
||||
|
||||
// Remove TargetedMovementGenerator from MotionMaster stack list, and add HomeMovementGenerator instead
|
||||
|
||||
@@ -75,7 +75,7 @@ ReactorAI::EnterEvadeMode()
|
||||
m_creature->GetMotionMaster()->MovementExpired();
|
||||
m_creature->GetMotionMaster()->MoveIdle();
|
||||
i_victimGuid = 0;
|
||||
m_creature->CombatStop();
|
||||
m_creature->CombatStop(true);
|
||||
m_creature->DeleteThreatList();
|
||||
return;
|
||||
}
|
||||
@@ -102,7 +102,7 @@ ReactorAI::EnterEvadeMode()
|
||||
m_creature->RemoveAllAuras();
|
||||
m_creature->DeleteThreatList();
|
||||
i_victimGuid = 0;
|
||||
m_creature->CombatStop();
|
||||
m_creature->CombatStop(true);
|
||||
m_creature->SetLootRecipient(NULL);
|
||||
|
||||
if(!m_creature->GetCharmerOrOwner())
|
||||
|
||||
@@ -50,7 +50,7 @@ TotemAI::MoveInLineOfSight(Unit *)
|
||||
|
||||
void TotemAI::EnterEvadeMode()
|
||||
{
|
||||
m_creature->CombatStop();
|
||||
m_creature->CombatStop(true);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
+5
-5
@@ -7845,9 +7845,9 @@ bool Unit::AttackStop()
|
||||
return true;
|
||||
}
|
||||
|
||||
void Unit::CombatStop(bool cast)
|
||||
void Unit::CombatStop(bool includingCast)
|
||||
{
|
||||
if(cast && IsNonMeleeSpellCasted(false))
|
||||
if (includingCast && IsNonMeleeSpellCasted(false))
|
||||
InterruptNonMeleeSpells(false);
|
||||
|
||||
AttackStop();
|
||||
@@ -7857,12 +7857,12 @@ void Unit::CombatStop(bool cast)
|
||||
ClearInCombat();
|
||||
}
|
||||
|
||||
void Unit::CombatStopWithPets(bool cast)
|
||||
void Unit::CombatStopWithPets(bool includingCast)
|
||||
{
|
||||
CombatStop(cast);
|
||||
CombatStop(includingCast);
|
||||
|
||||
for(ControlList::const_iterator itr = m_Controlled.begin(); itr != m_Controlled.end(); ++itr)
|
||||
(*itr)->CombatStop(cast);
|
||||
(*itr)->CombatStop(includingCast);
|
||||
}
|
||||
|
||||
bool Unit::isAttackingPlayer() const
|
||||
|
||||
+2
-2
@@ -967,8 +967,8 @@ class TRINITY_DLL_SPEC Unit : public WorldObject
|
||||
AttackerSet const& getAttackers() const { return m_attackers; }
|
||||
bool isAttackingPlayer() const;
|
||||
Unit* getVictim() const { return m_attacking; }
|
||||
void CombatStop(bool cast = false);
|
||||
void CombatStopWithPets(bool cast = false);
|
||||
void CombatStop(bool includingCast = false);
|
||||
void CombatStopWithPets(bool includingCast = false);
|
||||
Unit* SelectNearbyTarget(float dist = NOMINAL_MELEE_RANGE) const;
|
||||
bool hasNegativeAuraWithInterruptFlag(uint32 flag);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user