diff options
author | Jorge Turrado Ferrero <36899226+JorTurFer@users.noreply.github.com> | 2018-05-02 01:11:40 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-09-26 15:49:18 +0200 |
commit | a9b97939a8f81fc9d51a889981d64574015f869f (patch) | |
tree | dfbf8890eeaae8c3704ef483278631bbfadc72ae | |
parent | 962833d86f5cc825c0d6c6c1f17e3773dac3c238 (diff) |
Scripts/Ulduar: Fixed Vehicles when flame leviathan die(#21897)
(cherry picked from commit f13de8083469742d62c2d74a49a76e35469d8fb0)
-rw-r--r-- | src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp index 7dc1c678e3d..18456688ede 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp @@ -282,7 +282,10 @@ class instance_ulduar : public InstanceMapScript case NPC_SALVAGED_DEMOLISHER: case NPC_SALVAGED_SIEGE_ENGINE: case NPC_SALVAGED_CHOPPER: - LeviathanVehicleGUIDs.push_back(creature->GetGUID()); + if (GetBossState(BOSS_LEVIATHAN) == DONE) + DespawnLeviatanVehicle(creature); + else + LeviathanVehicleGUIDs.push_back(creature->GetGUID()); break; // XT-002 Deconstructor @@ -1042,17 +1045,8 @@ class instance_ulduar : public InstanceMapScript // Eject all players from vehicles and make them untargetable. // They will be despawned after a while for (auto const& vehicleGuid : LeviathanVehicleGUIDs) - { if (Creature* vehicleCreature = instance->GetCreature(vehicleGuid)) - { - if (Vehicle* vehicle = vehicleCreature->GetVehicleKit()) - { - vehicle->RemoveAllPassengers(); - vehicleCreature->AddUnitFlag(UNIT_FLAG_NOT_SELECTABLE); - vehicleCreature->DespawnOrUnsummon(5 * MINUTE * IN_MILLISECONDS); - } - } - } + DespawnLeviatanVehicle(vehicleCreature); break; case EVENT_LEVIATHAN_BREAK_DOOR: if (Creature* leviathan = GetCreature(BOSS_LEVIATHAN)) @@ -1064,6 +1058,16 @@ class instance_ulduar : public InstanceMapScript } } + void DespawnLeviatanVehicle(Creature* vehicleCreature) + { + if (Vehicle* vehicle = vehicleCreature->GetVehicleKit()) + { + vehicle->RemoveAllPassengers(); + vehicleCreature->AddUnitFlag(UNIT_FLAG_NOT_SELECTABLE); + vehicleCreature->DespawnOrUnsummon(5 * MINUTE * IN_MILLISECONDS); + } + } + void UpdateDoorState(GameObject* door) override { // Leviathan doors are set to DOOR_TYPE_ROOM except the one it uses to enter the room |