diff options
8 files changed, 808 insertions, 83 deletions
diff --git a/sql/updates/world/2013_01_17_01_world_creature.sql b/sql/updates/world/2013_01_17_01_world_creature.sql new file mode 100644 index 00000000000..84ded6edcb2 --- /dev/null +++ b/sql/updates/world/2013_01_17_01_world_creature.sql @@ -0,0 +1,8 @@ +-- Spawn 4 missing Zul'Gurub Panther Triggers +SET @GUID := 48311; +DELETE FROM `creature` WHERE `guid` IN (@GUID,@GUID+1,@GUID+2,@GUID+3); +INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`, `position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`) VALUES +(@GUID,15091,309,1,1,0,0,-11518.29,-1649.965,41.38264,5.131268,7200,0,0,1,0,0,0,0,0), +(@GUID+1,15091,309,1,1,0,0,-11518.51,-1649.303,41.38264,5.864306,7200,0,0,1,0,0,0,0,0), +(@GUID+2,15091,309,1,1,0,0,-11518.46,-1651.542,41.38264,0.2617994,7200,0,0,1,0,0,0,0,0), +(@GUID+3,15091,309,1,1,0,0,-11516.86,-1604.25,41.38264,5.288348,7200,0,0,1,0,0,0,0,0); diff --git a/sql/updates/world/2013_01_18_00_world_misc.sql b/sql/updates/world/2013_01_18_00_world_misc.sql new file mode 100644 index 00000000000..e15a13f51a5 --- /dev/null +++ b/sql/updates/world/2013_01_18_00_world_misc.sql @@ -0,0 +1,72 @@ +SET @BRANN := 29579; +SET @SNOW_TARGET := 29599; +SET @QUEST := 12920; +SET @GOSSIP := 9853; + +UPDATE `creature_template` SET `gossip_menu_id`=@GOSSIP, `minlevel`=80,`maxlevel`=80,`npcflag`=`npcflag`|1,`unit_flags`=`unit_flags`|32776, `AIName` = 'SmartAI', `equipment_id`=2485 WHERE `entry`=@BRANN; +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry`=@SNOW_TARGET; +UPDATE `creature_model_info` SET `bounding_radius`=0.347,`combat_reach`=1.5,`gender`=0 WHERE `modelid`=26356; +DELETE FROM `creature_template_addon` WHERE `entry` IN (@BRANN,@SNOW_TARGET); +INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES +(@BRANN,0,0,2,0, ''), +(@SNOW_TARGET,0,0,1,0, '54717'); +DELETE FROM `creature_equip_template` WHERE `entry`=2485; +INSERT INTO `creature_equip_template` (`entry`,`itemEntry1`,`itemEntry2`,`itemEntry3`) VALUES +(2485,0,0,25972); + +DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=@BRANN; +INSERT INTO `npc_spellclick_spells` (`npc_entry`,`spell_id`,`cast_flags`,`user_type`) VALUES +(@BRANN,46598,1,1); +DELETE FROM `vehicle_template_accessory` WHERE `entry`=@BRANN; +INSERT INTO `vehicle_template_accessory` (`entry`,`accessory_entry`,`seat_id`,`minion`,`description`,`summontype`,`summontimer`) VALUES +(@BRANN,@SNOW_TARGET,0,1,'Brann Snow Target',7,0); + +DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP AND `text_id`=13641; +DELETE FROM `gossip_menu` WHERE `entry`=10145 AND `text_id`=14089; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES +(@GOSSIP,13641),(10145,14089); +DELETE FROM `gossip_menu_option` WHERE `menu_id`=@GOSSIP AND `id` IN (0,1); +INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES +(@GOSSIP,0,0,'Do you understand me? We should be able to understand each other now.',1,1,0,0,0,0,''), +(@GOSSIP,1,0,'What kind of help do you require?',1,1,10145,0,0,0,''); + +DELETE FROM `creature_text` WHERE `entry`=@BRANN; +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`) VALUES +(@BRANN,0,0,"I... I can understand you now! Well, now that we can talk to each other, you have some explaining to do!",12,0,100,5,0,0,'Brann Bronzebeard text0'), +(@BRANN,1,0,"How did you get my communicator from the Explorers League?",12,0,100,5,0,0,'Brann Bronzebeard text1'), +(@BRANN,2,0,"If the Explorers League sent men, I didn't see any trace of them. I found your note buried in a camp overrun by iron dwarves.",12,0,100,0,0,0,'Player text2'), +(@BRANN,3,0,"You have my thanks for dispatching the iron dwarves. But why would the Horde have an interest in me?",12,0,100,6,0,0,'Brann Bronzebeard text3'), +(@BRANN,4,0,"A scout found the remains of your journal in Thor Modan. We've been looking for you ever since.",12,0,100,0,0,0,'Player text4'), +(@BRANN,5,0,"That wouldn't be Scout Vor'takh, would it? Even I know of his reputation for ruthlessness. He means to abduct me, then?",12,0,100,5,0,0,'Brann Bronzebeard text5'), +(@BRANN,6,0,"If you've seen the journal, then you know what I've been discovering. The titans' own creations are at war with each other!",12,0,100,5,0,0,'Brann Bronzebeard text6'), +(@BRANN,7,0,"Loken and his iron dwarf minions have ousted the Earthen from Ulduar and taken over the city.",12,0,100,5,0,0,'Brann Bronzebeard text7'), +(@BRANN,8,0,"If we spend our time and strength fighting with each other, Loken will use Ulduar's resources to destroy both Horde and Alliance.",12,0,100,6,0,0,'Brann Bronzebeard text8'), +(@BRANN,9,0,"Speak to the commander at your post, lad, and persuade him to abandon Vor'takh's foolish plan.",12,0,100,6,0,0,'Brann Bronzebeard Text10'); + +DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid` IN (@BRANN,@SNOW_TARGET); +DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid`=@BRANN*100; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(@BRANN,0,0,1,62,0,100,0,@GOSSIP,0,0,0,11,55579,2,0,0,0,0,7,0,0,0,0,0,0,0,'Brann Bronzebeard - On gossip select - Spellcast Trigger Brann Signal'), +(@BRANN,0,1,0,61,0,100,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Brann Bronzebeard - On gossip select - Close gossip'), +(@BRANN,0,2,0,8,0,100,0,55578,0,0,0,80,@BRANN*100,0,0,0,0,0,1,0,0,0,0,0,0,0,'Brann Bronzebeard - On spellhit Brann Signal to Self - Start script'), +(@SNOW_TARGET,0,0,0,11,0,100,0,0,0,0,0,3,0,26241,0,0,0,0,1,0,0,0,0,0,0,0,'Brann Snow Target - On spawn - Morph to model'), +(@BRANN*100,9,0,0,0,0,100,0,0,0,0,0,66,0,0,0,0,0,0,23,0,0,0,0,0,0,0,'Brann Bronzebeard script - Say text0'), +(@BRANN*100,9,1,0,0,0,100,0,2000,2000,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,'Brann Bronzebeard script - Say text0'), +(@BRANN*100,9,2,0,0,0,100,0,3100,3100,0,0,5,25,0,0,0,0,0,1,0,0,0,0,0,0,0,'Brann Bronzebeard script - Play emote point'), +(@BRANN*100,9,3,0,0,0,100,0,3200,3200,0,0,1,1,0,0,0,0,0,7,0,0,0,0,0,0,0,'Brann Bronzebeard script - Say text1'), +(@BRANN*100,9,4,0,0,0,100,0,5600,5600,0,0,84,2,0,0,0,0,0,7,0,0,0,0,0,0,0,'Brann Bronzebeard script - Player say text2'), +(@BRANN*100,9,5,0,0,0,100,0,6300,6300,0,0,1,3,0,0,0,0,0,7,0,0,0,0,0,0,0,'Brann Bronzebeard script - Say text3'), +(@BRANN*100,9,6,0,0,0,100,0,7200,7200,0,0,84,4,0,0,0,0,0,7,0,0,0,0,0,0,0,'Brann Bronzebeard script - Player say text4'), +(@BRANN*100,9,7,0,0,0,100,0,6400,6400,0,0,1,5,0,0,0,0,0,7,0,0,0,0,0,0,0,'Brann Bronzebeard script - Say text5'), +(@BRANN*100,9,8,0,0,0,100,0,7200,7200,0,0,1,6,0,0,0,0,0,7,0,0,0,0,0,0,0,'Brann Bronzebeard script - Say text6'), +(@BRANN*100,9,9,0,0,0,100,0,7200,7200,0,0,1,7,0,0,0,0,0,7,0,0,0,0,0,0,0,'Brann Bronzebeard script - Say text7'), +(@BRANN*100,9,10,0,0,0,100,0,7200,7200,0,0,1,8,0,0,0,0,0,7,0,0,0,0,0,0,0,'Brann Bronzebeard script - Say text8'), +(@BRANN*100,9,11,0,0,0,100,0,7100,7100,0,0,1,9,0,0,0,0,0,7,0,0,0,0,0,0,0,'Brann Bronzebeard script - Say text9'), +(@BRANN*100,9,12,0,0,0,100,0,3000,3000,0,0,33,@BRANN,0,0,0,0,0,7,0,0,0,0,0,0,0,'Brann Bronzebeard script - Quest credit'); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=55578; +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=@GOSSIP; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(13,1,55578,0,31,3,@BRANN,0,0,'', 'Spell Brann Signal to Self targets Brann'), +(15,@GOSSIP,0,0,9,@QUEST,0,0,0,'', 'Show gossip menu option if player has quest 12920'), +(15,@GOSSIP,1,0,9,12926,0,0,0,'', 'Show gossip menu option if player has quest 12926'); diff --git a/sql/updates/world/2013_01_18_01_world_creature_template_addon.sql b/sql/updates/world/2013_01_18_01_world_creature_template_addon.sql new file mode 100644 index 00000000000..e3d6feaeecd --- /dev/null +++ b/sql/updates/world/2013_01_18_01_world_creature_template_addon.sql @@ -0,0 +1,22 @@ +-- remove auras that are already applied in SAI +UPDATE `creature_template_addon` SET `auras`='' WHERE `entry` IN ( +215, -- Defias Night Runner +579, -- Shadowhide Assassin +938, -- Kurzen Commando +1040, -- Fen Creeper +8550, -- Shadowmage +9299, -- Gaeriyan +10414, -- Patchwork Horror +10426, -- Crimson Inquisitor +10471, -- Scholomance Acolyte +11885, -- Blighthound +16017, -- Patchwork Golem +16375, -- Sewage Slime +21080, -- Dormant Infernal +22853, -- Illidari Defiler +24818, -- Anvilrage Taskmaster +25596, -- Infected Kodo Beast +25781, -- Oil Pool +26624, -- Wretched Belcher +26782, -- Crystalline Keeper +28161); -- Chicken Escapee diff --git a/sql/updates/world/2013_01_18_02_world_creature_template_addon.sql b/sql/updates/world/2013_01_18_02_world_creature_template_addon.sql new file mode 100644 index 00000000000..716d59d8724 --- /dev/null +++ b/sql/updates/world/2013_01_18_02_world_creature_template_addon.sql @@ -0,0 +1,634 @@ +-- delete 632 creature_template_addon data that contain no information (bytes2=1 is the default) +DELETE FROM `creature_template_addon` WHERE `entry` IN ( +890, -- Fawn +6827, -- Crab +8996, -- Voidwalker Minion +9396, -- Ground Pounder +10928, -- Succubus Minion +15475, -- Beetle +15547, -- Spectral Charger +15548, -- Spectral Stallion +15974, -- Dread Creeper +15975, -- Carrion Spinner +15979, -- Tomb Horror +16017, -- Patchwork Golem +16020, -- Mad Scientist +16021, -- Living Monstrosity +16022, -- Surgical Assistant +16025, -- Stitched Giant +16030, -- Maggot +16036, -- Frenzied Bat +16037, -- Plagued Bat +16056, -- Diseased Maggot +16057, -- Rotting Maggot +16067, -- Deathcharger Steed +16068, -- Larva +16137, -- Naxxramas Military Sub-Boss Trigger +16145, -- Death Knight Captain +16154, -- Risen Squire +16156, -- Dark Touched Warrior +16165, -- Necro Knight +16171, -- Coldmist Widow +16173, -- Shadowbat +16174, -- Greater Shadowbat +16175, -- Vampiric Shadowbat +16176, -- Shadowbeast +16177, -- Dreadbeast +16178, -- Phase Hound +16194, -- Unholy Axe +16211, -- Naxxramas Combat Dummy +16215, -- Unholy Staff +16216, -- Unholy Swords +16244, -- Infectious Ghoul +16297, -- Mutated Grub +16375, -- Sewage Slime +16412, -- Ghostly Baker +16459, -- Wanton Hostess +16460, -- Night Mistress +16481, -- Ghastly Haunt +16482, -- Trapped Soul +16485, -- Arcane Watchman +16488, -- Arcane Anomaly +16489, -- Chaotic Sentience +16491, -- Mana Feeder +16492, -- Syphoner +16506, -- Naxxramas Worshipper +16525, -- Spell Shade +16529, -- Magical Horror +16530, -- Mana Warp +16539, -- Homunculus +16545, -- Ethereal Spellfilcher +16595, -- Fleshbeast +17260, -- Nightbane Helper Target +17316, -- Chess Square, OUTSIDE BLACK (DND) +17467, -- Skunk +17644, -- Infernal Target +17645, -- Infernal Relay +17660, -- Skeletal Gryphon +18955, -- Camera Shaker - 30-90 seconds +20061, -- Frostbite Invisible Stalker +21080, -- Dormant Infernal +21728, -- Skettis Surger +21804, -- Skettis Kaliri +21921, -- Chess - Sound Bunny +22519, -- Chess Piece: Karazhan Invisible Stalker +22520, -- Chess Piece: Status Bar +22523, -- Karazhan - Chess, Victory Dummy Tool +22986, -- Skettis - Invis Raven Stone +22991, -- Monstrous Kaliri Egg Trigger +23225, -- Netherwing Drake Escape Point +23638, -- Longtusk Fisherman +23643, -- Unstable Mur'ghoul +23644, -- Mur'ghoul Flesheater +23645, -- Mur'ghoul Corrupter +23667, -- Winterskorn Rune-Seer +23668, -- Winterskorn Rune-Caster +23669, -- Winterskorn Oracle +23670, -- Winterskorn Elder +23674, -- Iron Rune Sage +23677, -- Frost Nymph +23678, -- Chill Nymph +23755, -- Blockade Pirate +23771, -- Blockade Cannon +23809, -- Vengeance Landing Cannoneer +23810, -- Blockade Explosion Bunny +23821, -- Valgarde Harpoon Target +23867, -- Vengeance Landing Combatant Trigger +23870, -- Ember Clutch Ancient +23874, -- Thornvine Creeper +23876, -- Spore +23884, -- Vengeance Landing Crossbow Trigger +23885, -- Lyana Trigger +23886, -- Bull Lion Seal +23887, -- Lion Seal +23915, -- Westguard Cannon Trigger +23916, -- Westguard Cannon Trigger (Water) +23917, -- Cannon Source Trigger +23919, -- Ice Elemental +23929, -- Giant Tidecrawler +23930, -- Trained Plaguehound +23934, -- North Fleet Salvager +24076, -- Winterskorn Worg +24082, -- Proto-Drake Handler +24084, -- Tunneling Ghoul +24104, -- New Agamand Deathguard +24110, -- ELM General Purpose Bunny Large +24174, -- Fjord Rat +24177, -- Decomposing Ghoul +24182, -- Winterskorn Dwelling Credit +24184, -- Winterskorn Barracks Credit +24340, -- Rampaging Earth Elemental +24439, -- Sack of Relics +24440, -- Gjalerbron Gargoyle +24469, -- Magnataur Huntress +24562, -- Nerub'ar Invader +24567, -- Den Vermin +24613, -- Mammoth Calf +24614, -- Wooly Mammoth +24633, -- Rabid Brown Bear +24635, -- Dragonflayer Harpooner +24637, -- Great Reef Shark +24642, -- Drunken Northsea Pirate +24653, -- Flying Machine +24673, -- Frostwing Chimaera +24676, -- Crazed Northsea Slaver +24677, -- Spearfang Worg +24681, -- Island Shoveltusk +24694, -- Vrykul Harpoon Gun (Wyrmskull) +24846, -- Iron Dwarf +24862, -- Mage Hunter Target +24863, -- Frosthorn Kid +24871, -- Risen Vrykul Ancestor +24872, -- Blood Shade +24883, -- Rodin Lightning Enabler +24901, -- Maddened Frosthorn +25198, -- Winterfin Gatherer +25201, -- Winterfin Tadpole +25204, -- Glimmer Bay Orca +25215, -- Winterfin Shorestriker +25216, -- Winterfin Oracle +25217, -- Winterfin Warrior +25225, -- Practice Dummy +25350, -- Risen Longrunner +25351, -- Ghostly Sage +25355, -- Beryl Hound +25362, -- Warsong Swine +25377, -- Brittle Skeleton +25378, -- En'kilah Necromancer +25383, -- En'kilah Abomination +25390, -- En'kilah Hatchling +25391, -- En'kilah Focus Crystal +25393, -- En'kilah Ghoul +25396, -- Naxxanar Skeletal Mage +25415, -- Enraged Tempest +25417, -- Raging Boiler +25419, -- Boiling Spirit +25422, -- Mystical Webbing +25428, -- Magmoth Shaman +25429, -- Magmoth Forager +25431, -- Kaskala Ancestor +25432, -- Mate of Magmothregar +25433, -- Offspring of Magmothregar +25452, -- Scourged Mammoth +25454, -- Tundra Crawler +25464, -- Bloodspore Moth +25468, -- Bloodspore Roaster +25501, -- Gammoth Tender +25534, -- En'kilah Blood Globe +25600, -- Unliving Swine +25610, -- Scourge Prisoner +25615, -- Plagued Magnataur +25623, -- Harvest Collector +25651, -- Cultist Necrolyte +25660, -- Festering Ghoul +25668, -- Vengeful Taunka Spirit +25670, -- ELM General Purpose Bunny (scale x3) +25675, -- Tundra Wolf +25677, -- Borean Frog +25684, -- Talramas Abomination +25685, -- Gorloc Waddler +25686, -- Gorloc Gibberer +25687, -- Gorloc Steam Belcher +25699, -- Gorloc Mud Splasher +25700, -- Gorloc Hunter +25701, -- Gorloc Dredger +25707, -- Magic-bound Ancient +25709, -- Glacial Ancient +25713, -- Blue Drakonid Supplicant +25715, -- Frozen Elemental +25717, -- Coldarra Scalesworn +25718, -- Coldarra Mage Slayer +25719, -- Coldarra Spellbinder +25721, -- Arcane Serpent +25722, -- Coldarra Spellweaver +25724, -- Ascended Mage Hunter +25728, -- Coldarra Wyrmkin +25781, -- Oil Pool +25829, -- Marsh Fawn +25843, -- Northsea Thug +25880, -- Minion of Kaw +25981, -- Scourged Footman +26047, -- Warsong Worg +26126, -- Bone Warrior +26161, -- Farshire Grain Credit +26175, -- Coldarra - Drake Hunt Invisman +26189, -- Fleeing Cultist +26199, -- Snowfall Glade Den Mother +26200, -- Snowfall Glade Pup +26201, -- Snowfall Glade Shaman +26202, -- Ziggurat Defender +26402, -- Anub'ar Ambusher +26411, -- Deranged Indu'le Villager +26413, -- Anub'ar Dreadweaver +26418, -- Longhoof Grazer +26435, -- Taunka Move Trigger +26446, -- Ice Serpent +26455, -- Moonrest Highborne +26458, -- Drakkari Plaguebringer +26461, -- Scourge Corpserender +26472, -- Highland Mustang +26480, -- Magnataur Youngling +26481, -- Magnataur Alpha +26482, -- Arctic Grizzly +26488, -- Taunka Pack Kodo +26492, -- Wastes Digger +26525, -- Cockroach +26555, -- Scourge Hulk +26606, -- Anub'ar Slayer +26624, -- Wretched Belcher +26625, -- Darkweb Recluse +26628, -- Drakkari Scytheclaw +26636, -- Risen Drakkari Soulmage +26644, -- Ursus Mauler +26646, -- Saronite Horror +26658, -- Reckless Scavenger +26662, -- Azjol-anak Battleguard +26669, -- Ymirjar Savage +26670, -- Ymirjar Flesh Hunter +26675, -- Spider Summon Target +26705, -- Snowplain Disciple +26706, -- Infected Grizzly Bear +26711, -- Injured Mammoth +26712, -- Crystal Channel Target +26728, -- Mage Hunter Initiate +26729, -- Steward +26782, -- Crystalline Keeper +26792, -- Crystalline Protector +26793, -- Crystalline Frayer +26889, -- The End of the Line Area Trigger Kill Credit Bunny +26891, -- Undead Miner +26937, -- Gong Bunny +26948, -- Hulking Atrocity +27165, -- Drained Moonrest Highborne +27230, -- Silvercoat Stag +27247, -- Devout Bodyguard +27254, -- Emerald Lasher +27283, -- Risen Wintergarde Mage +27286, -- Dreadbone Invader +27290, -- Hungering Dead +27358, -- Burning Depths Necromancer +27363, -- Smoldering Geist +27375, -- Risen Gryphon Rider Target +27402, -- Bone Target Bunny +27403, -- Strange Ore Target +27408, -- Duskhowl Prowler +27418, -- Rothin's Spell Bunny +27421, -- Fern Feeder Moth +27438, -- Rainbow Trout +27449, -- Neltharion's Flame Fire Bunny +27452, -- Invisible Stalker Grizzly Hills +27460, -- Mother of Bambina +27496, -- Refurbished Shredder +27513, -- Covetous Geist +27551, -- Enraged Apparition +27552, -- Reanimated Noble +27607, -- Plague Wagon +27633, -- Azure Inquisitor +27635, -- Azure Spellbinder +27636, -- Azure Ley-Whelp +27639, -- Ring-Lord Sorceress +27640, -- Ring-Lord Conjurer +27641, -- Centrifuge Construct +27685, -- Frigid Ghoul Attacker +27686, -- Frigid Geist Attacker +27688, -- Alliance Lumberboat +27689, -- Alliance Lumberboat Explosions +27702, -- Horde Lumberboat +27725, -- Ruby Guardian +27737, -- Risen Zombie +27745, -- Lordaeron Footman +27746, -- Lordaeron Knight +27747, -- High Elf Mage-Priest +27752, -- High Elf Sorceress +27823, -- Naxxramas Dreadguard +27824, -- Naxxramas Shade +27827, -- Grain Crate Helper +27836, -- Wailing Soul +27852, -- Wintergrasp Control Arms +27869, -- Wintergrasp Detection Unit +27909, -- Darkweb Victim +27927, -- Dragonflayer Guardian +27965, -- Dark Rune Shaper +27970, -- Raging Construct +27971, -- Unrelenting Construct +28001, -- Dreadsaber +28002, -- Mangal Crocolisk +28003, -- Bittertide Hydra +28005, -- Wastes Scavenger +28008, -- Galakrond Spell Dummy +28010, -- Stranded Thresher +28011, -- Emperor Cobra +28016, -- Drakuru +28024, -- Rainspeaker Warrior +28025, -- Rainspeaker Oracle +28130, -- Invis Lightning Stalker +28161, -- Chicken Escapee +28169, -- Stratholme Resident +28170, -- Frosthowl Screecher +28202, -- Zul'Drak Rat +28217, -- Injured Rainspeaker Oracle +28218, -- Snowblind Ghoul +28220, -- Frostbitten Corpse +28221, -- Trapdoor Crawler +28231, -- Crystalline Tender +28233, -- Zul'Drak Bat +28234, -- Tribunal of the Ages +28242, -- Risen Reaver +28246, -- Sky Terror +28254, -- Mistwhisper Lightning Target +28268, -- Scourged Argent Footman +28274, -- Plague Sprayer +28277, -- Harry's Bomber +28351, -- Flame Breath Trigger (Skadi) +28367, -- Acherus Dummy +28407, -- Fjord Penguin +28417, -- Priest of Rhunok +28419, -- Frenzied Geist +28440, -- Tundra Penguin +28452, -- Elemental Rift +28466, -- Fruit Tosser +28492, -- Drak'Tharon - Drakuru Event Invisman 00 +28498, -- The Lich King +28504, -- Jin'Alai Medicine Man +28519, -- Withered Troll +28523, -- Nass Target KC Bunny +28559, -- Citizen of New Avalon +28560, -- Citizen of New Avalon +28584, -- Unbound Firestorm +28585, -- Slag +28605, -- Havenshire Stallion +28627, -- Wood Pile Dummy +28643, -- Rain of Darkness Dummy +28655, -- Sky Darkener Target +28660, -- Citizen of Havenshire +28662, -- Citizen of Havenshire +28717, -- Overlord Drakuru +28733, -- Anub'ar Shadowcaster +28739, -- Blight Cauldron Bunny 00 +28745, -- Alarmed Blightguard +28750, -- Blight Geist +28751, -- Geist WP Bunny +28769, -- Shadowy Tormentor +28778, -- Scourgewagon Bunny +28789, -- Explosion Guy +28804, -- Plague Spreader +28826, -- Stormfury Revenant +28833, -- Scarlet Cannon +28835, -- Stormforged Construct +28839, -- Scarlet Cover Dummy +28850, -- Scarlet Land Cannon +28901, -- Acherus Deathcharger +28903, -- Scourge Plaguehound +28905, -- Gluttonous Geist +28906, -- Scourge Gryphon +28920, -- Stormforged Giant +28931, -- Blightblood Troll +28932, -- Blight Effect Bunny +28935, -- Acherus Dummy +28960, -- Totally Generic Bunny (JSB) +29013, -- Perch Guardian +29026, -- Kolramas Slime +29027, -- Wild Growth Stalker +29036, -- Servant of Freya +29048, -- Ulduar Monitor +29104, -- Scarlet Ballista +29128, -- Anub'ar Prime Guard +29189, -- Howling Geist +29301, -- Camp Winterhoof Wayfarer +29326, -- Ichoron Summon Target +29328, -- Arctic Hare +29392, -- Ravenous Jaws +29395, -- Erekem Guard +29444, -- Drakkari Snake +29449, -- Vargul Deathwaker +29450, -- Vargul Runelord +29452, -- Vargul Blighthound +29461, -- Icetip Crawler +29466, -- Goblin Prisoner +29479, -- Shoveltusk Forager +29483, -- K3 Perimeter Turret +29485, -- Dolomite Giant +29486, -- Tamed Shoveltusk +29487, -- Wild Shoveltusk +29504, -- Seething Revenant +29517, -- Darkmender's Ghoul +29521, -- Unworthy Initiate Anchor +29549, -- Brunnhildar Riding Bear +29551, -- Brunnhildar Bearhandler +29558, -- Frost Giant Target Bunny +29559, -- Lion Seal Whelp +29562, -- Icemaw Bear +29614, -- Onslaught Darkweaver +29630, -- Fanged Pit Viper +29682, -- Slad'ran Summon Target +29697, -- Drakuru Prophet +29700, -- Drakuru Shackles +29710, -- Onslaught Destrier +29730, -- Frostborn Stormrider +29746, -- Databank +29752, -- Databank Core +29774, -- Spitting Cobra +29798, -- Hyldsmeet Proto-Drake +29805, -- Captive Proto Drake Beam Bunny +29811, -- Frostborn Scout +29820, -- Drakkari God Hunter +29822, -- Drakkari Fire Weaver +29826, -- Drakkari Medicine Man +29830, -- Living Mojo +29832, -- Drakkari Golem +29912, -- Obedience Crystal +29920, -- Ruins Dweller +29958, -- Tundra Ram +29960, -- Earthen Stoneguard +30012, -- Victorious Challenger +30046, -- Yulda the Stormspeaker +30066, -- Valkyrion Harpoon Gun +30071, -- Stitched Colossus +30078, -- [DND]Wyrmrest Temple Beam Target +30172, -- Ahn'kahar Swarm Egg +30173, -- Ahn'kahar Guardian Egg +30181, -- Jedoga Controller +30236, -- Argent Cannon +30250, -- Valhalas Vargul +30277, -- Ahn'kahar Slasher +30278, -- Ahn'kahar Spell Flinger +30286, -- Frostbringer +30298, -- Invisible Stalker (Float, Uninteractible, LargeAOI) +30312, -- Shadow Vault Boneguard +30335, -- Shadow Vault Gryphon +30416, -- Bound Fire Elemental +30418, -- Bound Air Elemental +30419, -- Bound Water Elemental +30430, -- Sentry Worg +30576, -- Vile Like Fire! Kill Credit Bunny +30599, -- Vile Like Fire! Fire Bunny +30633, -- Water Terror +30640, -- [DND] Icecrown Airship (A) - Cannon Target +30642, -- Water Terror +30649, -- [DND] Icecrown Airship (H) - Cannon Target +30651, -- [DND] Icecrown Airship (A) - Cannon, Odd +30675, -- Argent Champion +30687, -- Skeletal Constructor +30689, -- Chained Abomination +30701, -- Vile Creeper +30842, -- Wandering Shadow +30845, -- Living Lasher +30848, -- Whispering Wind +30857, -- Defense Dummy Target +30887, -- Scourge Package +30894, -- Lithe Stalker +30897, -- Marnak +30898, -- Kaddrak +30899, -- Abedneum +30900, -- Argent Mason +30920, -- Lumbering Atrocity +30947, -- Eidolon Watcher +30951, -- Restless Lookout +30952, -- Hungering Plaguehound +30960, -- Risen Soldier +30985, -- Summoned Soldier +31041, -- Dispirited Ent +31043, -- Reanimated Crusader +31049, -- Geist Return Bunny +31075, -- Scourge Bomb +31077, -- Safirdrang's Chill Target +31126, -- Agitated Stratholme Citizen +31127, -- Agitated Stratholme Resident +31131, -- Containment Crystal +31140, -- Hulking Abomination +31142, -- Icy Ghoul +31145, -- Shadow Adept +31147, -- Vicious Geist +31150, -- Plagued Fiend +31155, -- Malefic Necromancer +31205, -- Risen Alliance Soldier +31233, -- Sinewy Wolf +31245, -- Invisible Ooze Stalker +31250, -- Ebon Blade Defender +31251, -- Shadow Vault Skirmisher +31262, -- Blight Falconer +31266, -- Shadow Vault Assaulter +31280, -- Ymirheim Spear Gun +31328, -- Fleeing Horde Soldier +31330, -- Fleeing Horde Soldier +31353, -- [DND] Icecrown Airship (N) - Attack Controller +31411, -- Hulking Horror +31438, -- Shadow Vault Abomination +31554, -- Restless Lookout +31556, -- Hungering Plaguehound +31644, -- Cosmetic Trigger - Phase 1 - LAB +31685, -- Borean Marmot +31718, -- Frostbrood Whelp +31731, -- Wyrm Reanimator +31738, -- Cultist Corrupter +31747, -- Necrotic Webspinner +31754, -- Glacial Bonelord +31779, -- Skeletal Archmage +31780, -- Fallen Spiderlord +31783, -- Vrykul Necrolord +31786, -- Oil Slick +31797, -- Ancient Sentinel +31812, -- Decomposed Ghoul +31813, -- Frostskull Magus +31836, -- Blue Dragon Egg +31847, -- Scavenging Geist +31900, -- Scourge Banner-Bearer +31915, -- Horde Transport Dropoff Bunny +32149, -- Fallen Hero's Spirit +32155, -- Destroyed War Machine +32161, -- Scourge War Engineer +32202, -- Desolation KC Bunny +32236, -- Dark Subjugator +32250, -- Overseer Faedris +32255, -- Converted Hero +32257, -- Scourge Converter +32258, -- Gold Beetle +32260, -- Enslaved Minion +32262, -- Shadow Channeler +32264, -- Aldur'thar Channel Bunny +32278, -- Harbinger of Horror +32280, -- Corp'rethar Guardian +32284, -- Scourge Soulbinder +32349, -- Cultist Shard Watcher +32469, -- Ebon Blade Geist +32479, -- Bone Guard +32482, -- Pustulent Colossus +32490, -- Scourge Deathcharger +32498, -- Glacier Penguin +32502, -- Ravaged Ghoul +32505, -- Vargul Wanderer +32507, -- Cultist Acolyte +32520, -- Totally Generic Bunny (All Phase) +32541, -- Initiate's Training Dummy +32542, -- Disciple's Training Dummy +32543, -- Veteran's Training Dummy +32545, -- Initiate's Training Dummy +32546, -- Ebon Knight's Training Dummy +32593, -- Skittering Swarmer +32647, -- Warsong Hold Practice Dummy +32720, -- Violetta +32770, -- Enraged Fleshrender +32771, -- Stitched Brute +32772, -- Skeletal Footsoldier +32874, -- Iron Ring Guard +32875, -- Iron Honor Guard +32879, -- Thorim Controller +32885, -- Captured Mercenary Soldier +32892, -- Thorim Event Bunny +32922, -- Dark Rune Champion +32923, -- Dark Rune Commoner +32924, -- Dark Rune Evoker +32925, -- Dark Rune Warbringer +33140, -- Thorim Golem Right Hand Bunny +33141, -- Thorim Golem Left Hand Bunny +33229, -- Melee Target +33337, -- XT-Toy Pile +33378, -- Thunder Orb +33430, -- Guardian Lasher +33431, -- Forest Swarmer +33500, -- Vezax Bunny +33525, -- Mangrove Ent +33526, -- Ironroot Lasher +33527, -- Nature's Blade +33575, -- Channel Stalker Freya +33661, -- Armsweep Stalker Kologarn +33699, -- Storm Tempered Keeper +33722, -- Storm Tempered Keeper +33772, -- Faceless Horror +33809, -- Rubble Stalker Kologarn +33818, -- Twilight Adherent +33819, -- Twilight Frost Mage +33820, -- Twilight Pyromancer +33822, -- Twilight Guardian +33824, -- Twilight Shadowblade +33838, -- Enslaved Fire Elemental +33856, -- Bot Summon Trigger +34014, -- Sanctum Sentry +34069, -- Molten Colossus +34133, -- Champion of Hodir +34134, -- Winter Revenant +34135, -- Winter Rumbler +34137, -- Winter Jormungar +34144, -- Expedition Mercenary +34145, -- Expedition Engineer +34146, -- Snow Mound (4) +34150, -- Snow Mound (6) +34151, -- Snow Mound (8) +34184, -- Clockwork Mechanic +34190, -- Hardened Iron Golem +34191, -- Trash +34196, -- Rune Etched Sentry +34198, -- Iron Mender +34267, -- Parts Recovery Technician +34271, -- XD-175 Compactobot +34273, -- XB-488 Disposalbot +34300, -- Mature Lasher +34319, -- [DND] Champion Go-To Bunny +34716, -- Captive Aspirant +34907, -- Kvaldir Harpooner +35106, -- Black Knight Caster +35473, -- Argent Tournament Post +35482, -- Hungry Jormungar +36829, -- Deathspeaker High Priest +40091, -- Orb Rotation Focus +40146); -- Halion Controller diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 5fee82c5ece..7661053a0de 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -3432,6 +3432,19 @@ void Player::AddNewMailDeliverTime(time_t deliver_time) } } +void DeleteSpellFromAllPlayers(uint32 spellId) +{ + CharacterDatabaseStatements stmts[2] = {CHAR_DEL_INVALID_SPELL_SPELLS, CHAR_DEL_INVALID_SPELL_TALENTS}; + for (uint8 i = 0; i < 2; i++) + { + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(stmts[i]); + + stmt->setUInt32(0, spellId); + + CharacterDatabase.Execute(stmt); + } +} + bool Player::AddTalent(uint32 spellId, uint8 spec, bool learning) { SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId); @@ -3442,11 +3455,7 @@ bool Player::AddTalent(uint32 spellId, uint8 spec, bool learning) { sLog->outError(LOG_FILTER_SPELLS_AURAS, "Player::addSpell: Non-existed in SpellStore spell #%u request, deleting for all characters in `character_spell`.", spellId); - PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_INVALID_SPELL); - - stmt->setUInt32(0, spellId); - - CharacterDatabase.Execute(stmt); + DeleteSpellFromAllPlayers(spellId); } else sLog->outError(LOG_FILTER_SPELLS_AURAS, "Player::addSpell: Non-existed in SpellStore spell #%u request.", spellId); @@ -3461,11 +3470,7 @@ bool Player::AddTalent(uint32 spellId, uint8 spec, bool learning) { sLog->outError(LOG_FILTER_SPELLS_AURAS, "Player::addTalent: Broken spell #%u learning not allowed, deleting for all characters in `character_talent`.", spellId); - PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_INVALID_SPELL); - - stmt->setUInt32(0, spellId); - - CharacterDatabase.Execute(stmt); + DeleteSpellFromAllPlayers(spellId); } else sLog->outError(LOG_FILTER_SPELLS_AURAS, "Player::addTalent: Broken spell #%u learning not allowed.", spellId); @@ -3515,11 +3520,7 @@ bool Player::addSpell(uint32 spellId, bool active, bool learning, bool dependent { sLog->outError(LOG_FILTER_SPELLS_AURAS, "Player::addSpell: Non-existed in SpellStore spell #%u request, deleting for all characters in `character_spell`.", spellId); - PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_INVALID_SPELL); - - stmt->setUInt32(0, spellId); - - CharacterDatabase.Execute(stmt); + DeleteSpellFromAllPlayers(spellId); } else sLog->outError(LOG_FILTER_SPELLS_AURAS, "Player::addSpell: Non-existed in SpellStore spell #%u request.", spellId); @@ -3534,11 +3535,7 @@ bool Player::addSpell(uint32 spellId, bool active, bool learning, bool dependent { sLog->outError(LOG_FILTER_SPELLS_AURAS, "Player::addSpell: Broken spell #%u learning not allowed, deleting for all characters in `character_spell`.", spellId); - PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_INVALID_SPELL); - - stmt->setUInt32(0, spellId); - - CharacterDatabase.Execute(stmt); + DeleteSpellFromAllPlayers(spellId); } else sLog->outError(LOG_FILTER_SPELLS_AURAS, "Player::addSpell: Broken spell #%u learning not allowed.", spellId); diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp index b0a2d48d053..58e130ce644 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp @@ -64,6 +64,12 @@ enum eMisc KIRTONOS_PATH = 105061 }; +Position const PosMove[2] = +{ + { 299.4884f, 92.76137f, 105.6335f }, + { 314.8673f, 90.30210f, 101.6459f } +}; + class boss_kirtonos_the_herald : public CreatureScript { public: boss_kirtonos_the_herald() : CreatureScript("boss_kirtonos_the_herald") { } @@ -74,15 +80,11 @@ class boss_kirtonos_the_herald : public CreatureScript void Reset() { - _introEvent = 0; - _introTimer = 0; _Reset(); } void EnterCombat(Unit* /*who*/) { - _introTimer = 0; - _introEvent = 0; events.ScheduleEvent(EVENT_SWOOP, urand(8000, 8000)); events.ScheduleEvent(EVENT_WING_FLAP, urand(15000, 15000)); events.ScheduleEvent(EVENT_PIERCE_ARMOR, urand(18000, 18000)); @@ -120,12 +122,10 @@ class boss_kirtonos_the_herald : public CreatureScript void IsSummonedBy(Unit* /*summoner*/) { + events.ScheduleEvent(INTRO_1, 500); me->SetDisableGravity(true); me->SetReactState(REACT_PASSIVE); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE); - _introEvent = INTRO_1; - _introTimer = 1; - _currentPoint = 0; Talk(EMOTE_SUMMONED); } @@ -138,68 +138,58 @@ class boss_kirtonos_the_herald : public CreatureScript { if (type == WAYPOINT_MOTION_TYPE && id == POINT_KIRTONOS_LAND) { - _introTimer = 1500; - _introEvent = INTRO_2; + events.ScheduleEvent(INTRO_2, 1500); } } void UpdateAI(uint32 const diff) { - if (_introEvent) + events.Update(diff); + + while (uint32 eventId = events.ExecuteEvent() && !UpdateVictim()) { - if (_introTimer <= diff) + switch (eventId) { - switch (_introEvent) - { - case INTRO_1: - me->GetMotionMaster()->MovePath(KIRTONOS_PATH, false); - _introEvent = 0; - break; - case INTRO_2: - me->GetMotionMaster()->MovePoint(0, 299.4884f, 92.76137f, 105.6335f); - _introTimer = 1000; - _introEvent = INTRO_3; - break; - case INTRO_3: - if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_GATE_KIRTONOS))) - gate->SetGoState(GO_STATE_READY); - me->SetFacingTo(0.01745329f); - _introTimer = 3000; - _introEvent = INTRO_4; - break; - case INTRO_4: - if (GameObject* brazier = me->GetMap()->GetGameObject(instance->GetData64(GO_BRAZIER_OF_THE_HERALD))) - brazier->SetGoState(GO_STATE_READY); - me->SetWalk(true); - me->SetDisableGravity(false); - DoCast(me, SPELL_KIRTONOS_TRANSFORM); - me->SetCanFly(false); - _introTimer = 1000; - _introEvent = INTRO_5; - break; - case INTRO_5: - me->HandleEmoteCommand(EMOTE_ONESHOT_ROAR); - me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_KIRTONOS_STAFF)); - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE); - me->SetReactState(REACT_AGGRESSIVE); - _introTimer = 5000; - _introEvent = INTRO_6; - case INTRO_6: - me->GetMotionMaster()->MovePoint(0, 314.8673f, 90.3021f, 101.6459f); - _introTimer = 0; - _introEvent = 0; + case INTRO_1: + me->GetMotionMaster()->MovePath(KIRTONOS_PATH, false); + break; + case INTRO_2: + me->GetMotionMaster()->MovePoint(0, PosMove[0]); + events.ScheduleEvent(INTRO_3, 1000); + break; + case INTRO_3: + if (GameObject* gate = me->GetMap()->GetGameObject(instance->GetData64(GO_GATE_KIRTONOS))) + gate->SetGoState(GO_STATE_READY); + me->SetFacingTo(0.01745329f); + events.ScheduleEvent(INTRO_4, 3000); + break; + case INTRO_4: + if (GameObject* brazier = me->GetMap()->GetGameObject(instance->GetData64(GO_BRAZIER_OF_THE_HERALD))) + brazier->SetGoState(GO_STATE_READY); + me->SetWalk(true); + me->SetDisableGravity(false); + DoCast(me, SPELL_KIRTONOS_TRANSFORM); + me->SetCanFly(false); + events.ScheduleEvent(INTRO_5, 1000); + break; + case INTRO_5: + me->HandleEmoteCommand(EMOTE_ONESHOT_ROAR); + me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_KIRTONOS_STAFF)); + me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE); + me->SetReactState(REACT_AGGRESSIVE); + events.ScheduleEvent(INTRO_6, 5000); + break; + case INTRO_6: + me->GetMotionMaster()->MovePoint(0, PosMove[1]); + break; + default: break; - } } - else - _introTimer -= diff; } if (!UpdateVictim()) return; - events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) return; @@ -257,11 +247,6 @@ class boss_kirtonos_the_herald : public CreatureScript DoMeleeAttackIfReady(); } - - private: - uint8 _introEvent; - uint32 _introTimer; - uint32 _currentPoint; }; CreatureAI* GetAI(Creature* creature) const @@ -280,6 +265,11 @@ enum Brazier_Of_The_Herald SOUND_SCREECH = 557 }; +Position const PosSummon[1] = +{ + { 315.028f, 70.53845f, 102.1496f, 0.3859715f } +}; + class go_brazier_of_the_herald : public GameObjectScript { public: @@ -289,7 +279,7 @@ class go_brazier_of_the_herald : public GameObjectScript { go->UseDoorOrButton(); go->PlayDirectSound(SOUND_SCREECH, 0); - player->SummonCreature(NPC_KIRTONOS, 315.028f, 70.53845f, 102.1496f, 0.3859715f, TEMPSUMMON_DEAD_DESPAWN, 900000); + player->SummonCreature(NPC_KIRTONOS, PosSummon[0], TEMPSUMMON_DEAD_DESPAWN, 900000); return true; } }; diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.cpp b/src/server/shared/Database/Implementation/CharacterDatabase.cpp index cfbd4b2bc45..1c2410b8b53 100644 --- a/src/server/shared/Database/Implementation/CharacterDatabase.cpp +++ b/src/server/shared/Database/Implementation/CharacterDatabase.cpp @@ -374,7 +374,8 @@ void CharacterDatabaseConnection::DoPrepareStatements() PrepareStatement(CHAR_UPD_GROUP_DIFFICULTY, "UPDATE groups SET difficulty = ? WHERE guid = ?", CONNECTION_ASYNC); PrepareStatement(CHAR_UPD_GROUP_RAID_DIFFICULTY, "UPDATE groups SET raiddifficulty = ? WHERE guid = ?", CONNECTION_ASYNC); PrepareStatement(CHAR_DEL_ALL_GM_TICKETS, "TRUNCATE TABLE gm_tickets", CONNECTION_ASYNC); - PrepareStatement(CHAR_DEL_INVALID_SPELL, "DELETE FROM character_talent WHERE spell = ?", CONNECTION_ASYNC); + PrepareStatement(CHAR_DEL_INVALID_SPELL_TALENTS, "DELETE FROM character_talent WHERE spell = ?", CONNECTION_ASYNC); + PrepareStatement(CHAR_DEL_INVALID_SPELL_SPELLS, "DELETE FROM character_spell WHERE spell = ?", CONNECTION_ASYNC); PrepareStatement(CHAR_UPD_DELETE_INFO, "UPDATE characters SET deleteInfos_Name = name, deleteInfos_Account = account, deleteDate = UNIX_TIMESTAMP(), name = '', account = 0 WHERE guid = ?", CONNECTION_ASYNC); PrepareStatement(CHAR_UDP_RESTORE_DELETE_INFO, "UPDATE characters SET name = ?, account = ?, deleteDate = NULL, deleteInfos_Name = NULL, deleteInfos_Account = NULL WHERE deleteDate IS NOT NULL AND guid = ?", CONNECTION_ASYNC); PrepareStatement(CHAR_UPD_ZONE, "UPDATE characters SET zone = ? WHERE guid = ?", CONNECTION_ASYNC); diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.h b/src/server/shared/Database/Implementation/CharacterDatabase.h index bfa7bc48cf5..e4728e19934 100644 --- a/src/server/shared/Database/Implementation/CharacterDatabase.h +++ b/src/server/shared/Database/Implementation/CharacterDatabase.h @@ -315,7 +315,8 @@ enum CharacterDatabaseStatements CHAR_UPD_GROUP_MEMBER_FLAG, CHAR_UPD_GROUP_DIFFICULTY, CHAR_UPD_GROUP_RAID_DIFFICULTY, - CHAR_DEL_INVALID_SPELL, + CHAR_DEL_INVALID_SPELL_SPELLS, + CHAR_DEL_INVALID_SPELL_TALENTS, CHAR_UPD_DELETE_INFO, CHAR_UDP_RESTORE_DELETE_INFO, CHAR_UPD_ZONE, |