From 52b76a48f2c1c9e18116c269e660cd606ef8953a Mon Sep 17 00:00:00 2001 From: Dr-J Date: Tue, 9 Sep 2014 20:27:05 +0100 Subject: DB/Misc: Borean Tundra Scripts * Quest turn in scripts for Souls of the Decursed, The Power of the Elements and Patching Up * Proper script for Gearmaster Mechazod * Rescripted Bury those Cockroaches to SAI, now includes the texts from the mines, also credit npc will no longer be knocked out of sink hole by first person to do quest after a restart rendering the quest non working to all other players who try after due to the npc present not been where its meant to be * A couple of other one line fixes --- sql/updates/world/2014_09_09_00_world_sai.sql | 162 ++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 sql/updates/world/2014_09_09_00_world_sai.sql (limited to 'sql') diff --git a/sql/updates/world/2014_09_09_00_world_sai.sql b/sql/updates/world/2014_09_09_00_world_sai.sql new file mode 100644 index 00000000000..4037b19df09 --- /dev/null +++ b/sql/updates/world/2014_09_09_00_world_sai.sql @@ -0,0 +1,162 @@ +SET @CGUID := 29979; + +DELETE FROM `creature_text` WHERE `entry` IN(26097,25380,25602,25834,25849,25983,25380,25401); +DELETE FROM `creature_text` WHERE `entry` =23837 AND `groupid`=1; + +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES +(26097, 0, 0, 'Thank you for saving us. We accidentally uncovered the pieces of Gearmaster Mechazod and reassembled him.', 12, 0, 100, 0, 0, 0, 'Fizzcrank Gnome Ghost',25205), +(26097, 1, 0, 'In return, he ''de-cursed'' us, saying that we were being ''fixed'' by returning us to the state of being mechanical constructs.', 12, 0, 100, 0, 0, 0, 'Fizzcrank Gnome Ghost',25207), +(26097, 2, 0, 'He claims that all creations of the Titans fall prey to what he calls, ''The Curse of Flesh''. He says that the original gnomes were once mechagnomes.', 12, 0, 100, 0, 0, 0, 'Fizzcrank Gnome Ghost',25208), +(26097, 3, 0, 'He''s quite insane! Someone must put a stop to his madness before it''s too late for everyone!', 12, 0, 100, 0, 0, 0, 'Fizzcrank Gnome Ghost',25209), +(25602, 0, 0, 'Now, $n, let us release their souls and hear what they have to say.', 12, 0, 100, 1, 0, 0, 'Greatmother Taiga',25204), +(25602, 1, 0, 'This is dire news indeed!', 12, 0, 100, 1, 0, 0, 'Greatmother Taiga',25211), +(25380, 0, 0, 'And remember, $n, the bloodspore powder can be used to weaken all magnataur in Gammoth.', 15, 0, 100, 0, 0, 0, 'Primal Mighthorn',24994), +(25834, 0, 0, 'You were looking for me, child? Why do you come to kill me, $n? I only wish to help.', 12, 0, 100, 6, 0, 0, 'Gearmaster Mechazod',25024), +(25834, 1, 0, 'Now that I have been reassembled, we can return to a time of perfection... the time of the Titans!', 12, 0, 100, 1, 0, 0, 'Gearmaster Mechazod',25025), +(25834, 2, 0, 'But, I can see it in your eyes, hear it in your pulse rate. You would destroy me despite my offer of immortality!', 12, 0, 100, 25, 0, 0, 'Gearmaster Mechazod',25026), +(25834, 3, 0, 'Very well. It saddens me that it has come to this. I look upon all of you as if you were my children. I will slay you if I must!', 12, 0, 100, 25, 0, 0, 'Gearmaster Mechazod',25027), +(23837, 1, 0, 'There is a noise from behind you!', 41, 0, 100, 0, 0, 0, 'ELM General Purpose Bunny',25215), +(25849, 0, 0, 'It''s really going to work this time... right?', 12, 0, 100, 6, 0, 0, 'Fezzix Geartwist',25143), +(25849, 1, 0, 'It works, Dorain! Look! It actually works...', 12, 0, 100, 4, 0, 0, 'Fezzix Geartwist',25148), +(25849, 2, 0, 'Here I goooooooooo!', 12, 0, 100, 0, 0, 0, 'Fezzix Geartwist',25150), +(25849, 3, 0, 'OUCH!', 12, 0, 100, 0, 0, 0, 'Fezzix Geartwist',25151), +(25849, 4, 0, 'I give up! So much for goblin ingenuity!', 12, 0, 100, 5, 0, 0, 'Fezzix Geartwist',25152), +(25983, 0, 0, 'Fezzix, I think we''ve solved your little engine problem.', 12, 0, 100, 1, 0, 0, 'Dorain Frosthoof',25132), +(25401, 0, 0, '%s armed.', 16, 0, 100, 0, 0, 0, 'Seaforium Depth Charge',24590), +(25401, 1, 0, 'Detonation in 5...', 16, 0, 100, 0, 0, 0, 'Seaforium Depth Charge',24591), +(25401, 2, 0, '4...', 16, 0, 100, 0, 0, 0, 'Seaforium Depth Charge',24592), +(25401, 3, 0, '3...', 16, 0, 100, 0, 0, 0, 'Seaforium Depth Charge',24593), +(25401, 4, 0, '2...', 16, 0, 100, 0, 0, 0, 'Seaforium Depth Charge',24594), +(25401, 5, 0, '1...', 16, 0, 100, 0, 0, 0, 'Seaforium Depth Charge',24595); + +UPDATE `creature_template` SET `unit_flags`=33024 WHERE `entry`=25834; +UPDATE `creature_template` SET `ainame`='SmartAI', `scriptname`='' WHERE `entry` IN(26097,35426,25602,25983,25849,25834,25380,25401); +DELETE FROM `smart_scripts` WHERE `entryorguid` IN(26097,35426,25602,25983,25849,25834,25380,25401) AND `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN(2560200,2598300,2584900,2584901,2583400,2540100) AND `source_type`=9; + +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 +(25401, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Seaforium Depth Charge - On Just Summoned - Store Targetlist'), +(25401, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 80, 2540100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Seaforium Depth Charge - On Just Summoned - Run Script'), +(25401, 0, 2, 0, 1, 2, 100, 1, 100, 100, 0, 0, 11, 45506, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 'Seaforium Depth Charge - OOC (Phase 2/No repeat) - Cast Nerub ar Sinkhole Credit (SW) '), +(25401, 0, 3, 0, 1, 2, 100, 1, 100, 100, 0, 0, 11, 45508, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 'Seaforium Depth Charge - OOC (Phase 2/No repeat) - Cast Nerub ar Sinkhole Credit (SE)'), +(25401, 0, 4, 0, 1, 2, 100, 1, 100, 100, 0, 0, 11, 45510, 2, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 'Seaforium Depth Charge - OOC (Phase 2/No repeat) - Cast Nerub ar Sinkhole Credit (NW)'), +(25401, 0, 5, 0, 1, 2, 100, 1, 100, 100, 0, 0, 11, 45512, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 'Seaforium Depth Charge - OOC (Phase 2/No repeat) - Cast Nerub ar Sinkhole Credit (NE)'), +(25834, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Gearmaster Mechazod - On Just Summoned - Store Targetlist'), +(25834, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 80, 2583400, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Gearmaster Mechazod - On Just Summoned - Run Script'), +(25834, 0, 2, 0, 7, 0, 100, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Gearmaster Mechazod - On Evade Despawn'), +(25380, 0, 0, 0, 19, 0, 100, 0, 11721, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Primal Mighthorn - On Quest Accept (Gammothra the Tormentor) - Say Line 1'), +(26097, 0, 0, 0, 1, 0, 100, 1, 1000, 1000, 0, 0, 11, 35426, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fizzcrank Gnome Ghost - OOC (No Repeat) - Cast Arcane Explosion Visual'), +(26097, 0, 1, 0, 54, 0, 100, 0, 0, 0, 0, 0, 11, 32423, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fizzcrank Gnome Ghost - On Just Summoned - Cast Blue Radiation'), +(25602, 0, 0, 0, 25, 0, 100, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Greatmother Taiga - On Reset Set Phase 1'), +(25602, 0, 1, 2, 20, 1, 100, 0, 11899, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Greatmother Taiga - On Quest Reward (Souls of the Decursed) - Say Line 1 (Phase 1)'), +(25602, 0, 2, 0, 61, 1, 100, 0, 0, 0, 0, 0, 80, 2560200, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Greatmother Taiga - On Quest Reward (Souls of the Decursed) - Run Script (Phase 1)'), +(25983, 0, 0, 0, 25, 0, 100, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Dorain Frosthoof - On Reset Set Phase 1'), +(25983, 0, 1, 2, 20, 1, 100, 0, 11893, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Dorain Frosthoof - - On Quest Reward (The Power of the Elements) - Say Line 1'), +(25983, 0, 2, 0, 61, 1, 100, 0, 0, 0, 0, 0, 80, 2598300, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Dorain Frosthoof - - On Quest Reward (The Power of the Elements) - Run Script'), +(25849, 0, 0, 0, 25, 0, 100, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fezzix Geartwist - On Reset Set Phase 1'), +(25849, 0, 1, 2, 20, 1, 100, 0, 11894, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Fezzix Geartwist - - On Quest Reward (Patching Up) - Say Line 1'), +(25849, 0, 2, 0, 61, 1, 100, 0, 0, 0, 0, 0, 80, 2584900, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fezzix Geartwist - - On Quest Reward (Patching Up) - Run Script'), +(25849, 0, 3, 0, 40, 2, 100, 0, 11, 25849, 0, 0, 80, 2584901, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fezzix Geartwist - - On Reached WP11 - Run Script (Phase 2)'), +(25849, 0, 4, 5, 40, 2, 100, 0, 12, 25849, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fezzix Geartwist - - On Reached WP12 - Set Phase 1'), +(25849, 0, 5, 0, 61, 0, 100, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 4.06662, 'Fezzix Geartwist - - On Reached WP12 - Set Orientation'), +(2540100, 9, 0, 0, 0, 0, 100, 0, 0, 2000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Seaforium Depth Charge - Script - Say Line 0'), +(2540100, 9, 1, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Seaforium Depth Charge - Script - Say Line 1'), +(2540100, 9, 2, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 1, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Seaforium Depth Charge - Script - Say Line 2'), +(2540100, 9, 3, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 1, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Seaforium Depth Charge - Script - Say Line 2'), +(2540100, 9, 4, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 1, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Seaforium Depth Charge - Script - Say Line 2'), +(2540100, 9, 5, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 1, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Seaforium Depth Charge - Script - Say Line 2'), +(2540100, 9, 6, 0, 0, 0, 100, 0, 900, 900, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Seaforium Depth Charge - Script - Set Phase 2'), +(2540100, 9, 7, 0, 0, 0, 100, 0, 100, 100, 0, 0, 11, 45502, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Seaforium Depth Charge - Script - Cast Seaforium Depth Charge Explosion'), +(2540100, 9, 8, 0, 0, 0, 100, 0, 500, 500, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Seaforium Depth Charge - Script - Cast Seaforium Depth Charge Explosion'), +(2584900, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fezzix Geartwist - Script - Set Phase 2'), +(2584900, 9, 1, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 12, 26040, 1, 13000, 0, 0, 0, 8, 0, 0, 0, 3481.329, 4099.854, 17.83902, 3.351032, 'Fezzix Geartwist - Script - Spawn Fezzixs Flying Machine'), +(2584900, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 70, 60, 0, 0, 0, 0, 0, 14, 60069, 188087, 0, 0, 0, 0, 0, 'Fezzix Geartwist - Script - Despawn Wreckage A'), +(2584900, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 70, 60, 0, 0, 0, 0, 0, 14, 60080, 188088, 0, 0, 0, 0, 0, 'Fezzix Geartwist - Script - Despawn Wreckage B'), +(2584900, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 70, 60, 0, 0, 0, 0, 0, 14, 60095, 188089, 0, 0, 0, 0, 0, 'Fezzix Geartwist - Script - Despawn Wreckage C'), +(2584900, 9, 5, 0, 0, 0, 100, 0, 4000, 4000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Fezzix Geartwist - Script - Say Line 2'), +(2584900, 9, 6, 0, 0, 0, 100, 0, 9000, 9000, 0, 0, 43, 0, 22719, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fezzix Geartwist - Script - Mount Display ID 22719'), +(2584900, 9, 7, 0, 0, 0, 100, 0, 4000, 4000, 0, 0, 1, 2, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Fezzix Geartwist - Script - Say Line 3'), +(2584900, 9, 8, 0, 0, 0, 100, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fezzix Geartwist - Script - Set Fly On'), +(2584900, 9, 9, 0, 0, 0, 100, 0, 0, 0, 0, 0, 53, 0, 25849, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fezzix Geartwist - Script - Start WP'), +(2583400, 9, 0, 0, 0, 0, 100, 0, 500, 500, 0, 0, 11, 34427, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Gearmaster Mechazod - Script - Cast Ethereal Teleport'), +(2583400, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 10, @CGUID+0, 23837, 0, 0, 0, 0, 0, 'Gearmaster Mechazod - Script - Say Line on Bunny'), +(2583400, 9, 2, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Gearmaster Mechazod - Script - Say Line 1'), +(2583400, 9, 3, 0, 0, 0, 100, 0, 9000, 9000, 0, 0, 66, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Gearmaster Mechazod - Script - Set Orientation'), +(2583400, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Gearmaster Mechazod - Script - Say Line 2'), +(2583400, 9, 5, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 2, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Gearmaster Mechazod - Script - Say Line 3'), +(2583400, 9, 6, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 3, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Gearmaster Mechazod - Script - Say Line 4'), +(2583400, 9, 7, 0, 0, 0, 100, 0, 0, 0, 0, 0, 19, 256, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Gearmaster Mechazod - Script - Remove Unit Flag (Immune to PC)'), +(2583400, 9, 8, 0, 0, 0, 100, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Gearmaster Mechazod - Script - Start Attack'), +(2584901, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 11, 46419, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fezzix Geartwist - Script 2 - Cast Cosmetic - Explosion'), +(2584901, 9, 1, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 43, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fezzix Geartwist - Script 2 - Dismount'), +(2584901, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 60, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fezzix Geartwist - Script 2 - Turn Fly Off'), +(2584901, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 11, 42963, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fezzix Geartwist - Script 2 - Cast Cosmetic - Combat Knockdown Self'), +(2584901, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fezzix Geartwist - Script 2 - Say Line 4'), +(2584901, 9, 5, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 1, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Fezzix Geartwist - Script 2 - Say Line 5'), +(2598300, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Dorain Frosthoof - Script - Set Phase 2'), +(2598300, 9, 1, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 11, 46399, 0, 0, 0, 0, 0, 14, 113431, 26041, 0, 0, 0, 0, 0, 'Dorain Frosthoof - Script - Cast Energy Transfer'), +(2598300, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Dorain Frosthoof - Script - Set Phase 1'), +(2560200, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Greatmother Taiga - Script - Set Phase 2'), +(2560200, 9, 1, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 11, 28892, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Greatmother Taiga - Script - Cast Nature Channeling'), +(2560200, 9, 2, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 28, 28892, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Greatmother Taiga - Script - Remove Aura Nature Channeling'), +(2560200, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Greatmother Taiga - Script - Summon Group 0'), +(2560200, 9, 4, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 26097, 0, 0, 0, 0, 0, 0, 'Greatmother Taiga - Script - Say Line 1 on Closest Fizzcrank Gnome Ghost'), +(2560200, 9, 5, 0, 0, 0, 100, 0, 9000, 9000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 19, 26097, 0, 0, 0, 0, 0, 0, 'Greatmother Taiga - Script - Say Line 2 on Closest Fizzcrank Gnome Ghost'), +(2560200, 9, 6, 0, 0, 0, 100, 0, 9000, 9000, 0, 0, 1, 2, 0, 0, 0, 0, 0, 19, 26097, 0, 0, 0, 0, 0, 0, 'Greatmother Taiga - Script - Say Line 3 on Closest Fizzcrank Gnome Ghost'), +(2560200, 9, 7, 0, 0, 0, 100, 0, 9000, 9000, 0, 0, 1, 3, 0, 0, 0, 0, 0, 19, 26097, 0, 0, 0, 0, 0, 0, 'Greatmother Taiga - Script - Say Line 4 on Closest Fizzcrank Gnome Ghost'), +(2560200, 9, 8, 0, 0, 0, 100, 0, 9000, 9000, 0, 0, 5, 3, 0, 0, 0, 0, 0, 9, 26097, 0, 200, 0, 0, 0, 0, 'Greatmother Taiga - Script - Play emote OneShotWave on all Fizzcrank Gnome Ghost'), +(2560200, 9, 9, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Greatmother Taiga - Script - Say Line 2'), +(2560200, 9, 10, 0, 0, 0, 100, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Greatmother Taiga - Script - Set Phase 1'); + + +DELETE FROM `creature_summon_groups` WHERE `summonerId`=25602; +INSERT INTO `creature_summon_groups` (`summonerId`, `summonerType`, `groupId`, `entry`, `position_x`, `position_y`, `position_z`, `orientation`, `summonType`, `summonTime`) VALUES +(25602, 0, 0, 26097, 3483.047, 4114.145, 18.48475, 3.193953, 1, 40000), +(25602, 0, 0, 26097, 3486.638, 4116.401, 18.48475, 3.403392, 1, 40000), +(25602, 0, 0, 26097, 3483.65, 4112.257, 18.48475, 2.9147, 1, 40000), +(25602, 0, 0, 26097, 3481.733, 4118.205, 18.48475, 3.926991, 1, 40000), +(25602, 0, 0, 26097, 3485.337, 4117.493, 18.48475, 3.543018, 1, 40000), +(25602, 0, 0, 26097, 3482.166, 4116.395, 18.48475, 3.612832, 1, 40000), +(25602, 0, 0, 26097, 3485.657, 4113.342, 18.48475, 3.124139, 1, 40000), +(25602, 0, 0, 26097, 3483.949, 4118.282, 18.48475, 3.682645, 1, 40000), +(25602, 0, 0, 26097, 3484.028, 4115.051, 18.48475, 3.316126, 1, 40000), +(25602, 0, 0, 26097, 3484.057, 4116.235, 18.48474, 3.560472, 1, 40000); + + +DELETE FROM `waypoints` WHERE `entry` =25849; + +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES +(25849, 1,3476.835, 4099.595, 20.46597, 'Fezzix Geartwist'), +(25849, 2,3469.259, 4098.425, 23.37573, 'Fezzix Geartwist'), +(25849, 3,3464.057, 4092.921, 28.09206, 'Fezzix Geartwist'), +(25849, 4,3468.28, 4083.907, 34.53652, 'Fezzix Geartwist'), +(25849, 5,3471.045, 4079.119, 38.06437, 'Fezzix Geartwist'), +(25849, 6,3476.159, 4076.131, 41.48104, 'Fezzix Geartwist'), +(25849, 7,3483.686, 4077.679, 42.78663, 'Fezzix Geartwist'), +(25849, 8,3487.812, 4082.535, 42.78663, 'Fezzix Geartwist'), +(25849, 9,3488.05, 4090.021, 42.78663, 'Fezzix Geartwist'), +(25849, 10,3486.571, 4098.099, 42.78663, 'Fezzix Geartwist'), +(25849, 11,3479.899, 4100.219, 42.78663, 'Fezzix Geartwist'), +(25849, 12,3477.16, 4103.97, 17.9091, 'Fezzix Geartwist'); + +DELETE FROM `creature` WHERE `guid`=@CGUID+0; +INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `MovementType`) VALUES +(@CGUID+0, 23837, 571, 1, 1, 4000.194, 4853.576, 26.05447, 5.585053, 120, 0, 0); -- 23837 (Area: 3537) + +DELETE FROM `event_scripts` WHERE `id`=17209; +INSERT INTO `event_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) VALUES +(17209, 3, 10, 25834, 3000000, 0, 4004.175, 4850.362, 26.05081,2.391101); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=45502; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(13, 2, 45502, 0, 0, 31, 0, 3, 25402, 0, 1, 0, 0, '', 'Seaforium Depth Charge Explosion does not knock back Nerub ar Sinkhole (South)'), +(13, 2, 45502, 0, 0, 31, 0, 3, 25403, 0, 1, 0, 0, '', 'Seaforium Depth Charge Explosion does not knock back Nerub ar Sinkhole (East)'), +(13, 2, 45502, 0, 0, 31, 0, 3, 25404, 0, 1, 0, 0, '', 'Seaforium Depth Charge Explosion does not knock back Nerub ar Sinkhole (West)'), +(13, 2, 45502, 0, 0, 31, 0, 3, 25405, 0, 1, 0, 0, '', 'Seaforium Depth Charge Explosion does not knock back Nerub ar Sinkhole (North)'); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=25401; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22, 3, 25401, 0, 0, 29, 1, 25402, 20, 0, 0, 0, 0, '', 'Seaforium Depth Charge - Only run SAI if Nerub ar Sinkhole (South) within 20 yards'), +(22, 4, 25401, 0, 0, 29, 1, 25403, 20, 0, 0, 0, 0, '', 'Seaforium Depth Charge - Only run SAI if Nerub ar Sinkhole (East) within 20 yards'), +(22, 5, 25401, 0, 0, 29, 1, 25404, 20, 0, 0, 0, 0, '', 'Seaforium Depth Charge - Only run SAI if Nerub ar Sinkhole (West) within 20 yards'), +(22, 6, 25401, 0, 0, 29, 1, 25405, 20, 0, 0, 0, 0, '', 'Seaforium Depth Charge - Only run SAI if Nerub ar Sinkhole (North) within 20 yards'); -- cgit v1.2.3 From f703877087c15929cadb58b6d1d2eeac8207b398 Mon Sep 17 00:00:00 2001 From: Dr-J Date: Tue, 9 Sep 2014 21:35:01 +0100 Subject: DB/SAI: Jenny (Load'er UP) Ok so found I needed to rescript this to as had not noticed there was already a script on Fezzix Geartwist for this quest, this sai has got same flaws as cpp version had, when npc gets attacked and evades looses crates aura (another example of the thing with auras getting removed at evade causing problems), --- sql/updates/world/2014_09_09_01_world_sai.sql | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 sql/updates/world/2014_09_09_01_world_sai.sql (limited to 'sql') diff --git a/sql/updates/world/2014_09_09_01_world_sai.sql b/sql/updates/world/2014_09_09_01_world_sai.sql new file mode 100644 index 00000000000..b286b0ad03f --- /dev/null +++ b/sql/updates/world/2014_09_09_01_world_sai.sql @@ -0,0 +1,8 @@ +UPDATE `creature_template` SET `ainame`='SmartAI', `scriptname`='' WHERE `entry` =25969; +DELETE FROM `smart_scripts` WHERE `entryorguid` =25969 AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `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 +(25969, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 11, 46340, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Jenny - On Just Summoned - Cast Crates Carried'), +(25969, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Jenny - On Just Summoned - Set Passive'), +(25969, 0, 2, 0, 32, 0, 100, 0, 50, 20000, 3000, 5000, 11, 46342, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Jenny - On Damage - Cast Drop Crate'), +(25969, 0, 3, 0, 23, 0, 100, 0, 46340, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Jenny - On Has No Aura (Crates Carried) - Despawn'), +(25969, 0, 4, 0, 75, 0, 100, 0, 0, 25849, 30, 0, 11, 46358, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 'Jenny - Within 30 yards of Fezzix Geartwist - Give Kill credit'); -- cgit v1.2.3 From 0609c25e490db0643d882f966739d8d83f6c0cfd Mon Sep 17 00:00:00 2001 From: Dr-J Date: Tue, 9 Sep 2014 22:59:46 +0100 Subject: DB/Misc; Perry Gatner add some additional lines, --- sql/updates/world/2014_09_09_03_world_misc.sql | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 sql/updates/world/2014_09_09_03_world_misc.sql (limited to 'sql') diff --git a/sql/updates/world/2014_09_09_03_world_misc.sql b/sql/updates/world/2014_09_09_03_world_misc.sql new file mode 100644 index 00000000000..0936e6087a0 --- /dev/null +++ b/sql/updates/world/2014_09_09_03_world_misc.sql @@ -0,0 +1,14 @@ +DELETE FROM `creature_text` WHERE `entry` =19228 AND `groupid`IN(47,48); +DELETE FROM `creature_text` WHERE `entry` =19228 AND `groupid`=0 AND `id`=4; + +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES +(19228, 0, 4, 'Whoa! Is all that applause for me? Thanks for coming out!', 12, 0, 100, 6, 0, 0, 'Perry Gatner',16326), +(19228, 47, 0, 'Used to be you couldn''t trust a goblin...', 12, 0, 100, 1, 0, 0, 'Perry Gatner',16671), +(19228, 48, 0, 'Who am I kiddin''? If you trade with goblins you''d better have iron plating in your coinpurse.', 12, 0, 100, 6, 0, 0, 'Perry Gatner',16672); + +DELETE FROM `smart_scripts` WHERE `entryorguid`=1927115 AND `source_type`=9; +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 +(1927115, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 47, 0, 0, 0, 0, 0, 19, 19228, 0, 0, 0, 0, 0, 0, 'Albert Quarksprocket - - Script 15 - Say Line 47 (Perry Gatner'), +(1927115, 9, 1, 0, 0, 0, 100, 0, 7000, 7000, 0, 0, 1, 48, 0, 0, 0, 0, 0, 19, 19228, 0, 0, 0, 0, 0, 0, 'Albert Quarksprocket - - Script 15 - Say Line 48 (Perry Gatner'); + +UPDATE `smart_scripts` SET `action_param3`=192715 WHERE `entryorguid`=19271 AND `source_type`=0 AND `id`=13; -- cgit v1.2.3 From 2f8587b1c4ab1b3cfe90d8b3593fa05df1747c7f Mon Sep 17 00:00:00 2001 From: DDuarte Date: Wed, 10 Sep 2014 00:55:36 +0100 Subject: DB/Locales: Correct multiple npc names for the 3.3.5 patch Closes #13075 --- .../2014_09_10_00_world_locales_creature_335.sql | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 sql/updates/world/2014_09_10_00_world_locales_creature_335.sql (limited to 'sql') diff --git a/sql/updates/world/2014_09_10_00_world_locales_creature_335.sql b/sql/updates/world/2014_09_10_00_world_locales_creature_335.sql new file mode 100644 index 00000000000..86f0e99b219 --- /dev/null +++ b/sql/updates/world/2014_09_10_00_world_locales_creature_335.sql @@ -0,0 +1,44 @@ +-- BLIZZ, CONSISTENCY PLS. +UPDATE `locales_creature` SET `name_loc1` = REPLACE(`name_loc1`, "[4.x 미사용]", ""); +UPDATE `locales_creature` SET `name_loc1` = REPLACE(`name_loc1`, "[4.x 폐기] ", ""); +UPDATE `locales_creature` SET `name_loc1` = REPLACE(`name_loc1`, " (4.x 미사용)", ""); +UPDATE `locales_creature` SET `name_loc1` = REPLACE(`name_loc1`, "zzOLD", "") WHERE `entry` NOT IN (22970, 22971, 15384, 21122); + +UPDATE `locales_creature` SET `name_loc2` = REPLACE(`name_loc2`, "[DEPRECATED 4.x] ", ""); +UPDATE `locales_creature` SET `name_loc2` = REPLACE(`name_loc2`, "[DEPRECATED 4.0] ", ""); +UPDATE `locales_creature` SET `name_loc2` = REPLACE(`name_loc2`, "[DEPRECATED 4.x]", ""); +UPDATE `locales_creature` SET `name_loc2` = REPLACE(`name_loc2`, "[DEPRECATED 4.0]", ""); +UPDATE `locales_creature` SET `name_loc2` = REPLACE(`name_loc2`, "[INUTILISÉ 4.x] ", ""); +UPDATE `locales_creature` SET `name_loc2` = REPLACE(`name_loc2`, "[Inutilisé pour 4.x] ", ""); +UPDATE `locales_creature` SET `name_loc2` = REPLACE(`name_loc2`, "[INUTILISÉ pour 4.x] ", ""); +UPDATE `locales_creature` SET `name_loc2` = REPLACE(`name_loc2`, "[VIEUX]", "") WHERE `entry` NOT IN (22970, 22971, 15384, 21122); + +UPDATE `locales_creature` SET `name_loc3` = REPLACE(`name_loc3`, "[Deprecated for 4.x] ", ""); +UPDATE `locales_creature` SET `name_loc3` = REPLACE(`name_loc3`, "[DEPRECATED 4.0] ", ""); +UPDATE `locales_creature` SET `name_loc3` = REPLACE(`name_loc3`, "[INUTILISÉ 4.x] ", ""); +UPDATE `locales_creature` SET `name_loc3` = REPLACE(`name_loc3`, "[Inutilisé pour 4.x] ", ""); + +UPDATE `locales_creature` SET `name_loc5` = REPLACE(`name_loc5`, "[Deprecated for 4.x] ", ""); +UPDATE `locales_creature` SET `name_loc5` = REPLACE(`name_loc5`, "[Deprecated for 4.x]", ""); +UPDATE `locales_creature` SET `name_loc5` = REPLACE(`name_loc5`, "[UNUSED 4.x ]", ""); +UPDATE `locales_creature` SET `name_loc5` = REPLACE(`name_loc5`, "(Deprecated in 4.x)", ""); +UPDATE `locales_creature` SET `name_loc5` = REPLACE(`name_loc5`, "zzOLD", "") WHERE `entry` NOT IN (22970, 22971, 15384, 21122); + +UPDATE `locales_creature` SET `name_loc6` = REPLACE(`name_loc6`, "[Deprecated for 4.x] ", ""); +UPDATE `locales_creature` SET `name_loc6` = REPLACE(`name_loc6`, "[Deprecated for 4.x]", ""); +UPDATE `locales_creature` SET `name_loc6` = REPLACE(`name_loc6`, "[UNUSED 4.x ]", ""); +UPDATE `locales_creature` SET `name_loc6` = REPLACE(`name_loc6`, " (Deprecated in 4.x)", ""); +UPDATE `locales_creature` SET `name_loc6` = REPLACE(`name_loc6`, "zzOLD", "") WHERE `entry` NOT IN (22970, 22971, 15384, 21122); + +UPDATE `locales_creature` SET `name_loc7` = REPLACE(`name_loc7`, "[Deprecated for 4.x] ", ""); +UPDATE `locales_creature` SET `name_loc7` = REPLACE(`name_loc7`, "[Deprecated for 4.x]", ""); +UPDATE `locales_creature` SET `name_loc7` = REPLACE(`name_loc7`, "[UNUSED 4.x ]", ""); +UPDATE `locales_creature` SET `name_loc7` = REPLACE(`name_loc7`, " (Deprecated in 4.x)", ""); +UPDATE `locales_creature` SET `name_loc7` = REPLACE(`name_loc7`, "zzOLD", "") WHERE `entry` NOT IN (22970, 22971, 15384, 21122); + +UPDATE `locales_creature` SET `name_loc8` = REPLACE(`name_loc8`, "[Deprecated for 4.x] ", ""); +UPDATE `locales_creature` SET `name_loc8` = REPLACE(`name_loc8`, "[Deprecated for 4.x]", ""); +UPDATE `locales_creature` SET `name_loc8` = REPLACE(`name_loc8`, "[UNUSED 4.x ]", ""); +UPDATE `locales_creature` SET `name_loc8` = REPLACE(`name_loc8`, "[UNUSED] ", "") WHERE `entry` IN (4318, 4115); +UPDATE `locales_creature` SET `name_loc8` = REPLACE(`name_loc8`, " (Deprecated in 4.x)", ""); +UPDATE `locales_creature` SET `name_loc8` = REPLACE(`name_loc8`, "zzOLD", "") WHERE `entry` NOT IN (22970, 22971, 15384, 21122); -- cgit v1.2.3 From b7866336010f1346a43a95a977ee5eb9eda74467 Mon Sep 17 00:00:00 2001 From: DDuarte Date: Wed, 10 Sep 2014 01:05:18 +0100 Subject: DB/Locales: Correct multiple quest names for the 3.3.5 patch Ref #13075 --- sql/updates/world/2014_09_10_01_world_locales_quest_335.sql | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 sql/updates/world/2014_09_10_01_world_locales_quest_335.sql (limited to 'sql') diff --git a/sql/updates/world/2014_09_10_01_world_locales_quest_335.sql b/sql/updates/world/2014_09_10_01_world_locales_quest_335.sql new file mode 100644 index 00000000000..bf532ef130a --- /dev/null +++ b/sql/updates/world/2014_09_10_01_world_locales_quest_335.sql @@ -0,0 +1,7 @@ +UPDATE `locales_quest` SET `Title_loc2` = REPLACE(`Title_loc2`, "[PÉRIMÉ 4.x]", ""); +UPDATE `locales_quest` SET `Title_loc6` = REPLACE(`Title_loc6`, "[DEPRECATED in 4.x] ", ""); +UPDATE `locales_quest` SET `Title_loc6` = REPLACE(`Title_loc6`, "[DEPRECATED 4.x] ", ""); +UPDATE `locales_quest` SET `Title_loc7` = REPLACE(`Title_loc7`, "[DEPRECATED in 4.x] ", ""); +UPDATE `locales_quest` SET `Title_loc7` = REPLACE(`Title_loc7`, "[DEPRECATED 4.x] ", ""); +UPDATE `locales_quest` SET `Title_loc8` = REPLACE(`Title_loc8`, "[DEPRECATED in 4.x] ", ""); +UPDATE `locales_quest` SET `Title_loc8` = REPLACE(`Title_loc8`, "[DEPRECATED 4.x] ", ""); -- cgit v1.2.3 From afbb3f6ae563ad629d31271209b50b49f5326627 Mon Sep 17 00:00:00 2001 From: Dr-J Date: Wed, 10 Sep 2014 19:34:48 +0100 Subject: DB/Misc: Cenarion Thicket * Add strange aura to spell_area for Cenarion Thicket (someone had tried getting the druids to cast this on themselves in sai whoever did obviously did not read this AttributesEx3: 0x00000100 (SPELL_ATTR3_ONLY_TARGET_PLAYERS) * However even when aura is active it still would not hit druids only the Broken Corpses, found that the druids should not even have this aura (proper auras are permament feign death + blue radiation), also in sniff unit_flags2 is 2049 (we had 2048) and dynamic flags 0 (we had 40) * Also removing stun from unit flags, this makes no difference in game as npc gets those flags from feign death --- sql/updates/world/2014_09_10_00_world_misc.sql | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 sql/updates/world/2014_09_10_00_world_misc.sql (limited to 'sql') diff --git a/sql/updates/world/2014_09_10_00_world_misc.sql b/sql/updates/world/2014_09_10_00_world_misc.sql new file mode 100644 index 00000000000..0aaec188e09 --- /dev/null +++ b/sql/updates/world/2014_09_10_00_world_misc.sql @@ -0,0 +1,10 @@ +UPDATE `creature_template` SET `AIName`='' WHERE `entry`=18490; +DELETE FROM `smart_scripts` WHERE `entryorguid`=18490 AND `source_type`=0; +UPDATE `creature_template` SET `unit_flags`=536871680, `unit_flags2`=2049, `dynamicflags`=0 WHERE `entry`=18490; +UPDATE `creature_template_addon` SET `auras`='29266 32423' WHERE `entry`=18490; + +DELETE FROM `spell_area` WHERE `spell`=32407; +INSERT INTO `spell_area` (`spell`, `area`, `quest_start`, `quest_end`, `aura_spell`, `racemask`, `gender`, `autocast`, `quest_start_status`, `quest_end_status`) VALUES +(32407, 3674, 0, 0, 0, 0, 2, 1, 64, 11); + +UPDATE `smart_scripts` SET `action_param3`=1927115 WHERE `entryorguid`=19271 AND `source_type`=0 AND `id`=13; -- cgit v1.2.3 From 449d7c196a7bfdedbc94edbbfd3ace3a53d9fffe Mon Sep 17 00:00:00 2001 From: Vincent-Michael Date: Wed, 10 Sep 2014 22:37:33 +0200 Subject: SQL: Fix wrong sql count order --- sql/updates/world/2014_09_10_00_world_misc.sql | 10 ---------- sql/updates/world/2014_09_10_01_world_locales_quest_335.sql | 7 ------- sql/updates/world/2014_09_10_01_world_misc.sql | 10 ++++++++++ sql/updates/world/2014_09_10_02_world_locales_quest_335.sql | 7 +++++++ 4 files changed, 17 insertions(+), 17 deletions(-) delete mode 100644 sql/updates/world/2014_09_10_00_world_misc.sql delete mode 100644 sql/updates/world/2014_09_10_01_world_locales_quest_335.sql create mode 100644 sql/updates/world/2014_09_10_01_world_misc.sql create mode 100644 sql/updates/world/2014_09_10_02_world_locales_quest_335.sql (limited to 'sql') diff --git a/sql/updates/world/2014_09_10_00_world_misc.sql b/sql/updates/world/2014_09_10_00_world_misc.sql deleted file mode 100644 index 0aaec188e09..00000000000 --- a/sql/updates/world/2014_09_10_00_world_misc.sql +++ /dev/null @@ -1,10 +0,0 @@ -UPDATE `creature_template` SET `AIName`='' WHERE `entry`=18490; -DELETE FROM `smart_scripts` WHERE `entryorguid`=18490 AND `source_type`=0; -UPDATE `creature_template` SET `unit_flags`=536871680, `unit_flags2`=2049, `dynamicflags`=0 WHERE `entry`=18490; -UPDATE `creature_template_addon` SET `auras`='29266 32423' WHERE `entry`=18490; - -DELETE FROM `spell_area` WHERE `spell`=32407; -INSERT INTO `spell_area` (`spell`, `area`, `quest_start`, `quest_end`, `aura_spell`, `racemask`, `gender`, `autocast`, `quest_start_status`, `quest_end_status`) VALUES -(32407, 3674, 0, 0, 0, 0, 2, 1, 64, 11); - -UPDATE `smart_scripts` SET `action_param3`=1927115 WHERE `entryorguid`=19271 AND `source_type`=0 AND `id`=13; diff --git a/sql/updates/world/2014_09_10_01_world_locales_quest_335.sql b/sql/updates/world/2014_09_10_01_world_locales_quest_335.sql deleted file mode 100644 index bf532ef130a..00000000000 --- a/sql/updates/world/2014_09_10_01_world_locales_quest_335.sql +++ /dev/null @@ -1,7 +0,0 @@ -UPDATE `locales_quest` SET `Title_loc2` = REPLACE(`Title_loc2`, "[PÉRIMÉ 4.x]", ""); -UPDATE `locales_quest` SET `Title_loc6` = REPLACE(`Title_loc6`, "[DEPRECATED in 4.x] ", ""); -UPDATE `locales_quest` SET `Title_loc6` = REPLACE(`Title_loc6`, "[DEPRECATED 4.x] ", ""); -UPDATE `locales_quest` SET `Title_loc7` = REPLACE(`Title_loc7`, "[DEPRECATED in 4.x] ", ""); -UPDATE `locales_quest` SET `Title_loc7` = REPLACE(`Title_loc7`, "[DEPRECATED 4.x] ", ""); -UPDATE `locales_quest` SET `Title_loc8` = REPLACE(`Title_loc8`, "[DEPRECATED in 4.x] ", ""); -UPDATE `locales_quest` SET `Title_loc8` = REPLACE(`Title_loc8`, "[DEPRECATED 4.x] ", ""); diff --git a/sql/updates/world/2014_09_10_01_world_misc.sql b/sql/updates/world/2014_09_10_01_world_misc.sql new file mode 100644 index 00000000000..0aaec188e09 --- /dev/null +++ b/sql/updates/world/2014_09_10_01_world_misc.sql @@ -0,0 +1,10 @@ +UPDATE `creature_template` SET `AIName`='' WHERE `entry`=18490; +DELETE FROM `smart_scripts` WHERE `entryorguid`=18490 AND `source_type`=0; +UPDATE `creature_template` SET `unit_flags`=536871680, `unit_flags2`=2049, `dynamicflags`=0 WHERE `entry`=18490; +UPDATE `creature_template_addon` SET `auras`='29266 32423' WHERE `entry`=18490; + +DELETE FROM `spell_area` WHERE `spell`=32407; +INSERT INTO `spell_area` (`spell`, `area`, `quest_start`, `quest_end`, `aura_spell`, `racemask`, `gender`, `autocast`, `quest_start_status`, `quest_end_status`) VALUES +(32407, 3674, 0, 0, 0, 0, 2, 1, 64, 11); + +UPDATE `smart_scripts` SET `action_param3`=1927115 WHERE `entryorguid`=19271 AND `source_type`=0 AND `id`=13; diff --git a/sql/updates/world/2014_09_10_02_world_locales_quest_335.sql b/sql/updates/world/2014_09_10_02_world_locales_quest_335.sql new file mode 100644 index 00000000000..bf532ef130a --- /dev/null +++ b/sql/updates/world/2014_09_10_02_world_locales_quest_335.sql @@ -0,0 +1,7 @@ +UPDATE `locales_quest` SET `Title_loc2` = REPLACE(`Title_loc2`, "[PÉRIMÉ 4.x]", ""); +UPDATE `locales_quest` SET `Title_loc6` = REPLACE(`Title_loc6`, "[DEPRECATED in 4.x] ", ""); +UPDATE `locales_quest` SET `Title_loc6` = REPLACE(`Title_loc6`, "[DEPRECATED 4.x] ", ""); +UPDATE `locales_quest` SET `Title_loc7` = REPLACE(`Title_loc7`, "[DEPRECATED in 4.x] ", ""); +UPDATE `locales_quest` SET `Title_loc7` = REPLACE(`Title_loc7`, "[DEPRECATED 4.x] ", ""); +UPDATE `locales_quest` SET `Title_loc8` = REPLACE(`Title_loc8`, "[DEPRECATED in 4.x] ", ""); +UPDATE `locales_quest` SET `Title_loc8` = REPLACE(`Title_loc8`, "[DEPRECATED 4.x] ", ""); -- cgit v1.2.3 From 8934593e2d9db7739034b623e179f1cf627a8eb7 Mon Sep 17 00:00:00 2001 From: Nyeriah Date: Thu, 11 Sep 2014 00:31:22 -0300 Subject: DB/Conditions: Fix up conditions for Yogg-Saron's portal spells after latest changes to the instance data --- sql/updates/world/2014_09_11_00_world_conditions.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 sql/updates/world/2014_09_11_00_world_conditions.sql (limited to 'sql') diff --git a/sql/updates/world/2014_09_11_00_world_conditions.sql b/sql/updates/world/2014_09_11_00_world_conditions.sql new file mode 100644 index 00000000000..65c502ece07 --- /dev/null +++ b/sql/updates/world/2014_09_11_00_world_conditions.sql @@ -0,0 +1 @@ +UPDATE `conditions` SET `ConditionValue1` = 46 WHERE `SourceEntry` IN (63989, 63997, 63998); -- cgit v1.2.3 From 4ce62b8a6673911ae2c468b7d5ee08cbdde67abd Mon Sep 17 00:00:00 2001 From: Vincent-Michael Date: Thu, 11 Sep 2014 06:24:01 +0200 Subject: Remove BOM from 2014_09_11_00_world_conditions.sql --- sql/updates/world/2014_09_11_00_world_conditions.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sql') diff --git a/sql/updates/world/2014_09_11_00_world_conditions.sql b/sql/updates/world/2014_09_11_00_world_conditions.sql index 65c502ece07..17052ef159f 100644 --- a/sql/updates/world/2014_09_11_00_world_conditions.sql +++ b/sql/updates/world/2014_09_11_00_world_conditions.sql @@ -1 +1 @@ -UPDATE `conditions` SET `ConditionValue1` = 46 WHERE `SourceEntry` IN (63989, 63997, 63998); +UPDATE `conditions` SET `ConditionValue1` = 46 WHERE `SourceEntry` IN (63989, 63997, 63998); -- cgit v1.2.3 From ce97e9194c5be3b02c24b4e095bb219f41874011 Mon Sep 17 00:00:00 2001 From: Nyeriah Date: Thu, 11 Sep 2014 02:39:57 -0300 Subject: Scripts/Gundrak: Eck the Ferocious updated to EventMap/BossAI - Moved his spawn handling to instance script --- .../world/2014_09_11_00_world_conditions.sql | 2 +- .../2014_09_11_01_world_creature_template.sql | 1 + src/server/scripts/Northrend/Gundrak/boss_eck.cpp | 153 +++++++-------------- src/server/scripts/Northrend/Gundrak/gundrak.h | 6 +- .../scripts/Northrend/Gundrak/instance_gundrak.cpp | 19 ++- 5 files changed, 68 insertions(+), 113 deletions(-) create mode 100644 sql/updates/world/2014_09_11_01_world_creature_template.sql (limited to 'sql') diff --git a/sql/updates/world/2014_09_11_00_world_conditions.sql b/sql/updates/world/2014_09_11_00_world_conditions.sql index 17052ef159f..bd788917487 100644 --- a/sql/updates/world/2014_09_11_00_world_conditions.sql +++ b/sql/updates/world/2014_09_11_00_world_conditions.sql @@ -1 +1 @@ -UPDATE `conditions` SET `ConditionValue1` = 46 WHERE `SourceEntry` IN (63989, 63997, 63998); +UPDATE `conditions` SET `ConditionValue1` = 46 WHERE `SourceEntry` AND `SourceTypeOrReferenceId` = 18 IN (63989, 63997, 63998); diff --git a/sql/updates/world/2014_09_11_01_world_creature_template.sql b/sql/updates/world/2014_09_11_01_world_creature_template.sql new file mode 100644 index 00000000000..59d0bf9d3dd --- /dev/null +++ b/sql/updates/world/2014_09_11_01_world_creature_template.sql @@ -0,0 +1 @@ +UPDATE `creature_template` SET `ScriptName` = '' WHERE `entry` = 29920; diff --git a/src/server/scripts/Northrend/Gundrak/boss_eck.cpp b/src/server/scripts/Northrend/Gundrak/boss_eck.cpp index 0783a79b381..4803cb4934f 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_eck.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_eck.cpp @@ -28,146 +28,93 @@ enum Spells SPELL_ECK_SPRING_2 = 55837 //Eck leaps at a distant target. }; -static Position EckSpawnPoint = { 1643.877930f, 936.278015f, 107.204948f, 0.668432f }; +enum Events +{ + EVENT_BITE = 1, + EVENT_SPIT, + EVENT_SPRING, + EVENT_BERSERK +}; class boss_eck : public CreatureScript { public: boss_eck() : CreatureScript("boss_eck") { } - CreatureAI* GetAI(Creature* creature) const override + struct boss_eckAI : public BossAI { - return GetInstanceAI(creature); - } - - struct boss_eckAI : public ScriptedAI - { - boss_eckAI(Creature* creature) : ScriptedAI(creature) + boss_eckAI(Creature* creature) : BossAI(creature, DATA_ECK_THE_FEROCIOUS_EVENT) { - Initialize(); - instance = creature->GetInstanceScript(); - } - - void Initialize() - { - uiBerserkTimer = urand(60 * IN_MILLISECONDS, 90 * IN_MILLISECONDS); //60-90 secs according to wowwiki - uiBiteTimer = 5 * IN_MILLISECONDS; - uiSpitTimer = 10 * IN_MILLISECONDS; - uiSpringTimer = 8 * IN_MILLISECONDS; - - bBerserk = false; + Berserk = false; } - uint32 uiBerserkTimer; - uint32 uiBiteTimer; - uint32 uiSpitTimer; - uint32 uiSpringTimer; - - bool bBerserk; - - InstanceScript* instance; - void Reset() override { - Initialize(); - - instance->SetData(DATA_ECK_THE_FEROCIOUS_EVENT, NOT_STARTED); + _Reset(); + Berserk = false; } void EnterCombat(Unit* /*who*/) override { - instance->SetData(DATA_ECK_THE_FEROCIOUS_EVENT, IN_PROGRESS); + _EnterCombat(); + events.ScheduleEvent(EVENT_BITE, 5 * IN_MILLISECONDS); + events.ScheduleEvent(EVENT_SPIT, 10 * IN_MILLISECONDS); + events.ScheduleEvent(EVENT_SPRING, 8 * IN_MILLISECONDS); + events.ScheduleEvent(EVENT_BERSERK, urand(60 * IN_MILLISECONDS, 90 * IN_MILLISECONDS)); //60-90 secs according to wowwiki } - void UpdateAI(uint32 diff) override + void DamageTaken(Unit* /*attacker*/, uint32& damage) override { - //Return since we have no target - if (!UpdateVictim()) - return; - - if (uiBiteTimer <= diff) + if (me->HealthBelowPctDamaged(20, damage) && !Berserk) { - DoCastVictim(SPELL_ECK_BITE); - uiBiteTimer = urand(8*IN_MILLISECONDS, 12*IN_MILLISECONDS); - } else uiBiteTimer -= diff; - - if (uiSpitTimer <= diff) - { - DoCastVictim(SPELL_ECK_SPIT); - uiSpitTimer = urand(6*IN_MILLISECONDS, 14*IN_MILLISECONDS); - } else uiSpitTimer -= diff; - - if (uiSpringTimer <= diff) - { - Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1); - if (target && target->GetTypeId() == TYPEID_PLAYER) - { - DoCast(target, RAND(SPELL_ECK_SPRING_1, SPELL_ECK_SPRING_2)); - uiSpringTimer = urand(5*IN_MILLISECONDS, 10*IN_MILLISECONDS); - } - } else uiSpringTimer -= diff; + events.RescheduleEvent(EVENT_BERSERK, 1000); + Berserk = true; + } + } - //Berserk on timer or 20% of health - if (!bBerserk) + void ExecuteEvent(uint32 eventId) override + { + switch (eventId) { - if (uiBerserkTimer <= diff) - { + case EVENT_BITE: + DoCastVictim(SPELL_ECK_BITE); + events.ScheduleEvent(EVENT_BITE, urand(8 * IN_MILLISECONDS, 12 * IN_MILLISECONDS)); + break; + case EVENT_SPIT: + DoCastVictim(SPELL_ECK_SPIT); + events.ScheduleEvent(EVENT_SPIT, urand(6 * IN_MILLISECONDS, 14 * IN_MILLISECONDS)); + break; + case EVENT_SPRING: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1)) + if (target->GetTypeId() == TYPEID_PLAYER) + DoCast(target, RAND(SPELL_ECK_SPRING_1, SPELL_ECK_SPRING_2)); + events.ScheduleEvent(EVENT_SPRING, urand(5 * IN_MILLISECONDS, 10 * IN_MILLISECONDS)); + break; + case EVENT_BERSERK: DoCast(me, SPELL_ECK_BERSERK); - bBerserk = true; - } - else - { - uiBerserkTimer -= diff; - if (HealthBelowPct(20)) - { - DoCast(me, SPELL_ECK_BERSERK); - bBerserk = true; - } - } + Berserk = true; + break; + default: + break; } - - DoMeleeAttackIfReady(); } void JustDied(Unit* /*killer*/) override { - instance->SetData(DATA_ECK_THE_FEROCIOUS_EVENT, DONE); + _JustDied(); } - }; - -}; -class npc_ruins_dweller : public CreatureScript -{ -public: - npc_ruins_dweller() : CreatureScript("npc_ruins_dweller") { } + private: + bool Berserk; + }; CreatureAI* GetAI(Creature* creature) const override { - return GetInstanceAI(creature); + return GetInstanceAI(creature); } - - struct npc_ruins_dwellerAI : public ScriptedAI - { - npc_ruins_dwellerAI(Creature* creature) : ScriptedAI(creature) - { - instance = creature->GetInstanceScript(); - } - - InstanceScript* instance; - - void JustDied(Unit* /*killer*/) override - { - instance->SetData64(DATA_RUIN_DWELLER_DIED, me->GetGUID()); - if (instance->GetData(DATA_ALIVE_RUIN_DWELLERS) == 0) - me->SummonCreature(CREATURE_ECK, EckSpawnPoint, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300*IN_MILLISECONDS); - } - }; - }; void AddSC_boss_eck() { new boss_eck(); - new npc_ruins_dweller(); } diff --git a/src/server/scripts/Northrend/Gundrak/gundrak.h b/src/server/scripts/Northrend/Gundrak/gundrak.h index 8f269705a45..fffeca82f39 100644 --- a/src/server/scripts/Northrend/Gundrak/gundrak.h +++ b/src/server/scripts/Northrend/Gundrak/gundrak.h @@ -26,8 +26,7 @@ enum Data DATA_MOORABI_EVENT, DATA_DRAKKARI_COLOSSUS_EVENT, DATA_GAL_DARAH_EVENT, - DATA_ECK_THE_FEROCIOUS_EVENT, - DATA_ALIVE_RUIN_DWELLERS + DATA_ECK_THE_FEROCIOUS_EVENT }; enum Data64 @@ -39,8 +38,7 @@ enum Data64 DATA_MOORABI_STATUE, DATA_DRAKKARI_COLOSSUS_STATUE, DATA_DRAKKARI_COLOSSUS, - DATA_RUIN_DWELLER_DIED, - DATA_STATUE_ACTIVATE, + DATA_STATUE_ACTIVATE }; enum mainCreatures diff --git a/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp b/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp index e5efdad27f3..ee3069b5eb2 100644 --- a/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp +++ b/src/server/scripts/Northrend/Gundrak/instance_gundrak.cpp @@ -31,6 +31,8 @@ 4 - Eck the Ferocious */ +static Position EckSpawnPoint = {1643.877930f, 936.278015f, 107.204948f, 0.668432f}; + class instance_gundrak : public InstanceMapScript { public: @@ -274,6 +276,17 @@ public: } } + void OnUnitDeath(Unit* unit) override + { + if (unit->GetEntry() == CREATURE_RUIN_DWELLER) + { + DwellerGUIDs.erase(unit->GetGUID()); + + if (DwellerGUIDs.empty()) + unit->SummonCreature(CREATURE_ECK, EckSpawnPoint, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300 * IN_MILLISECONDS); + } + } + void SetData(uint32 type, uint32 data) override { switch (type) @@ -329,9 +342,7 @@ public: void SetData64(uint32 type, uint64 data) override { - if (type == DATA_RUIN_DWELLER_DIED) - DwellerGUIDs.erase(data); - else if (type == DATA_STATUE_ACTIVATE) + if (type == DATA_STATUE_ACTIVATE) { toActivate = data; timer = 3500; @@ -353,8 +364,6 @@ public: return m_auiEncounter[3]; case DATA_ECK_THE_FEROCIOUS_EVENT: return m_auiEncounter[4]; - case DATA_ALIVE_RUIN_DWELLERS: - return DwellerGUIDs.size(); } return 0; -- cgit v1.2.3 From bd5e7cc98f3cd700e8b918e17cace4b77d84b9dd Mon Sep 17 00:00:00 2001 From: Nyeriah Date: Thu, 11 Sep 2014 02:43:15 -0300 Subject: SQL: Fix up my failure at 2014_09_11_00_world_conditions.sql --- sql/updates/world/2014_09_11_00_world_conditions.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sql') diff --git a/sql/updates/world/2014_09_11_00_world_conditions.sql b/sql/updates/world/2014_09_11_00_world_conditions.sql index bd788917487..c66d570900a 100644 --- a/sql/updates/world/2014_09_11_00_world_conditions.sql +++ b/sql/updates/world/2014_09_11_00_world_conditions.sql @@ -1 +1 @@ -UPDATE `conditions` SET `ConditionValue1` = 46 WHERE `SourceEntry` AND `SourceTypeOrReferenceId` = 18 IN (63989, 63997, 63998); +UPDATE `conditions` SET `ConditionValue1` = 46 WHERE `SourceEntry` IN (63989, 63997, 63998) AND `SourceTypeOrReferenceId` = 18; -- cgit v1.2.3 From 137c8a7de9beaa90441c5aa38e14ad0b09bebffe Mon Sep 17 00:00:00 2001 From: Dr-J Date: Thu, 11 Sep 2014 14:09:13 +0100 Subject: Convert Mount Vendor script to DB Move CPP script npc_mount_vendor to db * Sniffed gossip menu for Veron Amberstill as we did not have this * There is more than one text per gossip for these, readded all gossip menus we have to include the ones that where not in db already * Conditions for vendor option and texts to only sell to elegible to players and show correct texts We do not have text for Dreanei or dwarf have not checked gnome one since that one had already been moved to db since npc had sai closes #13088 --- sql/updates/world/2014_09_11_02_world_misc.sql | 123 +++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 sql/updates/world/2014_09_11_02_world_misc.sql (limited to 'sql') diff --git a/sql/updates/world/2014_09_11_02_world_misc.sql b/sql/updates/world/2014_09_11_02_world_misc.sql new file mode 100644 index 00000000000..5c5fab0ecfd --- /dev/null +++ b/sql/updates/world/2014_09_11_02_world_misc.sql @@ -0,0 +1,123 @@ +-- Set Values +-- Human +SET @HRace := 1; +SET @HFaction := 72; +-- Dwarf +SET @DWRace := 4; +SET @DWFaction := 47; +-- Orc +SET @ORace := 2; +SET @OFaction := 76; +-- Tauren +SET @TARace := 32; +SET @TAFaction := 81; +-- Night Elf +SET @NRace := 8; +SET @NFaction := 69; +-- Undead +SET @URace := 16; +SET @UFaction := 68; +-- Troll +SET @TRRace := 128; +SET @TRFaction := 530; +-- Gnome (Milli Featherwhistle already uses db gossip and conditions as has sai script +-- Blood Elf +SET @BRace := 512; +SET @BFaction := 911; +-- Dreanei +SET @DRRace := 1024; +SET @DRFaction := 930; + +UPDATE `creature_template` SET `ScriptName`='' WHERE `entry` IN(384,1261,1460,2357,3662,3685,4730,4731,4885,7952,16264,17584); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN(14,15) AND `SourceGroup` IN(4004,4001,3161,3162,4006,4005,3185,8098,8213,3185); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(15, 4004, 0, 0, 0, 16, 0, @HRace, 0, 0, 0, 0, 0, '', 'Gossip Option - Show Option if Player is Human'), +(15, 4004, 0, 0, 1, 5, 0, @HFaction, 128, 0, 0, 0, 0, '', 'Gossip Option - Show Option if player is Exalted with Stormwind'), +(15, 4001, 0, 0, 0, 16, 0, @DWRace, 0, 0, 0, 0, 0, '', 'Gossip Option - Show Option if Player is Dwarf'), +(15, 4001, 0, 0, 1, 5, 0, @DWFaction, 128, 0, 0, 0, 0, '', 'Gossip Option - Show Option if player is Exalted with Ironforge'), +(15, 3161, 0, 0, 0, 16, 0, @ORace, 0, 0, 0, 0, 0, '', 'Gossip Option - Show Option if Player is Orc'), +(15, 3161, 0, 0, 1, 5, 0, @OFaction, 128, 0, 0, 0, 0, '', 'Gossip Option - Show Option if player is Exalted with Orgrimmar'), +(15, 4006, 0, 0, 0, 16, 0, @TARace, 0, 0, 0, 0, 0, '', 'Gossip Option - Show Option if Player is Tauren'), +(15, 4006, 0, 0, 1, 5, 0, @TAFaction, 128, 0, 0, 0, 0, '', 'Gossip Option - Show Option if player is Exalted with Thunderbluff'), +(15, 3185, 0, 0, 0, 16, 0, @NRace, 0, 0, 0, 0, 0, '', 'Gossip Option - Show Option if Player is Night Elf'), +(15, 3185, 0, 0, 1, 5, 0, @NFaction, 128, 0, 0, 0, 0, '', 'Gossip Option - Show Option if player is Exalted with Darnassus'), +(15, 4005, 0, 0, 0, 16, 0, @URace, 0, 0, 0, 0, 0, '', 'Gossip Option - Show Option if Player is Undead'), +(15, 4005, 0, 0, 1, 5, 0, @UFaction, 128, 0, 0, 0, 0, '', 'Gossip Option - Show Option if player is Exalted with Undercity'), +(15, 3162, 0, 0, 0, 16, 0, @TRRace, 0, 0, 0, 0, 0, '', 'Gossip Option - Show Option if Player is Troll'), +(15, 3162, 0, 0, 1, 5, 0, @TRFaction, 128, 0, 0, 0, 0, '', 'Gossip Option - Show Option if player is Exalted with Sen Jin'), +(15, 8098, 0, 0, 0, 16, 0, @BRace, 0, 0, 0, 0, 0, '', 'Gossip Option - Show Option if Player is Blood Elf'), +(15, 8098, 0, 0, 1, 5, 0, @BFaction, 128, 0, 0, 0, 0, '', 'Gossip Option - Show Option if player is Exalted with Silvermoon City'), +(15, 8213, 0, 0, 0, 16, 0, @DRRace, 0, 0, 0, 0, 0, '', 'Gossip Option - Show Option if Player is Dreanei'), +(15, 8213, 0, 0, 1, 5, 0, @DRFaction, 128, 0, 0, 0, 0, '', 'Gossip Option - Show Option if player is Exalted with Exodar'), + +(14, 4004, 4855, 0, 0, 16, 0, @HRace, 0, 0, 1, 0, 0, '', 'NPC Text - Show text if Player is Human'), +(14, 4004, 4855, 0, 0, 5, 0, @HFaction, 128, 0, 1, 0, 0, '', 'NPC Text - Show text if player is not Exalted with Stormwind'), +(14, 4006, 4840, 0, 0, 16, 0, @TARace, 0, 0, 1, 0, 0, '', 'NPC Text - Show text if Player is not Tauren'), +(14, 4006, 4840, 0, 0, 5, 0, @TAFaction, 128, 0, 1, 0, 0, '', 'NPC Text - Show text if player is not Exalted with Thunderbluff'), +(14, 8098, 10305, 0, 0, 16, 0, @BRace, 0, 0, 1, 0, 0, '', 'NPC Text - Show text if Player is not Blood Elf'), +(14, 8098, 10305, 0, 0, 5, 0, @BFaction, 128, 0, 1, 0, 0, '', 'NPC Text - Show text if player is not Exalted with Silvermoon'), +(14, 4005, 5840, 0, 0, 16, 0, @URace, 0, 0, 1, 0, 0, '', 'NPC Text - Show text if Player is not Undead'), +(14, 4005, 5840, 0, 0, 5, 0, @UFaction, 128, 0, 1, 0, 0, '', 'NPC Text - Show text if player is not Exalted with Undercity'), +(14, 3161, 3841, 0, 0, 16, 0, @ORace, 0, 0, 1, 0, 0, '', 'NPC Text - Show text if Player is not Orc'), +(14, 3161, 3841, 0, 0, 5, 0, @OFaction, 128, 0, 1, 0, 0, '', 'NPC Text - Show text if player is not Exalted with Ogrimmar'), +(14, 3185, 5844, 0, 0, 16, 0, @NRace, 0, 0, 1, 0, 0, '', 'NPC Text - Show text if Player is not Night Elf'), +(14, 3185, 5844, 0, 0, 5, 0, @NFaction, 128, 0, 1, 0, 0, '', 'NPC Text - Show text if player is not Exalted with Darnassus'), +(14, 3162, 5842, 0, 0, 16, 0, @TRRace, 0, 0, 1, 0, 0, '', 'NPC Text - Show text if Player is not Troll'), +(14, 3162, 5842, 0, 0, 5, 0, @TRFaction, 128, 0, 1, 0, 0, '', 'NPC Text - Show text if player is not Exalted with Darkspear Trolls'), + + +(14, 4004, 4859, 0, 0, 16, 0, @HRace, 0, 0, 0, 0, 0, '', 'NPC Text - Show text if Player is Human'), +(14, 4004, 4859, 0, 1, 5, 0, @HFaction, 128, 0, 0, 0, 0, '', 'NPC Text - Show text if player is Exalted with Stormwind'), +(14, 4006, 4862, 0, 0, 16, 0, @TARace, 0, 0, 0, 0, 0, '', 'NPC Text - Show text if Player is Tauren'), +(14, 4006, 4862, 0, 1, 5, 0, @TAFaction, 128, 0, 0, 0, 0, '', 'NPC Text - Show text if player is Exalted with Thunderbluff'), +(14, 8098, 10011, 0, 0, 16, 0, @BRace, 0, 0, 0, 0, 0, '', 'NPC Text - Show text if Player is Blood Elf'), +(14, 8098, 10011, 0, 1, 5, 0, @BFaction, 128, 0, 0, 0, 0, '', 'NPC Text - Show text if player is Exalted with Silvermoon'), +(14, 4005, 4869, 0, 0, 16, 0, @URace, 0, 0, 0, 0, 0, '', 'NPC Text - Show text if Player is Undead'), +(14, 4005, 4869, 0, 1, 5, 0, @UFaction, 128, 0, 0, 0, 0, '', 'NPC Text - Show text if player is Exalted with Undercity'), +(14, 3161, 3893, 0, 0, 16, 0, @ORace, 0, 0, 0, 0, 0, '', 'NPC Text - Show text if Player is Orc'), +(14, 3161, 3893, 0, 1, 5, 0, @OFaction, 128, 0, 0, 0, 0, '', 'NPC Text - Show text if player is Exalted with Ogrimmar'), +(14, 3185, 3942, 0, 0, 16, 0, @NRace, 0, 0, 0, 0, 0, '', 'NPC Text - Show text if Player is Night Elf'), +(14, 3185, 3942, 0, 1, 5, 0, @NFaction, 128, 0, 0, 0, 0, '', 'NPC Text - Show text if player is Exalted with Darnassus'), +(14, 3162, 3896, 0, 0, 16, 0, @TRRace, 0, 0, 0, 0, 0, '', 'NPC Text - Show text if Player is Troll'), +(14, 3162, 3896, 0, 1, 5, 0, @TRFaction, 128, 0, 0, 0, 0, '', 'NPC Text - Show text if player is Exalted with Darkspear Trolls'); + +UPDATE `creature_template` SET `gossip_menu_id`=4001 WHERE `entry`=1261; +UPDATE `creature_template` SET `gossip_menu_id`=4004 WHERE `entry`=2357; + +DELETE FROM `gossip_menu_option` WHERE `menu_id` IN(4004,4001,3161,3162,4006,4005,3185,8098,8213,3185); +INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `OptionBroadcastTextID`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`, `BoxBroadcastTextID`) VALUES +(3185, 1, 1, 'I would like to buy from you.', 14967, 3, 128, 0, 0, 0, 0, '', 0), +(4001, 0, 1, 'I would like to buy from you.', 14967, 3, 128, 0, 0, 0, 0, '', 0), +(3161, 0, 1, 'I would like to buy from you.', 14967, 3, 128, 0, 0, 0, 0, '', 0), +(3162, 0, 1, 'I would like to buy from you.', 14967, 3, 128, 0, 0, 0, 0, '', 0), +(4004, 0, 1, 'I would like to buy from you.', 14967, 3, 128, 0, 0, 0, 0, '', 0), +(4005, 0, 1, 'I would like to buy from you.', 14967, 3, 128, 0, 0, 0, 0, '', 0), +(4006, 0, 1, 'I would like to buy from you.', 14967, 3, 128, 0, 0, 0, 0, '', 0), +(8098, 0, 1, 'I wish to purchase one of these creatures.', 17909, 3, 128, 0, 0, 0, 0, '', 0), +(8213, 0, 1, 'I wish to purchase one of these creatures.', 17909, 3, 128, 0, 0, 0, 0, '', 0); + +DELETE FROM `gossip_menu` WHERE `entry`=4001; +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES +(4001, 5856); -- 1261 + +DELETE FROM `gossip_menu` WHERE `entry` IN(4004,4001,3161,3162,4006,4005,3185,8098,8213,3185); +INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES +(3161, 3893), +(3161, 3841), +(3162, 3896), +(3162, 5842), +(3185, 3942), +(3185, 5844), +(4001, 5856), +(4004, 4859), +(4004, 5855), +(4005, 4869), +(4005, 5840), +(4006, 4862), +(4006, 5843), +(8098, 10011), +(8098, 10305), +(8213, 10239); + +UPDATE `smart_scripts` SET `target_type`=10 WHERE `entryorguid`=2598300 AND `ID`=1; -- cgit v1.2.3 From 0e13ae4925af2e06c2fa38855c83518258d17927 Mon Sep 17 00:00:00 2001 From: Dr-J Date: Thu, 11 Sep 2014 17:06:08 +0100 Subject: DB/Misc: Some additions to https://github.com/TrinityCore/TrinityCore/commit/137c8a7de9beaa90441c5aa38e14ad0b09bebffe Some additions to https://github.com/TrinityCore/TrinityCore/commit/137c8a7de9beaa90441c5aa38e14ad0b09bebffe * Add a missing npc_text where gossip menu had already existed in db with this text and core script sent this text as gossip but text was not in db * Correct option id for a option. --- sql/updates/world/2014_09_11_03_world_misc.sql | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 sql/updates/world/2014_09_11_03_world_misc.sql (limited to 'sql') diff --git a/sql/updates/world/2014_09_11_03_world_misc.sql b/sql/updates/world/2014_09_11_03_world_misc.sql new file mode 100644 index 00000000000..b6cd07998ef --- /dev/null +++ b/sql/updates/world/2014_09_11_03_world_misc.sql @@ -0,0 +1,5 @@ +DELETE FROM `npc_text` WHERE `ID`=5841; +INSERT INTO `npc_text` (`ID`, `text0_0`, `text0_1`, `BroadcastTextID0`, `lang0`, `prob0`, `em0_0`, `em0_1`, `em0_2`, `em0_3`, `em0_4`, `em0_5`, `text1_0`, `text1_1`, `BroadcastTextID1`, `lang1`, `prob1`, `em1_0`, `em1_1`, `em1_2`, `em1_3`, `em1_4`, `em1_5`, `text2_0`, `text2_1`, `BroadcastTextID2`, `lang2`, `prob2`, `em2_0`, `em2_1`, `em2_2`, `em2_3`, `em2_4`, `em2_5`, `text3_0`, `text3_1`, `BroadcastTextID3`, `lang3`, `prob3`, `em3_0`, `em3_1`, `em3_2`, `em3_3`, `em3_4`, `em3_5`, `text4_0`, `text4_1`, `BroadcastTextID4`, `lang4`, `prob4`, `em4_0`, `em4_1`, `em4_2`, `em4_3`, `em4_4`, `em4_5`, `text5_0`, `text5_1`, `BroadcastTextID5`, `lang5`, `prob5`, `em5_0`, `em5_1`, `em5_2`, `em5_3`, `em5_4`, `em5_5`, `text6_0`, `text6_1`, `BroadcastTextID6`, `lang6`, `prob6`, `em6_0`, `em6_1`, `em6_2`, `em6_3`, `em6_4`, `em6_5`, `text7_0`, `text7_1`, `BroadcastTextID7`, `lang7`, `prob7`, `em7_0`, `em7_1`, `em7_2`, `em7_3`, `em7_4`, `em7_5`, `VerifiedBuild`) VALUES +(5841, 'I only make my mounts available to those who are considered exalted to Orgrimmar and the Orcish race. Go prove yourself to us, and I''ll make my mighty wolves available for your inspection.', 'I only make my mounts available to those who are considered exalted to Orgrimmar and the Orcish race. Go prove yourself to us, and I''ll make my mighty wolves available for your inspection.', 8414, 0, 1, 0, 1, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + +UPDATE `gossip_menu_option` SET `id`=0 WHERE `menu_id`=3185 AND `id`=1; -- cgit v1.2.3 From 99ac4dab6d5fa5d5e6a1a9b8986d04864f34a516 Mon Sep 17 00:00:00 2001 From: WishToDie Date: Thu, 11 Sep 2014 19:31:54 +0300 Subject: SQL: Fix typo. Fix typo in 587d87d2ccc888b0a881be4bfaab150422edaec8. --- sql/updates/world/2014_09_08_00_world_conditions.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sql') diff --git a/sql/updates/world/2014_09_08_00_world_conditions.sql b/sql/updates/world/2014_09_08_00_world_conditions.sql index 492d6b5a981..469f5d5aecd 100644 --- a/sql/updates/world/2014_09_08_00_world_conditions.sql +++ b/sql/updates/world/2014_09_08_00_world_conditions.sql @@ -8,7 +8,7 @@ UPDATE `quest_template` SET `PrevQuestId`=0 WHERE `Id` IN(13682,13809); -- Clea UPDATE `quest_template` SET `PrevQuestId`=0 WHERE `Id` IN(13788,13812); -- Clear prev quest from Threat from above as this needs more than one quest complete to become available so will be dealt with by conditions instead UPDATE `quest_template` SET `PrevQuestId`=0 WHERE `Id`=13664; -- Clear prev quest for the Black Knight's Fall as this quest had multiple requirements and will be dealt with by conditions instead -DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN(19,20) AND `SourceId` IN(13794,13795,13682,13809,13788,13812,13664); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN(19,20) AND `SourceEntry` IN(13794,13795,13682,13809,13788,13812,13664); INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES (19, 0, 13794, 0, 0, 8, 0, 13737, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), (20, 0, 13794, 0, 0, 8, 0, 13737, 0, 0, 0, 0, 0, '', 'Eadric the Pure requires A Champion Rises'), -- cgit v1.2.3 From ca604cd86abbfa07c14a7bd74d36b7bca9b44abb Mon Sep 17 00:00:00 2001 From: Dr-J Date: Fri, 12 Sep 2014 01:01:46 +0100 Subject: DB/Misc: Random fixes/error fixes --- sql/updates/world/2014_09_12_00_world_misc.sql | 34 ++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 sql/updates/world/2014_09_12_00_world_misc.sql (limited to 'sql') diff --git a/sql/updates/world/2014_09_12_00_world_misc.sql b/sql/updates/world/2014_09_12_00_world_misc.sql new file mode 100644 index 00000000000..e36e4012ca9 --- /dev/null +++ b/sql/updates/world/2014_09_12_00_world_misc.sql @@ -0,0 +1,34 @@ +UPDATE `creature_template` SET `ScriptName`='' WHERE `entry` =3362; + +DELETE FROM `creature_text` WHERE `entry` IN(18407,18166); +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES +(18407, 0, 0, 'Damn those ogres. Damn them to the Nether. Won''t someone save us from these savages! This is the fifth kidnapping in as many days.', 12, 1, 100, 0, 0, 0, 'Warden Bullrok',15371), +(18407, 1, 0, 'That''s the best reward we''re going to be able to offer. Hopefully someone accepts the mission.', 12, 1, 100, 1, 0, 0, 'Warden Bullrok',15372), +(18166, 0, 0, 'Do not burden A''dal with mundane questions, $r. This being''s will is all that keeps our enemies from crushing this city.', 12, 0, 100, 0, 0, 0, 'Khadgar',17238), +(18166, 1, 0, 'Show our guest around Shattrath, will you? Keep an eye out for pickpockets in the Lower City.', 12, 0, 100, 0, 0, 0, 'Khadgar',17266); + +UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='' WHERE `entry`=18166; + +DELETE FROM `smart_scripts` WHERE `entryorguid`IN(18407,18166) AND `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid`=18481 AND `source_type`=0 AND `id`=2; + +DELETE FROM `smart_scripts` WHERE `entryorguid`=1840700 AND `source_type`=9; + +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 +(18407, 0, 0, 0, 1, 0, 100, 0, 60000, 60000, 120000, 240000, 80, 1840700, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Warden Bullrok - Out of Combat - Run Script'), +(18481, 0, 2, 0, 20, 0, 100, 0, 10210, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 18166, 0, 0, 0, 0, 0, 0, 'A\'dal - On Quest Reward (A''DAL) - Say line 0 on Khadgar'), +(18166, 0, 0, 0, 19, 0, 100, 0, 10211, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Khadgar - On Quest Accept (City of Lights) - Say Line 1'), +(1840700, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 71, 0, 0, 1903, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Warden Bullrok - Script - Equip Virtual Item 1903 to Slot 1'), +(1840700, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 2.96706, 'Warden Bullrok - Script - Set Orientation'), +(1840700, 9, 2, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Warden Bullrok - Script - Play emote STATE_WORK_CHOPWOOD'), +(1840700, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 17, 234, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Warden Bullrok - Script - Say Line 1'), +(1840700, 9, 4, 0, 0, 0, 100, 0, 15000, 15000, 0, 0, 17, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Warden Bullrok - Script - Play emote ONESHOT_NONE'), +(1840700, 9, 5, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Warden Bullrok - Script - Say Line 1'), +(1840700, 9, 6, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 66, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0.6283185, 'Warden Bullrok - Script - Set Orientation'), +(1840700, 9, 7, 0, 0, 0, 100, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Warden Bullrok - Script - Unequip Virtual Item'); + +UPDATE `gossip_menu` SET `text_id`=5841 WHERE `entry`=3161 AND `text_id`=3841; +UPDATE `conditions` SET `SourceEntry`=5843 WHERE `SourceTypeOrReferenceId`=14 AND `SourceGroup`=4006 AND `SourceEntry`=4840 AND `SourceId`=0 AND `ElseGroup`=0 AND `ConditionTypeOrReference`=5 AND `ConditionTarget`=0 AND `ConditionValue1`=81 AND `ConditionValue2`=128 AND `ConditionValue3`=0; +UPDATE `conditions` SET `SourceEntry`=5843 WHERE `SourceTypeOrReferenceId`=14 AND `SourceGroup`=4006 AND `SourceEntry`=4840 AND `SourceId`=0 AND `ElseGroup`=0 AND `ConditionTypeOrReference`=16 AND `ConditionTarget`=0 AND `ConditionValue1`=32 AND `ConditionValue2`=0 AND `ConditionValue3`=0; +UPDATE `conditions` SET `SourceEntry`=5855 WHERE `SourceTypeOrReferenceId`=14 AND `SourceGroup`=4004 AND `SourceEntry`=4855 AND `SourceId`=0 AND `ElseGroup`=0 AND `ConditionTypeOrReference`=5 AND `ConditionTarget`=0 AND `ConditionValue1`=72 AND `ConditionValue2`=128 AND `ConditionValue3`=0; +UPDATE `conditions` SET `SourceEntry`=5855 WHERE `SourceTypeOrReferenceId`=14 AND `SourceGroup`=4004 AND `SourceEntry`=4855 AND `SourceId`=0 AND `ElseGroup`=0 AND `ConditionTypeOrReference`=16 AND `ConditionTarget`=0 AND `ConditionValue1`=1 AND `ConditionValue2`=0 AND `ConditionValue3`=0; -- cgit v1.2.3 From f6b05f0e60155f73f1c0cb5056e24fb0316c8c2d Mon Sep 17 00:00:00 2001 From: Dr-J Date: Fri, 12 Sep 2014 13:44:43 +0100 Subject: DB/Misc: Couple more fixes closes #13112 closes #13115 --- sql/updates/world/2014_09_12_01_world_misc.sql | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 sql/updates/world/2014_09_12_01_world_misc.sql (limited to 'sql') diff --git a/sql/updates/world/2014_09_12_01_world_misc.sql b/sql/updates/world/2014_09_12_01_world_misc.sql new file mode 100644 index 00000000000..71cb62477d4 --- /dev/null +++ b/sql/updates/world/2014_09_12_01_world_misc.sql @@ -0,0 +1,4 @@ +UPDATE `conditions` SET `SourceEntry`=5841 WHERE `SourceTypeOrReferenceId`=14 AND `SourceGroup`=3161 AND `SourceEntry`=3841 AND `SourceId`=0 AND `ElseGroup`=0 AND `ConditionTypeOrReference`=16 AND `ConditionTarget`=0 AND `ConditionValue1`=2 AND `ConditionValue2`=0 AND `ConditionValue3`=0; +UPDATE `conditions` SET `SourceEntry`=5841 WHERE `SourceTypeOrReferenceId`=14 AND `SourceGroup`=3161 AND `SourceEntry`=3841 AND `SourceId`=0 AND `ElseGroup`=0 AND `ConditionTypeOrReference`=5 AND `ConditionTarget`=0 AND `ConditionValue1`=76 AND `ConditionValue2`=128 AND `ConditionValue3`=0; + +UPDATE `creature_template` SET `flags_extra`=0 WHERE `entry` IN(24928,25115); -- cgit v1.2.3 From cc00d2f181e74b6e9e0faa6241a9017435cbca8a Mon Sep 17 00:00:00 2001 From: MitchesD Date: Fri, 12 Sep 2014 14:18:42 +0200 Subject: Scripts/CoS: implemented Infinite Corruptor, improvements in instance script and Meathook converted to BossAI Guardian of Time should have some text, but I have not found anything in sniff. Also the whole event needs to be rewritten and improved. --- sql/updates/world/2014_09_12_02_world_misc.sql | 9 + .../CullingOfStratholme/boss_chrono_lord_epoch.cpp | 6 +- .../boss_infinite_corruptor.cpp | 98 ++++--- .../CullingOfStratholme/boss_mal_ganis.cpp | 18 +- .../CullingOfStratholme/boss_meathook.cpp | 142 ++++------- .../boss_salramm_the_fleshcrafter.cpp | 6 +- .../CullingOfStratholme/culling_of_stratholme.cpp | 129 ++++++---- .../CullingOfStratholme/culling_of_stratholme.h | 70 +++-- .../instance_culling_of_stratholme.cpp | 282 ++++++++++++--------- 9 files changed, 417 insertions(+), 343 deletions(-) create mode 100644 sql/updates/world/2014_09_12_02_world_misc.sql (limited to 'sql') diff --git a/sql/updates/world/2014_09_12_02_world_misc.sql b/sql/updates/world/2014_09_12_02_world_misc.sql new file mode 100644 index 00000000000..535ecb90367 --- /dev/null +++ b/sql/updates/world/2014_09_12_02_world_misc.sql @@ -0,0 +1,9 @@ +DELETE FROM `creature_text` WHERE `entry`=26527; +INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextId`) VALUES +(26527, 0, 0, 'Oh, no! Adventurers, something awful has happened! A colleague of mine has been captured by the Infinite Dragonflight, and they''re doing something horrible to him! Keeping Arthas is still your highest priority, but if you act fast you could help save a Guardian of Time!', 15, 0, 100, 0, 0, 0, 'Chromie', 32670), +(26527, 1, 0, 'Adventurers, you must hurry! The Guardian of Time cannot last for much longer!', 15, 0, 100, 0, 0, 0, 'Chromie', 32678), +(26527, 2, 0, 'I can barely sense the Guardian of Time! His timeline is fading quickly!', 15, 0, 100, 0, 0, 0, 'Chromie', 32679); + +DELETE FROM `conditions` WHERE `SourceEntry`=60422; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `Comment`) VALUES +(13, 1, 60422, 0, 0, 31, 1, 3, 32281, 0, 0, 0, 0, 'Corruption of Time (60422) can hit only Guardian of Time'); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp index 0a666488e84..fa87247f19f 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_chrono_lord_epoch.cpp @@ -87,14 +87,14 @@ public: { Initialize(); - instance->SetData(DATA_EPOCH_EVENT, NOT_STARTED); + instance->SetBossState(DATA_EPOCH, NOT_STARTED); } void EnterCombat(Unit* /*who*/) override { Talk(SAY_AGGRO); - instance->SetData(DATA_EPOCH_EVENT, IN_PROGRESS); + instance->SetBossState(DATA_EPOCH, IN_PROGRESS); } void UpdateAI(uint32 diff) override @@ -136,7 +136,7 @@ public: { Talk(SAY_DEATH); - instance->SetData(DATA_EPOCH_EVENT, DONE); + instance->SetBossState(DATA_EPOCH, DONE); } void KilledUnit(Unit* victim) override diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite_corruptor.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite_corruptor.cpp index f3333c0b0b6..d693ec38e44 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite_corruptor.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_infinite_corruptor.cpp @@ -22,7 +22,9 @@ enum Spells { SPELL_CORRUPTING_BLIGHT = 60588, - SPELL_VOID_STRIKE = 60590 + SPELL_VOID_STRIKE = 60590, + SPELL_CORRUPTION_OF_TIME_CHANNEL = 60422, + SPELL_CORRUPTION_OF_TIME_TARGET = 60451 }; enum Yells @@ -32,52 +34,78 @@ enum Yells SAY_FAIL = 2 }; -class boss_infinite_corruptor : public CreatureScript +enum Events { -public: - boss_infinite_corruptor() : CreatureScript("boss_infinite_corruptor") { } + EVENT_CORRUPTING_BLIGHT = 1, + EVENT_VOID_STRIKE +}; - CreatureAI* GetAI(Creature* creature) const override - { - return GetInstanceAI(creature); - } +class boss_infinite_corruptor : public CreatureScript +{ + public: + boss_infinite_corruptor() : CreatureScript("boss_infinite_corruptor") { } - struct boss_infinite_corruptorAI : public ScriptedAI - { - boss_infinite_corruptorAI(Creature* creature) : ScriptedAI(creature) + struct boss_infinite_corruptorAI : public BossAI { - instance = creature->GetInstanceScript(); - } + boss_infinite_corruptorAI(Creature* creature) : BossAI(creature, DATA_INFINITE) { } - InstanceScript* instance; + void Reset() override + { + _Reset(); - void Reset() override - { - instance->SetData(DATA_INFINITE_EVENT, NOT_STARTED); - } + if (Creature* guardian = me->FindNearestCreature(NPC_GUARDIAN_OF_TIME, 100.0f)) + { + DoCast((Unit*)NULL, SPELL_CORRUPTION_OF_TIME_CHANNEL, false); + guardian->CastSpell(guardian, SPELL_CORRUPTION_OF_TIME_TARGET, false); + } + } - void EnterCombat(Unit* /*who*/) override - { - Talk(SAY_AGGRO); - instance->SetData(DATA_INFINITE_EVENT, IN_PROGRESS); - } + void EnterCombat(Unit* /*who*/) override + { + Talk(SAY_AGGRO); + _EnterCombat(); + events.ScheduleEvent(EVENT_CORRUPTING_BLIGHT, 7000); + events.ScheduleEvent(EVENT_VOID_STRIKE, 5000); + } - void UpdateAI(uint32 /*diff*/) override - { - //Return since we have no target - if (!UpdateVictim()) - return; + void JustDied(Unit* /*killer*/) override + { + Talk(SAY_DEATH); + _JustDied(); - DoMeleeAttackIfReady(); - } + if (Creature* guardian = me->FindNearestCreature(NPC_GUARDIAN_OF_TIME, 100.0f)) + { + guardian->RemoveAurasDueToSpell(SPELL_CORRUPTION_OF_TIME_TARGET); + guardian->DespawnOrUnsummon(5000); + } - void JustDied(Unit* /*killer*/) override + if (Creature* rift = me->FindNearestCreature(NPC_TIME_RIFT, 100.0f)) + rift->DespawnOrUnsummon(); + } + + void ExecuteEvent(uint32 eventId) override + { + switch (eventId) + { + case EVENT_CORRUPTING_BLIGHT: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 60.0f, true)) + DoCast(target, SPELL_CORRUPTING_BLIGHT); + events.ScheduleEvent(EVENT_CORRUPTING_BLIGHT, 17000); + break; + case EVENT_VOID_STRIKE: + DoCastVictim(SPELL_VOID_STRIKE); + events.ScheduleEvent(EVENT_VOID_STRIKE, 5000); + break; + default: + break; + } + } + }; + + CreatureAI* GetAI(Creature* creature) const override { - Talk(SAY_DEATH); - instance->SetData(DATA_INFINITE_EVENT, DONE); + return GetInstanceAI(creature); } - }; - }; void AddSC_boss_infinite_corruptor() diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp index d9356b724c0..3d1e9363cd8 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp @@ -26,15 +26,13 @@ Script Data End */ #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "culling_of_stratholme.h" +#include "Player.h" enum Spells { SPELL_CARRION_SWARM = 52720, //A cresting wave of chaotic magic splashes over enemies in front of the caster, dealing 3230 to 3570 Shadow damage and 380 to 420 Shadow damage every 3 sec. for 15 sec. - H_SPELL_CARRION_SWARM = 58852, SPELL_MIND_BLAST = 52722, //Inflicts 4163 to 4837 Shadow damage to an enemy. - H_SPELL_MIND_BLAST = 58850, SPELL_SLEEP = 52721, //Puts an enemy to sleep for up to 10 sec. Any damage caused will awaken the target. - H_SPELL_SLEEP = 58849, SPELL_VAMPIRIC_TOUCH = 52723, //Heals the caster for half the damage dealt by a melee attack. SPELL_MAL_GANIS_KILL_CREDIT = 58124, // Quest credit SPELL_KILL_CREDIT = 58630 // Non-existing spell as encounter credit, created in spell_dbc @@ -75,7 +73,6 @@ public: { Initialize(); instance = creature->GetInstanceScript(); - uiOutroStep = 0; } void Initialize() @@ -108,14 +105,13 @@ public: void Reset() override { Initialize(); - - instance->SetData(DATA_MAL_GANIS_EVENT, NOT_STARTED); + instance->SetBossState(DATA_MAL_GANIS, NOT_STARTED); } void EnterCombat(Unit* /*who*/) override { Talk(SAY_AGGRO); - instance->SetData(DATA_MAL_GANIS_EVENT, IN_PROGRESS); + instance->SetBossState(DATA_MAL_GANIS, IN_PROGRESS); } void DamageTaken(Unit* done_by, uint32 &damage) override @@ -159,7 +155,7 @@ public: { EnterEvadeMode(); me->DisappearAndDie(); - instance->SetData(DATA_MAL_GANIS_EVENT, FAIL); + instance->SetBossState(DATA_MAL_GANIS, FAIL); } if (uiCarrionSwarmTimer < diff) @@ -197,7 +193,7 @@ public: switch (uiOutroStep) { case 1: - Talk(SAY_ESCAPE_SPEECH_1); + Talk(SAY_OUTRO); me->GetMotionMaster()->MoveTargetedHome(); ++uiOutroStep; uiOutroTimer = 8000; @@ -212,7 +208,7 @@ public: case 3: Talk(SAY_OUTRO); ++uiOutroStep; - uiOutroTimer = 16000; + //uiOutroTimer = 16000; break; case 4: me->HandleEmoteCommand(33); @@ -232,7 +228,7 @@ public: void JustDied(Unit* /*killer*/) override { - instance->SetData(DATA_MAL_GANIS_EVENT, DONE); + instance->SetBossState(DATA_MAL_GANIS, DONE); DoCastAOE(SPELL_MAL_GANIS_KILL_CREDIT); // give achievement credit and LFG rewards to players. criteria use spell 58630 which doesn't exist, but it was created in spell_dbc DoCastAOE(SPELL_KILL_CREDIT); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp index c961bf9b2c6..143f901ec0b 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_meathook.cpp @@ -15,14 +15,6 @@ * with this program. If not, see . */ -/* Script Data Start -SDName: Boss meathook -SDAuthor: Tartalo -SD%Complete: 100 -SDComment: It may need timer adjustment -SDCategory: -Script Data End */ - #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "culling_of_stratholme.h" @@ -30,9 +22,7 @@ Script Data End */ enum Spells { SPELL_CONSTRICTING_CHAINS = 52696, //Encases the targets in chains, dealing 1800 Physical damage every 1 sec. and stunning the target for 5 sec. - H_SPELL_CONSTRICTING_CHAINS = 58823, SPELL_DISEASE_EXPULSION = 52666, //Meathook belches out a cloud of disease, dealing 1710 to 1890 Nature damage and interrupting the spell casting of nearby enemy targets for 4 sec. - H_SPELL_DISEASE_EXPULSION = 58824, SPELL_FRENZY = 58841 //Increases the caster's Physical damage by 10% for 30 sec. }; @@ -44,96 +34,72 @@ enum Yells SAY_DEATH = 3 }; -class boss_meathook : public CreatureScript +enum Events { -public: - boss_meathook() : CreatureScript("boss_meathook") { } - - CreatureAI* GetAI(Creature* creature) const override - { - return GetInstanceAI(creature); - } - - struct boss_meathookAI : public ScriptedAI - { - boss_meathookAI(Creature* creature) : ScriptedAI(creature) - { - Initialize(); - instance = creature->GetInstanceScript(); - Talk(SAY_SPAWN); - } - - void Initialize() - { - uiChainTimer = urand(12000, 17000); //seen on video 13, 17, 15, 12, 16 - uiDiseaseTimer = urand(2000, 4000); //approx 3s - uiFrenzyTimer = urand(21000, 26000); //made it up - } - - uint32 uiChainTimer; - uint32 uiDiseaseTimer; - uint32 uiFrenzyTimer; - - InstanceScript* instance; - - void Reset() override - { - Initialize(); - - instance->SetData(DATA_MEATHOOK_EVENT, NOT_STARTED); - } - - void EnterCombat(Unit* /*who*/) override - { - Talk(SAY_AGGRO); + EVENT_CHAIN = 1, + EVENT_DISEASE, + EVENT_FRENZY +}; - instance->SetData(DATA_MEATHOOK_EVENT, IN_PROGRESS); - } +class boss_meathook : public CreatureScript +{ + public: + boss_meathook() : CreatureScript("boss_meathook") { } - void UpdateAI(uint32 diff) override + struct boss_meathookAI : public BossAI { - //Return since we have no target - if (!UpdateVictim()) - return; - - if (uiDiseaseTimer <= diff) + boss_meathookAI(Creature* creature) : BossAI(creature, DATA_MEATHOOK) { - DoCastAOE(SPELL_DISEASE_EXPULSION); - uiDiseaseTimer = urand(1500, 4000); - } else uiDiseaseTimer -= diff; + Talk(SAY_SPAWN); + } - if (uiFrenzyTimer <= diff) + void EnterCombat(Unit* /*who*/) override { - DoCast(me, SPELL_FRENZY); - uiFrenzyTimer = urand(21000, 26000); - } else uiFrenzyTimer -= diff; - - if (uiChainTimer <= diff) + Talk(SAY_AGGRO); + _EnterCombat(); + events.ScheduleEvent(EVENT_CHAIN, urand(12000, 17000)); + events.ScheduleEvent(EVENT_DISEASE, urand(2000, 4000)); + events.ScheduleEvent(EVENT_FRENZY, urand(21000, 26000)); + } + + void ExecuteEvent(uint32 eventId) override { - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(target, SPELL_CONSTRICTING_CHAINS); //anyone but the tank - uiChainTimer = urand(2000, 4000); - } else uiChainTimer -= diff; - - DoMeleeAttackIfReady(); - } - - void JustDied(Unit* /*killer*/) override - { - Talk(SAY_DEATH); + switch (eventId) + { + case EVENT_CHAIN: + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true)) + DoCast(target, SPELL_CONSTRICTING_CHAINS); + events.ScheduleEvent(EVENT_CHAIN, urand(2000, 4000)); + case EVENT_DISEASE: + DoCastAOE(SPELL_DISEASE_EXPULSION); + events.ScheduleEvent(EVENT_DISEASE, urand(1500, 4000)); + break; + case EVENT_FRENZY: + DoCast(me, SPELL_FRENZY); + events.ScheduleEvent(EVENT_FRENZY, urand(21000, 26000)); + break; + default: + break; + } + } + + void JustDied(Unit* /*killer*/) override + { + Talk(SAY_DEATH); + _JustDied(); + } - instance->SetData(DATA_MEATHOOK_EVENT, DONE); - } + void KilledUnit(Unit* victim) override + { + if (victim->GetTypeId() == TYPEID_PLAYER) + Talk(SAY_SLAY); + } + }; - void KilledUnit(Unit* victim) override + CreatureAI* GetAI(Creature* creature) const override { - if (victim->GetTypeId() != TYPEID_PLAYER) - return; - - Talk(SAY_SLAY); + return GetInstanceAI(creature); } - }; - }; void AddSC_boss_meathook() diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp index 1c35a38a5e3..6925badf272 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_salramm_the_fleshcrafter.cpp @@ -89,14 +89,14 @@ public: { Initialize(); - instance->SetData(DATA_SALRAMM_EVENT, NOT_STARTED); + instance->SetBossState(DATA_SALRAMM, NOT_STARTED); } void EnterCombat(Unit* /*who*/) override { Talk(SAY_AGGRO); - instance->SetData(DATA_SALRAMM_EVENT, IN_PROGRESS); + instance->SetBossState(DATA_SALRAMM, IN_PROGRESS); } void UpdateAI(uint32 diff) override @@ -145,7 +145,7 @@ public: { Talk(SAY_DEATH); - instance->SetData(DATA_SALRAMM_EVENT, DONE); + instance->SetBossState(DATA_SALRAMM, DONE); } void KilledUnit(Unit* victim) override diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp index b8a9b295161..3c80be2734a 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp @@ -103,7 +103,7 @@ enum Says //Drakonian SAY_PHASE302 = 0, - SAY_PHASE305 = 1, + SAY_PHASE305 = 1 }; enum NPCs @@ -111,7 +111,6 @@ enum NPCs NPC_INFINITE_ADVERSARY = 27742, NPC_INFINITE_HUNTER = 27743, NPC_INFINITE_AGENT = 27744, - NPC_TIME_RIFT = 28409, NPC_ZOMBIE = 27737, NPC_GHOUL = 28249, NPC_NECROMANCER = 28200, @@ -128,7 +127,7 @@ enum NPCs NPC_CITY_MAN = 28167, NPC_CITY_MAN2 = 28169, NPC_CITY_MAN3 = 31126, - NPC_CITY_MAN4 = 31127, + NPC_CITY_MAN4 = 31127 }; enum Spells @@ -138,7 +137,7 @@ enum Spells SPELL_EXORCISM_N = 52445, SPELL_EXORCISM_H = 58822, SPELL_HOLY_LIGHT = 52444, - SPELL_ARCANE_DISRUPTION = 49590, + SPELL_ARCANE_DISRUPTION = 49590 }; enum GossipMenuArthas @@ -392,6 +391,7 @@ public: uint32 gossipStep; uint32 bossEvent; uint32 wave; + uint32 WavesCounter; uint64 utherGUID; uint64 jainaGUID; @@ -411,17 +411,19 @@ public: { Initialize(); - instance->SetData(DATA_ARTHAS_EVENT, NOT_STARTED); - switch (instance->GetData(DATA_ARTHAS_EVENT)) - { - case NOT_STARTED: - bStepping = true; - step = 0; - me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - bossEvent = DATA_MEATHOOK_EVENT; - gossipStep = 0; - break; - } + instance->SetBossState(DATA_ARTHAS, NOT_STARTED); + + bStepping = true; + step = 0; + me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + bossEvent = DATA_MEATHOOK; + gossipStep = 0; + } + + void AttackStart(Unit* who) + { + if (who && !who->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC)) + npc_escortAI::AttackStart(who); } void EnterCombat(Unit* /*who*/) override @@ -431,7 +433,7 @@ public: void JustDied(Unit* /*killer*/) override { - instance->SetData(DATA_ARTHAS_EVENT, FAIL); + instance->SetBossState(DATA_ARTHAS, FAIL); } void SpawnTimeRift(uint32 timeRiftID, uint64* guidVector) @@ -488,16 +490,15 @@ public: case 11: case 22: case 23: - case 26: case 55: case 56: SetHoldState(true); bStepping = true; break; case 7: - if (Unit* cityman0 = me->SummonCreature(NPC_CITY_MAN, 2091.977f, 1275.021f, 140.757f, 0.558f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000)) + if (Unit* cityman0 = me->FindNearestCreature(NPC_CITY_MAN, 160.0f)) citymenGUID[0] = cityman0->GetGUID(); - if (Unit* cityman1 = me->SummonCreature(NPC_CITY_MAN2, 2093.514f, 1275.842f, 140.408f, 3.801f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000)) + if (Unit* cityman1 = me->FindNearestCreature(NPC_CITY_MAN2, 160.0f)) citymenGUID[1] = cityman1->GetGUID(); break; case 8: @@ -534,10 +535,12 @@ public: case 21: Talk(SAY_PHASE301); break; - case 25: + case 26: SetRun(false); SpawnTimeRift(0, &infiniteDraconianGUID[0]); Talk(SAY_PHASE307); + SetHoldState(true); + bStepping = true; break; case 29: SetRun(false); @@ -565,8 +568,8 @@ public: Talk(SAY_PHASE403); break; case 36: - if (GameObject* pGate = instance->instance->GetGameObject(instance->GetData64(DATA_SHKAF_GATE))) - pGate->SetGoState(GO_STATE_ACTIVE); + if (GameObject* gate = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_SHKAF_GATE))) + gate->SetGoState(GO_STATE_ACTIVE); break; case 45: SetRun(true); @@ -575,18 +578,18 @@ public: me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); SetHoldState(true); break; - case 47: + case 48: SetRun(false); Talk(SAY_PHASE405); break; - case 48: + case 49: SetRun(true); Talk(SAY_PHASE406); break; - case 53: + case 50: Talk(SAY_PHASE407); break; - case 54: + case 51: gossipStep = 5; me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); SetHoldState(true); @@ -598,8 +601,6 @@ public: { npc_escortAI::UpdateAI(diff); - DoMeleeAttackIfReady(); - if (bStepping) { if (phaseTimer <= diff) @@ -765,6 +766,9 @@ public: stalkerGUID = pStalker->GetGUID(); me->SetTarget(stalkerGUID); } + + instance->DoUpdateWorldState(WORLDSTATE_WAVE_COUNT, 0); + JumpToNextStep(1000); break; case 25: @@ -892,14 +896,15 @@ public: } Talk(SAY_PHASE209); - bossEvent = DATA_MEATHOOK_EVENT; - instance->SetData(DATA_ARTHAS_EVENT, IN_PROGRESS); + bossEvent = DATA_MEATHOOK; + instance->SetBossState(DATA_ARTHAS, IN_PROGRESS); me->SetReactState(REACT_DEFENSIVE); SetDespawnAtFar(false); JumpToNextStep(5000); break; - case 41: //Summon wave group + // Summon wave groups - start the Infinite Corruptor timer + case 41: case 43: case 45: case 47: @@ -907,10 +912,15 @@ public: case 53: case 55: case 57: - if (instance->GetData(bossEvent) != DONE) + if (!wave && IsHeroic() && instance->GetData(DATA_INFINITE_COUNTER) == NOT_STARTED) + instance->SetData(DATA_INFINITE_COUNTER, IN_PROGRESS); + + if (instance->GetBossState(bossEvent) != DONE) { SpawnWaveGroup(wave, waveGUID); wave++; + WavesCounter++; + instance->DoUpdateWorldState(WORLDSTATE_WAVE_COUNT, WavesCounter); } JumpToNextStep(500); break; @@ -922,7 +932,7 @@ public: case 54: case 56: case 58: - if (instance->GetData(bossEvent) != DONE) + if (instance->GetBossState(bossEvent) != DONE) { uint32 mobCounter = 0; uint32 deadCounter = 0; @@ -946,12 +956,14 @@ public: break; case 49: //Summon Boss case 59: - if (instance->GetData(bossEvent) != DONE) + if (instance->GetBossState(bossEvent) != DONE) { + WavesCounter++; + instance->DoUpdateWorldState(WORLDSTATE_WAVE_COUNT, WavesCounter); uint32 uiBossID = 0; - if (bossEvent == DATA_MEATHOOK_EVENT) + if (bossEvent == DATA_MEATHOOK) uiBossID = NPC_MEATHOOK; - else if (bossEvent == DATA_SALRAMM_EVENT) + else if (bossEvent == DATA_SALRAMM) uiBossID = NPC_SALRAMM; if (Unit* pBoss = me->SummonCreature(uiBossID, 2232.19f, 1331.933f, 126.662f, 3.15f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 900000)) @@ -965,19 +977,19 @@ public: break; case 50: //Wait Boss death case 60: - if (instance->GetData(bossEvent) == DONE) + if (instance->GetBossState(bossEvent) == DONE) { JumpToNextStep(1000); - if (bossEvent == DATA_MEATHOOK_EVENT) - bossEvent = DATA_SALRAMM_EVENT; - else if (bossEvent == DATA_SALRAMM_EVENT) + if (bossEvent == DATA_MEATHOOK) + bossEvent = DATA_SALRAMM; + else if (bossEvent == DATA_SALRAMM) { SetHoldState(false); bStepping = false; - bossEvent = DATA_EPOCH_EVENT; + bossEvent = DATA_EPOCH; } } - else if (instance->GetData(bossEvent) == FAIL) + else if (instance->GetBossState(bossEvent) == FAIL) npc_escortAI::EnterEvadeMode(); else phaseTimer = 10000; @@ -1074,9 +1086,12 @@ public: phaseTimer = 1000; else { - if (step == 72) Talk(SAY_PHASE308); - if (step == 74) Talk(SAY_PHASE308); - if (step == 76) Talk(SAY_PHASE310); + if (step == 72) + Talk(SAY_PHASE308); + if (step == 74) + Talk(SAY_PHASE308); + if (step == 76) + Talk(SAY_PHASE310); SetHoldState(false); bStepping = false; SetRun(true); @@ -1097,7 +1112,7 @@ public: JumpToNextStep(1000); break; case 80: - if (instance->GetData(DATA_EPOCH_EVENT) != DONE) + if (instance->GetBossState(DATA_EPOCH) != DONE) { SpawnTimeRift(17, &epochGUID); if (Creature* epoch = ObjectAccessor::GetCreature(*me, epochGUID)) @@ -1107,12 +1122,12 @@ public: JumpToNextStep(18000); break; case 81: - if (instance->GetData(DATA_EPOCH_EVENT) != DONE) + if (instance->GetBossState(DATA_EPOCH) != DONE) Talk(SAY_PHASE315); JumpToNextStep(6000); break; case 82: - if (instance->GetData(DATA_EPOCH_EVENT) != DONE) + if (instance->GetBossState(DATA_EPOCH) != DONE) { if (Creature* epoch = ObjectAccessor::GetCreature(*me, epochGUID)) { @@ -1126,15 +1141,15 @@ public: JumpToNextStep(1000); break; case 83: - if (instance->GetData(DATA_EPOCH_EVENT) == DONE) + if (instance->GetBossState(DATA_EPOCH) == DONE) { gossipStep = 3; me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); bStepping = false; - bossEvent = DATA_MAL_GANIS_EVENT; + bossEvent = DATA_MAL_GANIS; JumpToNextStep(15000); } - else if (instance->GetData(DATA_EPOCH_EVENT) == FAIL) + else if (instance->GetBossState(DATA_EPOCH) == FAIL) npc_escortAI::EnterEvadeMode(); else phaseTimer = 10000; @@ -1153,8 +1168,8 @@ public: malganisGUID = malganis->GetGUID(); malganis->SetReactState(REACT_PASSIVE); } - if (GameObject* pGate = instance->instance->GetGameObject(instance->GetData64(DATA_MAL_GANIS_GATE_1))) - pGate->SetGoState(GO_STATE_ACTIVE); + if (GameObject* gate = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_MAL_GANIS_GATE_1))) + gate->SetGoState(GO_STATE_ACTIVE); SetHoldState(false); bStepping = false; JumpToNextStep(0); @@ -1174,12 +1189,12 @@ public: JumpToNextStep(1000); break; case 88: - if (instance->GetData(DATA_MAL_GANIS_EVENT) == DONE) + if (instance->GetBossState(DATA_MAL_GANIS) == DONE) { SetHoldState(false); JumpToNextStep(1000); } - else if (instance->GetData(DATA_MAL_GANIS_EVENT) == FAIL) + else if (instance->GetBossState(DATA_MAL_GANIS) == FAIL) npc_escortAI::EnterEvadeMode(); else phaseTimer = 10000; @@ -1192,7 +1207,7 @@ public: JumpToNextStep(7000); break; case 90: - instance->SetData(DATA_ARTHAS_EVENT, DONE); //Rewards: Achiev & Chest ;D + instance->SetBossState(DATA_ARTHAS, DONE); //Rewards: Achiev & Chest ;D me->SetTarget(instance->GetData64(DATA_MAL_GANIS_GATE_2)); //Look behind Talk(SAY_PHASE504); bStepping = false; @@ -1214,6 +1229,8 @@ public: if (HealthBelowPct(40)) DoCast(me, SPELL_HOLY_LIGHT); + + DoMeleeAttackIfReady(); } }; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h index e7d1033e55f..192654c87f1 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.h @@ -19,19 +19,10 @@ #define DEF_CULLING_OF_STRATHOLME_H #define DataHeader "CS" +#define CoSScriptName "instance_culling_of_stratholme" +uint32 const EncounterCount = 5; -enum Data -{ - DATA_MEATHOOK_EVENT, - DATA_SALRAMM_EVENT, - DATA_EPOCH_EVENT, - DATA_MAL_GANIS_EVENT, - DATA_INFINITE_EVENT, - DATA_ARTHAS_EVENT, - DATA_CRATE_COUNT, -}; - -enum Data64 +enum DataTypes { DATA_ARTHAS, DATA_MEATHOOK, @@ -39,28 +30,35 @@ enum Data64 DATA_EPOCH, DATA_MAL_GANIS, DATA_INFINITE, + DATA_CRATE_COUNT, DATA_SHKAF_GATE, DATA_MAL_GANIS_GATE_1, DATA_MAL_GANIS_GATE_2, DATA_EXIT_GATE, - DATA_MAL_GANIS_CHEST + DATA_MAL_GANIS_CHEST, + DATA_INFINITE_COUNTER }; -enum Creatures +enum CreatureIds { - NPC_MEATHOOK = 26529, - NPC_SALRAMM = 26530, - NPC_EPOCH = 26532, - NPC_MAL_GANIS = 26533, - NPC_INFINITE = 32273, - NPC_ARTHAS = 26499, - NPC_JAINA = 26497, - NPC_UTHER = 26528, - NPC_CHROMIE_2 = 27915, - NPC_GENERIC_BUNNY = 28960, + NPC_MEATHOOK = 26529, + NPC_SALRAMM = 26530, + NPC_EPOCH = 26532, + NPC_MAL_GANIS = 26533, + NPC_INFINITE = 32273, + NPC_ARTHAS = 26499, + NPC_JAINA = 26497, + NPC_UTHER = 26528, + NPC_CHROMIE = 26527, + NPC_CHROMIE_2 = 27915, + NPC_CHROMIE_3 = 30997, + NPC_GENERIC_BUNNY = 28960, + + NPC_TIME_RIFT = 28409, + NPC_GUARDIAN_OF_TIME = 32281 }; -enum GameObjects +enum GameObjectIds { GO_SHKAF_GATE = 188686, GO_MALGANIS_GATE_1 = 187711, @@ -69,7 +67,7 @@ enum GameObjects GO_MALGANIS_CHEST_N = 190663, GO_MALGANIS_CHEST_H = 193597, GO_SUSPICIOUS_CRATE = 190094, - GO_PLAGUED_CRATE = 190095, + GO_PLAGUED_CRATE = 190095 }; enum WorldStatesCoT @@ -78,12 +76,28 @@ enum WorldStatesCoT WORLDSTATE_CRATES_REVEALED = 3480, WORLDSTATE_WAVE_COUNT = 3504, WORLDSTATE_TIME_GUARDIAN = 3931, - WORLDSTATE_TIME_GUARDIAN_SHOW = 3932, + WORLDSTATE_TIME_GUARDIAN_SHOW = 3932 }; enum CrateSpells { - SPELL_CRATES_CREDIT = 58109, + SPELL_CRATES_CREDIT = 58109 +}; + +enum Texts +{ + SAY_CRATES_COMPLETED = 0, + // Chromie + SAY_INFINITE_START = 0, // On Infinite Corruptor event start + SAY_INFINITE = 1, // On Infinite Corruptor event at 5 minutes + SAY_INFINITE_FAIL = 2, // On Infinite Corruptor event fail + // Infinite Corruptor + SAY_FAIL_EVENT = 2 // On Infinite Corruptor event fail +}; + +enum InstanceEvents +{ + EVENT_INFINITE_TIMER = 1 }; #endif diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp index 7af2b3f63aa..b3e8d88bc2a 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp @@ -23,8 +23,6 @@ #include "TemporarySummon.h" #include "SpellInfo.h" -#define MAX_ENCOUNTER 5 - /* Culling of Stratholme encounters: 0 - Meathook 1 - Salramm the Fleshcrafter @@ -33,51 +31,51 @@ 4 - Infinite Corruptor (Heroic only) */ -enum Texts +Position const ChromieSummonPos[] = { - SAY_CRATES_COMPLETED = 0, + { 1813.298f, 1283.578f, 142.3258f, 3.878161f }, + { 2273.725f, 1483.684f, 128.7205f, 6.057528f } }; -Position const ChromieSummonPos = {1813.298f, 1283.578f, 142.3258f, 3.878161f}; +Position const InfiniteCorruptorPos = { 2335.47f, 1262.04f, 132.921f, 1.42079f }; +Position const TimeRiftPos = { 2334.626f, 1280.45f, 133.0066f, 1.727876f }; +Position const GuardianOfTimePos = { 2321.489f, 1268.383f, 132.8507f, 0.418879f }; + +DoorData const doorData[] = +{ + { GO_MALGANIS_GATE_2, DATA_MAL_GANIS, DOOR_TYPE_ROOM, BOUNDARY_NONE }, + { GO_EXIT_GATE, DATA_MAL_GANIS, DOOR_TYPE_PASSAGE, BOUNDARY_NONE }, + { 0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE } // END +}; class instance_culling_of_stratholme : public InstanceMapScript { public: - instance_culling_of_stratholme() : InstanceMapScript("instance_culling_of_stratholme", 595) { } - - InstanceScript* GetInstanceScript(InstanceMap* map) const override - { - return new instance_culling_of_stratholme_InstanceMapScript(map); - } + instance_culling_of_stratholme() : InstanceMapScript(CoSScriptName, 595) { } struct instance_culling_of_stratholme_InstanceMapScript : public InstanceScript { instance_culling_of_stratholme_InstanceMapScript(Map* map) : InstanceScript(map) { SetHeaders(DataHeader); - _arthasGUID = 0; - _meathookGUID = 0; - _salrammGUID = 0; - _epochGUID = 0; - _malGanisGUID = 0; - _infiniteGUID = 0; - _shkafGateGUID = 0; + SetBossNumber(EncounterCount); + LoadDoorData(doorData); + + _chromieGUID = 0; + _arthasGUID = 0; + _meathookGUID = 0; + _salrammGUID = 0; + _epochGUID = 0; + _malGanisGUID = 0; + _infiniteGUID = 0; + _shkafGateGUID = 0; _malGanisGate1GUID = 0; _malGanisGate2GUID = 0; - _exitGateGUID = 0; + _exitGateGUID = 0; _malGanisChestGUID = 0; - _genericBunnyGUID = 0; - memset(&_encounterState[0], 0, sizeof(uint32) * MAX_ENCOUNTER); - _crateCount = 0; - } - - bool IsEncounterInProgress() const override - { - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - if (_encounterState[i] == IN_PROGRESS) - return true; - - return false; + _genericBunnyGUID = 0; + _crateCount = 0; + _eventTimer = 0; } void FillInitialWorldStates(WorldPacket& data) override @@ -93,6 +91,9 @@ class instance_culling_of_stratholme : public InstanceMapScript { switch (creature->GetEntry()) { + case NPC_CHROMIE: + _chromieGUID = creature->GetGUID(); + break; case NPC_ARTHAS: _arthasGUID = creature->GetGUID(); break; @@ -110,10 +111,13 @@ class instance_culling_of_stratholme : public InstanceMapScript break; case NPC_INFINITE: _infiniteGUID = creature->GetGUID(); + DoUpdateWorldState(WORLDSTATE_TIME_GUARDIAN_SHOW, 1); break; case NPC_GENERIC_BUNNY: _genericBunnyGUID = creature->GetGUID(); break; + default: + break; } } @@ -129,55 +133,38 @@ class instance_culling_of_stratholme : public InstanceMapScript break; case GO_MALGANIS_GATE_2: _malGanisGate2GUID = go->GetGUID(); + AddDoor(go, true); break; case GO_EXIT_GATE: _exitGateGUID = go->GetGUID(); - if (_encounterState[3] == DONE) - HandleGameObject(_exitGateGUID, true); + AddDoor(go, true); break; case GO_MALGANIS_CHEST_N: case GO_MALGANIS_CHEST_H: _malGanisChestGUID = go->GetGUID(); - if (_encounterState[3] == DONE) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND); + break; + default: break; } } - void SetData(uint32 type, uint32 data) override + void OnGameObjectRemove(GameObject* go) override { - switch (type) + switch (go->GetEntry()) { - case DATA_MEATHOOK_EVENT: - _encounterState[0] = data; - break; - case DATA_SALRAMM_EVENT: - _encounterState[1] = data; + case GO_MALGANIS_GATE_2: + case GO_EXIT_GATE: + AddDoor(go, false); break; - case DATA_EPOCH_EVENT: - _encounterState[2] = data; + default: break; - case DATA_MAL_GANIS_EVENT: - _encounterState[3] = data; + } + } - switch (_encounterState[3]) - { - case NOT_STARTED: - HandleGameObject(_malGanisGate2GUID, true); - break; - case IN_PROGRESS: - HandleGameObject(_malGanisGate2GUID, false); - break; - case DONE: - HandleGameObject(_exitGateGUID, true); - if (GameObject* go = instance->GetGameObject(_malGanisChestGUID)) - go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND); - break; - } - break; - case DATA_INFINITE_EVENT: - _encounterState[4] = data; - break; + void SetData(uint32 type, uint32 data) override + { + switch (type) + { case DATA_CRATE_COUNT: _crateCount = data; if (_crateCount == 5) @@ -186,34 +173,70 @@ class instance_culling_of_stratholme : public InstanceMapScript bunny->CastSpell(bunny, SPELL_CRATES_CREDIT, true); // Summon Chromie and global whisper - if (Creature* chromie = instance->SummonCreature(NPC_CHROMIE_2, ChromieSummonPos)) + if (Creature* chromie = instance->SummonCreature(NPC_CHROMIE_2, ChromieSummonPos[0])) if (!instance->GetPlayers().isEmpty()) chromie->AI()->TalkToMap(SAY_CRATES_COMPLETED); } DoUpdateWorldState(WORLDSTATE_CRATES_REVEALED, _crateCount); break; + case DATA_INFINITE_COUNTER: + _infiniteCouterState = data; + if (data == IN_PROGRESS) + { + if (!_infiniteGUID) + { + _eventTimer = 25; + instance->SummonCreature(NPC_INFINITE, InfiniteCorruptorPos); + instance->SummonCreature(NPC_TIME_RIFT, TimeRiftPos); + instance->SummonCreature(NPC_GUARDIAN_OF_TIME, GuardianOfTimePos); + events.ScheduleEvent(EVENT_INFINITE_TIMER, 1); + } + } + break; + default: + break; + } + } + + bool SetBossState(uint32 type, EncounterState state) override + { + if (!InstanceScript::SetBossState(type, state)) + return false; + + switch (type) + { + case DATA_INFINITE: + if (state == DONE) + { + DoUpdateWorldState(WORLDSTATE_TIME_GUARDIAN_SHOW, 0); + DoUpdateWorldState(WORLDSTATE_TIME_GUARDIAN, 0); + } + break; + case DATA_MAL_GANIS: + if (state == DONE) + { + if (GameObject* go = instance->GetGameObject(_malGanisChestGUID)) + go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND); + instance->SummonCreature(NPC_CHROMIE_3, ChromieSummonPos[1]); + } + break; + default: + break; } - if (data == DONE) - SaveToDB(); + return true; } uint32 GetData(uint32 type) const override { switch (type) { - case DATA_MEATHOOK_EVENT: - return _encounterState[0]; - case DATA_SALRAMM_EVENT: - return _encounterState[1]; - case DATA_EPOCH_EVENT: - return _encounterState[2]; - case DATA_MAL_GANIS_EVENT: - return _encounterState[3]; - case DATA_INFINITE_EVENT: - return _encounterState[4]; case DATA_CRATE_COUNT: return _crateCount; + case DATA_INFINITE_COUNTER: + return _infiniteCouterState; + default: + break; } return 0; } @@ -244,58 +267,70 @@ class instance_culling_of_stratholme : public InstanceMapScript return _exitGateGUID; case DATA_MAL_GANIS_CHEST: return _malGanisChestGUID; + default: + break; } return 0; } - std::string GetSaveData() override + void Update(uint32 diff) override { - OUT_SAVE_INST_DATA; + events.Update(diff); - std::ostringstream saveStream; - saveStream << "C S " << _encounterState[0] << ' ' << _encounterState[1] << ' ' - << _encounterState[2] << ' ' << _encounterState[3] << ' ' << _encounterState[4]; - - OUT_SAVE_INST_DATA_COMPLETE; - return saveStream.str(); - } - - void Load(const char* in) override - { - if (!in) + while (uint32 eventId = events.ExecuteEvent()) { - OUT_LOAD_INST_DATA_FAIL; - return; - } - - OUT_LOAD_INST_DATA(in); - - char dataHead1, dataHead2; - uint16 data0, data1, data2, data3, data4; - - std::istringstream loadStream(in); - loadStream >> dataHead1 >> dataHead2 >> data0 >> data1 >> data2 >> data3 >> data4; - - if (dataHead1 == 'C' && dataHead2 == 'S') - { - _encounterState[0] = data0; - _encounterState[1] = data1; - _encounterState[2] = data2; - _encounterState[3] = data3; - _encounterState[4] = data4; - - for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - if (_encounterState[i] == IN_PROGRESS) - _encounterState[i] = NOT_STARTED; - + switch (eventId) + { + case EVENT_INFINITE_TIMER: + DoUpdateWorldState(WORLDSTATE_TIME_GUARDIAN, _eventTimer); + + switch (_eventTimer) + { + case 25: + if (instance->HavePlayers()) + if (Creature* chromie = instance->GetCreature(_chromieGUID)) + chromie->AI()->TalkToMap(SAY_INFINITE_START); + break; + case 5: + if (instance->HavePlayers()) + if (Creature* chromie = instance->GetCreature(_chromieGUID)) + chromie->AI()->TalkToMap(SAY_INFINITE); + break; + case 0: + if (instance->HavePlayers()) + if (Creature* chromie = instance->GetCreature(_chromieGUID)) + chromie->AI()->TalkToMap(SAY_INFINITE_FAIL); + + if (Creature* infinite = instance->GetCreature(_infiniteGUID)) + { + if (Creature* guardian = infinite->FindNearestCreature(NPC_GUARDIAN_OF_TIME, 100.0f)) + infinite->Kill(guardian); + + if (Creature* rift = infinite->FindNearestCreature(NPC_TIME_RIFT, 100.0f)) + { + infinite->GetMotionMaster()->MovePoint(0, rift->GetPositionX(), rift->GetPositionY(), rift->GetPositionZ()); + rift->DespawnOrUnsummon(3000); + } + + infinite->DespawnOrUnsummon(3000); + infinite->AI()->Talk(SAY_FAIL_EVENT); + } + DoUpdateWorldState(WORLDSTATE_TIME_GUARDIAN_SHOW, 0); + return; + default: + break; + } + events.ScheduleEvent(EVENT_INFINITE_TIMER, 60000); + --_eventTimer; + break; + default: + break; + } } - else - OUT_LOAD_INST_DATA_FAIL; - - OUT_LOAD_INST_DATA_COMPLETE; } private: + uint64 _chromieGUID; uint64 _arthasGUID; uint64 _meathookGUID; uint64 _salrammGUID; @@ -308,9 +343,18 @@ class instance_culling_of_stratholme : public InstanceMapScript uint64 _exitGateGUID; uint64 _malGanisChestGUID; uint64 _genericBunnyGUID; - uint32 _encounterState[MAX_ENCOUNTER]; + uint32 _crateCount; + uint32 _eventTimer; + uint32 _infiniteCouterState; + + EventMap events; }; + + InstanceScript* GetInstanceScript(InstanceMap* map) const override + { + return new instance_culling_of_stratholme_InstanceMapScript(map); + } }; void AddSC_instance_culling_of_stratholme() -- cgit v1.2.3