From 0ced477c767b9087eefdf516d0e0fccf1567e6e3 Mon Sep 17 00:00:00 2001 From: volodymyrtkachenko Date: Thu, 30 Nov 2023 19:53:36 +0200 Subject: [PATCH] Revert "Revert "[PATCH] Flight of the Wintergarde Defender fix (https://forums.wow.sumy.ua/viewtopic.php?p=35#p35)"" This reverts commit b3a9553a45e81f65b2eb15f127c5ca9eb99b6d1e. --- .../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)