diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index ebd11fccc14..7743e58b2e5 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -295,6 +295,10 @@ void Creature::RemoveCorpse(bool setSpawnTime) if (setSpawnTime) m_respawnTime = time(NULL) + respawnDelay; + // if corpse was removed during falling, the falling will continue and override relocation to respawn position + if (IsFalling()) + StopMoving(); + float x, y, z, o; GetRespawnPosition(x, y, z, &o); SetHomePosition(x, y, z, o); diff --git a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp index 7862194a419..f4891228e4f 100755 --- a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp @@ -98,6 +98,10 @@ bool WaypointMovementGenerator::StartMove(Creature* creature) if (!i_path || i_path->empty()) return false; + // Dont allow dead creatures to move + if (!creature->IsAlive()) + return false; + if (Stopped()) return true;