From 739e2b161e227266e0a0741fe83fd55bb42a1190 Mon Sep 17 00:00:00 2001 From: sevi Date: Tue, 20 Apr 2021 16:17:44 +0200 Subject: [PATCH] Core/Vehicles: cast Parachute spell when player leaves a flying vehicle via opcode (#227) --- src/server/game/Handlers/VehicleHandler.cpp | 6 ++++++ 1 file changed, 6 insertions(+) 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);