Core/SAI: Fix SMART_ACTION_WP_RESUME actually pausing next waypoint if the current path was not paused
Port From (https://github.com/TrinityCore/TrinityCore/commit/eb17e94b2e0059edeb747cb03e6828a746a2c0b8)
This commit is contained in:
@@ -181,6 +181,17 @@ namespace Game.AI
|
|||||||
GetScript().ProcessEventsFor(SmartEvents.WaypointPaused, null, _currentWaypointNode, GetScript().GetPathId());
|
GetScript().ProcessEventsFor(SmartEvents.WaypointPaused, null, _currentWaypointNode, GetScript().GetPathId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool CanResumePath()
|
||||||
|
{
|
||||||
|
if (!HasEscortState(SmartEscortState.Escorting))
|
||||||
|
{
|
||||||
|
// The whole resume logic doesn't support this case
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return HasEscortState(SmartEscortState.Paused);
|
||||||
|
}
|
||||||
|
|
||||||
public void StopPath(uint despawnTime = 0, uint quest = 0, bool fail = false)
|
public void StopPath(uint despawnTime = 0, uint quest = 0, bool fail = false)
|
||||||
{
|
{
|
||||||
if (!HasEscortState(SmartEscortState.Escorting))
|
if (!HasEscortState(SmartEscortState.Escorting))
|
||||||
|
|||||||
@@ -1403,7 +1403,8 @@ namespace Game.AI
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
// Set the timer to 1 ms so the path will be resumed on next update loop
|
// Set the timer to 1 ms so the path will be resumed on next update loop
|
||||||
((SmartAI)_me.GetAI()).SetWPPauseTimer(1);
|
if (((SmartAI)_me.GetAI()).CanResumePath())
|
||||||
|
((SmartAI)_me.GetAI()).SetWPPauseTimer(1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SmartActions.SetOrientation:
|
case SmartActions.SetOrientation:
|
||||||
|
|||||||
Reference in New Issue
Block a user