From 2eaeb78bdee5b09f1ea5685a9b039f9221df4abe Mon Sep 17 00:00:00 2001 From: volodymyrtkachenko Date: Tue, 5 Sep 2023 22:14:48 +0300 Subject: [PATCH] [PATCH] Flight of the Wintergarde Defender fix (https://forums.wow.sumy.ua/viewtopic.php?p=35#p35) --- .../scripts/Northrend/zone_dragonblight.cpp | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp index 577e911c8e..8ad6006435 100644 --- a/src/server/scripts/Northrend/zone_dragonblight.cpp +++ b/src/server/scripts/Northrend/zone_dragonblight.cpp @@ -655,7 +655,9 @@ enum WintergardeGryphon QUEST_FLIGHT_OF_THE_WINTERGARDE_DEFENDER = 12237, GO_TEMP_GRYPHON_STATION = 188679, - AREA_WINTERGARDE_KEEP = 4177 + AREA_WINTERGARDE_KEEP = 4177, + AREA_THE_CARRION_FIELDS = 4188, + AREA_WINTERGARDE_MINE = 4178 }; class npc_wintergarde_gryphon : public VehicleAI @@ -712,6 +714,23 @@ public: void UpdateAI(uint32 diff) override { events.Update(diff); + + if (me->GetAreaId() != AREA_WINTERGARDE_KEEP && me->GetAreaId() != AREA_THE_CARRION_FIELDS && me->GetAreaId() != AREA_WINTERGARDE_MINE) + { + if (Vehicle* gryphon = me->GetVehicleKit()) + { + Unit* player = gryphon->GetPassenger(0); + + if (Creature* seat = player->ToCreature()) + { + seat->ExitVehicle(); + seat->DespawnOrUnsummon(); + } + me->CastSpell(player, VEHICLE_SPELL_PARACHUTE, true); + events.ScheduleEvent(EVENT_TAKE_OFF, 0s); + } + } + while (uint32 eventId = events.ExecuteEvent()) { switch (eventId)