diff --git a/src/game/Entities/Player.cpp b/src/game/Entities/Player.cpp index 7d5720234f8..1a73bef0780 100644 --- a/src/game/Entities/Player.cpp +++ b/src/game/Entities/Player.cpp @@ -21464,6 +21464,9 @@ void Player::SendInitialPacketsAfterAddToMap() if (IsImmobilizedState()) // TODO: Figure out if this protocol is correct SendMoveRoot(true); + if (m_pendingMountId) + SendCollisionHeightUpdate(CalculateCollisionHeight(m_pendingMountId)); + SendAurasForTarget(this); SendEnchantmentDurations(); // must be after add to map diff --git a/src/game/Entities/Unit.cpp b/src/game/Entities/Unit.cpp index 65b41a8f8d5..1c49274c86e 100644 --- a/src/game/Entities/Unit.cpp +++ b/src/game/Entities/Unit.cpp @@ -10617,6 +10617,9 @@ void Unit::RemoveFromWorld() transport->RemovePassenger(this); m_FollowingRefManager.clearReferences(); + + if (m_vehicleInfo) + m_vehicleInfo->Cleanup(); } WorldObject::RemoveFromWorld(); @@ -12570,7 +12573,7 @@ void Unit::EndSpline() void Unit::SendCollisionHeightUpdate(float height) { - if (IsClientControlled()) + if (IsClientControlled() && IsInWorld()) { if (Player const* player = GetControllingPlayer()) {