diff --git a/src/server/game/Handlers/VehicleHandler.cpp b/src/server/game/Handlers/VehicleHandler.cpp index c2486ae4beb..dc11481daf9 100644 --- a/src/server/game/Handlers/VehicleHandler.cpp +++ b/src/server/game/Handlers/VehicleHandler.cpp @@ -16,6 +16,7 @@ */ #include "WorldSession.h" +#include "Creature.h" #include "DBCStructure.h" #include "Log.h" #include "Map.h" @@ -208,7 +209,12 @@ void WorldSession::HandleRequestVehicleExit(WorldPacket& /*recvData*/) if (VehicleSeatEntry const* seat = vehicle->GetSeatForPassenger(GetPlayer())) { if (seat->CanEnterOrExit()) + { GetPlayer()->ExitVehicle(); + if (Creature* creature = vehicle->GetBase()->ToCreature()) + if (creature->IsFlying()) + GetPlayer()->CastSpell(GetPlayer(), VEHICLE_SPELL_PARACHUTE); + } else TC_LOG_ERROR("network", "Player %u tried to exit vehicle, but seatflags %u (ID: %u) don't permit that.", GetPlayer()->GetGUID().GetCounter(), seat->ID, seat->Flags);