diff options
author | jackpoz <giacomopoz@gmail.com> | 2015-07-05 17:16:35 +0200 |
---|---|---|
committer | jackpoz <giacomopoz@gmail.com> | 2015-07-05 17:16:35 +0200 |
commit | b574c99549bb8cf1d95bd4bc0c319548a678799a (patch) | |
tree | f11c52480f160081f72c8fe3cd6d804f14398fc9 /src | |
parent | e5258f92c8057d453b890976eb18e98e6de96d07 (diff) |
Scripts/Ulduar: Fix Flame Leviathan instance lock
Fix Flame Leviathan instance lock not being granted to players because they were ejected from the vehicles as soon as boss died.
Players are now ejected some seconds later.
Close https://github.com/TrinityCore/TrinityCore/issues/15005
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp | 33 | ||||
-rw-r--r-- | src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h | 1 |
2 files changed, 18 insertions, 16 deletions
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp index ca3ea3a60ed..0c7df100f60 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp @@ -690,22 +690,7 @@ class instance_ulduar : public InstanceMapScript { case BOSS_LEVIATHAN: if (state == DONE) - { - // 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->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - vehicleCreature->DespawnOrUnsummon(5 * MINUTE * IN_MILLISECONDS); - } - } - } - } + _events.ScheduleEvent(EVENT_DESPAWN_LEVIATHAN_VEHICLES, 5 * IN_MILLISECONDS); break; case BOSS_IGNIS: case BOSS_RAZORSCALE: @@ -1164,6 +1149,22 @@ class instance_ulduar : public InstanceMapScript algalon->AI()->DoAction(EVENT_DESPAWN_ALGALON); } break; + case EVENT_DESPAWN_LEVIATHAN_VEHICLES: + // 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->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); + vehicleCreature->DespawnOrUnsummon(5 * MINUTE * IN_MILLISECONDS); + } + } + } + break; } } } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h index d40fb698658..2d10ffc01bc 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h @@ -404,6 +404,7 @@ enum UlduarEvents EVENT_DESPAWN_ALGALON = 1, EVENT_UPDATE_ALGALON_TIMER = 2, ACTION_INIT_ALGALON = 6, + EVENT_DESPAWN_LEVIATHAN_VEHICLES = 7 }; enum YoggSaronIllusions |