diff --git a/data/sql/updates/pending_db_world/rev_1749529028851693000.sql b/data/sql/updates/pending_db_world/rev_1749529028851693000.sql new file mode 100644 index 000000000..eb968d561 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1749529028851693000.sql @@ -0,0 +1,3 @@ +-- +UPDATE `creature_template_addon` SET `auras` = '55708' WHERE `entry` = 29939; +UPDATE `creature_template` SET `ScriptName` = '' WHERE `entry` = 29939; diff --git a/src/server/scripts/Northrend/zone_zuldrak.cpp b/src/server/scripts/Northrend/zone_zuldrak.cpp index 4ca892918..8b36a3106 100644 --- a/src/server/scripts/Northrend/zone_zuldrak.cpp +++ b/src/server/scripts/Northrend/zone_zuldrak.cpp @@ -819,54 +819,6 @@ public: } }; -enum StormCloud -{ - STORM_COULD = 29939, - HEALING_WINDS = 55549, - STORM_VISUAL = 55708, - GYMERS_GRAB = 55516, - RIDE_VEHICLE = 43671 -}; - -class npc_storm_cloud : public CreatureScript -{ -public: - npc_storm_cloud() : CreatureScript("npc_storm_cloud") { } - - struct npc_storm_cloudAI : public ScriptedAI - { - npc_storm_cloudAI(Creature* creature) : ScriptedAI(creature) { } - - void Reset() override - { - me->CastSpell(me, STORM_VISUAL, true); - } - - void JustRespawned() override - { - Reset(); - } - - void SpellHit(Unit* caster, SpellInfo const* spell) override - { - if (spell->Id != GYMERS_GRAB) - return; - - if (Vehicle* veh = caster->GetVehicleKit()) - if (veh->GetAvailableSeatCount() != 0) - { - me->CastSpell(caster, RIDE_VEHICLE, true); - me->CastSpell(caster, HEALING_WINDS, true); - } - } - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_storm_cloudAI(creature); - } -}; - enum ScourgeDisguiseInstability { SCOURGE_DISGUISE_FAILING_MESSAGE_1 = 28552, // Scourge Disguise Failing! Find a safe place! @@ -922,7 +874,6 @@ void AddSC_zuldrak() new npc_released_offspring_harkoa(); new npc_crusade_recruit(); new go_scourge_enclosure(); - new npc_storm_cloud(); RegisterSpellScript(spell_scourge_disguise_instability); } diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index a68e0bc52..7d869c9ce 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -2269,7 +2269,10 @@ class spell_q12619_emblazon_runeblade_effect : public SpellScript enum Quest_The_Storm_King { SPELL_RIDE_GYMER = 43671, - SPELL_GRABBED = 55424 + SPELL_GRABBED = 55424, + SPELL_HEALING_WINDS = 55549, + + NPC_STORM_CLOUD = 29939 }; class spell_q12919_gymers_grab : public SpellScript @@ -2284,10 +2287,14 @@ class spell_q12919_gymers_grab : public SpellScript void HandleScript(SpellEffIndex /*effIndex*/) { int8 seatId = 2; - if (!GetHitCreature()) - return; - GetHitCreature()->CastCustomSpell(SPELL_RIDE_GYMER, SPELLVALUE_BASE_POINT0, seatId, GetCaster(), true); - GetHitCreature()->CastSpell(GetHitCreature(), SPELL_GRABBED, true); + if (Creature* creature = GetHitCreature()) + { + creature->CastCustomSpell(SPELL_RIDE_GYMER, SPELLVALUE_BASE_POINT0, seatId, GetCaster(), true); + creature->CastSpell(creature, SPELL_GRABBED, true); + + if (creature->GetEntry() == NPC_STORM_CLOUD) + creature->CastSpell(GetCaster(), SPELL_HEALING_WINDS, true); + } } void Register() override