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());
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
if (!HasEscortState(SmartEscortState.Escorting))
|
||||
|
||||
@@ -1403,7 +1403,8 @@ namespace Game.AI
|
||||
break;
|
||||
|
||||
// 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;
|
||||
}
|
||||
case SmartActions.SetOrientation:
|
||||
|
||||
Reference in New Issue
Block a user