Merge branch 'main' of https://github.com/Thordekk/WowCommunityProject
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Introduction:
|
||||
|
||||
WowCommunity Project is a World of Warcraft blizzlike design based on TrinityCore, which is based on the Midnight Expansion version 12.1.0.69587.
|
||||
WowCommunity Project is a World of Warcraft blizzlike design based on TrinityCore, which is based on the Midnight Expansion version 12.1.0.69814.
|
||||
|
||||
|
||||
# Developers:
|
||||
|
||||
@@ -0,0 +1,288 @@
|
||||
DELETE FROM `areatrigger_create_properties` WHERE `Id`=1612 AND `IsCustom`=0;
|
||||
INSERT INTO `areatrigger_create_properties` (`Id`, `IsCustom`, `AreaTriggerId`, `IsAreatriggerCustom`, `Flags`, `MoveCurveId`, `ScaleCurveId`, `MorphCurveId`, `FacingCurveId`, `AnimId`, `AnimKitId`, `DecalPropertiesId`, `SpellForVisuals`, `PositionalSoundKitId`, `TimeToTargetScale`, `Speed`, `SpeedIsTime`, `Shape`, `ShapeData0`, `ShapeData1`, `ShapeData2`, `ShapeData3`, `ShapeData4`, `ShapeData5`, `ShapeData6`, `ShapeData7`, `Roll`, `Pitch`, `Yaw`, `TargetRoll`, `TargetPitch`, `TargetYaw`, `ScriptName`, `VerifiedBuild`) VALUES (1612, 0, 6095, 0, 24, 0, 0, 0, 0, -1, 0, 0, NULL, 0, 2500, 20, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, 'at_mage_arcane_orb', 69587);
|
||||
|
||||
INSERT IGNORE INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||
(55342, 'spell_mage_mirror_image');
|
||||
|
||||
UPDATE creature_template SET ScriptName = 'npc_pet_mage_mirror_image' WHERE entry = 31216;
|
||||
UPDATE creature_template SET ScriptName = '' WHERE entry IN (47243, 47244);
|
||||
|
||||
|
||||
UPDATE `quest_poi` SET `VerifiedBuild`=69814 WHERE (`QuestID`=72293 AND `BlobIndex`=0 AND `Idx1`=1) OR (`QuestID`=72293 AND `BlobIndex`=0 AND `Idx1`=0) OR (`QuestID`=50562 AND `BlobIndex`=0 AND `Idx1`=0) OR (`QuestID`=48639 AND `BlobIndex`=0 AND `Idx1`=3) OR (`QuestID`=48639 AND `BlobIndex`=3 AND `Idx1`=2) OR (`QuestID`=48639 AND `BlobIndex`=2 AND `Idx1`=1) OR (`QuestID`=48639 AND `BlobIndex`=1 AND `Idx1`=0) OR (`QuestID`=43179 AND `BlobIndex`=0 AND `Idx1`=0) OR (`QuestID`=42234 AND `BlobIndex`=0 AND `Idx1`=1) OR (`QuestID`=42234 AND `BlobIndex`=0 AND `Idx1`=0);
|
||||
|
||||
UPDATE `quest_poi_points` SET `VerifiedBuild`=69814 WHERE (`QuestID`=72293 AND `Idx1`=1 AND `Idx2`=0) OR (`QuestID`=72293 AND `Idx1`=0 AND `Idx2`=0) OR (`QuestID`=50562 AND `Idx1`=0 AND `Idx2`=0) OR (`QuestID`=48639 AND `Idx1`=3 AND `Idx2`=0) OR (`QuestID`=48639 AND `Idx1`=2 AND `Idx2`=0) OR (`QuestID`=48639 AND `Idx1`=1 AND `Idx2`=0) OR (`QuestID`=48639 AND `Idx1`=0 AND `Idx2`=0) OR (`QuestID`=43179 AND `Idx1`=0 AND `Idx2`=0) OR (`QuestID`=42234 AND `Idx1`=1 AND `Idx2`=0) OR (`QuestID`=42234 AND `Idx1`=0 AND `Idx2`=0);
|
||||
|
||||
DELETE FROM `world_quest_template` WHERE `QuestID` IN (42788 /*Maw of Souls: Return of the Beast*/, 46236 /*Stonebound Soldiers*/, 55823 /*Bounty: A Few Crabs*/, 41127 /*Gunksnout Infestation*/, 42082 /*The Shattered Locus*/, 60950 /*A Matter of Stealth*/, 44939 /*The Nighthold: Seeds of Destruction*/, 54287 /*Naga Attack!*/, 44769 /*Arming the Populace*/, 51706 /*Deadwood*/, 41093 /*DANGER: Durguth*/, 57023 /*Weighted Mogu Artifact*/, 50496 /*Glompmaw*/, 41144 /*Return to the River*/, 57101 /*Zan-Tien Serpent Cage*/, 51839 /*Squirgle of the Depths*/, 41089 /*Lords of the Hills*/, 70422 /*Dragonrider Racing - Emerald Gardens Ascent*/, 40850 /*Prisoners of Greystone*/, 42241 /*Halls of Valor: A Worthy Challenge*/, 41705 /*Assault on Thunder Totem*/, 70012 /*Protect the Nets!*/, 51909 /*Grozgore*/, 51115 /*Zunashi the Exile*/, 43324 /*Rage of the Owlbeasts*/, 52140 /*A Thorny Problem*/, 51815 /*Eggstermination*/, 57563 /*Mogu Assault Tracker*/, 41949 /*The Drekirjar Return*/, 45559 /*Behind Enemy Portals*/, 51118 /*Bloodwing Bonepicker*/, 43606 /*WANTED: Arcavellus*/, 50516 /*Wardrummer Zurula*/, 57272 /*Bloodbound Effigy*/, 57543 /*Executor of N'Zoth*/, 45049 /*Like the Wind*/, 43599 /*Warden Tower Assault: Blackhawk's Bulwark*/, 41211 /*Neltharion's Lair: Neltharion's Treasure*/, 42744 /*Darkheart Thicket: Preserving the Preservers*/, 42927 /*DANGER: Malisandra*/, 46933 /*Felrglrglrglrgl*/, 52298 /*The MOTHERLODE!!: The Smarts Are In His Horn!*/, 51901 /*Crushtacean*/, 44294 /*WANTED: Sekhan*/, 42234 /*The Valarjar*/, 55792 /*Requisition: More Cone Shells*/, 58740 /*Subjugated Serpents*/, 42652 /*Ancient Exemplars*/, 58481 /*Rituals of Blood*/, 54821 /*Athrikus Narassin*/, 44812 /*Running on Empty*/, 70420 /*Dragonrider Racing - Fen Flythrough*/, 43709 /*Seal Clubbing*/, 58334 /*Mistfall In Flames*/, 43325 /*Ley Race*/, 43179 /*The Kirin Tor of Dalaran*/, 43327 /*The Magic of Flight*/, 46829 /*Abuso elemental*/, 57718 /*Bound in Stone*/, 57008 /*Assault: The Warring Clans*/, 43183 /*Warden Tower Assault: Starstalker's Point*/, 42124 /*Hags and Hexes*/, 43827 /*Stormwing the Portals*/, 41821 /*WANTED: Shara Felbreath*/, 57256 /*Stormchosen Arena*/, 43766 /*The Magic of Flight*/, 43771 /*The Magic of Flight*/, 42021 /*Investigation at Mak'rana*/, 46288 /*Everyone to the Front*/, 41824 /*WANTED: Arru*/, 44119 /*DANGER: Volshax, Breaker of Will*/, 43751 /*Oh, Ship!*/, 54678 /*Anything We Can Salvage*/, 46508 /*Tomb of Sargeras: Azshara's Reach*/, 42154 /*Help a Whelp*/, 58370 /*Empowered Demolisher*/, 44017 /*WANTED: Apothecary Faldren*/, 42076 /*Shadowfen Village*/, 42176 /*Rise of Skovald*/, 47624 /*Bury It*/, 41948 /*All Pets Go to Heaven*/, 43513 /*Na'zak the Fiend*/);
|
||||
INSERT INTO `world_quest_template` (`QuestID`, `Duration`, `VariableID`, `Value`) VALUES
|
||||
(42788, 345600, 11908, 3), -- Maw of Souls: Return of the Beast
|
||||
(46236, 86400, 13207, 2), -- Stonebound Soldiers
|
||||
(55823, 86400, 17518, 1), -- Bounty: A Few Crabs
|
||||
(41127, 86400, 11365, 2), -- Gunksnout Infestation
|
||||
(42082, 86400, 11573, 1), -- The Shattered Locus
|
||||
(60950, 86400, 19551, 1), -- A Matter of Stealth
|
||||
(44939, 604800, 12759, 8), -- The Nighthold: Seeds of Destruction
|
||||
(54287, 86400, 16704, 1), -- Naga Attack!
|
||||
(44769, 86400, 12692, 1), -- Arming the Populace
|
||||
(51706, 86400, 15276, 3), -- Deadwood
|
||||
(41093, 259200, 10805, 1), -- DANGER: Durguth
|
||||
(57023, 86400, 18098, 1), -- Weighted Mogu Artifact
|
||||
(50496, 86400, 14794, 1), -- Glompmaw
|
||||
(41144, 86400, 10920, 1), -- Return to the River
|
||||
(57101, 86400, 18101, 1), -- Zan-Tien Serpent Cage
|
||||
(51839, 86400, 15530, 1), -- Squirgle of the Depths
|
||||
(41089, 259200, 10798, 1), -- Lords of the Hills
|
||||
(70422, 302400, 22383, 1), -- Dragonrider Racing - Emerald Gardens Ascent
|
||||
(40850, 86400, 11267, 1), -- Prisoners of Greystone
|
||||
(42241, 345600, 11606, 3), -- Halls of Valor: A Worthy Challenge
|
||||
(41705, 86400, 11355, 1), -- Assault on Thunder Totem
|
||||
(70012, 302400, 22290, 1), -- Protect the Nets!
|
||||
(51909, 86400, 15577, 1), -- Grozgore
|
||||
(51115, 86400, 15088, 1), -- Zunashi the Exile
|
||||
(43324, 86400, 12159, 1), -- Rage of the Owlbeasts
|
||||
(52140, 86400, 15612, 2), -- A Thorny Problem
|
||||
(51815, 86400, 15519, 1), -- Eggstermination
|
||||
(57563, 302400, 17995, 2), -- Mogu Assault Tracker
|
||||
(41949, 86400, 11482, 1), -- The Drekirjar Return
|
||||
(45559, 86400, 12905, 4), -- Behind Enemy Portals
|
||||
(51118, 86400, 15091, 1), -- Bloodwing Bonepicker
|
||||
(43606, 86400, 11753, 3), -- WANTED: Arcavellus
|
||||
(50516, 86400, 14818, 1), -- Wardrummer Zurula
|
||||
(57272, 86400, 18109, 1), -- Bloodbound Effigy
|
||||
(57543, 86400, 18484, 1), -- Executor of N'Zoth
|
||||
(45049, 259200, 12770, 1), -- Like the Wind
|
||||
(43599, 86400, 11187, 1), -- Warden Tower Assault: Blackhawk's Bulwark
|
||||
(41211, 259200, 12211, 1), -- Neltharion's Lair: Neltharion's Treasure
|
||||
(42744, 259200, 12211, 1), -- Darkheart Thicket: Preserving the Preservers
|
||||
(42927, 259200, 12060, 1), -- DANGER: Malisandra
|
||||
(46933, 86400, 13173, 2), -- Felrglrglrglrgl
|
||||
(52298, 345600, 15731, 2), -- The MOTHERLODE!!: The Smarts Are In His Horn!
|
||||
(51901, 86400, 15582, 1), -- Crushtacean
|
||||
(44294, 86400, 11409, 3), -- WANTED: Sekhan
|
||||
(42234, 259200, 12215, 1), -- The Valarjar
|
||||
(55792, 86400, 17472, 1), -- Requisition: More Cone Shells
|
||||
(58740, 86400, 18541, 4), -- Subjugated Serpents
|
||||
(42652, 86400, 11884, 1), -- Ancient Exemplars
|
||||
(58481, 86400, 18542, 2), -- Rituals of Blood
|
||||
(54821, 86400, 17015, 1), -- Athrikus Narassin
|
||||
(44812, 86400, 12710, 1), -- Running on Empty
|
||||
(70420, 302400, 22381, 1), -- Dragonrider Racing - Fen Flythrough
|
||||
(43709, 86400, 12299, 1), -- Seal Clubbing
|
||||
(58334, 86400, 18526, 1), -- Mistfall In Flames
|
||||
(43325, 259200, 12463, 1), -- Ley Race
|
||||
(43179, 259200, 12211, 1), -- The Kirin Tor of Dalaran
|
||||
(43327, 259200, 12464, 1), -- The Magic of Flight
|
||||
(46829, 86400, 13372, 1), -- Abuso elemental
|
||||
(57718, 86400, 18540, 1), -- Bound in Stone
|
||||
(57008, 302400, 17995, 2), -- Assault: The Warring Clans
|
||||
(43183, 86400, 11084, 2), -- Warden Tower Assault: Starstalker's Point
|
||||
(42124, 86400, 11604, 1), -- Hags and Hexes
|
||||
(43827, 86400, 11452, 2), -- Stormwing the Portals
|
||||
(41821, 86400, 11390, 2), -- WANTED: Shara Felbreath
|
||||
(57256, 86400, 18107, 1), -- Stormchosen Arena
|
||||
(43766, 259200, 12467, 1), -- The Magic of Flight
|
||||
(43771, 259200, 12470, 1), -- The Magic of Flight
|
||||
(42021, 86400, 11539, 1), -- Investigation at Mak'rana
|
||||
(46288, 86400, 13183, 2), -- Everyone to the Front
|
||||
(41824, 86400, 11393, 2), -- WANTED: Arru
|
||||
(44119, 345600, 12445, 1), -- DANGER: Volshax, Breaker of Will
|
||||
(43751, 86400, 12320, 1), -- Oh, Ship!
|
||||
(54678, 86400, 17070, 1), -- Anything We Can Salvage
|
||||
(46508, 604800, 13408, 8), -- Tomb of Sargeras: Azshara's Reach
|
||||
(42154, 86400, 11626, 1), -- Help a Whelp
|
||||
(58370, 86400, 18528, 1), -- Empowered Demolisher
|
||||
(44017, 64800, 12393, 1), -- WANTED: Apothecary Faldren
|
||||
(42076, 86400, 11565, 1), -- Shadowfen Village
|
||||
(42176, 86400, 11637, 1), -- Rise of Skovald
|
||||
(47624, 86400, 13636, 1), -- Bury It
|
||||
(41948, 86400, 11490, 1), -- All Pets Go to Heaven
|
||||
(43513, 604800, 12250, 1); -- Na'zak the Fiend
|
||||
|
||||
UPDATE `world_quest_template` SET `VariableID`=14242 WHERE `QuestID`=49097; -- Invasion Point: Sangua
|
||||
UPDATE `world_quest_template` SET `VariableID`=14063 WHERE `QuestID`=49099; -- Invasion Point: Bonich
|
||||
UPDATE `world_quest_template` SET `VariableID`=14064 WHERE `QuestID`=49098; -- Invasion Point: Cen'gar
|
||||
|
||||
|
||||
|
||||
DELETE FROM `world_quest_template` WHERE `QuestID` IN (42788 /*Maw of Souls: Return of the Beast*/, 46236 /*Stonebound Soldiers*/, 55823 /*Bounty: A Few Crabs*/, 41127 /*Gunksnout Infestation*/, 42082 /*The Shattered Locus*/, 44939 /*The Nighthold: Seeds of Destruction*/, 54287 /*Naga Attack!*/, 44769 /*Arming the Populace*/, 51706 /*Deadwood*/, 41093 /*DANGER: Durguth*/, 50496 /*Glompmaw*/, 41144 /*Return to the River*/, 51839 /*Squirgle of the Depths*/, 41089 /*Lords of the Hills*/, 70422 /*Dragonrider Racing - Emerald Gardens Ascent*/, 40850 /*Prisoners of Greystone*/, 42241 /*Halls of Valor: A Worthy Challenge*/, 70012 /*Protect the Nets!*/, 51909 /*Grozgore*/, 51115 /*Zunashi the Exile*/, 47496 /*Bunker Buster*/, 43324 /*Rage of the Owlbeasts*/, 52140 /*A Thorny Problem*/, 51815 /*Eggstermination*/, 41949 /*The Drekirjar Return*/, 45559 /*Behind Enemy Portals*/, 51118 /*Bloodwing Bonepicker*/, 43606 /*WANTED: Arcavellus*/, 50516 /*Wardrummer Zurula*/, 57543 /*Executor of N'Zoth*/, 45049 /*Like the Wind*/, 43599 /*Warden Tower Assault: Blackhawk's Bulwark*/, 41211 /*Neltharion's Lair: Neltharion's Treasure*/, 43434 /*WANTED: Fathnyr*/, 42744 /*Darkheart Thicket: Preserving the Preservers*/, 42927 /*DANGER: Malisandra*/, 46933 /*Felrglrglrglrgl*/, 52298 /*The MOTHERLODE!!: The Smarts Are In His Horn!*/, 51901 /*Crushtacean*/, 44294 /*WANTED: Sekhan*/, 41171 /*The Reliquary Calls*/, 42234 /*The Valarjar*/, 55792 /*Requisition: More Cone Shells*/, 42652 /*Ancient Exemplars*/, 54821 /*Athrikus Narassin*/, 44812 /*Running on Empty*/, 70420 /*Dragonrider Racing - Fen Flythrough*/, 43325 /*Ley Race*/, 43179 /*The Kirin Tor of Dalaran*/, 43327 /*The Magic of Flight*/, 46829 /*Abuso elemental*/, 41513 /*Felwort*/, 43183 /*Warden Tower Assault: Starstalker's Point*/, 42124 /*Hags and Hexes*/, 42101 /*Language of the Lost*/, 43827 /*Stormwing the Portals*/, 43766 /*The Magic of Flight*/, 43771 /*The Magic of Flight*/, 46288 /*Everyone to the Front*/, 41824 /*WANTED: Arru*/, 44119 /*DANGER: Volshax, Breaker of Will*/, 43751 /*Oh, Ship!*/, 41055 /*Primal Payback*/, 54678 /*Anything We Can Salvage*/, 46508 /*Tomb of Sargeras: Azshara's Reach*/, 42154 /*Help a Whelp*/, 44017 /*WANTED: Apothecary Faldren*/, 42076 /*Shadowfen Village*/, 42176 /*Rise of Skovald*/, 47624 /*Bury It*/, 52168 /*It's Lit*/, 41948 /*All Pets Go to Heaven*/, 43513 /*Na'zak the Fiend*/);
|
||||
INSERT INTO `world_quest_template` (`QuestID`, `Duration`, `VariableID`, `Value`) VALUES
|
||||
(42788, 345600, 11908, 3), -- Maw of Souls: Return of the Beast
|
||||
(46236, 86400, 13207, 2), -- Stonebound Soldiers
|
||||
(55823, 86400, 17518, 1), -- Bounty: A Few Crabs
|
||||
(41127, 86400, 11365, 2), -- Gunksnout Infestation
|
||||
(42082, 86400, 11573, 1), -- The Shattered Locus
|
||||
(44939, 604800, 12759, 8), -- The Nighthold: Seeds of Destruction
|
||||
(54287, 86400, 16704, 1), -- Naga Attack!
|
||||
(44769, 86400, 12692, 1), -- Arming the Populace
|
||||
(51706, 86400, 15276, 3), -- Deadwood
|
||||
(41093, 259200, 10805, 1), -- DANGER: Durguth
|
||||
(50496, 86400, 14794, 1), -- Glompmaw
|
||||
(41144, 86400, 10920, 1), -- Return to the River
|
||||
(51839, 86400, 15530, 1), -- Squirgle of the Depths
|
||||
(41089, 259200, 10798, 1), -- Lords of the Hills
|
||||
(70422, 302400, 22383, 1), -- Dragonrider Racing - Emerald Gardens Ascent
|
||||
(40850, 86400, 11267, 1), -- Prisoners of Greystone
|
||||
(42241, 345600, 11606, 3), -- Halls of Valor: A Worthy Challenge
|
||||
(70012, 302400, 22290, 1), -- Protect the Nets!
|
||||
(51909, 86400, 15577, 1), -- Grozgore
|
||||
(51115, 86400, 15088, 1), -- Zunashi the Exile
|
||||
(47496, 86400, 13693, 1), -- Bunker Buster
|
||||
(43324, 86400, 12159, 1), -- Rage of the Owlbeasts
|
||||
(52140, 86400, 15612, 2), -- A Thorny Problem
|
||||
(51815, 86400, 15519, 1), -- Eggstermination
|
||||
(41949, 86400, 11482, 1), -- The Drekirjar Return
|
||||
(45559, 86400, 12905, 4), -- Behind Enemy Portals
|
||||
(51118, 86400, 15091, 1), -- Bloodwing Bonepicker
|
||||
(43606, 86400, 11753, 3), -- WANTED: Arcavellus
|
||||
(50516, 86400, 14818, 1), -- Wardrummer Zurula
|
||||
(57543, 86400, 18484, 1), -- Executor of N'Zoth
|
||||
(45049, 259200, 12770, 1), -- Like the Wind
|
||||
(43599, 86400, 11187, 1), -- Warden Tower Assault: Blackhawk's Bulwark
|
||||
(41211, 259200, 12211, 1), -- Neltharion's Lair: Neltharion's Treasure
|
||||
(43434, 86400, 12146, 1), -- WANTED: Fathnyr
|
||||
(42744, 259200, 12211, 1), -- Darkheart Thicket: Preserving the Preservers
|
||||
(42927, 259200, 12060, 1), -- DANGER: Malisandra
|
||||
(46933, 86400, 13173, 2), -- Felrglrglrglrgl
|
||||
(52298, 345600, 15731, 2), -- The MOTHERLODE!!: The Smarts Are In His Horn!
|
||||
(51901, 86400, 15582, 1), -- Crushtacean
|
||||
(44294, 86400, 11409, 3), -- WANTED: Sekhan
|
||||
(41171, 1209600, 11371, 2), -- The Reliquary Calls
|
||||
(42234, 259200, 12215, 1), -- The Valarjar
|
||||
(55792, 86400, 17472, 1), -- Requisition: More Cone Shells
|
||||
(42652, 86400, 11884, 1), -- Ancient Exemplars
|
||||
(54821, 86400, 17015, 1), -- Athrikus Narassin
|
||||
(44812, 86400, 12710, 1), -- Running on Empty
|
||||
(70420, 302400, 22381, 1), -- Dragonrider Racing - Fen Flythrough
|
||||
(43325, 259200, 12463, 1), -- Ley Race
|
||||
(43179, 259200, 12211, 1), -- The Kirin Tor of Dalaran
|
||||
(43327, 259200, 12464, 1), -- The Magic of Flight
|
||||
(46829, 86400, 13372, 1), -- Abuso elemental
|
||||
(41513, 259200, 11160, 1), -- Felwort
|
||||
(43183, 86400, 11084, 2), -- Warden Tower Assault: Starstalker's Point
|
||||
(42124, 86400, 11604, 1), -- Hags and Hexes
|
||||
(42101, 86400, 11580, 1), -- Language of the Lost
|
||||
(43827, 86400, 11452, 2), -- Stormwing the Portals
|
||||
(43766, 259200, 12467, 1), -- The Magic of Flight
|
||||
(43771, 259200, 12470, 1), -- The Magic of Flight
|
||||
(46288, 86400, 13183, 2), -- Everyone to the Front
|
||||
(41824, 86400, 11393, 2), -- WANTED: Arru
|
||||
(44119, 345600, 12445, 1), -- DANGER: Volshax, Breaker of Will
|
||||
(43751, 86400, 12320, 1), -- Oh, Ship!
|
||||
(41055, 86400, 10924, 2), -- Primal Payback
|
||||
(54678, 86400, 17070, 1), -- Anything We Can Salvage
|
||||
(46508, 604800, 13408, 8), -- Tomb of Sargeras: Azshara's Reach
|
||||
(42154, 86400, 11626, 1), -- Help a Whelp
|
||||
(44017, 64800, 12393, 1), -- WANTED: Apothecary Faldren
|
||||
(42076, 86400, 11565, 1), -- Shadowfen Village
|
||||
(42176, 86400, 11637, 1), -- Rise of Skovald
|
||||
(47624, 86400, 13636, 1), -- Bury It
|
||||
(52168, 86400, 15652, 1), -- It's Lit
|
||||
(41948, 86400, 11490, 1), -- All Pets Go to Heaven
|
||||
(43513, 604800, 12250, 1); -- Na'zak the Fiend
|
||||
|
||||
UPDATE `world_quest_template` SET `VariableID`=14242 WHERE `QuestID`=49097; -- Invasion Point: Sangua
|
||||
UPDATE `world_quest_template` SET `VariableID`=14063 WHERE `QuestID`=49099; -- Invasion Point: Bonich
|
||||
|
||||
|
||||
UPDATE `spawn_tracking_template` SET `VerifiedBuild`=69814 WHERE `SpawnTrackingId` IN (2013901, 1969369, 2001112, 2013906, 1740988, 836163, 959412, 953666, 953667, 953669, 1448534);
|
||||
UPDATE `spawn_tracking_template` SET `PhaseId`=0, `VerifiedBuild`=69814 WHERE `SpawnTrackingId`=1814882; -- Map: 870 (Pandaria) - Phase: 0
|
||||
UPDATE `spawn_tracking_template` SET `PhaseId`=0, `VerifiedBuild`=69814 WHERE `SpawnTrackingId`=1738340; -- Map: 1 (Kalimdor) - Phase: 0
|
||||
UPDATE `spawn_tracking_template` SET `PhaseId`=0, `VerifiedBuild`=69814 WHERE `SpawnTrackingId`=1734909; -- Map: 1220 (Broken Isles) - Phase: 0
|
||||
UPDATE `spawn_tracking_template` SET `PhaseId`=27393 WHERE `SpawnTrackingId`=2853599;
|
||||
UPDATE `spawn_tracking_template` SET `PhaseId`=29045 WHERE `SpawnTrackingId`=3257755;
|
||||
UPDATE `spawn_tracking_template` SET `MapId`=1669, `VerifiedBuild`=69814 WHERE `SpawnTrackingId` IN (1386863, 1386861); -- Map: 1669 (Argus) - Phase: 0
|
||||
UPDATE `spawn_tracking_template` SET `MapId`=1712, `VerifiedBuild`=69814 WHERE `SpawnTrackingId`=1402352; -- Map: 1712 (Antorus, the Burning Throne) - Phase: 0
|
||||
UPDATE `spawn_tracking_template` SET `MapId`=1220, `VerifiedBuild`=69814 WHERE `SpawnTrackingId` IN (1051130, 1174116); -- Map: 1220 (Broken Isles) - Phase: 0
|
||||
|
||||
|
||||
|
||||
REPLACE INTO `spell_target_position` (`ID`, `EffectIndex`, `OrderIndex`, `MapID`, `PositionX`, `PositionY`, `PositionZ`, `VerifiedBuild`) VALUES
|
||||
(384827, 0, 0, 2520, -3207.38720703125, 3950.77685546875, 97.4217987060546875, 69814); -- Spell: 384827 (Call Hyenas) Effect 0: 28 (SPELL_EFFECT_SUMMON)
|
||||
|
||||
|
||||
DELETE FROM `creature_template_difficulty` WHERE (`DifficultyID`=205 AND `Entry` IN (194273,54983,191926,191752,194675,186191,185528,186694,185529,185508,185534,185691,186206,191726,186793,186766,197335,197332,197334));
|
||||
INSERT INTO `creature_template_difficulty` (`Entry`, `DifficultyID`, `HealthScalingExpansion`, `HealthModifier`, `ManaModifier`, `CreatureDifficultyID`, `TypeFlags`, `TypeFlags2`, `TypeFlags3`) VALUES
|
||||
(194273, 205, 9, 1, 1, 222502, 0x200048, 0, 0), -- Witherling
|
||||
(54983, 205, 11, 1, 1, 30528, 0x0, 0, 0), -- Treant
|
||||
(191926, 205, 9, 12, 1, 220135, 0x200048, 2147483648, 0), -- Fishface
|
||||
(191752, 205, 9, 1, 1, 219957, 0x0, 0, 0), -- Focus of Decay
|
||||
(194675, 205, 9, 1, 1, 222908, 0x0, 67108866, 0), -- Decaying Cauldron
|
||||
(186191, 205, 9, 6, 1, 210509, 0x200048, 2147483648, 0), -- Decay Speaker
|
||||
(185528, 205, 9, 4.25, 1, 209767, 0x200048, 0, 0), -- Trickclaw Mystic
|
||||
(186694, 205, 9, 1, 1, 211019, 0x0, 67108864, 0), -- Slain Tuskarr
|
||||
(185529, 205, 9, 8, 1, 209768, 0x200048, 2147483648, 0), -- Bracken Warscourge
|
||||
(185508, 205, 9, 4.5, 1, 209747, 0x200048, 0, 0), -- Claw Fighter
|
||||
(185534, 205, 9, 4, 1, 209773, 0x200048, 0, 0), -- Bonebolt Hunter
|
||||
(185691, 205, 9, 3.5, 1, 209946, 0x200048, 0, 0), -- Vicious Hyena
|
||||
(186206, 205, 9, 5.5, 1, 210524, 0x200048, 0, 0), -- Cruel Bonecrusher
|
||||
(191726, 205, 9, 1, 1, 219931, 0x0, 67108864, 0), -- Slain Tuskarr
|
||||
(186793, 205, 9, 1, 1, 211202, 0x0, 0, 0), -- [DNT] Corpse Post
|
||||
(186766, 205, 9, 1, 1, 211171, 0x0, 0, 0), -- Captive Tuskarr
|
||||
(197335, 205, 9, 5, 1, 225673, 0x0, 0, 0), -- Bertinuat
|
||||
(197332, 205, 9, 5, 1, 225670, 0x0, 0, 0), -- Japukitat
|
||||
(197334, 205, 9, 5, 1, 225672, 0x0, 0, 0); -- Sentiu
|
||||
|
||||
|
||||
DELETE FROM `creature_template_difficulty` WHERE (`DifficultyID`=205 AND `Entry` IN (194273,54983,191926,191752,186191,194675,185529,186694,185528,185691,185508,186766,186206,185534,186793,197335,197334,197332,191726));
|
||||
INSERT INTO `creature_template_difficulty` (`Entry`, `DifficultyID`, `LevelScalingDeltaMin`, `LevelScalingDeltaMax`, `ContentTuningID`, `StaticFlags1`, `StaticFlags2`, `StaticFlags3`, `StaticFlags4`, `StaticFlags5`, `StaticFlags6`, `StaticFlags7`, `StaticFlags8`, `VerifiedBuild`) VALUES
|
||||
(194273, 205, 0, 0, 2847, 0x10000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 69814), -- 194273 (Witherling) - CanSwim
|
||||
(54983, 205, 0, 0, 482, 0x20000100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 69814), -- 54983 (Treant) - Sessile, Floating
|
||||
(191926, 205, 1, 1, 2847, 0x10000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 69814), -- 191926 (Fishface) - CanSwim
|
||||
(191752, 205, 0, 0, 2847, 0x20000100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 69814), -- 191752 (Focus of Decay) - Sessile, Floating
|
||||
(186191, 205, 1, 1, 2847, 0x10000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 69814), -- 186191 (Decay Speaker) - CanSwim
|
||||
(194675, 205, 0, 0, 2847, 0x20000100, 0x0, 0x2000000, 0x0, 0x0, 0x0, 0x0, 0x0, 69814), -- 194675 (Decaying Cauldron) - Sessile, Floating - CannotTurn
|
||||
(185529, 205, 1, 1, 2847, 0x10000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 69814), -- 185529 (Bracken Warscourge) - CanSwim
|
||||
(186694, 205, 0, 0, 2847, 0x20000100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 69814), -- 186694 (Slain Tuskarr) - Sessile, Floating
|
||||
(185528, 205, 0, 0, 2847, 0x10000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 69814), -- 185528 (Trickclaw Mystic) - CanSwim
|
||||
(185691, 205, 0, 0, 2847, 0x10000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 69814), -- 185691 (Vicious Hyena) - CanSwim
|
||||
(185508, 205, 0, 0, 2847, 0x10000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 69814), -- 185508 (Claw Fighter) - CanSwim
|
||||
(186766, 205, 0, 0, 2847, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 69814), -- 186766 (Captive Tuskarr) -
|
||||
(186206, 205, 0, 0, 2847, 0x10000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 69814), -- 186206 (Cruel Bonecrusher) - CanSwim
|
||||
(185534, 205, 0, 0, 2847, 0x10000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 69814), -- 185534 (Bonebolt Hunter) - CanSwim
|
||||
(186793, 205, 0, 0, 2847, 0x20000100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 69814), -- 186793 ([DNT] Corpse Post) - Sessile, Floating
|
||||
(197335, 205, 0, 0, 2847, 0x10000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 69814), -- 197335 (Bertinuat) - CanSwim
|
||||
(197334, 205, 0, 0, 2847, 0x10000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 69814), -- 197334 (Sentiu) - CanSwim
|
||||
(197332, 205, 0, 0, 2847, 0x10000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 69814), -- 197332 (Japukitat) - CanSwim
|
||||
(191726, 205, 0, 0, 2847, 0x20000100, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 69814); -- 191726 (Slain Tuskarr) - Sessile, Floating - UntargetableByClient
|
||||
|
||||
|
||||
|
||||
UPDATE `creature_model_info` SET `VerifiedBuild`=69814 WHERE `DisplayID` IN (141424, 129792, 99197, 99196, 109908, 92725, 28282, 28111, 108585, 108586, 108494, 106069, 106071, 106099, 106068, 109949, 108447, 106070, 106038, 106294, 68523, 107989, 6121, 109883, 109884, 105554, 107993, 101428, 71690, 105699, 54677, 81393, 11908, 81391, 106604, 109135, 121443, 107352, 104894, 104893, 105690, 105700, 10827, 105704, 121442, 40689, 40693, 107363, 105696, 105697, 105695, 105647, 113755, 107685, 2711, 107601, 105828, 105637, 108659, 105677, 105651, 105769, 10270, 105636, 105632, 107600, 1534, 105631, 105771, 105688, 105689, 92726, 106388, 107245, 106396, 107602, 72724, 111077, 19670, 42722, 42720, 5446, 27823, 122774, 122773, 1694, 21342, 111076, 37310, 37311, 137392, 45881, 14492, 36656, 99383, 221, 338, 33303, 37850, 1141, 22769, 142813, 110111, 99496, 3285, 146139, 110173, 15921, 146137, 83108, 38804, 5081, 5080, 99389, 99187, 99186, 99185, 99193, 1486, 109492, 1477, 1418, 142123, 110234, 27261, 110231, 10591, 99379, 32928, 99381, 2176, 106965, 106966, 99391, 110242, 3167, 107560, 64062, 105546, 122142);
|
||||
UPDATE `creature_model_info` SET `BoundingRadius`=0.150000005960464477, `VerifiedBuild`=69814 WHERE `DisplayID`=106930;
|
||||
|
||||
|
||||
UPDATE `creature_template_gossip` SET `VerifiedBuild`=69814 WHERE (`CreatureID`=194675 AND `MenuID`=28992);
|
||||
|
||||
|
||||
UPDATE `npc_vendor` SET `VerifiedBuild`=69814 WHERE (`entry`=32639 AND `item`=4565 AND `ExtendedCost`=0 AND `type`=1) OR (`entry`=32639 AND `item`=64670 AND `ExtendedCost`=0 AND `type`=1) OR (`entry`=32639 AND `item`=183950 AND `ExtendedCost`=0 AND `type`=1) OR (`entry`=32639 AND `item`=180733 AND `ExtendedCost`=0 AND `type`=1) OR (`entry`=32639 AND `item`=183951 AND `ExtendedCost`=0 AND `type`=1) OR (`entry`=32639 AND `item`=183952 AND `ExtendedCost`=0 AND `type`=1) OR (`entry`=32639 AND `item`=183953 AND `ExtendedCost`=0 AND `type`=1) OR (`entry`=32639 AND `item`=183954 AND `ExtendedCost`=0 AND `type`=1) OR (`entry`=32639 AND `item`=183955 AND `ExtendedCost`=0 AND `type`=1) OR (`entry`=32639 AND `item`=6219 AND `ExtendedCost`=0 AND `type`=1) OR (`entry`=32639 AND `item`=39505 AND `ExtendedCost`=0 AND `type`=1) OR (`entry`=32639 AND `item`=20815 AND `ExtendedCost`=0 AND `type`=1) OR (`entry`=32639 AND `item`=39354 AND `ExtendedCost`=0 AND `type`=1) OR (`entry`=32639 AND `item`=6532 AND `ExtendedCost`=0 AND `type`=1) OR (`entry`=32639 AND `item`=3371 AND `ExtendedCost`=0 AND `type`=1) OR (`entry`=32639 AND `item`=38426 AND `ExtendedCost`=0 AND `type`=1) OR (`entry`=32639 AND `item`=14341 AND `ExtendedCost`=0 AND `type`=1);
|
||||
|
||||
|
||||
UPDATE `gossip_menu` SET `VerifiedBuild`=69814 WHERE (`MenuID`=28992 AND `TextID`=194675);
|
||||
|
||||
UPDATE `gossip_menu_option` SET `OptionText`='<The stench of the pot is revolting, you can hardly stand near it, much less imagine detoxifying it somehow.> \n|cFFFF0000[Requires at least 25 skill in Dragon Isles Alchemy.]|r', `VerifiedBuild`=69814 WHERE (`MenuID`=28992 AND `OptionID`=0);
|
||||
|
||||
UPDATE creature_template SET ScriptName='npc_brh_decay_speaker' WHERE entry=186191;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_fetid_rotsinger' WHERE entry=186226;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_rotbow_stalker' WHERE entry=186208;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_bonebolt_hunter' WHERE entry=185534;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_trickclaw_mystic' WHERE entry=185528;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_filth_caller' WHERE entry=185656;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_vile_rothexer' WHERE entry=187224;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_cruel_bonecrusher' WHERE entry=186206;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_infected_lasher' WHERE entry=189363;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_decayed_elder' WHERE entry=189531;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_claw_fighter' WHERE entry=185508;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_bracken_warscourge' WHERE entry=185529;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_stinkbreath' WHERE entry=187033;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_rotfang_hyena' WHERE entry=194745;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_gutchewer_bear' WHERE entry=186284;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_wither_biter' WHERE entry=187315;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_wither_biter' WHERE entry=194273;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_brackenhide_gnoll' WHERE entry=194373;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_brackenhide_slasher' WHERE entry=194467;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_fledgling_slasher' WHERE entry=194469;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_rothexer_fledgling' WHERE entry=194487;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_monstrous_decay' WHERE entry=186227;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_decaying_slime' WHERE entry=189299;
|
||||
UPDATE creature_template SET ScriptName='npc_brh_decaying_slime' WHERE entry=194330;
|
||||
|
||||
|
||||
@@ -0,0 +1,145 @@
|
||||
-- 2026_09_14_06_world.sql — restore serverside_spell with conflict-free IDs
|
||||
-- 1260001: FREE in client DB2 → OK
|
||||
-- 1260002: EXISTS in client DB2 → conflict, use 1260031 (FREE)
|
||||
-- 1260003: FREE in client DB2 → OK
|
||||
|
||||
-- Restore serverside_spell
|
||||
DELETE FROM `serverside_spell` WHERE `Id` IN (1260001, 1260002, 1260003, 1260031);
|
||||
INSERT INTO `serverside_spell` (
|
||||
`Id`, `DifficultyID`, `CategoryId`, `Dispel`, `Mechanic`,
|
||||
`Attributes`, `AttributesEx`, `AttributesEx2`, `AttributesEx3`, `AttributesEx4`,
|
||||
`AttributesEx5`, `AttributesEx6`, `AttributesEx7`, `AttributesEx8`, `AttributesEx9`, `AttributesEx10`,
|
||||
`AttributesEx11`, `AttributesEx12`, `AttributesEx13`, `AttributesEx14`, `AttributesEx15`, `AttributesEx16`,
|
||||
`Stances`, `StancesNot`, `Targets`, `TargetCreatureType`, `RequiresSpellFocus`, `FacingCasterFlags`,
|
||||
`CasterAuraState`, `TargetAuraState`, `ExcludeCasterAuraState`, `ExcludeTargetAuraState`,
|
||||
`CasterAuraSpell`, `TargetAuraSpell`, `ExcludeCasterAuraSpell`, `ExcludeTargetAuraSpell`,
|
||||
`CasterAuraType`, `TargetAuraType`, `ExcludeCasterAuraType`, `ExcludeTargetAuraType`,
|
||||
`CastingTimeIndex`, `RecoveryTime`, `CategoryRecoveryTime`, `StartRecoveryCategory`, `StartRecoveryTime`,
|
||||
`InterruptFlags`, `AuraInterruptFlags1`, `AuraInterruptFlags2`, `ChannelInterruptFlags1`, `ChannelInterruptFlags2`,
|
||||
`ProcFlags`, `ProcFlags2`, `ProcChance`, `ProcCharges`, `ProcCooldown`, `ProcBasePPM`,
|
||||
`MaxLevel`, `BaseLevel`, `SpellLevel`, `DurationIndex`, `RangeIndex`, `Speed`, `LaunchDelay`,
|
||||
`StackAmount`, `EquippedItemClass`, `EquippedItemSubClassMask`, `EquippedItemInventoryTypeMask`,
|
||||
`ContentTuningId`, `SpellName`, `ConeAngle`, `ConeWidth`, `MaxTargetLevel`, `MaxAffectedTargets`,
|
||||
`SpellFamilyName`, `SpellFamilyFlags1`, `SpellFamilyFlags2`, `SpellFamilyFlags3`, `SpellFamilyFlags4`,
|
||||
`DmgClass`, `PreventionType`, `AreaGroupId`, `SchoolMask`, `ChargeCategoryId`
|
||||
) VALUES
|
||||
-- Rupture: frontal cone, instant cast
|
||||
(1260001, 0, 0, 0, 0,
|
||||
0x00000180, 0x00000004, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
1, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0,
|
||||
0, 0, 100, 0, 0, 0,
|
||||
0, 0, 0, 0, 7, 0, 0,
|
||||
0, -1, 0, 0,
|
||||
0, 'Delve Rupture', 45, 45, 0, 0,
|
||||
0, 0, 0, 0, 0,
|
||||
1, 0, 0, 1, 0),
|
||||
|
||||
-- Burrowing Tremors: channeled, periodic self-damage + snare
|
||||
-- ID 1260002 conflicts with client DB2 → use 1260031
|
||||
(1260031, 0, 0, 0, 0,
|
||||
0x00000800, 0x00000004, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
2, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0,
|
||||
0, 0, 100, 0, 0, 0,
|
||||
0, 0, 0, 65, 12, 0, 0,
|
||||
0, -1, 0, 0,
|
||||
0, 'Delve Burrowing Tremors', 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0,
|
||||
1, 0, 0, 1, 0),
|
||||
|
||||
-- Stinging Swarm: instant AoE nature damage aura
|
||||
(1260003, 0, 0, 0, 0,
|
||||
0x00000100, 0x00000004, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
1, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0,
|
||||
0, 0, 100, 0, 0, 0,
|
||||
0, 0, 0, 0, 1, 0, 0,
|
||||
0, -1, 0, 0,
|
||||
0, 'Delve Stinging Swarm', 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0,
|
||||
1, 0, 0, 4, 0);
|
||||
|
||||
-- Restore serverside_spell_effect
|
||||
DELETE FROM `serverside_spell_effect` WHERE `SpellID` IN (1260001, 1260002, 1260003, 1260031);
|
||||
INSERT INTO `serverside_spell_effect` (
|
||||
`SpellID`, `EffectIndex`, `DifficultyID`,
|
||||
`Effect`, `EffectAura`, `EffectAmplitude`, `EffectAttributes`,
|
||||
`EffectAuraPeriod`, `EffectBonusCoefficient`, `EffectChainAmplitude`, `EffectChainTargets`,
|
||||
`EffectItemType`, `EffectMechanic`, `EffectPointsPerResource`, `EffectPosFacing`,
|
||||
`EffectRealPointsPerLevel`, `EffectTriggerSpell`, `BonusCoefficientFromAP`,
|
||||
`PvpMultiplier`, `Coefficient`, `Variance`, `ResourceCoefficient`, `GroupSizeBasePointsCoefficient`,
|
||||
`EffectBasePoints`, `EffectMiscValue1`, `EffectMiscValue2`,
|
||||
`EffectRadiusIndex1`, `EffectRadiusIndex2`,
|
||||
`EffectSpellClassMask1`, `EffectSpellClassMask2`, `EffectSpellClassMask3`, `EffectSpellClassMask4`,
|
||||
`ImplicitTarget1`, `ImplicitTarget2`
|
||||
) VALUES
|
||||
-- Rupture: effect 0 = school damage, cone in front of caster
|
||||
(1260001, 0, 0,
|
||||
3, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0,
|
||||
1, 1, 0, 0, 0,
|
||||
300, 0, 0,
|
||||
8, 19,
|
||||
0, 0, 0, 0,
|
||||
6, 0),
|
||||
|
||||
-- Burrowing Tremors: effect 0 = apply aura periodically damage self + snare
|
||||
(1260031, 0, 0,
|
||||
0, 4, 1000, 0,
|
||||
1000, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0,
|
||||
1, 1, 0, 0, 0,
|
||||
150, 0, 0,
|
||||
8, 8,
|
||||
0, 0, 0, 0,
|
||||
1, 0),
|
||||
|
||||
(1260031, 1, 0,
|
||||
0, 42, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0,
|
||||
1, 1, 0, 0, 0,
|
||||
0, 0, 0,
|
||||
0, 0,
|
||||
0, 0, 0, 0,
|
||||
1, 0),
|
||||
|
||||
-- Stinging Swarm: effect 0 = apply aura periodically damage (nature)
|
||||
(1260003, 0, 0,
|
||||
0, 4, 1000, 0,
|
||||
1000, 0, 0, 0,
|
||||
0, 0, 0, 0,
|
||||
0, 0, 0,
|
||||
1, 1, 0, 0, 0,
|
||||
200, 0, 0,
|
||||
8, 8,
|
||||
0, 0, 0, 0,
|
||||
6, 0);
|
||||
|
||||
-- Fix spell_script_names
|
||||
DELETE FROM `spell_script_names` WHERE `spell_id` = 1260001;
|
||||
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||
(1260001, 'DreadPit::spell_delve_rupture');
|
||||
@@ -16,18 +16,28 @@
|
||||
|
||||
enum decatriarchspells
|
||||
{
|
||||
SPELL_DECAYING_STRENGHT = 373960,
|
||||
SPELL_ROBUST_TOTEM = 373942,
|
||||
SPELL_COOKING_ROOTCLOUD = 376170,
|
||||
SPELL_DECAY_STRIKE = 373917,
|
||||
//Decatriarch Wratheye (sniff 12.1 Brackenhide Hollow)
|
||||
SPELL_CHOKING_ROTCLOUD = 376170, //loc target rotcloud (~45s)
|
||||
SPELL_DECAYSTRIKE = 373912, //single target strike (~20s)
|
||||
SPELL_DECAYSTRIKE_HIT = 373917, //strike impact damage
|
||||
SPELL_DECAYSTRIKE_2 = 373915, //second impact
|
||||
SPELL_ROTBURST_TOTEM = 373942, //summon Rotburst Totem (~18s)
|
||||
SPELL_ROTBURST_TOTEM_GO = 373950, //totem spell cast
|
||||
SPELL_ROTBURST_TOTEM_FX = 373944, //totem burst effect
|
||||
SPELL_DECAYING_STRENGTH = 373960, //empower cast (special)
|
||||
SPELL_DECAYING_STRENGTH_AOE = 396161, //applies to group
|
||||
SPELL_DECAYING_STRENGTH_FX = 387106, //telegraph visual
|
||||
SPELL_WITHERED_ERUPTION = 387264, //eruption damage on impaired
|
||||
SPELL_ROTTING_SICKNESS = 385361, //sickness debuff (late fight)
|
||||
};
|
||||
|
||||
enum decatriarchevents
|
||||
{
|
||||
EVENT_DECAYING_STRENGHT = 1, //40s
|
||||
EVENT_ROBUST_TOTEM, //16s
|
||||
EVENT_COOKING_ROOTCLOUD, //5s
|
||||
EVENT_DECAY_STRIKE, //11s
|
||||
EVENT_ROTBURST_TOTEM = 1,
|
||||
EVENT_DECAYSTRIKE,
|
||||
EVENT_CHOKING_ROTCLOUD,
|
||||
EVENT_DECAYING_STRENGTH,
|
||||
EVENT_ROTTING_SICKNESS,
|
||||
};
|
||||
|
||||
//186121
|
||||
@@ -39,14 +49,16 @@ struct Boss_Decatriarch_Wratheye : public BossAI
|
||||
{
|
||||
events.Reset();
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* who) override
|
||||
{
|
||||
BossAI::JustEngagedWith(who);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me, 1);
|
||||
events.ScheduleEvent(EVENT_DECAYING_STRENGHT, 40s);
|
||||
events.ScheduleEvent(EVENT_ROBUST_TOTEM, 16s);
|
||||
events.ScheduleEvent(EVENT_COOKING_ROOTCLOUD, 5s);
|
||||
events.ScheduleEvent(EVENT_DECAY_STRIKE, 11s);
|
||||
events.ScheduleEvent(EVENT_ROTBURST_TOTEM, 15s);
|
||||
events.ScheduleEvent(EVENT_DECAYSTRIKE, 11s);
|
||||
events.ScheduleEvent(EVENT_CHOKING_ROTCLOUD, 6s);
|
||||
events.ScheduleEvent(EVENT_DECAYING_STRENGTH, 41s);
|
||||
events.ScheduleEvent(EVENT_ROTTING_SICKNESS, 100s);
|
||||
}
|
||||
|
||||
void EnterEvadeMode(EvadeReason /*why*/) override
|
||||
@@ -61,8 +73,6 @@ struct Boss_Decatriarch_Wratheye : public BossAI
|
||||
{
|
||||
_JustDied();
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
|
||||
|
||||
// me->SummonGameObject(380834, -3335.98f, 3654.75f, 109.633f, 2.12159f, QuaternionData(), 0s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 const diff)
|
||||
@@ -81,38 +91,42 @@ struct Boss_Decatriarch_Wratheye : public BossAI
|
||||
{
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_DECAYING_STRENGHT:
|
||||
DoCastVictim(SPELL_DECAYING_STRENGHT);
|
||||
events.ScheduleEvent(EVENT_DECAYING_STRENGHT, 39s);
|
||||
case EVENT_ROTBURST_TOTEM:
|
||||
DoCastVictim(SPELL_ROTBURST_TOTEM);
|
||||
DoCastSelf(SPELL_ROTBURST_TOTEM_GO);
|
||||
events.ScheduleEvent(EVENT_ROTBURST_TOTEM, 18s);
|
||||
break;
|
||||
case EVENT_DECAY_STRIKE:
|
||||
case EVENT_DECAYSTRIKE:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 100.0f, true))
|
||||
{
|
||||
me->CastSpell(target, SPELL_DECAY_STRIKE);
|
||||
DoCast(target, SPELL_DECAYSTRIKE);
|
||||
DoCast(target, SPELL_DECAYSTRIKE_HIT);
|
||||
DoCast(target, SPELL_DECAYSTRIKE_2);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_DECAY_STRIKE, 12s);
|
||||
events.ScheduleEvent(EVENT_DECAYSTRIKE, 20s);
|
||||
break;
|
||||
case EVENT_ROBUST_TOTEM:
|
||||
DoCastVictim(SPELL_ROBUST_TOTEM);
|
||||
events.ScheduleEvent(EVENT_ROBUST_TOTEM, 16s);
|
||||
case EVENT_CHOKING_ROTCLOUD:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true))
|
||||
me->CastSpell(target, SPELL_CHOKING_ROTCLOUD);
|
||||
events.ScheduleEvent(EVENT_CHOKING_ROTCLOUD, 45s);
|
||||
break;
|
||||
case EVENT_COOKING_ROOTCLOUD:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::MinDistance, 0, 100.0f, true))
|
||||
{
|
||||
me->CastSpell(target, SPELL_COOKING_ROOTCLOUD);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_COOKING_ROOTCLOUD, 5s);
|
||||
case EVENT_DECAYING_STRENGTH:
|
||||
DoCastVictim(SPELL_DECAYING_STRENGTH);
|
||||
DoCastSelf(SPELL_DECAYING_STRENGTH_FX);
|
||||
DoCastAOE(SPELL_DECAYING_STRENGTH_AOE);
|
||||
DoCastAOE(SPELL_WITHERED_ERUPTION);
|
||||
events.ScheduleEvent(EVENT_DECAYING_STRENGTH, 45s);
|
||||
break;
|
||||
case EVENT_ROTTING_SICKNESS:
|
||||
DoCastAOE(SPELL_ROTTING_SICKNESS);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
void AddSC_Boss_Decatriarch_Wratheye()
|
||||
{
|
||||
RegisterBrackenhideHollowCreatureAI(Boss_Decatriarch_Wratheye);
|
||||
|
||||
@@ -20,46 +20,46 @@
|
||||
|
||||
enum GutshootSpells
|
||||
{
|
||||
SPELL_CALL_HIENAS = 394540,
|
||||
SPELL_ENSNARING_TRAP_VISUAL = 385359,
|
||||
SPELL_ENSNARING_TRAP_DAMAGE = 384148,
|
||||
SPELL_MEAT_TOSS = 384416,
|
||||
SPELL_MASTER_CALL = 384633,
|
||||
SPELL_GUT_SHOOT_TANK = 384353,
|
||||
SPELL_CRIPPLING_BITE = 384577,
|
||||
//Gutshot (sniff 12.1 Brackenhide Hollow, hunter boss)
|
||||
SPELL_GUTSHOT_SHOOT = 382620, //ranged shot, cast ~1.5s
|
||||
SPELL_ENSNARING_VISUAL = 385359, //trap telegraph
|
||||
SPELL_ENSNARING_TRAP = 385356, //trap summon (two placed)
|
||||
SPELL_ENSNARING_HOOK = 383979, //trap hook/trigger
|
||||
SPELL_ENSNARING_DAMAGE = 384148, //trap damage
|
||||
SPELL_ENSNARING_SNAP = 383986, //trap snap damage
|
||||
SPELL_ENSNARING_THORN = 383974, //trap thorns damage
|
||||
SPELL_CALL_HYENAS = 384827, //summon Rotfang Hyenas
|
||||
SPELL_MASTERS_CALL = 384633, //4s cast
|
||||
SPELL_MASTERS_CALL_HIT = 384638, //call impact
|
||||
};
|
||||
|
||||
enum GutshotEvents
|
||||
{
|
||||
EVENT_SHOOT = 1,
|
||||
EVENT_ENSNARING_TRAP,
|
||||
EVENT_GUTSHOOT_TANK,
|
||||
EVENT_MASTER_CALL,
|
||||
EVENT_MEAT_TOSS,
|
||||
EVENT_BITE,
|
||||
EVENT_CALL_HIENAS,
|
||||
EVENT_CALL_HYENAS,
|
||||
EVENT_MASTERS_CALL,
|
||||
};
|
||||
|
||||
//186116
|
||||
class Boss_Gutshoot186116 : public BossAI
|
||||
{
|
||||
public:
|
||||
Boss_Gutshoot186116(Creature* creature) : BossAI(creature, DATA_GUTSHOT)
|
||||
{
|
||||
}
|
||||
Boss_Gutshoot186116(Creature* creature) : BossAI(creature, DATA_GUTSHOT) { }
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
events.Reset();
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* who) override
|
||||
{
|
||||
BossAI::JustEngagedWith(who);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me, 1);
|
||||
events.ScheduleEvent(EVENT_ENSNARING_TRAP, 8s);
|
||||
events.ScheduleEvent(EVENT_GUTSHOOT_TANK, 12s);
|
||||
events.ScheduleEvent(EVENT_MASTER_CALL, 16s);
|
||||
events.ScheduleEvent(EVENT_MEAT_TOSS, 20s);
|
||||
events.ScheduleEvent(EVENT_BITE, 14s);
|
||||
events.ScheduleEvent(EVENT_CALL_HIENAS, 30s);
|
||||
events.ScheduleEvent(EVENT_SHOOT, 3s);
|
||||
events.ScheduleEvent(EVENT_ENSNARING_TRAP, 12s);
|
||||
events.ScheduleEvent(EVENT_CALL_HYENAS, 34s);
|
||||
events.ScheduleEvent(EVENT_MASTERS_CALL, 39s);
|
||||
}
|
||||
|
||||
void EnterEvadeMode(EvadeReason /*why*/) override
|
||||
@@ -92,43 +92,30 @@ public:
|
||||
{
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_SHOOT:
|
||||
DoCastVictim(SPELL_GUTSHOT_SHOOT);
|
||||
events.ScheduleEvent(EVENT_SHOOT, 8s);
|
||||
break;
|
||||
case EVENT_ENSNARING_TRAP:
|
||||
DoCastVictim(SPELL_ENSNARING_TRAP_VISUAL);
|
||||
DoCastVictim(SPELL_ENSNARING_TRAP_DAMAGE);
|
||||
events.ScheduleEvent(EVENT_ENSNARING_TRAP, 8s);
|
||||
DoCastVictim(SPELL_ENSNARING_VISUAL);
|
||||
DoCastVictim(SPELL_ENSNARING_TRAP);
|
||||
DoCastVictim(SPELL_ENSNARING_HOOK);
|
||||
DoCastVictim(SPELL_ENSNARING_DAMAGE);
|
||||
events.ScheduleEvent(EVENT_ENSNARING_TRAP, 20s);
|
||||
break;
|
||||
case EVENT_GUTSHOOT_TANK:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 100.0f, true))
|
||||
{
|
||||
me->CastSpell(target, SPELL_GUT_SHOOT_TANK);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_GUTSHOOT_TANK, 12s);
|
||||
case EVENT_CALL_HYENAS:
|
||||
DoCastVictim(SPELL_CALL_HYENAS);
|
||||
events.ScheduleEvent(EVENT_CALL_HYENAS, 33s);
|
||||
break;
|
||||
case EVENT_MASTER_CALL:
|
||||
DoCastVictim(SPELL_MASTER_CALL);
|
||||
events.ScheduleEvent(EVENT_MASTER_CALL, 16s);
|
||||
break;
|
||||
case EVENT_MEAT_TOSS:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::MinDistance, 0, 100.0f, true))
|
||||
{
|
||||
me->CastSpell(target, SPELL_MEAT_TOSS);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_MEAT_TOSS, 20s);
|
||||
break;
|
||||
case EVENT_BITE:
|
||||
DoCastVictim(SPELL_CRIPPLING_BITE);
|
||||
events.ScheduleEvent(EVENT_BITE, 14s);
|
||||
break;
|
||||
case EVENT_CALL_HIENAS:
|
||||
DoCastVictim(SPELL_CALL_HIENAS);
|
||||
events.ScheduleEvent(EVENT_BITE, 30s);
|
||||
case EVENT_MASTERS_CALL:
|
||||
DoCastVictim(SPELL_MASTERS_CALL);
|
||||
DoCastVictim(SPELL_MASTERS_CALL_HIT);
|
||||
events.ScheduleEvent(EVENT_MASTERS_CALL, 24s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -20,24 +20,31 @@
|
||||
|
||||
enum Spells
|
||||
{
|
||||
//Rira
|
||||
SPELL_SAVAGE_CHARGE = 381419,
|
||||
SPELL_SAVAGE_CHARGE_F = 381444, //charge in front of player then cast savage charge
|
||||
SPELL_BLADESTORM = 377827, //,381835 , 377830 damage
|
||||
SPELL_BLADESTORM_DAMAGE = 377830,
|
||||
SPELL_BLADESTORM_VISUAL = 381834, //checked visual circle
|
||||
SPELL_BLADESTORM_AURA = 377844, // fixate on player
|
||||
//Rira Hackclaw (sniff 12.1 Brackenhide Hollow)
|
||||
SPELL_BLADESTORM_VISUAL = 381834, //visual circle
|
||||
SPELL_BLADESTORM_CAST = 381835, //main bladestorm cast
|
||||
SPELL_BLADESTORM_SWEEP = 377832, //sweep while spinning
|
||||
SPELL_BLADESTORM_DAMAGE = 377830, //periodic damage tick
|
||||
SPELL_BLADESTORM_FIXATE = 377844, //fixate aura on victim
|
||||
SPELL_BLADESTORM_HIT = 381818, //extra bladestorm hit
|
||||
SPELL_BLADESTORM_KNOCK = 389853, //knockback
|
||||
SPELL_SAVAGE_CHARGE = 381419, //charge impact damage
|
||||
SPELL_SAVAGE_CHARGE_CAST = 381444, //telegraph before charging
|
||||
SPELL_SAVAGE_CHARGE_DASH = 381416, //dash movement
|
||||
SPELL_SAVAGE_CHARGE_HIT = 381461, //charge debuff/impact
|
||||
SPELL_CLEAVE = 377807,
|
||||
//Gashtooth
|
||||
SPELL_GASH_FRENZY_CAST = 378029, //only cast visual
|
||||
SPELL_GASH_FRENZY = 378020, //dmg 5s
|
||||
SPELL_GASH_FRENZY_MYTH = 378020, //dmg on mythic 5s
|
||||
SPELL_DECAYED_SENSES = 381694, // dmg 9s
|
||||
SPELL_GASH_FRENZY_VISUAL = 378029, //frenzy cast visual
|
||||
SPELL_GASH_FRENZY = 378024, //main frenzy cast
|
||||
SPELL_GASH_FRENZY_DAMAGE = 454472, //frenzy tick damage
|
||||
SPELL_GASH_FRENZY_DASH = 377996, //shadowstep/dash behind target
|
||||
SPELL_DECAYED_SENSES = 381694, //3s cast
|
||||
SPELL_DECAYED_SENSES_DAMAGE = 454471, //senses impact
|
||||
//Tricktotem
|
||||
SPELL_EARTHBOLT = 378155, //dmg 7s
|
||||
SPELL_GREATER_HEALING = 377950, //heal him 12s
|
||||
SPELL_GREATER_HEALING_2 = 377947,
|
||||
SPELL_BLOODFRENZY = 377965, //casted on self 18s
|
||||
SPELL_EARTH_BOLT = 378155,
|
||||
SPELL_GREATER_HEALING_RAPIDS = 377950, //heal (self targeted)
|
||||
SPELL_GREATER_HEALING_GO = 377947,
|
||||
SPELL_BLOODFRENZY = 377965,
|
||||
};
|
||||
|
||||
enum Says
|
||||
@@ -47,35 +54,43 @@ enum Says
|
||||
|
||||
enum Events
|
||||
{
|
||||
//RIRA
|
||||
EVENT_SAVAGE_CHARGE = 1,
|
||||
EVENT_BLADESTORM = 2,
|
||||
EVENT_CLEAVE = 3,
|
||||
//Rira
|
||||
EVENT_BLADESTORM = 1,
|
||||
EVENT_BLADESTORM_TICK,
|
||||
EVENT_SAVAGE_CHARGE,
|
||||
EVENT_CLEAVE,
|
||||
//Gashtooth
|
||||
EVENT_GASH_FRENZY,
|
||||
EVENT_GASH_FRENZY_TICK,
|
||||
EVENT_DECAYED_SENSES,
|
||||
//TrickTotem
|
||||
EVENT_EARTHBOLT,
|
||||
//Tricktotem
|
||||
EVENT_EARTH_BOLT,
|
||||
EVENT_GREATER_HEALING,
|
||||
EVENT_BLOODFRENZY,
|
||||
};
|
||||
|
||||
//186122
|
||||
//186122 Rira Hackclaw + adds Gashtooth/Tricktotem (retail 12.1 rotation)
|
||||
struct npc_rira_hackclaw : public BossAI
|
||||
{
|
||||
npc_rira_hackclaw(Creature* creature) : BossAI(creature, DATA_RIRA_HACKLAW) { }
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
events.Reset();
|
||||
_bladestormTicks = 0;
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* who) override
|
||||
{
|
||||
BossAI::JustEngagedWith(who);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me, 1);
|
||||
Talk(0);
|
||||
events.ScheduleEvent(EVENT_SAVAGE_CHARGE, 8s);
|
||||
events.ScheduleEvent(EVENT_BLADESTORM, 15s);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 18s);
|
||||
events.ScheduleEvent(EVENT_BLADESTORM, 20s);
|
||||
events.ScheduleEvent(EVENT_SAVAGE_CHARGE, 24s);
|
||||
events.ScheduleEvent(EVENT_CLEAVE, 15s);
|
||||
}
|
||||
|
||||
void EnterEvadeMode(EvadeReason /*why*/) override
|
||||
void EnterEvadeMode(EvadeReason why) override
|
||||
{
|
||||
summons.DespawnAll();
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
|
||||
@@ -92,8 +107,6 @@ struct npc_rira_hackclaw : public BossAI
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
scheduler.Update(diff);
|
||||
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
@@ -106,16 +119,26 @@ struct npc_rira_hackclaw : public BossAI
|
||||
{
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_SAVAGE_CHARGE:
|
||||
DoCastVictim(SPELL_SAVAGE_CHARGE_F);
|
||||
DoCastVictim(SPELL_SAVAGE_CHARGE);
|
||||
events.ScheduleEvent(EVENT_SAVAGE_CHARGE, 10s);
|
||||
break;
|
||||
case EVENT_BLADESTORM:
|
||||
DoCastVictim(SPELL_BLADESTORM);
|
||||
_bladestormTicks = 6;
|
||||
DoCastVictim(SPELL_BLADESTORM_VISUAL);
|
||||
DoCastVictim(SPELL_BLADESTORM_CAST);
|
||||
DoCastVictim(SPELL_BLADESTORM_SWEEP);
|
||||
DoCastVictim(SPELL_BLADESTORM_FIXATE);
|
||||
events.ScheduleEvent(EVENT_BLADESTORM, 60s);
|
||||
events.ScheduleEvent(EVENT_BLADESTORM_TICK, 1s);
|
||||
break;
|
||||
case EVENT_BLADESTORM_TICK:
|
||||
DoCastVictim(SPELL_BLADESTORM_DAMAGE);
|
||||
events.ScheduleEvent(EVENT_BLADESTORM, 8s);
|
||||
if (--_bladestormTicks > 0)
|
||||
events.ScheduleEvent(EVENT_BLADESTORM_TICK, 1s);
|
||||
break;
|
||||
case EVENT_SAVAGE_CHARGE:
|
||||
DoCastVictim(SPELL_SAVAGE_CHARGE);
|
||||
DoCastVictim(SPELL_SAVAGE_CHARGE_CAST);
|
||||
DoCastVictim(SPELL_SAVAGE_CHARGE_DASH);
|
||||
DoCastVictim(SPELL_SAVAGE_CHARGE_HIT);
|
||||
events.ScheduleEvent(EVENT_SAVAGE_CHARGE, 26s);
|
||||
break;
|
||||
case EVENT_CLEAVE:
|
||||
DoCastVictim(SPELL_CLEAVE);
|
||||
@@ -125,20 +148,28 @@ struct npc_rira_hackclaw : public BossAI
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private:
|
||||
uint8 _bladestormTicks;
|
||||
};
|
||||
|
||||
//186124 gashtooth
|
||||
//186124 Gashtooth (Rira add, hyena)
|
||||
struct npc_gasthooth_186124 : public ScriptedAI
|
||||
{
|
||||
npc_gasthooth_186124(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
_events.Reset();
|
||||
_frenzyTicks = 0;
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
Talk(2);
|
||||
_events.ScheduleEvent(EVENT_GASH_FRENZY, 5s);
|
||||
_events.ScheduleEvent(EVENT_DECAYED_SENSES, 9s);
|
||||
_events.ScheduleEvent(EVENT_GASH_FRENZY, 4s);
|
||||
_events.ScheduleEvent(EVENT_DECAYED_SENSES, 42s);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
@@ -161,41 +192,50 @@ struct npc_gasthooth_186124 : public ScriptedAI
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_GASH_FRENZY:
|
||||
DoCastVictim(SPELL_GASH_FRENZY_CAST);
|
||||
_frenzyTicks = 5;
|
||||
DoCastVictim(SPELL_GASH_FRENZY_VISUAL);
|
||||
DoCastVictim(SPELL_GASH_FRENZY);
|
||||
_events.ScheduleEvent(EVENT_GASH_FRENZY, 6s);
|
||||
_events.ScheduleEvent(EVENT_GASH_FRENZY, 38s);
|
||||
_events.ScheduleEvent(EVENT_GASH_FRENZY_TICK, 1s);
|
||||
break;
|
||||
case EVENT_GASH_FRENZY_TICK:
|
||||
DoCastVictim(SPELL_GASH_FRENZY_DAMAGE);
|
||||
DoCastVictim(SPELL_GASH_FRENZY_DASH);
|
||||
if (--_frenzyTicks > 0)
|
||||
_events.ScheduleEvent(EVENT_GASH_FRENZY_TICK, 1s);
|
||||
break;
|
||||
case EVENT_DECAYED_SENSES:
|
||||
DoCastVictim(SPELL_DECAYED_SENSES);
|
||||
_events.ScheduleEvent(EVENT_DECAYED_SENSES, 9s);
|
||||
DoCastVictim(SPELL_DECAYED_SENSES_DAMAGE);
|
||||
_events.ScheduleEvent(EVENT_DECAYED_SENSES, 42s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private:
|
||||
EventMap _events;
|
||||
uint8 _frenzyTicks;
|
||||
};
|
||||
|
||||
//186125 Tricktotem
|
||||
//186125 Tricktotem (Rira add, gnoll shaman)
|
||||
struct npc_gasTricktotem_186125 : public ScriptedAI
|
||||
{
|
||||
npc_gasTricktotem_186125(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
_events.Reset();
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
Talk(5);
|
||||
_events.ScheduleEvent(EVENT_EARTHBOLT, 7s);
|
||||
_events.ScheduleEvent(EVENT_GREATER_HEALING, 12s);
|
||||
_events.ScheduleEvent(EVENT_BLOODFRENZY, 18s);
|
||||
_events.ScheduleEvent(EVENT_EARTH_BOLT, 3s);
|
||||
_events.ScheduleEvent(EVENT_GREATER_HEALING, 10s);
|
||||
_events.ScheduleEvent(EVENT_BLOODFRENZY, 48s);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
@@ -217,25 +257,23 @@ struct npc_gasTricktotem_186125 : public ScriptedAI
|
||||
{
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_EARTHBOLT:
|
||||
DoCastVictim(SPELL_EARTHBOLT);
|
||||
_events.ScheduleEvent(EVENT_EARTHBOLT, 6s);
|
||||
case EVENT_EARTH_BOLT:
|
||||
DoCastVictim(SPELL_EARTH_BOLT);
|
||||
_events.ScheduleEvent(EVENT_EARTH_BOLT, 5s);
|
||||
break;
|
||||
case EVENT_GREATER_HEALING:
|
||||
DoCastAOE(SPELL_GREATER_HEALING);
|
||||
DoCastSelf(SPELL_GREATER_HEALING_2);
|
||||
_events.ScheduleEvent(EVENT_GREATER_HEALING, 12s);
|
||||
DoCastSelf(SPELL_GREATER_HEALING_GO);
|
||||
DoCastSelf(SPELL_GREATER_HEALING_RAPIDS);
|
||||
_events.ScheduleEvent(EVENT_GREATER_HEALING, 22s);
|
||||
break;
|
||||
case EVENT_BLOODFRENZY:
|
||||
DoCastSelf(SPELL_BLOODFRENZY);
|
||||
_events.ScheduleEvent(EVENT_BLOODFRENZY, 18s);
|
||||
_events.ScheduleEvent(EVENT_BLOODFRENZY, 60s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -20,8 +20,8 @@ enum Spells
|
||||
SPELL_VINE_WHIP = 377559,
|
||||
SPELL_GRASPING_VINES = 376934,
|
||||
SPELL_DECAY_SPRAY_SUMMON = 376797,//summon 1 slime need set to 4
|
||||
SPELL_GUSHING_OOZE = 381770,//used by npc slime
|
||||
SPELL_BURST = 378057, //used by npc slime
|
||||
SPELL_GUSHING_OOZE = 381770,//used by npc slime (sniff 12.1)
|
||||
SPELL_BURST = 375614, //used by npc slime (sniff 12.1)
|
||||
};
|
||||
|
||||
enum Events
|
||||
|
||||
@@ -0,0 +1,371 @@
|
||||
/*
|
||||
* Copyright (C) WowCommunity Project
|
||||
*
|
||||
* This SourceCode is NOT free a software. Please hold everything Private
|
||||
* and read our Terms
|
||||
*/
|
||||
|
||||
#include "Zone_BrackenhideHollow.h"
|
||||
#include "InstanceScript.h"
|
||||
#include "ScriptMgr.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "SpellScript.h"
|
||||
#include "SpellAuraEffects.h"
|
||||
#include "SpellAuras.h"
|
||||
#include "SpellHistory.h"
|
||||
#include "Spell.h"
|
||||
#include "Player.h"
|
||||
#include "MotionMaster.h"
|
||||
#include "TemporarySummon.h"
|
||||
|
||||
// Brackenhide Hollow trash (retail 12.1 sniff 69814)
|
||||
|
||||
enum TrashSpells
|
||||
{
|
||||
//Decay Speaker 186191
|
||||
SPELL_DECAY_SURGE_WITHER = 382474,
|
||||
SPELL_WITHERING_BURST = 367705,
|
||||
//Fetid Rotsinger 186226
|
||||
SPELL_SUMMON_ROT_TOTEM = 375065,
|
||||
SPELL_BURST_OF_DECAY = 374544,
|
||||
//Rotbow Stalker 186208
|
||||
SPELL_BONE_BOLT = 367521,
|
||||
SPELL_BONE_BOLT_VOLLEY = 384899,
|
||||
SPELL_ROTTEN_MEAT = 384953,
|
||||
//Bonebolt Hunter 185534
|
||||
SPELL_TARGET_PRACTICE = 376456,
|
||||
SPELL_TOXIC_TRAP = 368286,
|
||||
//Trickclaw Mystic 185528
|
||||
SPELL_FOCUS_EARTH = 376799,
|
||||
SPELL_EARTH_BOLT_MYSTIC = 382249,
|
||||
//Filth Caller 185656
|
||||
SPELL_ROTTING_SURGE = 383390,
|
||||
//Cruel Bonecrusher 186206
|
||||
SPELL_CRUSHING_SMASH = 382592,
|
||||
//Infected Lasher 189363
|
||||
SPELL_POISON_CHARGE = 372113,
|
||||
//Decayed Elder 189531
|
||||
SPELL_SUMMON_LASHERS = 383062,
|
||||
SPELL_DECAYING_ROOTS = 373897,
|
||||
//Claw Fighter 185508
|
||||
SPELL_VICIOUS_CLAWMANGLE = 367484,
|
||||
//Bracken Warscourge 185529
|
||||
SPELL_RAGESTORM = 382556,
|
||||
SPELL_HIDEOUS_CACKLE = 367500,
|
||||
//Stinkbreath 187033
|
||||
SPELL_VIOLENT_WHIRLWIND = 385805,
|
||||
SPELL_STINK_BREATH = 388060,
|
||||
//Rotfang Hyena 194745
|
||||
SPELL_BOUNDING_LEAP = 384529,
|
||||
SPELL_MASTERS_CALL_HYENA = 387802,
|
||||
//Gutchewer Bear 186284
|
||||
SPELL_MAUL = 372151,
|
||||
SPELL_SCENTED_MEAT = 384970,
|
||||
//Wither Biter 187315
|
||||
SPELL_DECAY_CLAWS = 382787,
|
||||
SPELL_BLOODY_BITE = 367481,
|
||||
//Brackenhide Gnoll 194373
|
||||
SPELL_ROTTING_CORRUPTION = 383599,
|
||||
//Brackenhide Slasher 194467
|
||||
SPELL_SLASHER_CORRUPTION = 383766,
|
||||
//Fledgling Slasher 194469
|
||||
SPELL_FLEDGLING_CORRUPTION = 383768,
|
||||
//Vile Rothexer 194487
|
||||
SPELL_ROTHEXER_CORRUPTION = 383602,
|
||||
//Monstrous Decay 186227
|
||||
SPELL_SPAWN_SLIME = 376463,
|
||||
SPELL_GUSHING_OOZE_DECAY = 373872,
|
||||
//Decaying Slime 189299 / 194330
|
||||
SPELL_SLIME_BURST = 375614,
|
||||
};
|
||||
|
||||
enum TrashEvents
|
||||
{
|
||||
EVENT_DW_A = 1,
|
||||
EVENT_DW_B,
|
||||
};
|
||||
|
||||
// ---------- generic two-spell caster trash ----------
|
||||
|
||||
template<uint32 SpellA, uint32 CooldownA, uint32 SpellB, uint32 CooldownB>
|
||||
struct npc_brh_two_caster : public ScriptedAI
|
||||
{
|
||||
npc_brh_two_caster(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_DW_A, 2s);
|
||||
_events.ScheduleEvent(EVENT_DW_B, 6s);
|
||||
}
|
||||
|
||||
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_DW_A:
|
||||
DoCastVictim(SpellA);
|
||||
_events.ScheduleEvent(EVENT_DW_A, Milliseconds(CooldownA));
|
||||
break;
|
||||
case EVENT_DW_B:
|
||||
DoCastVictim(SpellB);
|
||||
_events.ScheduleEvent(EVENT_DW_B, Milliseconds(CooldownB));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
EventMap _events;
|
||||
};
|
||||
|
||||
// ---------- generic single-spell trash ----------
|
||||
|
||||
template<uint32 SpellA, uint32 CooldownA>
|
||||
struct npc_brh_one_spell : public ScriptedAI
|
||||
{
|
||||
npc_brh_one_spell(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_DW_A, 2s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
_events.Update(diff);
|
||||
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
while (uint32 eventId = _events.ExecuteEvent())
|
||||
{
|
||||
if (eventId == EVENT_DW_A)
|
||||
{
|
||||
DoCastVictim(SpellA);
|
||||
_events.ScheduleEvent(EVENT_DW_A, Milliseconds(CooldownA));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
EventMap _events;
|
||||
};
|
||||
|
||||
// ---------- named trash AI ----------
|
||||
|
||||
//Decayed Elder 189531 - summons Infected Lashers
|
||||
struct npc_brh_decayed_elder : public ScriptedAI
|
||||
{
|
||||
npc_brh_decayed_elder(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_DW_A, 3s);
|
||||
_events.ScheduleEvent(EVENT_DW_B, 12s);
|
||||
}
|
||||
|
||||
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_DW_A:
|
||||
DoCastAOE(SPELL_SUMMON_LASHERS);
|
||||
_events.ScheduleEvent(EVENT_DW_A, 15s);
|
||||
break;
|
||||
case EVENT_DW_B:
|
||||
DoCastAOE(SPELL_DECAYING_ROOTS);
|
||||
_events.ScheduleEvent(EVENT_DW_B, 20s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
EventMap _events;
|
||||
};
|
||||
|
||||
//Rotfang Hyena 194745 - leap
|
||||
struct npc_brh_rotfang_hyena : public ScriptedAI
|
||||
{
|
||||
npc_brh_rotfang_hyena(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_DW_A, 4s);
|
||||
_events.ScheduleEvent(EVENT_DW_B, 18s);
|
||||
}
|
||||
|
||||
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_DW_A:
|
||||
DoCastVictim(SPELL_BOUNDING_LEAP);
|
||||
_events.ScheduleEvent(EVENT_DW_A, 8s);
|
||||
break;
|
||||
case EVENT_DW_B:
|
||||
DoCastVictim(SPELL_MASTERS_CALL_HYENA);
|
||||
_events.ScheduleEvent(EVENT_DW_B, 20s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
EventMap _events;
|
||||
};
|
||||
|
||||
//Monstrous Decay 186227 - spawns slimes
|
||||
struct npc_brh_monstrous_decay : public ScriptedAI
|
||||
{
|
||||
npc_brh_monstrous_decay(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_DW_A, 5s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
_events.Update(diff);
|
||||
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
while (uint32 eventId = _events.ExecuteEvent())
|
||||
{
|
||||
if (eventId == EVENT_DW_A)
|
||||
{
|
||||
DoCastAOE(SPELL_SPAWN_SLIME);
|
||||
DoCastVictim(SPELL_GUSHING_OOZE_DECAY);
|
||||
_events.ScheduleEvent(EVENT_DW_A, 8s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
EventMap _events;
|
||||
};
|
||||
|
||||
//Decaying Slime 189299/194330 - pulsing burst blob
|
||||
struct npc_brh_decaying_slime : public ScriptedAI
|
||||
{
|
||||
npc_brh_decaying_slime(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_DW_A, 1s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
_events.Update(diff);
|
||||
|
||||
while (uint32 eventId = _events.ExecuteEvent())
|
||||
{
|
||||
if (eventId == EVENT_DW_A)
|
||||
{
|
||||
DoCastSelf(SPELL_SLIME_BURST);
|
||||
_events.ScheduleEvent(EVENT_DW_A, 5s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
EventMap _events;
|
||||
};
|
||||
|
||||
// ---------- bindings (AI name = ScriptName) ----------
|
||||
|
||||
typedef npc_brh_one_spell<SPELL_CRUSHING_SMASH, 6000> npc_brh_cruel_bonecrusher;
|
||||
typedef npc_brh_one_spell<SPELL_VICIOUS_CLAWMANGLE, 7000> npc_brh_claw_fighter;
|
||||
typedef npc_brh_one_spell<SPELL_POISON_CHARGE, 8000> npc_brh_infected_lasher;
|
||||
typedef npc_brh_one_spell<SPELL_BLOODY_BITE, 5000> npc_brh_wither_biter;
|
||||
typedef npc_brh_one_spell<SPELL_ROTTING_CORRUPTION, 7000> npc_brh_brackenhide_gnoll;
|
||||
typedef npc_brh_one_spell<SPELL_SLASHER_CORRUPTION, 6000> npc_brh_brackenhide_slasher;
|
||||
typedef npc_brh_one_spell<SPELL_FLEDGLING_CORRUPTION, 6000> npc_brh_fledgling_slasher;
|
||||
|
||||
typedef npc_brh_two_caster<SPELL_DECAY_SURGE_WITHER, 6000, SPELL_WITHERING_BURST, 10000> npc_brh_decay_speaker;
|
||||
typedef npc_brh_two_caster<SPELL_SUMMON_ROT_TOTEM, 9000, SPELL_BURST_OF_DECAY, 14000> npc_brh_fetid_rotsinger;
|
||||
typedef npc_brh_two_caster<SPELL_BONE_BOLT, 4000, SPELL_BONE_BOLT_VOLLEY, 9000> npc_brh_rotbow_stalker;
|
||||
typedef npc_brh_two_caster<SPELL_BONE_BOLT, 5000, SPELL_TOXIC_TRAP, 12000> npc_brh_bonebolt_hunter;
|
||||
typedef npc_brh_two_caster<SPELL_FOCUS_EARTH, 8000, SPELL_EARTH_BOLT_MYSTIC, 6000> npc_brh_trickclaw_mystic;
|
||||
typedef npc_brh_two_caster<SPELL_ROTTING_SURGE, 4000, SPELL_DECAY_SURGE_WITHER, 10000> npc_brh_filth_caller;
|
||||
typedef npc_brh_two_caster<SPELL_WITHERING_BURST, 6000, SPELL_DECAY_SURGE_WITHER, 11000> npc_brh_vile_rothexer;
|
||||
typedef npc_brh_two_caster<SPELL_RAGESTORM, 10000, SPELL_HIDEOUS_CACKLE, 16000> npc_brh_bracken_warscourge;
|
||||
typedef npc_brh_two_caster<SPELL_VIOLENT_WHIRLWIND, 9000, SPELL_STINK_BREATH, 14000> npc_brh_stinkbreath;
|
||||
typedef npc_brh_two_caster<SPELL_MAUL, 6000, SPELL_SCENTED_MEAT, 20000> npc_brh_gutchewer_bear;
|
||||
typedef npc_brh_two_caster<SPELL_DECAY_SURGE_WITHER, 5000, SPELL_ROTHEXER_CORRUPTION, 9000> npc_brh_rothexer_fledgling;
|
||||
|
||||
void AddSC_BrackenhideHollow_trash()
|
||||
{
|
||||
RegisterCreatureAI(npc_brh_decayed_elder);
|
||||
RegisterCreatureAI(npc_brh_rotfang_hyena);
|
||||
RegisterCreatureAI(npc_brh_monstrous_decay);
|
||||
RegisterCreatureAI(npc_brh_decaying_slime);
|
||||
|
||||
RegisterCreatureAI(npc_brh_cruel_bonecrusher);
|
||||
RegisterCreatureAI(npc_brh_claw_fighter);
|
||||
RegisterCreatureAI(npc_brh_infected_lasher);
|
||||
RegisterCreatureAI(npc_brh_wither_biter);
|
||||
RegisterCreatureAI(npc_brh_brackenhide_gnoll);
|
||||
RegisterCreatureAI(npc_brh_brackenhide_slasher);
|
||||
RegisterCreatureAI(npc_brh_fledgling_slasher);
|
||||
|
||||
RegisterCreatureAI(npc_brh_decay_speaker);
|
||||
RegisterCreatureAI(npc_brh_fetid_rotsinger);
|
||||
RegisterCreatureAI(npc_brh_rotbow_stalker);
|
||||
RegisterCreatureAI(npc_brh_bonebolt_hunter);
|
||||
RegisterCreatureAI(npc_brh_trickclaw_mystic);
|
||||
RegisterCreatureAI(npc_brh_filth_caller);
|
||||
RegisterCreatureAI(npc_brh_vile_rothexer);
|
||||
RegisterCreatureAI(npc_brh_bracken_warscourge);
|
||||
RegisterCreatureAI(npc_brh_stinkbreath);
|
||||
RegisterCreatureAI(npc_brh_gutchewer_bear);
|
||||
RegisterCreatureAI(npc_brh_rothexer_fledgling);
|
||||
}
|
||||
@@ -71,6 +71,7 @@ void AddSC_Boss_Decatriarch_Wratheye();
|
||||
void AddSC_npc_rira_hackclaw();
|
||||
void AddSC_boss_treemouth();
|
||||
void AddSC_Boss_Gutshoot();
|
||||
void AddSC_BrackenhideHollow_trash();
|
||||
|
||||
//AmirdrassilTheDreamsHope
|
||||
// TODO
|
||||
@@ -180,6 +181,7 @@ void AddDragonIslesScripts()
|
||||
AddSC_npc_rira_hackclaw();
|
||||
AddSC_boss_treemouth();
|
||||
AddSC_Boss_Gutshoot();
|
||||
AddSC_BrackenhideHollow_trash();
|
||||
|
||||
//AmirdrassilTheDreamsHope
|
||||
// TODO
|
||||
|
||||
@@ -1,62 +1,66 @@
|
||||
/*
|
||||
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
* The Dread Pit - map 2684, difficulty 208, scenario 3210 (custom), LFGDungeons 2437, AreaTable 15003.
|
||||
* Final boss: Under-Lord Vik'tis (NPC 220158) - Nerubian spiderlord.
|
||||
*/
|
||||
|
||||
// Nerubian theme - The Ringing Deeps
|
||||
|
||||
#include "delves_common.h"
|
||||
#include "Creature.h"
|
||||
#include "ScriptMgr.h"
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
static char const* const ScriptName = "the_dread_pit";
|
||||
static char const* const TheDreadPitScriptName = "instance_the_dread_pit";
|
||||
|
||||
enum DataTypes
|
||||
enum TheDreadPitData
|
||||
{
|
||||
BOSS_1 = 0,
|
||||
BOSS_UNDER_LORD_VIKTIS = 0,
|
||||
|
||||
MAX_ENCOUNTER
|
||||
};
|
||||
|
||||
enum TheDreadPitIds : uint32
|
||||
{
|
||||
NPC_UNDER_LORD_VIKTIS = 220158
|
||||
};
|
||||
|
||||
class instance_the_dread_pit : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
instance_the_dread_pit() : InstanceMapScript(ScriptName, 2684) { }
|
||||
instance_the_dread_pit() : InstanceMapScript(TheDreadPitScriptName, 2684) { }
|
||||
|
||||
struct instance_the_dread_pit_InstanceScript : public Delves::DelveInstanceScript
|
||||
{
|
||||
instance_the_dread_pit_InstanceScript(InstanceMap* map)
|
||||
: DelveInstanceScript(map, 1)
|
||||
: DelveInstanceScript(map, 1 /* tier resolved at OnPlayerEnter from m_delveSelectedTier */)
|
||||
{
|
||||
SetBossNumber(MAX_ENCOUNTER);
|
||||
}
|
||||
|
||||
void OnDelveStart() override { }
|
||||
void OnDelveComplete() override { }
|
||||
void OnDelveFailed() override { }
|
||||
|
||||
void OnCreatureCreate(Creature* creature) override
|
||||
{
|
||||
Delves::DelveInstanceScript::OnCreatureCreate(creature);
|
||||
switch (creature->GetEntry())
|
||||
{
|
||||
case NPC_UNDER_LORD_VIKTIS:
|
||||
_viktisGuid = creature->GetGUID();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void OnUnitDeath(Unit* unit) override
|
||||
{
|
||||
if (Creature const* creature = unit ? unit->ToCreature() : nullptr)
|
||||
if (creature->GetEntry() == NPC_UNDER_LORD_VIKTIS && GetBossState(BOSS_UNDER_LORD_VIKTIS) != DONE)
|
||||
SetBossState(BOSS_UNDER_LORD_VIKTIS, DONE);
|
||||
|
||||
Delves::DelveInstanceScript::OnUnitDeath(unit);
|
||||
}
|
||||
|
||||
private:
|
||||
ObjectGuid _viktisGuid;
|
||||
};
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const override
|
||||
@@ -65,7 +69,7 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
} // anonymous namespace
|
||||
} // namespace
|
||||
|
||||
void AddSC_instance_the_dread_pit()
|
||||
{
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
* Boss script for Under-Lord Vik'tis (NPC 220158) - The Dread Pit delve.
|
||||
*
|
||||
* Abilities:
|
||||
* - Rupture (1260001): frontal cone physical damage + knockback.
|
||||
* - Burrowing Tremors (1260002): channeled AoE around caster + snare.
|
||||
* - Stinging Swarm (1260003): periodic nature damage to all players.
|
||||
*
|
||||
* Spell IDs are loaded from serverside_spell DB tables.
|
||||
*/
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "Creature.h"
|
||||
#include "CreatureAI.h"
|
||||
#include "SpellScript.h"
|
||||
#include "SpellAuras.h"
|
||||
#include "Player.h"
|
||||
#include "InstanceScript.h"
|
||||
#include "delves_common.h"
|
||||
|
||||
enum UnderLordViktisSpells
|
||||
{
|
||||
SPELL_RUPTURE = 1260001,
|
||||
SPELL_BURROWING_TREMORS = 1260031,
|
||||
SPELL_STINGING_SWARM = 1260003
|
||||
};
|
||||
|
||||
enum UnderLordViktisEvents
|
||||
{
|
||||
EVENT_RUPTURE = 1,
|
||||
EVENT_BURROWING_TREMORS,
|
||||
EVENT_STINGING_SWARM,
|
||||
EVENT_BURROWING_END
|
||||
};
|
||||
|
||||
enum UnderLordViktisPhases
|
||||
{
|
||||
PHASE_NORMAL = 1,
|
||||
PHASE_BURROWING
|
||||
};
|
||||
|
||||
struct npc_under_lord_viktis : public ScriptedAI
|
||||
{
|
||||
npc_under_lord_viktis(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
_instance = creature->GetInstanceScript();
|
||||
}
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
_events.Reset();
|
||||
_phase = PHASE_NORMAL;
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_RUPTURE, 8s);
|
||||
_events.ScheduleEvent(EVENT_BURROWING_TREMORS, 20s);
|
||||
_events.ScheduleEvent(EVENT_STINGING_SWARM, 15s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
_events.Update(diff);
|
||||
|
||||
while (uint32 eventId = _events.ExecuteEvent())
|
||||
{
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_RUPTURE:
|
||||
if (_phase == PHASE_NORMAL)
|
||||
{
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
|
||||
{
|
||||
// Face target and cast frontal cone
|
||||
me->SetFacingToObject(target);
|
||||
DoCast(target, SPELL_RUPTURE);
|
||||
}
|
||||
}
|
||||
_events.Repeat(8s, 12s);
|
||||
break;
|
||||
|
||||
case EVENT_BURROWING_TREMORS:
|
||||
if (_phase == PHASE_NORMAL)
|
||||
{
|
||||
_phase = PHASE_BURROWING;
|
||||
DoCastSelf(SPELL_BURROWING_TREMORS);
|
||||
// End burrowing after 6 seconds
|
||||
_events.ScheduleEvent(EVENT_BURROWING_END, 6s);
|
||||
}
|
||||
_events.Repeat(25s);
|
||||
break;
|
||||
|
||||
case EVENT_BURROWING_END:
|
||||
_phase = PHASE_NORMAL;
|
||||
me->RemoveAurasDueToSpell(SPELL_BURROWING_TREMORS);
|
||||
break;
|
||||
|
||||
case EVENT_STINGING_SWARM:
|
||||
if (_phase == PHASE_NORMAL)
|
||||
{
|
||||
DoCastSelf(SPELL_STINGING_SWARM);
|
||||
}
|
||||
_events.Repeat(20s, 25s);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
me->DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
InstanceScript* _instance;
|
||||
EventMap _events;
|
||||
UnderLordViktisPhases _phase;
|
||||
};
|
||||
|
||||
void AddSC_npc_under_lord_viktis()
|
||||
{
|
||||
RegisterCreatureAI(npc_under_lord_viktis);
|
||||
}
|
||||
@@ -71,6 +71,7 @@ void AddSC_gulf_of_memory_encounters();
|
||||
void AddSC_instance_the_darkway_delve();
|
||||
void AddSC_npc_delve_companion();
|
||||
void AddSC_delve_objects();
|
||||
void AddSC_npc_under_lord_viktis();
|
||||
|
||||
// The name of this function should match:
|
||||
// void Add${NameOfDirectory}Scripts()
|
||||
@@ -131,4 +132,5 @@ void AddKhazAlgarScripts()
|
||||
AddSC_instance_the_darkway_delve();
|
||||
AddSC_npc_delve_companion();
|
||||
AddSC_delve_objects();
|
||||
AddSC_npc_under_lord_viktis();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Spell scripts for The Dread Pit delve boss (Under-Lord Vik'tis, NPC 220158).
|
||||
*
|
||||
* Rupture (1260001): frontal cone physical damage + knockback.
|
||||
* Burrowing Tremors (1260002): periodic physical damage around caster.
|
||||
* Stinging Swarm (1260003): periodic nature damage to all players in instance.
|
||||
*/
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "SpellScript.h"
|
||||
#include "Creature.h"
|
||||
|
||||
namespace DreadPit
|
||||
{
|
||||
// 1260001 - Rupture: knockback on hit
|
||||
class spell_delve_rupture : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_delve_rupture);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
void HandleHit()
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
Unit* target = GetHitUnit();
|
||||
if (!caster || !target)
|
||||
return;
|
||||
|
||||
// Push target away from caster
|
||||
target->KnockbackFrom(caster->GetPosition(), 15.0f, 4.0f);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnHit += SpellHitFn(spell_delve_rupture::HandleHit);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
void AddSC_spell_delve_dread_pit()
|
||||
{
|
||||
RegisterSpellScript(DreadPit::spell_delve_rupture);
|
||||
}
|
||||
@@ -35,6 +35,7 @@ void AddSC_item_spell_scripts();
|
||||
void AddSC_azerite_item_spell_scripts();
|
||||
void AddSC_housing_spell_scripts();
|
||||
void AddSC_dragonriding_spell_scripts();
|
||||
void AddSC_spell_delve_dread_pit();
|
||||
|
||||
// The name of this function should match:
|
||||
// void Add${NameOfDirectory}Scripts()
|
||||
@@ -59,4 +60,5 @@ void AddSpellsScripts()
|
||||
AddSC_azerite_item_spell_scripts();
|
||||
AddSC_housing_spell_scripts();
|
||||
AddSC_dragonriding_spell_scripts();
|
||||
AddSC_spell_delve_dread_pit();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user