From 40a4ed5fc71e2d0ebfdb87f040e47da85208e125 Mon Sep 17 00:00:00 2001 From: Smirnov Sergey Date: Thu, 12 Jun 2025 12:22:17 +0300 Subject: [PATCH] fix(DB/SAI/Scripts) [Sholazar Basin] Quest: A Hero's Burden -- Behavior of all NPCs (#22278) --- .../rev_1749078508814122559.sql | 110 ++++++++++ .../scripts/Northrend/zone_sholazar_basin.cpp | 196 ------------------ 2 files changed, 110 insertions(+), 196 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1749078508814122559.sql diff --git a/data/sql/updates/pending_db_world/rev_1749078508814122559.sql b/data/sql/updates/pending_db_world/rev_1749078508814122559.sql new file mode 100644 index 000000000..d69f6f107 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1749078508814122559.sql @@ -0,0 +1,110 @@ +SET @ARTRUIS := 28659; +SET @ARTRUISGUID := 202971; +SET @JALOOT := 28667; +SET @JALOOTGUID := 202969; +SET @ZEPIK := 28668; +SET @ZEPIKGUID := 202970; + +DELETE FROM `creature` WHERE (`id1` = @JALOOT) AND (`guid` IN (@JALOOTGUID)); +INSERT INTO `creature` (`guid`, `id1`, `id2`, `id3`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`) VALUES +(@JALOOTGUID, @JALOOT, 0, 0, 571, 0, 0, 1, 1, 0, 5616.92, 3772.68, -94.258, 1.78024, 120, 0, 0, 1, 0, 0, 0, 0, 0, '', 0); + +DELETE FROM `creature` WHERE (`id1` = @ZEPIK) AND (`guid` IN (@ZEPIKGUID)); +INSERT INTO `creature` (`guid`, `id1`, `id2`, `id3`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`) VALUES +(@ZEPIKGUID, @ZEPIK, 0, 0, 571, 0, 0, 1, 1, 0, 5631.63, 3794.36, -92.236, 3.45575, 120, 0, 0, 1, 0, 0, 0, 0, 0, '', 0); + +UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE (`entry` = @ARTRUIS); +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = @ARTRUIS); +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`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(@ARTRUIS, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 10, @JALOOTGUID, @JALOOT, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Respawn - Respawn Closest Creature \'Jaloot\''), +(@ARTRUIS, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 10, @ZEPIKGUID, @ZEPIK, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Respawn - Respawn Closest Creature \'Zepik the Gorloc Hunter\''), +(@ARTRUIS, 0, 2, 0, 0, 0, 100, 0, 7000, 11000, 11000, 15000, 0, 0, 11, 54261, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - In Combat - Cast \'Ice Lance\''), +(@ARTRUIS, 0, 3, 0, 0, 0, 100, 0, 3000, 5000, 3000, 5000, 0, 0, 11, 15530, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - In Combat - Cast \'Frostbolt\''), +(@ARTRUIS, 0, 4, 0, 0, 0, 100, 0, 9000, 13000, 25000, 35000, 0, 0, 11, 54792, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - In Combat - Cast \'Icy Veins\''), +(@ARTRUIS, 0, 5, 0, 9, 0, 100, 0, 7000, 9000, 14000, 18000, 0, 10, 11, 11831, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Within 0-10 Range - Cast \'Frost Nova\''), +(@ARTRUIS, 0, 6, 7, 2, 0, 100, 0, 0, 30, 0, 0, 0, 0, 11, 52185, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-30% Health - Cast \'Bindings of Submission\''), +(@ARTRUIS, 0, 7, 8, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, @JALOOTGUID, @JALOOT, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-30% Health - Set Data 1 1 for Jaloot'), +(@ARTRUIS, 0, 8, 9, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, @ZEPIKGUID, @ZEPIK, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-30% Health - Set Data 1 1 for Zepik the Gorloc Hunter'), +(@ARTRUIS, 0, 9, 10, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 3, 10000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-30% Health - Say Line 3'), +(@ARTRUIS, 0, 10, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 4, 10000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-30% Health - Say Line 4'), +(@ARTRUIS, 0, 11, 12, 25, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 2, 0, 0, 0, 0, 10, @JALOOTGUID, @JALOOT, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Reset - Set Data 1 2 for Jaloot'), +(@ARTRUIS, 0, 12, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 2, 0, 0, 0, 0, 10, @ZEPIKGUID, @ZEPIK, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Reset - Set Data 1 2 for Zepik the Gorloc Hunter'), +(@ARTRUIS, 0, 13, 0, 2, 0, 100, 0, 0, 75, 0, 0, 0, 0, 1, 1, 10000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-75% Health - Say Line 1'), +(@ARTRUIS, 0, 14, 0, 2, 0, 100, 0, 0, 50, 0, 0, 0, 0, 1, 2, 10000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - Between 0-50% Health - Say Line 2'), +(@ARTRUIS, 0, 15, 16, 4, 0, 100, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 10, @JALOOTGUID, @JALOOT, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Aggro - Respawn Closest Creature \'Jaloot\''), +(@ARTRUIS, 0, 16, 17, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 10, @ZEPIKGUID, @ZEPIK, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Aggro - Respawn Closest Creature \'Zepik the Gorloc Hunter\''), +(@ARTRUIS, 0, 17, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Aggro - Say Line 0'), +(@ARTRUIS, 0, 18, 19, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52518, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Just Died - Cast \'Summon Artruis Quest Complete\''), +(@ARTRUIS, 0, 19, 20, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 3, 0, 0, 0, 0, 10, @JALOOTGUID, @JALOOT, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Just Died - Set Data 1 3 for Jaloot'), +(@ARTRUIS, 0, 20, 21, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 3, 0, 0, 0, 0, 10, @ZEPIKGUID, @ZEPIK, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Just Died - Set Data 1 3 for Zepik the Gorloc Hunter'), +(@ARTRUIS, 0, 21, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 5, 10000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Just Died - Say Line 5'), +(@ARTRUIS, 0, 22, 23, 38, 0, 100, 0, 1, 1, 0, 0, 0, 0, 45, 1, 4, 0, 0, 0, 0, 10, @ZEPIKGUID, @ZEPIK, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Data Set 1 1 - Set Data 1 4 for Zepik the Gorloc Hunter'), +(@ARTRUIS, 0, 23, 24, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 28, 52185, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Data Set 1 1 - Remove Aura \'Bindings of Submission\''), +(@ARTRUIS, 0, 24, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Data Set 1 1 - Set Data 1 0 for self'), +(@ARTRUIS, 0, 25, 26, 38, 0, 100, 0, 1, 2, 0, 0, 0, 0, 45, 1, 4, 0, 0, 0, 0, 10, @JALOOTGUID, @JALOOT, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Data Set 1 2 - Set Data 1 4 for Jaloot'), +(@ARTRUIS, 0, 26, 27, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 28, 52185, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Data Set 1 2 - Remove Aura \'Bindings of Submission\''), +(@ARTRUIS, 0, 27, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - On Data Set 1 2 - Set Data 1 0'), +(@ARTRUIS, 0, 28, 0, 0, 0, 100, 0, 1000, 1000, 1000, 1000, 0, 0, 11, 53163, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Artruis the Heartless - In Combat - Cast \'Dessawn Retainer\''); + +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = @JALOOT; +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = @JALOOT); +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`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(@JALOOT, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - On Respawn - Set Npc Flag '), +(@JALOOT, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 18, 512, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - On Respawn - Set Flags Immune To NPC\'s'), +(@JALOOT, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52182, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - On Respawn - Cast \'Tomb of the Heartless\''), +(@JALOOT, 0, 3, 0, 9, 0, 100, 0, 7500, 10000, 15000, 20000, 0, 5, 11, 52943, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - Within 0-5 Range - Cast \'Lightning Whirl\''), +(@JALOOT, 0, 4, 0, 9, 0, 100, 0, 7500, 9000, 15000, 18000, 0, 40, 11, 52944, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - Within 0-40 Range - Cast \'Lightning Strike\''), +(@JALOOT, 0, 5, 0, 9, 0, 100, 0, 10000, 12500, 20000, 25000, 0, 5, 11, 52964, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - Within 0-5 Range - Cast \'Spark Frenzy\''), +(@JALOOT, 0, 6, 0, 2, 0, 100, 0, 0, 30, 9000, 12000, 0, 0, 11, 52969, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - Between 0-30% Health - Cast \'Energy Siphon\''), +(@JALOOT, 0, 7, 8, 38, 0, 100, 0, 1, 1, 0, 0, 0, 0, 2, 14, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - On Data Set 1 1 - Set Faction 14'), +(@JALOOT, 0, 8, 9, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 28, 52182, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - On Data Set 1 1 - Remove Aura \'Tomb of the Heartless\''), +(@JALOOT, 0, 9, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 18, 40, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - On Data Set 1 1 - Start Attacking'), +(@JALOOT, 0, 10, 11, 38, 0, 100, 0, 1, 2, 0, 0, 0, 0, 2, 250, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - On Data Set 1 2 - Set Faction 250 - Friendly'), +(@JALOOT, 0, 11, 12, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 18, 512, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - On Data Set 1 2 - Set Flags Immune To NPC\'s'), +(@JALOOT, 0, 12, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52182, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - On Data Set 1 2 - Cast \'Tomb of the Heartless\''), +(@JALOOT, 0, 13, 14, 38, 0, 100, 0, 1, 3, 0, 0, 0, 0, 2, 250, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - On Data Set 1 3 - Set Faction 250 - Friendly'), +(@JALOOT, 0, 14, 15, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 18, 512, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - On Data Set 1 3 - Set Flags Immune To NPC\'s'), +(@JALOOT, 0, 15, 16, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 81, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - On Data Set 1 3 - Set Npc Flags Questgiver'), +(@JALOOT, 0, 16, 17, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 90000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - On Data Set 1 3 - Despawn In 90000 ms'), +(@JALOOT, 0, 17, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - On Data Set 1 3 - Evade'), +(@JALOOT, 0, 18, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 10, @ARTRUISGUID, @ARTRUIS, 0, 0, 0, 0, 0, 0, 'Jaloot - On Just Died - Set Data 1 1 for Artruis the Heartless'), +(@JALOOT, 0, 19, 20, 38, 0, 100, 0, 1, 4, 0, 0, 0, 0, 2, 250, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - On Data Set 1 4 - Set Faction 250 - Friendly'), +(@JALOOT, 0, 20, 21, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 28, 52185, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - On Data Set 1 4 - Remove Aura \'Bindings of Submission\''), +(@JALOOT, 0, 21, 22, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 19, 512, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - On Data Set 1 4 - Remove Flags Immune To NPC\'s'), +(@JALOOT, 0, 22, 23, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Jaloot - On Data Set 1 4 - Say Line 0'), +(@JALOOT, 0, 23, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 10, @ARTRUISGUID, @ARTRUIS, 0, 0, 0, 0, 0, 0, 'Jaloot - On Data Set 1 4 - Start Attacking Artruis the Heartless'); + +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = @ZEPIK; +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = @ZEPIK); +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`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(@ZEPIK, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Respawn - Set Npc Flag '), +(@ZEPIK, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 18, 512, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Respawn - Set Flags Immune To NPC\'s'), +(@ZEPIK, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52182, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Respawn - Cast \'Tomb of the Heartless\''), +(@ZEPIK, 0, 3, 0, 9, 0, 100, 0, 7500, 9000, 15000, 18000, 0, 20, 11, 52761, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - Within 0-20 Range - Cast \'Barbed Net\''), +(@ZEPIK, 0, 4, 0, 9, 0, 100, 0, 6000, 7500, 12000, 15000, 5, 30, 11, 52889, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - Within 5-30 Range - Cast \'Envenomed Shot\''), +(@ZEPIK, 0, 5, 0, 9, 0, 100, 0, 3000, 7000, 3000, 7000, 0, 5, 11, 52873, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - Within 0-5 Range - Cast \'Open Wound\''), +(@ZEPIK, 0, 6, 0, 9, 0, 100, 0, 15000, 20000, 30000, 40000, 0, 5, 11, 52886, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - Within 0-5 Range - Cast \'Spike Trap\''), +(@ZEPIK, 0, 7, 0, 2, 0, 100, 0, 0, 30, 30000, 30000, 0, 0, 11, 52895, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - Between 0-30% Health - Cast \'Bandage\''), +(@ZEPIK, 0, 8, 9, 38, 0, 100, 0, 1, 1, 0, 0, 0, 0, 2, 14, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Data Set 1 1 - Set Faction 14'), +(@ZEPIK, 0, 9, 10, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 28, 52182, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Data Set 1 1 - Remove Aura \'Tomb of the Heartless\''), +(@ZEPIK, 0, 10, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 18, 40, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Data Set 1 1 - Start Attacking'), +(@ZEPIK, 0, 11, 12, 38, 0, 100, 0, 1, 2, 0, 0, 0, 0, 2, 250, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Data Set 1 2 - Set Faction 250 - Friendly'), +(@ZEPIK, 0, 12, 13, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 18, 512, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Data Set 1 2 - Set Flags Immune To NPC\'s'), +(@ZEPIK, 0, 13, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52182, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Data Set 1 2 - Cast \'Tomb of the Heartless\''), +(@ZEPIK, 0, 14, 15, 38, 0, 100, 0, 1, 3, 0, 0, 0, 0, 2, 250, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Data Set 1 3 - Set Faction 250 - Friendly'), +(@ZEPIK, 0, 15, 16, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Data Set 1 3 - Evade'), +(@ZEPIK, 0, 16, 17, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 18, 512, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Data Set 1 3 - Set Flags Immune To NPC\'s'), +(@ZEPIK, 0, 17, 18, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 81, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Data Set 1 3 - Set Npc Flags Questgiver'), +(@ZEPIK, 0, 18, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 90000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Data Set 1 3 - Despawn In 90000 ms'), +(@ZEPIK, 0, 19, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 1, 2, 0, 0, 0, 0, 10, @ARTRUISGUID, @ARTRUIS, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Just Died - Set Data 1 2 for Artruis the Heartless'), +(@ZEPIK, 0, 20, 21, 38, 0, 100, 0, 1, 4, 0, 0, 0, 0, 2, 250, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Data Set 1 4 - Set Faction 250 - Friendly'), +(@ZEPIK, 0, 21, 22, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 28, 52185, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Data Set 1 4 - Remove Aura \'Bindings of Submission\''), +(@ZEPIK, 0, 22, 23, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 19, 512, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Data Set 1 4 - Remove Flags Immune To NPC\'s'), +(@ZEPIK, 0, 23, 24, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Data Set 1 4 - Say Line 0'), +(@ZEPIK, 0, 24, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 10, @ARTRUISGUID, @ARTRUIS, 0, 0, 0, 0, 0, 0, 'Zepik the Gorloc Hunter - On Data Set 1 4 - Start Attacking Artruis the Heartless'); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceGroup`=1 AND `SourceEntry`=52185; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(13,1,52185,0,0,31,0,3,@ZEPIK,0,0,0,'','Bindings of Submission for Zepik'), +(13,1,52185,0,1,31,0,3,@JALOOT,0,0,0,'','Bindings of Submission for Jaloot'), +(13,1,52185,0,2,31,0,3,@ARTRUIS,0,0,0,'','Bindings of Submission for Artruis the Heartless'); diff --git a/src/server/scripts/Northrend/zone_sholazar_basin.cpp b/src/server/scripts/Northrend/zone_sholazar_basin.cpp index af32ca1ea..100a90a86 100644 --- a/src/server/scripts/Northrend/zone_sholazar_basin.cpp +++ b/src/server/scripts/Northrend/zone_sholazar_basin.cpp @@ -65,201 +65,6 @@ class spell_q12726_song_of_wind_and_water : public SpellScript } }; -enum AHerosBurden -{ - SPELL_TOMB_OF_THE_HEARTLESS = 52182, - SPELL_ARTRUIS_FROST_NOVA = 11831, - SPELL_ARTRUIS_FROSTBOLT = 15530, - SPELL_ARTRUIS_ICE_LANCE = 54261, - SPELL_ARTRUIS_ICY_VEINS = 54792, - SPELL_ARTRUIS_BINDING = 52185, - - NPC_JALOOT = 28667, - NPC_ZEPIK = 28668, - NPC_ARTRUIS = 28659, - - EVENT_CAST_FROST_BOLT = 1, - EVENT_CAST_FROST_NOVA = 2, - EVENT_CAST_ICE_LANCE = 3, - EVENT_CAST_ICY_VEINS = 4, - EVENT_ARTRUIS_HP_CHECK = 5, - EVENT_ARTRUIS_TALK1 = 6, - EVENT_ARTRUIS_TALK2 = 7, - EVENT_ARTRUIS_TALK3 = 8, - - ACTION_BIND_MINIONS = 1, - ACTION_MAKE_FRIENDLY = 2, - - GO_ARTRUIS_PHYLACTERY = 190777, - - // Texts - SAY_TURNED_FRIENDLY = 0, // Zepik and Jaloot - - SAY_ARTRUIS_AGGRO = 0, - SAY_ARTRUIS_TALK_1 = 1, - SAY_ARTRUIS_TALK_2 = 2, - SAY_ARTRUIS_TALK_3 = 3, - SAY_ARTRUIS_SHIELD = 4, // Boss emote - SAY_ARTRUIS_TALK_4 = 5, -}; - -class npc_artruis_the_hearthless : public CreatureScript -{ -public: - npc_artruis_the_hearthless() : CreatureScript("npc_artruis_the_hearthless") { } - - struct npc_artruis_the_hearthlessAI : public ScriptedAI - { - npc_artruis_the_hearthlessAI(Creature* creature) : ScriptedAI(creature), summons(me) { } - - EventMap events; - SummonList summons; - void Reset() override - { - events.Reset(); - summons.DespawnAll(); - me->SetControlled(false, UNIT_STATE_STUNNED); - - Creature* cr; - if ((cr = me->SummonCreature(NPC_JALOOT, 5616.91f, 3772.67f, -94.26f, 1.78f))) - { - summons.Summon(cr); - cr->CastSpell(cr, SPELL_TOMB_OF_THE_HEARTLESS, true); - cr->SetFaction(me->GetFaction()); - } - if ((cr = me->SummonCreature(NPC_ZEPIK, 5631.63f, 3794.36f, -92.24f, 3.45f))) - { - summons.Summon(cr); - cr->CastSpell(cr, SPELL_TOMB_OF_THE_HEARTLESS, true); - cr->SetFaction(me->GetFaction()); - } - } - - void MoveInLineOfSight(Unit* who) override - { - if (who->GetEntry() == NPC_JALOOT || who->GetEntry() == NPC_ZEPIK) - return; - - ScriptedAI::MoveInLineOfSight(who); - } - - void JustEngagedWith(Unit* /*who*/) override - { - Talk(SAY_ARTRUIS_AGGRO); - me->CastSpell(me, SPELL_ARTRUIS_ICY_VEINS, true); - events.RescheduleEvent(EVENT_CAST_FROST_BOLT, 4s); - events.RescheduleEvent(EVENT_CAST_FROST_NOVA, 15s); - events.RescheduleEvent(EVENT_CAST_ICE_LANCE, 8500ms); - events.RescheduleEvent(EVENT_CAST_ICY_VEINS, 30s); - events.RescheduleEvent(EVENT_ARTRUIS_HP_CHECK, 1s); - events.RescheduleEvent(EVENT_ARTRUIS_TALK1, 6s); - } - - void JustDied(Unit* /*killer*/) override - { - if (GameObject* go = me->SummonGameObject(GO_ARTRUIS_PHYLACTERY, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 600000)) - me->RemoveGameObject(go, false); - } - - void SummonedCreatureDies(Creature* summon, Unit*) override - { - SummonsAction(ACTION_MAKE_FRIENDLY); - me->RemoveAurasDueToSpell(SPELL_ARTRUIS_BINDING); - summon->DespawnOrUnsummon(60000); - me->SetControlled(false, UNIT_STATE_STUNNED); - } - - void SummonsAction(uint8 action) - { - if (!summons.empty()) - { - if (action == ACTION_BIND_MINIONS) - me->CastSpell(me, SPELL_ARTRUIS_BINDING, true); - - for (ObjectGuid const& guid : summons) - { - Creature* minion = ObjectAccessor::GetCreature(*me, guid); - if (minion && minion->IsAlive()) - { - if (action == ACTION_BIND_MINIONS) - { - minion->RemoveAurasDueToSpell(SPELL_TOMB_OF_THE_HEARTLESS); - if (me->GetVictim()) - minion->AI()->AttackStart(me->GetVictim()); - } - else if (action == ACTION_MAKE_FRIENDLY && me->GetVictim()) - { - minion->AI()->Talk(SAY_TURNED_FRIENDLY); - minion->RemoveAurasDueToSpell(SPELL_ARTRUIS_BINDING); - minion->SetFaction(me->GetVictim()->GetFaction()); - minion->AddThreat(me, 100000.0f); - minion->AI()->AttackStart(me); - minion->DespawnOrUnsummon(900000); - events.RescheduleEvent(EVENT_ARTRUIS_TALK3, 5s); - } - } - } - } - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - switch (events.ExecuteEvent()) - { - case EVENT_ARTRUIS_HP_CHECK: - if (me->GetHealthPct() <= 30) - { - me->SetControlled(true, UNIT_STATE_STUNNED); - Talk(SAY_ARTRUIS_SHIELD); - Talk(SAY_ARTRUIS_TALK_3); - SummonsAction(ACTION_BIND_MINIONS); - break; - } - events.Repeat(1s); - break; - case EVENT_ARTRUIS_TALK1: - Talk(SAY_ARTRUIS_TALK_1); - events.RescheduleEvent(EVENT_ARTRUIS_TALK2, 10s); - break; - case EVENT_ARTRUIS_TALK2: - Talk(SAY_ARTRUIS_TALK_2); - break; - case EVENT_ARTRUIS_TALK3: - Talk(SAY_ARTRUIS_TALK_4); - break; - case EVENT_CAST_FROST_BOLT: - me->CastSpell(me->GetVictim(), SPELL_ARTRUIS_FROSTBOLT, false); - events.Repeat(4s); - break; - case EVENT_CAST_ICE_LANCE: - me->CastSpell(me->GetVictim(), SPELL_ARTRUIS_ICE_LANCE, false); - events.Repeat(8500ms); - break; - case EVENT_CAST_FROST_NOVA: - me->CastSpell(me, SPELL_ARTRUIS_FROST_NOVA, false); - events.Repeat(15s); - break; - case EVENT_CAST_ICY_VEINS: - me->CastSpell(me, SPELL_ARTRUIS_ICY_VEINS, false); - events.Repeat(30s); - break; - } - } - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_artruis_the_hearthlessAI(creature); - } -}; - /****** quest Still At It (12644) ******/ @@ -1488,7 +1293,6 @@ class spell_q12611_deathbolt : public SpellScript void AddSC_sholazar_basin() { RegisterSpellScript(spell_q12726_song_of_wind_and_water); - new npc_artruis_the_hearthless(); new npc_still_at_it_trigger(); new npc_mcmanus(); new go_pressure_valve();