From 5a2ef185c4c5565021190f948ca1caff27b315e7 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Wed, 13 Mar 2024 23:35:24 -0400 Subject: [PATCH] Fixes creatures moving to different cells/grids, Some work on fixing pets. --- Source/Game/Entities/Player/Player.cs | 7 ++++++- Source/Game/Maps/Map.cs | 2 +- Source/Game/Movement/Generators/FollowMovementGenerator.cs | 2 -- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Source/Game/Entities/Player/Player.cs b/Source/Game/Entities/Player/Player.cs index 76d226aab..88173b83a 100644 --- a/Source/Game/Entities/Player/Player.cs +++ b/Source/Game/Entities/Player/Player.cs @@ -4622,12 +4622,15 @@ namespace Game.Entities if (duration > 0) pet.SetDuration(duration); - return null; + return pet; } // petentry == 0 for hunter "call pet" (current pet summoned if any) if (entry == 0) + { + pet.Dispose(); return null; + } // only SUMMON_PET are handled here @@ -4636,6 +4639,7 @@ namespace Game.Entities { Log.outError(LogFilter.Server, "Pet (guidlow {0}, entry {1}) not summoned. Suggested coordinates isn't valid (X: {2} Y: {3})", pet.GetGUID().ToString(), pet.GetEntry(), pet.GetPositionX(), pet.GetPositionY()); + pet.Dispose(); return null; } @@ -4644,6 +4648,7 @@ namespace Game.Entities if (!pet.Create(map.GenerateLowGuid(HighGuid.Pet), map, entry, petNumber)) { Log.outError(LogFilter.Server, "no such creature entry {0}", entry); + pet.Dispose(); return null; } diff --git a/Source/Game/Maps/Map.cs b/Source/Game/Maps/Map.cs index 5fce2398f..aeff69a5f 100644 --- a/Source/Game/Maps/Map.cs +++ b/Source/Game/Maps/Map.cs @@ -1176,7 +1176,7 @@ namespace Game.Maps } creature._moveState = ObjectCellMoveState.None; - if (creature.IsInWorld) + if (!creature.IsInWorld) continue; // do move or do move to respawn or remove creature if previous all fail diff --git a/Source/Game/Movement/Generators/FollowMovementGenerator.cs b/Source/Game/Movement/Generators/FollowMovementGenerator.cs index ed2aa2e12..7ac2478ef 100644 --- a/Source/Game/Movement/Generators/FollowMovementGenerator.cs +++ b/Source/Game/Movement/Generators/FollowMovementGenerator.cs @@ -208,8 +208,6 @@ namespace Game.Movement return _abstractFollower.GetTarget(); } - - public override MovementGeneratorType GetMovementGeneratorType() { return MovementGeneratorType.Follow; } public override void UnitSpeedChanged() { _lastTargetPosition = null; }