diff --git a/sql/updates/world/4.3.4/2022_12_15_00_world.sql b/sql/updates/world/4.3.4/2022_12_15_00_world.sql new file mode 100644 index 0000000000..0bee41b247 --- /dev/null +++ b/sql/updates/world/4.3.4/2022_12_15_00_world.sql @@ -0,0 +1,22 @@ +-- Wasteland Outrider +UPDATE `creature_template_addon` SET `mount`= 37212 WHERE `entry`= 45905; +UPDATE `creature_loot_template` SET `QuestRequired`= 1 WHERE `Entry`= 45905 AND `Item`= 63081; + +-- Warlord Ihsenn +UPDATE `creature_template_addon` SET `mount`= 37212 WHERE `entry`= 47755; +SET @ENTRY := 47755; +DELETE FROM `smart_scripts` WHERE `source_type` = 0 AND `entryOrGuid` = @ENTRY; +UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = @ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(@ENTRY, 0, 0, 0, 63, 0, 100, 0, 0, 0, 0, 0, 11, 42459, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On just created - Self: Cast spell Dual Wield (42459) on Self'), +(@ENTRY, 0, 1, 0, 4, 0, 100, 0, 0, 0, 0, 0, 11, 6434, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'On aggro - Self: Cast spell Slice and Dice (6434) on Self'); + + + -- Venomblood Scorpid +SET @ENTRY := 45859; +DELETE FROM `smart_scripts` WHERE `source_type` = 0 AND `entryOrGuid` = @ENTRY; +UPDATE `creature_template` SET `AIName` = '', `ScriptName` = '' WHERE `entry` = @ENTRY; + +DELETE FROM `spell_script_names` WHERE `ScriptName`= 'spell_uldum_draining_venom'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(88882, 'spell_uldum_draining_venom'); diff --git a/src/server/scripts/Kalimdor/zone_uldum.cpp b/src/server/scripts/Kalimdor/zone_uldum.cpp index 8da04443c8..412952dcfc 100644 --- a/src/server/scripts/Kalimdor/zone_uldum.cpp +++ b/src/server/scripts/Kalimdor/zone_uldum.cpp @@ -453,6 +453,37 @@ class spell_summon_schnottz : public SpellScript } }; +static constexpr uint32 NPC_VENOMBLOOD_SCORPID = 45859; +static constexpr uint32 NPC_DRAINED_VENOMBLOOD_SCORPID = 47750; + +// 88882 - Draining Venom +class spell_uldum_draining_venom : public SpellScript +{ + SpellCastResult CheckCast() + { + Unit* target = GetExplTargetUnit(); + if (!target || target == GetCaster() || target->GetEntry() != NPC_VENOMBLOOD_SCORPID) + return SpellCastResult::SPELL_FAILED_BAD_TARGETS; + + if (target->IsAlive()) + return SPELL_FAILED_TARGET_NOT_DEAD; + + return SPELL_CAST_OK; + } + + void HandleDummyEffect(SpellEffIndex /*effIndex*/) + { + if (Creature* creature = GetHitCreature()) + creature->UpdateEntry(NPC_DRAINED_VENOMBLOOD_SCORPID, nullptr, false); + } + + void Register() override + { + OnCheckCast.Register(&spell_uldum_draining_venom::CheckCast); + OnEffectHitTarget.Register(&spell_uldum_draining_venom::HandleDummyEffect, EFFECT_0, SPELL_EFFECT_DUMMY); + } +}; + void AddSC_uldum() { /* @@ -466,4 +497,5 @@ void AddSC_uldum() */ RegisterSpellScript(spell_gobbles_initialize); RegisterSpellScript(spell_summon_schnottz); + RegisterSpellScript(spell_uldum_draining_venom); }