diff options
4 files changed, 74 insertions, 207 deletions
diff --git a/sql/updates/world/master/2022_02_05_05_world_2020_09_08_02_world.sql b/sql/updates/world/master/2022_02_05_05_world_2020_09_08_02_world.sql new file mode 100644 index 00000000000..4b76b5a8683 --- /dev/null +++ b/sql/updates/world/master/2022_02_05_05_world_2020_09_08_02_world.sql @@ -0,0 +1,71 @@ +-- Archavon Warder, for some reason Shield Crush doesn't appear in sniffs +UPDATE `creature_template` SET `AIName` = "SmartAI", `ScriptName` = "" WHERE `entry` = 32353; +DELETE FROM `smart_scripts` WHERE `entryorguid` = 32353 AND `source_type` = 0; +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`,`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 +(32353,0,0,0,0,0,100,2,20000,20000,20000,20000,0,11,60897,0,0,0,0,0,2,0,0,0,0,0,0,0,0,"Archavon Warder - In Combat - Cast 'Shield Crush' (Normal Dungeon)"), +(32353,0,1,0,0,0,100,4,20000,20000,20000,20000,0,11,60899,0,0,0,0,0,2,0,0,0,0,0,0,0,0,"Archavon Warder - In Combat - Cast 'Shield Crush' (Heroic Dungeon)"), +(32353,0,2,0,0,0,100,2,11000,13000,15000,15000,0,11,60902,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Archavon Warder - In Combat - Cast 'Whirl' (Normal Dungeon)"), +(32353,0,3,0,0,0,100,4,11000,13000,15000,15000,0,11,60916,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Archavon Warder - In Combat - Cast 'Whirl' (Heroic Dungeon)"), +(32353,0,4,0,0,0,100,2,15000,19000,25000,30000,0,11,60919,0,0,0,0,0,5,0,0,0,0,0,0,0,0,"Archavon Warder - In Combat - Cast 'Rock Shower' (Normal Dungeon)"), +(32353,0,5,0,0,0,100,4,15000,19000,25000,30000,0,11,60923,0,0,0,0,0,5,0,0,0,0,0,0,0,0,"Archavon Warder - In Combat - Cast 'Rock Shower' (Heroic Dungeon)"); + +-- Flame Warder (https://youtu.be/8hpdbio-n-Y?t=56) +UPDATE `creature_template` SET `AIName` = "SmartAI", `ScriptName` = "" WHERE `entry` = 35143; +DELETE FROM `smart_scripts` WHERE `entryorguid` = 35143 AND `source_type` = 0; +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`,`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 +(35143,0,0,0,0,0,100,2,10000,15000,35000,35000,0,11,66808,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Flame Warder - In Combat - Cast 'Meteor Fists' (Normal Dungeon)"), +(35143,0,1,0,0,0,100,4,10000,15000,35000,35000,0,11,68160,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Flame Warder - In Combat - Cast 'Meteor Fists' (Heroic Dungeon)"), +(35143,0,2,0,0,0,100,2,5000,5000,15000,15000,0,11,66813,0,0,0,0,0,5,0,0,0,0,0,0,0,0,"Flame Warder - In Combat - Cast 'Lava Burst' (Normal Dungeon)"), +(35143,0,3,0,0,0,100,4,5000,5000,15000,15000,0,11,67330,0,0,0,0,0,5,0,0,0,0,0,0,0,0,"Flame Warder - In Combat - Cast 'Lava Burst' (Heroic Dungeon)"); + +-- Frost Warder (3.3.5 Sniffs Normal & Heroic) +UPDATE `creature_template_addon` SET `auras` = "72122" WHERE `entry` = 38482; +UPDATE `creature_template_addon` SET `auras` = "71993" WHERE `entry` = 38483; +UPDATE `creature_template` SET `AIName` = "SmartAI", `ScriptName` = "" WHERE `entry` = 38482; +DELETE FROM `smart_scripts` WHERE `entryorguid` = 38482 AND `source_type` = 0; +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`,`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 +(38482,0,0,0,0,0,100,2,5000,5000,5000,9000,0,11,72123,0,0,0,0,0,5,0,0,0,0,0,0,0,0,"Frost Warder - In Combat - Cast 'Frost Blast' (Normal Dungeon)"), +(38482,0,1,0,0,0,100,4,5000,5000,5000,9000,0,11,72124,0,0,0,0,0,5,0,0,0,0,0,0,0,0,"Frost Warder - In Combat - Cast 'Frost Blast' (Heroic Dungeon)"); + +-- Tempest Warder (https://youtu.be/8hpdbio-n-Y?t=454) +UPDATE `creature_template` SET `AIName` = "SmartAI" WHERE `entry` = 34015; +DELETE FROM `smart_scripts` WHERE `entryorguid` = 34015 AND `source_type` = 0; +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`,`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 +(34015,0,0,0,0,0,100,0,5000,8000,4000,7000,0,11,64363,0,0,0,0,0,5,0,0,0,0,0,0,0,0,"Tempest Warder - In Combat - Cast 'Shock'"), +(34015,0,1,2,2,0,100,1,0,40,0,0,0,11,64379,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Tempest Warder - Between 0-40% Health - Cast 'Overcharge' (No Repeat)"), +(34015,0,2,0,61,0,100,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Tempest Warder - On Link - Say Line 0"); + +DELETE FROM `creature_text` WHERE `CreatureID` = 34015; +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(34015,0,0,"%s crackles and surges with raw energy!",41,0,100,0,0,0,34085,0,"Tempest Warder"); + +-- Add waypoints from sniffs +DELETE FROM `creature_addon` WHERE `guid` IN (202595,202598); +INSERT INTO `creature_addon` (`guid`,`path_id`) VALUES +(202595,2025950), +(202598,2025980); + +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` IN (202595,202598); + +DELETE FROM `waypoint_data` WHERE `id` IN (2025950,2025980); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`) VALUES +(2025950, 1, -218.85168, -200.84744, 97.592926), +(2025950, 2, -218.84631, -185.63348, 97.592926), +(2025950, 3, -218.7963, -176.4833, 97.592926), +(2025950, 4, -218.86719, -166.53061, 97.592926), +(2025950, 5, -218.83926, -153.72055, 101.95123), +(2025950, 6, -218.86719, -166.53061, 97.592926), +(2025950, 7, -218.7963, -176.4833, 97.592926), +(2025950, 8, -218.84631, -185.63348, 97.592926), +(2025950, 9, -218.85168, -200.84744, 97.592926), +(2025950, 10, -218.9047, -211.1511, 97.592926), +(2025980, 1, -218.625, 2.2204819, 97.593), +(2025980, 2, -218.63019, -37.989586, 97.593); + +-- Fix amount of gold from Flame Warder in heroic +UPDATE `creature_template` SET `mingold` = 8112, `maxgold` = 13520 WHERE `entry` = 35359; + +-- Meteor Fists for heroic mode +-- DELETE FROM `spelldifficulty_dbc` WHERE `id` = 66809; +-- INSERT INTO `spelldifficulty_dbc` (`id`,`spellid0`,`spellid1`,`spellid2`,`spellid3`) VALUES +-- (66809,66809,67331,0,0); diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp index c29ba834e96..eaefeabf71c 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp @@ -37,12 +37,7 @@ enum Spells SPELL_CRUSHING_LEAP = 58960, SPELL_STOMP = 58663, SPELL_IMPALE = 58666, - SPELL_BERSERK = 47008, - - // Archavon Warders - SPELL_ROCK_SHOWER = 60919, - SPELL_SHIELD_CRUSH = 60897, - SPELL_WHIRL = 60902 + SPELL_BERSERK = 47008 }; enum Creatures @@ -58,11 +53,6 @@ enum Events EVENT_STOMP = 3, // 45s cd EVENT_IMPALE = 4, EVENT_BERSERK = 5, // 300s cd - - //mob - EVENT_ROCK_SHOWER = 6, // set = 20s cd, unkown cd - EVENT_SHIELD_CRUSH = 7, // set = 30s cd - EVENT_WHIRL = 8, // set= 10s cd }; class boss_archavon : public CreatureScript @@ -144,80 +134,6 @@ class boss_archavon : public CreatureScript } }; -/*###### -## Mob Archavon Warder -######*/ -class npc_archavon_warder : public CreatureScript -{ - public: - npc_archavon_warder() : CreatureScript("npc_archavon_warder") { } - - struct npc_archavon_warderAI : public ScriptedAI //npc 32353 - { - npc_archavon_warderAI(Creature* creature) : ScriptedAI(creature) - { - } - - EventMap events; - - void Reset() override - { - events.Reset(); - events.ScheduleEvent(EVENT_ROCK_SHOWER, 2s); - events.ScheduleEvent(EVENT_SHIELD_CRUSH, 20s); - events.ScheduleEvent(EVENT_WHIRL, 7s); - } - - void JustEngagedWith(Unit* /*who*/) override - { - DoZoneInCombat(); - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - events.Update(diff); - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - while (uint32 eventId = events.ExecuteEvent()) - { - switch (eventId) - { - case EVENT_ROCK_SHOWER: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) - DoCast(target, SPELL_ROCK_SHOWER); - events.ScheduleEvent(EVENT_ROCK_SHARDS, 6s); - break; - case EVENT_SHIELD_CRUSH: - DoCastVictim(SPELL_SHIELD_CRUSH); - events.ScheduleEvent(EVENT_SHIELD_CRUSH, 20s); - break; - case EVENT_WHIRL: - DoCastVictim(SPELL_WHIRL); - events.ScheduleEvent(EVENT_WHIRL, 8s); - break; - default: - break; - } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - } - - DoMeleeAttackIfReady(); - } - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return GetVaultOfArchavonAI<npc_archavon_warderAI>(creature); - } -}; - // 58941 - Rock Shards class spell_archavon_rock_shards : public SpellScriptLoader { @@ -268,6 +184,5 @@ class spell_archavon_rock_shards : public SpellScriptLoader void AddSC_boss_archavon() { new boss_archavon(); - new npc_archavon_warder(); new spell_archavon_rock_shards(); } diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp index 497f39eec07..fc20b287973 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp @@ -26,11 +26,7 @@ enum Events EVENT_BURNING_BREATH = 1, EVENT_BURNING_FURY = 2, EVENT_FLAME_CINDER = 3, - EVENT_METEOR_FISTS = 4, - - // Flame Warder - EVENT_FW_LAVA_BIRST = 5, - EVENT_FW_METEOR_FISTS = 6 + EVENT_METEOR_FISTS = 4 }; enum Spells @@ -44,8 +40,6 @@ enum Spells SPELL_METEOR_FISTS_DAMAGE = 66765, // Spells Flame Warder - SPELL_FW_LAVA_BIRST = 66813, - SPELL_FW_METEOR_FISTS = 66808, SPELL_FW_METEOR_FISTS_DAMAGE = 66809 }; @@ -120,70 +114,6 @@ class boss_koralon : public CreatureScript } }; -/*###### -## Npc Flame Warder -######*/ -class npc_flame_warder : public CreatureScript -{ - public: - npc_flame_warder() : CreatureScript("npc_flame_warder") { } - - struct npc_flame_warderAI : public ScriptedAI - { - npc_flame_warderAI(Creature* creature) : ScriptedAI(creature) - { - } - - void Reset() override - { - events.Reset(); - } - - void JustEngagedWith(Unit* /*who*/) override - { - DoZoneInCombat(); - - events.ScheduleEvent(EVENT_FW_LAVA_BIRST, 5s); - events.ScheduleEvent(EVENT_FW_METEOR_FISTS, 10s); - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - events.Update(diff); - - while (uint32 eventId = events.ExecuteEvent()) - { - switch (eventId) - { - case EVENT_FW_LAVA_BIRST: - DoCastVictim(SPELL_FW_LAVA_BIRST); - events.ScheduleEvent(EVENT_FW_LAVA_BIRST, 15s); - break; - case EVENT_FW_METEOR_FISTS: - DoCast(me, SPELL_FW_METEOR_FISTS); - events.ScheduleEvent(EVENT_FW_METEOR_FISTS, 20s); - break; - default: - break; - } - } - - DoMeleeAttackIfReady(); - } - - private: - EventMap events; - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return GetVaultOfArchavonAI<npc_flame_warderAI>(creature); - } -}; - class spell_koralon_meteor_fists : public SpellScriptLoader { public: @@ -294,7 +224,6 @@ class spell_flame_warder_meteor_fists : public SpellScriptLoader void AddSC_boss_koralon() { new boss_koralon(); - new npc_flame_warder(); new spell_koralon_meteor_fists(); new spell_koralon_meteor_fists_damage(); new spell_flame_warder_meteor_fists(); diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp index 9670a21799b..967a0782435 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp @@ -34,10 +34,6 @@ enum Spells SPELL_FROZEN_ORB_AURA = 72067, SPELL_RANDOM_AGGRO = 72084, - // Frost Warder - SPELL_FROST_BLAST = 72123, // don't know cd... using 20 secs. - SPELL_FROZEN_MALLET_2 = 72122, - // Frozen Orb Stalker FROZEN_ORB_STALKER_AURA = 72094 }; @@ -46,9 +42,7 @@ enum Events { EVENT_FREEZING_GROUND = 1, EVENT_FROZEN_ORB = 2, - EVENT_WHITEOUT = 3, - - EVENT_FROST_BLAST = 4 + EVENT_WHITEOUT = 3 }; struct boss_toravon : public BossAI @@ -117,47 +111,6 @@ struct npc_frozen_orb_stalker : public ScriptedAI } }; -struct npc_frost_warder : public ScriptedAI -{ - npc_frost_warder(Creature* creature) : ScriptedAI(creature) { } - - void Reset() override - { - _events.Reset(); - } - - void JustEngagedWith(Unit* /*who*/) override - { - DoZoneInCombat(); - - DoCastSelf(SPELL_FROZEN_MALLET_2); - - _events.ScheduleEvent(EVENT_FROST_BLAST, 5s); - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - _events.Update(diff); - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - if (_events.ExecuteEvent() == EVENT_FROST_BLAST) - { - DoCastVictim(SPELL_FROST_BLAST); - _events.ScheduleEvent(EVENT_FROST_BLAST, 20s); - } - - DoMeleeAttackIfReady(); - } - -private: - EventMap _events; -}; - struct npc_frozen_orb : public ScriptedAI { npc_frozen_orb(Creature* creature) : ScriptedAI(creature) { } @@ -211,7 +164,6 @@ class spell_toravon_random_aggro : public SpellScript void AddSC_boss_toravon() { RegisterVaultOfArchavonCreatureAI(boss_toravon); - RegisterVaultOfArchavonCreatureAI(npc_frost_warder); RegisterVaultOfArchavonCreatureAI(npc_frozen_orb_stalker); RegisterVaultOfArchavonCreatureAI(npc_frozen_orb); RegisterSpellScript(spell_toravon_random_aggro); |