*Fix the bug that fleeing movement does not work for players.
--HG-- branch : trunk
This commit is contained in:
@@ -45,7 +45,7 @@ FleeingMovementGenerator<T>::_setTargetLocation(T &owner)
|
|||||||
if(!_getPoint(owner, x, y, z))
|
if(!_getPoint(owner, x, y, z))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
owner.addUnitState(UNIT_STAT_FLEEING);
|
owner.addUnitState(UNIT_STAT_FLEEING | UNIT_STAT_ROAMING);
|
||||||
Traveller<T> traveller(owner);
|
Traveller<T> traveller(owner);
|
||||||
i_destinationHolder.SetDestination(traveller, x, y, z);
|
i_destinationHolder.SetDestination(traveller, x, y, z);
|
||||||
}
|
}
|
||||||
@@ -304,7 +304,7 @@ FleeingMovementGenerator<T>::Initialize(T &owner)
|
|||||||
|
|
||||||
_Init(owner);
|
_Init(owner);
|
||||||
owner.CastStop();
|
owner.CastStop();
|
||||||
owner.addUnitState(UNIT_STAT_FLEEING);
|
owner.addUnitState(UNIT_STAT_FLEEING | UNIT_STAT_ROAMING);
|
||||||
owner.SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING);
|
owner.SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING);
|
||||||
owner.SetUInt64Value(UNIT_FIELD_TARGET, 0);
|
owner.SetUInt64Value(UNIT_FIELD_TARGET, 0);
|
||||||
owner.RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
|
owner.RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
|
||||||
@@ -353,7 +353,7 @@ void
|
|||||||
FleeingMovementGenerator<T>::Finalize(T &owner)
|
FleeingMovementGenerator<T>::Finalize(T &owner)
|
||||||
{
|
{
|
||||||
owner.RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING);
|
owner.RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_FLEEING);
|
||||||
owner.clearUnitState(UNIT_STAT_FLEEING);
|
owner.clearUnitState(UNIT_STAT_FLEEING | UNIT_STAT_ROAMING);
|
||||||
if(owner.GetTypeId() == TYPEID_UNIT && owner.getVictim())
|
if(owner.GetTypeId() == TYPEID_UNIT && owner.getVictim())
|
||||||
owner.SetUInt64Value(UNIT_FIELD_TARGET, owner.getVictim()->GetGUID());
|
owner.SetUInt64Value(UNIT_FIELD_TARGET, owner.getVictim()->GetGUID());
|
||||||
}
|
}
|
||||||
@@ -413,7 +413,7 @@ template bool FleeingMovementGenerator<Creature>::Update(Creature &, const uint3
|
|||||||
|
|
||||||
void TimedFleeingMovementGenerator::Finalize(Unit &owner)
|
void TimedFleeingMovementGenerator::Finalize(Unit &owner)
|
||||||
{
|
{
|
||||||
owner.clearUnitState(UNIT_STAT_FLEEING);
|
owner.clearUnitState(UNIT_STAT_FLEEING | UNIT_STAT_ROAMING);
|
||||||
if (Unit* victim = owner.getVictim())
|
if (Unit* victim = owner.getVictim())
|
||||||
{
|
{
|
||||||
if (owner.isAlive())
|
if (owner.isAlive())
|
||||||
|
|||||||
Reference in New Issue
Block a user