diff --git a/src/server/game/Movement/Spline/MoveSplineInit.cpp b/src/server/game/Movement/Spline/MoveSplineInit.cpp index c0c275b03c7..361f33de75a 100644 --- a/src/server/game/Movement/Spline/MoveSplineInit.cpp +++ b/src/server/game/Movement/Spline/MoveSplineInit.cpp @@ -173,7 +173,15 @@ namespace Movement packet.MoverGUID = unit->GetGUID(); packet.Pos = Position(loc.x, loc.y, loc.z, loc.orientation); packet.SplineData.ID = move_spline.GetId(); - packet.SplineData.Move.Face = MONSTER_MOVE_STOP; + + if (unit->IsAlive()) + packet.SplineData.Move.Face = MONSTER_MOVE_STOP; + else + { + // Stopping splines for killed creatures send a normal packet with their current position as first path point + packet.SplineData.Move.Face = MONSTER_MOVE_NORMAL; + packet.SplineData.Move.Points.push_back({ loc.x, loc.y, loc.z }); + } if (transport) { diff --git a/src/server/game/Server/Packets/CombatPackets.cpp b/src/server/game/Server/Packets/CombatPackets.cpp index 20599ce776a..426c8ce24df 100644 --- a/src/server/game/Server/Packets/CombatPackets.cpp +++ b/src/server/game/Server/Packets/CombatPackets.cpp @@ -101,7 +101,7 @@ WorldPackets::Combat::SAttackStop::SAttackStop(Unit const* attacker, Unit const* if (victim) { Victim = victim->GetGUID(); - NowDead = victim->isDead(); + NowDead = !attacker->IsAlive(); // using IsAlive instead of IsDead to catch JUST_DIED death states as well } }