diff options
author | xinef1 <w.szyszko2@gmail.com> | 2017-01-30 10:57:24 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2018-12-09 14:18:42 +0100 |
commit | befea2f7a63f6fd244e27b3a000665c7839616e6 (patch) | |
tree | 4ce6dc0b01e8f063969e91409b25907063a3a471 /src | |
parent | 2e454235377b2f3525a3f4d1a27657254ef67a3a (diff) |
Core/Creatures: Stop falling if corpse is removed (can happen when alive unit is despawned instantly in air) (#18995)
Do not allow to start waypoint movement when unit is dead
(cherry-picked from f86ca9e3c97ab708705eef262bf69837f84bc3d9)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 4 | ||||
-rwxr-xr-x | src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp | 3 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index d7ae09c1ab6..6b9e5bd74ed 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -287,6 +287,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 51e54b3ba26..c9f75345754 100755 --- a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp @@ -120,6 +120,9 @@ bool WaypointMovementGenerator<Creature>::StartMove(Creature* creature) if (!i_path || i_path->nodes.empty()) return false; + if (Stopped()) + return true; + bool transportPath = creature->GetTransport() != nullptr; if (IsArrivalDone) |