aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2015-07-05 17:16:35 +0200
committerDDuarte <dnpd.dd@gmail.com>2015-07-12 12:45:49 +0100
commit4479cbf1706332bade241a8348a9cc3397eebcee (patch)
treee5180b39812f2367a5c8f9f2973309dc805867cd /src
parent0c09d6311af77cb4d9c6ef1a5764aa96f60fb0a7 (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 (cherry picked from commit b574c99549bb8cf1d95bd4bc0c319548a678799a)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp33
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h1
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 a8cad32333b..18cf9e07304 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