diff options
author | sirikfoll <sirikfoll@hotmail.com> | 2019-05-02 15:46:46 -0300 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-12-02 23:51:51 +0100 |
commit | 03e03f3fc6ba7ff416bc79f8044e04e1969b98a4 (patch) | |
tree | 5647ccdbbeb4e83d6e770e836daab7796c2cd98d /src | |
parent | 46170fdf01fc4bc8475bab396d8ddf5236003fc6 (diff) |
Core/Scripts: Fix Skadi dismount issue
Closes #23005
(cherry picked from commit fe3bf57aba9a5009e7e17922391a0d9374915ab5)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp index 54ab59570c5..cbc711ed82b 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp @@ -27,6 +27,7 @@ #include "SpellScript.h" #include "TemporarySummon.h" #include "utgarde_pinnacle.h" +#include "Vehicle.h" enum Spells { @@ -262,9 +263,8 @@ public: Talk(SAY_DRAKE_BREATH); break; case ACTION_GAUNTLET_END: - me->ExitVehicle(); Talk(SAY_DRAKE_DEATH); - DoCast(me, SPELL_SKADI_TELEPORT, true); + DoCastSelf(SPELL_SKADI_TELEPORT); summons.DespawnEntry(NPC_WORLD_TRIGGER); me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE); me->SetImmuneToPC(false); @@ -350,7 +350,7 @@ public: void JustDied(Unit* /*killer*/) override { if (Creature* skadi = _instance->GetCreature(DATA_SKADI_THE_RUTHLESS)) - skadi->AI()->DoAction(ACTION_GAUNTLET_END); + skadi->ExitVehicle(); me->DespawnOrUnsummon(Seconds(6)); } @@ -358,7 +358,11 @@ public: void PassengerBoarded(Unit* who, int8 /*seatId*/, bool apply) override { if (!apply) + { + if (Creature * skadi = _instance->GetCreature(DATA_SKADI_THE_RUTHLESS)) + skadi->AI()->DoAction(ACTION_GAUNTLET_END); return; + } Movement::MoveSplineInit init(who); init.DisableTransportPathTransformations(); @@ -843,6 +847,28 @@ class spell_skadi_poisoned_spear : public SpellScriptLoader } }; +// 61791 - Ride Vehicle +class spell_skadi_ride_vehicle : public AuraScript +{ + PrepareAuraScript(spell_skadi_ride_vehicle); + + void OnRemoveVehicle(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + PreventDefaultAction(); + Unit* caster = GetCaster(); + if (!caster) + return; + + GetTarget()->GetVehicleKit()->RemovePassenger(caster); + caster->SetControlled(false, UNIT_STATE_ROOT); + } + + void Register() override + { + OnEffectRemove += AuraEffectRemoveFn(spell_skadi_ride_vehicle::OnRemoveVehicle, EFFECT_0, SPELL_AURA_CONTROL_VEHICLE, AURA_EFFECT_HANDLE_REAL); + } +}; + class spell_summon_gauntlet_mobs_periodic : public SpellScriptLoader { public: @@ -962,6 +988,7 @@ void AddSC_boss_skadi() new spell_skadi_reset_check(); new spell_skadi_launch_harpoon(); new spell_skadi_poisoned_spear(); + RegisterAuraScript(spell_skadi_ride_vehicle); new spell_summon_gauntlet_mobs_periodic(); new achievement_girl_love_to_skadi(); new at_skadi_gaunlet(); |