mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-21 09:44:45 +01:00
Scripts/BWD: use sniffed exit coordinate for passenger ejection and initial work on Nefarian's heroic intro
This commit is contained in:
@@ -9,12 +9,15 @@ UPDATE `creature_template` SET `unit_flags`= 33587264, `unit_flags2`= 34816, `fl
|
||||
-- Lava Parasite
|
||||
UPDATE `creature_template` SET `speed_run`= 0.3571, `speed_walk`= 1 WHERE `entry`= 41806;
|
||||
-- Exposed Head of Magmaw
|
||||
UPDATE `creature_template` SET `AIName`= '' WHERE `entry` IN (42347, 51248, 51249, 51250);
|
||||
UPDATE `creature_template` SET `ScriptName`= '' WHERE `entry`= 42347;
|
||||
-- Nefarian
|
||||
UPDATE `creature_template` SET `speed_run`= 1.7142, `unit_flags`= 33587264 WHERE `entry`= 49427;
|
||||
|
||||
-- Addons
|
||||
DELETE FROM `creature_template_addon` WHERE `entry` IN (41806);
|
||||
INSERT INTO `creature_template_addon` (`entry`, `auras`) VALUES
|
||||
(41806, '78019');
|
||||
DELETE FROM `creature_template_addon` WHERE `entry` IN (41806, 49427);
|
||||
INSERT INTO `creature_template_addon` (`entry`, `bytes1`, `bytes2`, `auras`) VALUES
|
||||
(41806, 0, 1, '78019'),
|
||||
(49427, 50331648, 1, '');
|
||||
|
||||
-- Vehicle accessory
|
||||
DELETE FROM `vehicle_template_accessory` WHERE `entry`= 41570;
|
||||
@@ -27,7 +30,7 @@ INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `cast_flags`, `use
|
||||
(51102, 77901, 1, 0),
|
||||
(51103, 77901, 1, 0);
|
||||
|
||||
DELETE FROM `creature_template_movement` WHERE `CreatureId` IN (41570, 51101, 51102, 51103, 41620, 41789, 42347, 51248, 51249, 51250);
|
||||
DELETE FROM `creature_template_movement` WHERE `CreatureId` IN (41570, 51101, 51102, 51103, 41620, 41789, 42347, 51248, 51249, 51250, 49427);
|
||||
INSERT INTO `creature_template_movement` (`CreatureId`, `Ground`, `Swim`, `Flight`, `Rooted`) VALUES
|
||||
-- Magmaw
|
||||
(41570, 1, 0, 1, 1),
|
||||
@@ -41,7 +44,9 @@ INSERT INTO `creature_template_movement` (`CreatureId`, `Ground`, `Swim`, `Fligh
|
||||
(42347, 0, 0, 1, 0),
|
||||
(51248, 0, 0, 1, 0),
|
||||
(51249, 0, 0, 1, 0),
|
||||
(51250, 0, 0, 1, 0);
|
||||
(51250, 0, 0, 1, 0),
|
||||
-- Nefarian
|
||||
(49427, 0, 0, 2, 0);
|
||||
|
||||
-- Spells
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName` IN
|
||||
@@ -50,7 +55,9 @@ DELETE FROM `spell_script_names` WHERE `ScriptName` IN
|
||||
'spell_magmaw_pillar_of_flame_dummy',
|
||||
'spell_magmaw_pillar_of_flame_forcecast',
|
||||
'spell_magmaw_ride_vehicle',
|
||||
'spell_magmaw_launch_hook');
|
||||
'spell_magmaw_launch_hook',
|
||||
'spell_magmaw_eject_passenger_1',
|
||||
'spell_magmaw_eject_passenger_3');
|
||||
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName`= 'spell_gen_eject_passenger' AND `spell_id` IN (77946, 95204);
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName`= 'spell_gen_eject_passenger_1' AND `spell_id`= 77946;
|
||||
@@ -62,8 +69,8 @@ INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||
(78017, 'spell_magmaw_pillar_of_flame_dummy'),
|
||||
(77998, 'spell_magmaw_pillar_of_flame_forcecast'),
|
||||
(77901, 'spell_magmaw_ride_vehicle'),
|
||||
(77946, 'spell_gen_eject_passenger_1'),
|
||||
(95204, 'spell_gen_eject_passenger_3'),
|
||||
(77946, 'spell_magmaw_eject_passenger_1'),
|
||||
(95204, 'spell_magmaw_eject_passenger_3'),
|
||||
(77917, 'spell_magmaw_launch_hook'),
|
||||
(77941, 'spell_magmaw_launch_hook');
|
||||
|
||||
@@ -82,12 +89,19 @@ INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry
|
||||
(13, 1, 77929, 0, 0, 31, 0, 3, 41570, 0, 0, 0, '', 'Chain Visual - Target Magmaw');
|
||||
|
||||
-- Texts
|
||||
DELETE FROM `creature_text` WHERE `CreatureID` IN (41570);
|
||||
DELETE FROM `creature_text` WHERE `CreatureID` IN (41570, 49427);
|
||||
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `comment`) VALUES
|
||||
-- Magmaw
|
||||
(41570, 0, 0, '%s begins to erupt, spewing Lava Parasites onto the ground!', 41, 0, 100, 0, 0, 8717, 51464, 'Magmaw - Announce Lava Parasites'),
|
||||
(41570, 1, 0, '%s slumps forward, exposing his pincers!', 41, 0, 100, 0, 0, 8717, 47603, 'Magmaw - Announce Exposing Pincers'),
|
||||
(41570, 2, 0, '%s becomes impaled on the spike, exposing his head!', 41, 0, 100, 0, 0, 8717, 41614, 'Magmaw - Announce Exposed Head');
|
||||
(41570, 2, 0, '%s becomes impaled on the spike, exposing his head!', 41, 0, 100, 0, 0, 8717, 41614, 'Magmaw - Announce Exposed Head'),
|
||||
-- Nefarian
|
||||
(49427, 0, 0, 'I found this fascinating specimen in the lava underneath this very room. Magmaw should provide an adequate challenge for your pathetic little band.', 14, 0, 100, 0, 0, 23367, 49060, 'Nefarian - Intro 1'),
|
||||
(49427, 1, 0, 'On second thought, what fun is an "adequate" challenge?', 14, 0, 100, 0, 0, 23369, 49061, 'Nefarian - Intro 2'),
|
||||
(49427, 2, 0, 'Inconceivable! You may actually defeat my lava worm! Perhaps I can help... tip the scales.', 14, 0, 100, 0, 0, 23368, 49782, 'Nefarian - Low Health Heroic'),
|
||||
(49427, 3, 0, 'You won? How... disappointing. I could have easily watched you all continue to stand in the fire.', 14, 0, 100, 0, 0, 23366, 49062, 'Nefarian - Death Heroic');
|
||||
|
||||
-- Delete encounter related creatures
|
||||
DELETE FROM `creature` WHERE `guid` IN (250054, 250053, 250052);
|
||||
DELETE FROM `creature_addon` WHERE `guid` IN (250054, 250053, 250052);
|
||||
|
||||
|
||||
@@ -36,33 +36,35 @@ enum BWDDataTypes
|
||||
DATA_NEFARIANS_END = 5,
|
||||
|
||||
// Encounter Data
|
||||
DATA_PREPARE_MASSIVE_CRASH_AND_GET_TARGET_GUID
|
||||
DATA_PREPARE_MASSIVE_CRASH_AND_GET_TARGET_GUID,
|
||||
DATA_NEFARIAN_MAGMAW,
|
||||
};
|
||||
|
||||
enum BWDCreatureIds
|
||||
{
|
||||
// Bosses
|
||||
BOSS_MAGMAW = 41570,
|
||||
BOSS_MAGMATRON = 42178,
|
||||
BOSS_ARCANOTRON = 42166,
|
||||
BOSS_TOXITRON = 42180,
|
||||
BOSS_ELECTRON = 42179,
|
||||
BOSS_CHIMAERON = 43296,
|
||||
BOSS_ATRAMEDES = 41442,
|
||||
BOSS_MALORIAK = 41378,
|
||||
BOSS_NEFARIAN = 41376,
|
||||
BOSS_MAGMAW = 41570,
|
||||
BOSS_MAGMATRON = 42178,
|
||||
BOSS_ARCANOTRON = 42166,
|
||||
BOSS_TOXITRON = 42180,
|
||||
BOSS_ELECTRON = 42179,
|
||||
BOSS_CHIMAERON = 43296,
|
||||
BOSS_ATRAMEDES = 41442,
|
||||
BOSS_MALORIAK = 41378,
|
||||
BOSS_NEFARIAN = 41376,
|
||||
|
||||
// Encounter related creatures
|
||||
/*Magmaw*/
|
||||
NPC_MAGMAWS_PINCER_1 = 41620,
|
||||
NPC_MAGMAWS_PINCER_2 = 41789,
|
||||
NPC_EXPOSED_HEAD_OF_MAGMAW = 42347,
|
||||
NPC_EXPOSED_HEAD_OF_MAGMAW_2 = 48270,
|
||||
NPC_PILLAR_OF_FLAME = 41843,
|
||||
NPC_LAVA_PARASITE = 41806,
|
||||
NPC_MASSIVE_CRASH = 47330,
|
||||
NPC_ROOM_STALKER = 47196,
|
||||
NPC_MAGMAW_SPIKE_STALKER = 41767,
|
||||
NPC_MAGMAWS_PINCER_1 = 41620,
|
||||
NPC_MAGMAWS_PINCER_2 = 41789,
|
||||
NPC_EXPOSED_HEAD_OF_MAGMAW = 42347,
|
||||
NPC_EXPOSED_HEAD_OF_MAGMAW_2 = 48270,
|
||||
NPC_PILLAR_OF_FLAME = 41843,
|
||||
NPC_LAVA_PARASITE = 41806,
|
||||
NPC_MASSIVE_CRASH = 47330,
|
||||
NPC_ROOM_STALKER = 47196,
|
||||
NPC_MAGMAW_SPIKE_STALKER = 41767,
|
||||
NPC_NEFARIAN_MAGMAW = 49427
|
||||
};
|
||||
|
||||
enum BWDGameObjectIds
|
||||
|
||||
@@ -78,7 +78,7 @@ enum Events
|
||||
EVENT_EJECT_PASSENGER_1,
|
||||
EVENT_EXPOSE_HEAD,
|
||||
EVENT_HIDE_HEAD,
|
||||
EVENT_FINISH_IMPALE_SELF,
|
||||
EVENT_FINISH_IMPALE_SELF
|
||||
};
|
||||
|
||||
enum Actions
|
||||
@@ -91,15 +91,26 @@ enum Texts
|
||||
// Magmaw
|
||||
SAY_ANNOUNCE_LAVA_PARASITES = 0,
|
||||
SAY_ANNOUNCE_EXPOSE_PINCERS = 1,
|
||||
SAY_ANNOUNCE_EXPOSED_HEAD = 2
|
||||
SAY_ANNOUNCE_EXPOSED_HEAD = 2,
|
||||
|
||||
// Nefarian
|
||||
SAY_INTRO_1 = 0,
|
||||
SAY_INTRO_2 = 1,
|
||||
SAY_MAGMAW_LOW_HEALTH = 2,
|
||||
SAY_MAGMAW_DEFEATED = 3
|
||||
};
|
||||
|
||||
enum VehicleSeats
|
||||
{
|
||||
// Magmaw
|
||||
SEAT_MAGMAWS_PINCER_1 = 0,
|
||||
SEAT_MAGMAWS_PINCER_2 = 1,
|
||||
SEAT_MANGLE = 2,
|
||||
SEAT_EXPOSED_HEAD_OF_MAGMAW_1 = 3,
|
||||
SEAT_EXPOSED_HEAD_OF_MAGMAW_2 = 4,
|
||||
|
||||
// Magmaw's Pincer
|
||||
SEAT_PINCER = 0
|
||||
};
|
||||
|
||||
enum Data
|
||||
@@ -107,7 +118,15 @@ enum Data
|
||||
DATA_FREE_PINCER = 0
|
||||
};
|
||||
|
||||
Position const ExposedHeadOfMagmawPos = { -299.0f, -28.9861f, 191.0293f, 4.118977f };
|
||||
enum MovePoints
|
||||
{
|
||||
POINT_NONE = 0
|
||||
};
|
||||
|
||||
Position const ExposedHeadOfMagmawPos = { -299.0f, -28.9861f, 191.0293f, 4.118977f };
|
||||
Position const MagmawVehicleExitPos = { -311.4653f, -48.59722f, 212.8065f, 1.064651f };
|
||||
Position const NefarianIntroSummonPos = { -390.1042f, 40.88411f, 207.8586f, 0.196609f };
|
||||
Position const NefarianIntroFlightPos = { -315.9445f, -6.895832f, 246.8446f };
|
||||
|
||||
struct boss_magmaw : public BossAI
|
||||
{
|
||||
@@ -125,6 +144,7 @@ struct boss_magmaw : public BossAI
|
||||
_pincer2 = nullptr;
|
||||
_hasExposedHead = false;
|
||||
_headEngaged = false;
|
||||
_lowHealthTextTriggered = !IsHeroic();
|
||||
}
|
||||
|
||||
void Reset() override
|
||||
@@ -149,6 +169,22 @@ struct boss_magmaw : public BossAI
|
||||
|
||||
_exposedHead1->SetInCombatWithZone();
|
||||
_exposedHead2->SetInCombatWithZone();
|
||||
|
||||
if (IsHeroic())
|
||||
{
|
||||
if (Creature* nefarian = DoSummon(NPC_NEFARIAN_MAGMAW, NefarianIntroSummonPos, 0, TEMPSUMMON_MANUAL_DESPAWN))
|
||||
{
|
||||
nefarian->GetMotionMaster()->MovePoint(POINT_NONE, NefarianIntroFlightPos);
|
||||
nefarian->m_Events.AddEventAtOffset([nefarian]()
|
||||
{
|
||||
nefarian->AI()->Talk(SAY_INTRO_1);
|
||||
nefarian->m_Events.AddEventAtOffset([nefarian]()
|
||||
{
|
||||
nefarian->AI()->Talk(SAY_INTRO_2);
|
||||
}, 16s);
|
||||
}, 11s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EnterEvadeMode(EvadeReason /*why*/) override
|
||||
@@ -157,6 +193,11 @@ struct boss_magmaw : public BossAI
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
|
||||
if (_headEngaged)
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, _exposedHead1);
|
||||
|
||||
DoCastSelf(SPELL_EJECT_PASSENGER_3, true);
|
||||
_pincer1->CastSpell(_pincer1, SPELL_EJECT_PASSENGER_1, true);
|
||||
_pincer2->CastSpell(_pincer2, SPELL_EJECT_PASSENGER_1, true);
|
||||
|
||||
instance->SetData(DATA_MAGMAW, FAIL);
|
||||
summons.DespawnAll();
|
||||
_DespawnAtEvade();
|
||||
@@ -206,7 +247,7 @@ struct boss_magmaw : public BossAI
|
||||
break;
|
||||
}
|
||||
case SPELL_IMPALE_SELF:
|
||||
DoCastSelf(SPELL_EJECT_PASSENGER_3);
|
||||
DoCastSelf(SPELL_EJECT_PASSENGER_3, true);
|
||||
Talk(SAY_ANNOUNCE_EXPOSED_HEAD);
|
||||
me->RemoveAurasDueToSpell(SPELL_CHAIN_VISUAL_1);
|
||||
me->RemoveAurasDueToSpell(SPELL_CHAIN_VISUAL_2);
|
||||
@@ -218,12 +259,6 @@ struct boss_magmaw : public BossAI
|
||||
}
|
||||
}
|
||||
|
||||
void PassengerBoarded(Unit* passenger, int8 seatId, bool apply) override
|
||||
{
|
||||
if (!passenger)
|
||||
return;
|
||||
}
|
||||
|
||||
ObjectGuid GetGUID(int32 type) const override
|
||||
{
|
||||
switch (type)
|
||||
@@ -240,6 +275,23 @@ struct boss_magmaw : public BossAI
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
{
|
||||
if (me->HealthBelowPctDamaged(30, damage) && !_lowHealthTextTriggered)
|
||||
{
|
||||
// Todo: Nefarian text
|
||||
_lowHealthTextTriggered = true;
|
||||
}
|
||||
|
||||
if (damage >= me->GetHealth())
|
||||
{
|
||||
// Make sure we eject all passengers nicely before we die so they wont end up in the lava
|
||||
DoCastSelf(SPELL_EJECT_PASSENGER_3, true);
|
||||
_pincer1->CastSpell(_pincer1, SPELL_EJECT_PASSENGER_1, true);
|
||||
_pincer2->CastSpell(_pincer2, SPELL_EJECT_PASSENGER_1, true);
|
||||
}
|
||||
}
|
||||
|
||||
void DoAction(int32 action) override
|
||||
{
|
||||
switch (action)
|
||||
@@ -248,11 +300,15 @@ struct boss_magmaw : public BossAI
|
||||
events.Reset();
|
||||
me->AttackStop();
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->CastStop();
|
||||
me->RemoveAurasDueToSpell(SPELL_MASSIVE_CRASH);
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_ALLOW_ENEMY_INTERACT);
|
||||
if (Creature* spikeStalker = me->FindNearestCreature(NPC_MAGMAW_SPIKE_STALKER, 50.0f))
|
||||
me->RemoveAurasDueToSpell(SPELL_PILLAR_OF_FLAME_MISSILE_PERIODIC);
|
||||
|
||||
if (Creature* spikeStalker = me->FindNearestCreature(NPC_MAGMAW_SPIKE_STALKER, 60.0f))
|
||||
me->SetFacingToObject(spikeStalker);
|
||||
|
||||
events.ScheduleEvent(EVENT_IMPALE_SELF, 1s);
|
||||
events.ScheduleEvent(EVENT_EJECT_PASSENGER_1, 2s + 300ms);
|
||||
events.ScheduleEvent(EVENT_EXPOSE_HEAD, 4s + 700ms);
|
||||
@@ -312,8 +368,8 @@ struct boss_magmaw : public BossAI
|
||||
break;
|
||||
case EVENT_MASSIVE_CRASH:
|
||||
DoCast(SPELL_MASSIVE_CRASH);
|
||||
_pincer1->CastSpell(_pincer1, SPELL_EJECT_PASSENGER_1);
|
||||
_pincer2->CastSpell(_pincer2, SPELL_EJECT_PASSENGER_1);
|
||||
_pincer1->CastSpell(_pincer1, SPELL_EJECT_PASSENGER_1, true);
|
||||
_pincer2->CastSpell(_pincer2, SPELL_EJECT_PASSENGER_1, true);
|
||||
break;
|
||||
case EVENT_ANNOUNCE_PINCERS_EXPOSED:
|
||||
Talk(SAY_ANNOUNCE_EXPOSE_PINCERS);
|
||||
@@ -327,8 +383,8 @@ struct boss_magmaw : public BossAI
|
||||
DoCastSelf(SPELL_IMPALE_SELF);
|
||||
break;
|
||||
case EVENT_EJECT_PASSENGER_1:
|
||||
_pincer1->CastSpell(_pincer1, SPELL_EJECT_PASSENGER_1);
|
||||
_pincer2->CastSpell(_pincer2, SPELL_EJECT_PASSENGER_1);
|
||||
_pincer1->CastSpell(_pincer1, SPELL_EJECT_PASSENGER_1, true);
|
||||
_pincer2->CastSpell(_pincer2, SPELL_EJECT_PASSENGER_1, true);
|
||||
break;
|
||||
case EVENT_EXPOSE_HEAD:
|
||||
if (!_headEngaged)
|
||||
@@ -418,6 +474,7 @@ private:
|
||||
uint8 _magmaProjectileCount;
|
||||
bool _hasExposedHead;
|
||||
bool _headEngaged;
|
||||
bool _lowHealthTextTriggered;
|
||||
};
|
||||
|
||||
class IsOnVehicleCheck
|
||||
@@ -615,12 +672,13 @@ class spell_magmaw_launch_hook : public AuraScript
|
||||
{
|
||||
Unit* target = GetTarget();
|
||||
|
||||
if (target->HasAura(SPELL_LAUNCH_HOOK_1) /*&&*/ || target->HasAura(SPELL_LAUNCH_HOOK_2))
|
||||
if (target->HasAura(SPELL_LAUNCH_HOOK_1) && target->HasAura(SPELL_LAUNCH_HOOK_2))
|
||||
{
|
||||
if (InstanceScript* instance = target->GetInstanceScript())
|
||||
if (Creature* magmaw = instance->GetCreature(DATA_MAGMAW))
|
||||
magmaw->AI()->DoAction(ACTION_IMPALE_MAGMAW);
|
||||
|
||||
target->RemoveAllAuras();
|
||||
target->CastSpell(target, SPELL_CHAIN_VISUAL_1);
|
||||
target->CastSpell(target, SPELL_CHAIN_VISUAL_2);
|
||||
}
|
||||
@@ -632,6 +690,44 @@ class spell_magmaw_launch_hook : public AuraScript
|
||||
}
|
||||
};
|
||||
|
||||
class spell_magmaw_eject_passenger_1 : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_magmaw_eject_passenger_1);
|
||||
|
||||
void EjectPassenger(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (Vehicle* vehicle = GetHitUnit()->GetVehicleKit())
|
||||
{
|
||||
if (Unit* passenger = vehicle->GetPassenger(SEAT_PINCER))
|
||||
passenger->_ExitVehicle(&MagmawVehicleExitPos);
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_magmaw_eject_passenger_1::EjectPassenger, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
class spell_magmaw_eject_passenger_3 : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_magmaw_eject_passenger_3);
|
||||
|
||||
void EjectPassenger(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (Vehicle* vehicle = GetHitUnit()->GetVehicleKit())
|
||||
{
|
||||
if (Unit* passenger = vehicle->GetPassenger(SEAT_MANGLE))
|
||||
passenger->_ExitVehicle(&MagmawVehicleExitPos);
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_magmaw_eject_passenger_3::EjectPassenger, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_magmaw()
|
||||
{
|
||||
RegisterBlackwingDescentCreatureAI(boss_magmaw);
|
||||
@@ -641,4 +737,6 @@ void AddSC_boss_magmaw()
|
||||
RegisterSpellScript(spell_magmaw_pillar_of_flame_forcecast);
|
||||
RegisterSpellScript(spell_magmaw_ride_vehicle);
|
||||
RegisterAuraScript(spell_magmaw_launch_hook);
|
||||
RegisterSpellScript(spell_magmaw_eject_passenger_1);
|
||||
RegisterSpellScript(spell_magmaw_eject_passenger_3);
|
||||
}
|
||||
|
||||
@@ -23,8 +23,9 @@
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
{
|
||||
{ BOSS_MAGMAW, DATA_MAGMAW },
|
||||
{ 0, 0 }// END
|
||||
{ BOSS_MAGMAW, DATA_MAGMAW },
|
||||
{ NPC_NEFARIAN_MAGMAW, DATA_NEFARIAN_MAGMAW },
|
||||
{ 0, 0 } // END
|
||||
};
|
||||
|
||||
ObjectData const gameobjectData[] =
|
||||
|
||||
@@ -3836,45 +3836,6 @@ class spell_gen_eject_passenger : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
class spell_gen_eject_passenger_1 : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_gen_eject_passenger_1);
|
||||
|
||||
void EjectPassenger(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (Vehicle* vehicle = GetHitUnit()->GetVehicleKit())
|
||||
{
|
||||
if (Unit* passenger = vehicle->GetPassenger(0))
|
||||
passenger->ExitVehicle();
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_gen_eject_passenger_1::EjectPassenger, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
class spell_gen_eject_passenger_3 : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_gen_eject_passenger_3);
|
||||
|
||||
void EjectPassenger(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (Vehicle* vehicle = GetHitUnit()->GetVehicleKit())
|
||||
{
|
||||
if (Unit* passenger = vehicle->GetPassenger(2))
|
||||
passenger->ExitVehicle();
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_gen_eject_passenger_3::EjectPassenger, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
enum GMFreeze
|
||||
{
|
||||
SPELL_GM_FREEZE = 9454
|
||||
@@ -5022,8 +4983,6 @@ void AddSC_generic_spell_scripts()
|
||||
new spell_gen_whisper_gulch_yogg_saron_whisper();
|
||||
new spell_gen_eject_all_passengers();
|
||||
new spell_gen_eject_passenger();
|
||||
RegisterSpellScript(spell_gen_eject_passenger_1);
|
||||
RegisterSpellScript(spell_gen_eject_passenger_3);
|
||||
new spell_gen_gm_freeze();
|
||||
new spell_gen_stand();
|
||||
new spell_gen_mixology_bonus();
|
||||
|
||||
Reference in New Issue
Block a user