diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp index 1d5a2f10c2a..646f88508d2 100644 --- a/src/server/game/Entities/Transport/Transport.cpp +++ b/src/server/game/Entities/Transport/Transport.cpp @@ -68,13 +68,17 @@ void Transport::AddPassenger(WorldObject* passenger) passenger->SetTransport(this); passenger->m_movementInfo.transport.guid = GetGUID(); passenger->m_movementInfo.transport.time = GetTimer(); - float x, y, z, o; - passenger->GetPosition(x, y, z, o); - TransportBase::CalculatePassengerOffset(x, y, z, &o, GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation()); - passenger->m_movementInfo.transport.pos.Relocate(x, y, z, o); - if (IsInWorld() && passenger->IsInWorld()) - UpdatePositionForPassenger(passenger); + if (passenger->GetTypeId() == TYPEID_UNIT) + { + float x, y, z, o; + passenger->GetPosition(x, y, z, o); + TransportBase::CalculatePassengerOffset(x, y, z, &o, GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation()); + passenger->m_movementInfo.transport.pos.Relocate(x, y, z, o); + + if (IsInWorld() && passenger->IsInWorld()) + UpdatePositionForPassenger(passenger); + } TC_LOG_DEBUG("entities.transport", "Object %s boarded transport %s.", passenger->GetName().c_str(), GetName().c_str());