From 75e6c40630190d88d43d688aa864842823b7ded2 Mon Sep 17 00:00:00 2001 From: Vincent-Michael Date: Tue, 6 Aug 2013 21:16:05 +0200 Subject: Core/Misc: Rename some no name enums --- .../Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp | 2 +- .../TrialOfTheCrusader/trial_of_the_crusader.cpp | 2 +- .../TrialOfTheCrusader/trial_of_the_crusader.h | 8 +++++++- .../HallsOfReflection/halls_of_reflection.cpp | 2 +- .../scripts/Northrend/Naxxramas/boss_anubrekhan.cpp | 19 ++++++++----------- .../scripts/Northrend/Naxxramas/boss_patchwerk.cpp | 6 +++--- src/server/scripts/Northrend/Naxxramas/naxxramas.h | 1 + 7 files changed, 22 insertions(+), 18 deletions(-) (limited to 'src/server/scripts/Northrend') diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp index 7771451894e..05e758f5cf9 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp @@ -52,7 +52,7 @@ enum Yells SAY_INTRO = 5 }; -enum +enum Misc { ACHIEV_TIMED_START_EVENT = 20381, }; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp index b590b963c34..fdf39519409 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp @@ -99,7 +99,7 @@ static _Messages _GossipMessage[]= {MSG_ANUBARAK, GOSSIP_ACTION_INFO_DEF + 6, true, BOSS_ANUBARAK} }; -enum +enum Messages { NUM_MESSAGES = 6 }; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h index 0d64655db77..17e4f2869c6 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h @@ -5,7 +5,7 @@ #ifndef DEF_CRUSADER_H #define DEF_CRUSADER_H -enum +enum DataTypes { BOSS_BEASTS = 0, BOSS_JARAXXUS = 1, @@ -28,12 +28,18 @@ enum INCREASE = 501, DECREASE = 502, +}; +enum SpellIds +{ SPELL_WILFRED_PORTAL = 68424, SPELL_JARAXXUS_CHAINS = 67924, SPELL_CORPSE_TELEPORT = 69016, SPELL_DESTROY_FLOOR_KNOCKUP = 68193, +}; +enum MiscData +{ DESPAWN_TIME = 300000, DISPLAYID_DESTROYED_FLOOR = 9060 diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp index 7fddfd861c2..efd56093f21 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp @@ -198,7 +198,7 @@ enum Events EVENT_CLOSE_FROSTWORN_DOOR, }; -enum Enum +enum Misc { ACTION_START_INTRO, ACTION_SKIP_INTRO, diff --git a/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp b/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp index 45e0855bb4f..928ffd14dea 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp @@ -19,24 +19,21 @@ #include "ScriptedCreature.h" #include "naxxramas.h" -enum Anubrekhan +enum Says { SAY_AGGRO = 0, SAY_GREET = 1, - SAY_SLAY = 2, - - NPC_CRYPT_GUARD = 16573 + SAY_SLAY = 2 }; -const Position GuardSummonPos = {3333.72f, -3476.30f, 287.1f, 6.2801f}; +Position const GuardSummonPos = {3333.72f, -3476.30f, 287.1f, 6.2801f}; enum Events { - EVENT_NONE, - EVENT_IMPALE, + EVENT_IMPALE = 1, EVENT_LOCUST, EVENT_SPAWN_GUARDIAN_NORMAL, - EVENT_BERSERK, + EVENT_BERSERK }; enum Spells @@ -47,12 +44,12 @@ enum Spells SPELL_LOCUST_SWARM_25 = 54021, SPELL_SUMMON_CORPSE_SCARABS_PLR = 29105, // This spawns 5 corpse scarabs on top of player SPELL_SUMMON_CORPSE_SCARABS_MOB = 28864, // This spawns 10 corpse scarabs on top of dead guards - SPELL_BERSERK = 27680, + SPELL_BERSERK = 27680 }; -enum +enum Misc { - ACHIEV_TIMED_START_EVENT = 9891, + ACHIEV_TIMED_START_EVENT = 9891 }; class boss_anubrekhan : public CreatureScript diff --git a/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp b/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp index 935d29ff783..bf3e7706f4d 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_patchwerk.cpp @@ -25,7 +25,7 @@ enum Spells H_SPELL_HATEFUL_STRIKE = 59192, SPELL_FRENZY = 28131, SPELL_BERSERK = 26662, - SPELL_SLIME_BOLT = 32309, + SPELL_SLIME_BOLT = 32309 }; enum Yells @@ -45,9 +45,9 @@ enum Events EVENT_SLIME }; -enum +enum Misc { - ACHIEV_MAKE_QUICK_WERK_OF_HIM_STARTING_EVENT = 10286, + ACHIEV_MAKE_QUICK_WERK_OF_HIM_STARTING_EVENT = 10286 }; class boss_patchwerk : public CreatureScript diff --git a/src/server/scripts/Northrend/Naxxramas/naxxramas.h b/src/server/scripts/Northrend/Naxxramas/naxxramas.h index 10b26e278bb..a71d573bf20 100644 --- a/src/server/scripts/Northrend/Naxxramas/naxxramas.h +++ b/src/server/scripts/Northrend/Naxxramas/naxxramas.h @@ -84,6 +84,7 @@ enum CreaturesIds NPC_STALAGG = 15929, NPC_SAPPHIRON = 15989, NPC_KEL_THUZAD = 15990, + NPC_CRYPT_GUARD = 16573, NPC_NAXXRAMAS_FOLLOWER = 16505, NPC_FOLLOWER_WORSHIPPER = 16506, NPC_DK_UNDERSTUDY = 16803 -- cgit v1.2.3 From c8bfb9cf4df450497263d94869880db6eb7f3c73 Mon Sep 17 00:00:00 2001 From: Kirkhammett Date: Tue, 6 Aug 2013 23:16:03 +0100 Subject: DB&Scripts/Icecrown: Fix quest The Last Line Of Defense and script Argent Cannons Closes #998 Closes #10460 --- sql/updates/world/2013_08_06_05_world_misc.sql | 333 +++++++++++++++++++++ src/server/game/AI/SmartScripts/SmartScript.cpp | 2 +- .../game/Battlegrounds/Zones/BattlegroundIC.cpp | 8 +- .../HallsOfReflection/halls_of_reflection.cpp | 122 ++++---- .../instance_halls_of_reflection.cpp | 16 +- src/server/scripts/Spells/spell_quest.cpp | 35 +++ 6 files changed, 442 insertions(+), 74 deletions(-) create mode 100644 sql/updates/world/2013_08_06_05_world_misc.sql (limited to 'src/server/scripts/Northrend') diff --git a/sql/updates/world/2013_08_06_05_world_misc.sql b/sql/updates/world/2013_08_06_05_world_misc.sql new file mode 100644 index 00000000000..15193cc2d09 --- /dev/null +++ b/sql/updates/world/2013_08_06_05_world_misc.sql @@ -0,0 +1,333 @@ +-- The Last Line Of Defense (13086) +SET @NEXT := 142412; +SET @PATH := @NEXT * 10; + +DELETE FROM `spell_script_names` WHERE `spell_id` IN (57412,57385); +INSERT INTO `spell_script_names`(`spell_id`, `ScriptName`) VALUES +(57412,'spell_q13086_cannons_target'), +(57385,'spell_q13086_cannons_target'); + +-- Forgotten Depths Slayer SAI ID: 30593 +UPDATE `creature_template` SET `speed_walk`=5,`movementtype`=1,`faction_A`=2068, `faction_H`=2068,`AIName`= 'SmartAI' WHERE `entry`= 30593; +DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=30593; +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 +(30593,0,1,0,0,0,100,0,1000,5000,2500,6500,11,54185,0,0,0,0,0,2,0,0,0,0,0,0,0,'Combat - Claw Slash'); + +-- Adds 70 Forgotten Depths Slayers for phase 64 ID: 30593 +DELETE FROM `creature` WHERE `id`=30593; +INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `currentwaypoint`, `MovementType`) VALUES +(@NEXT+1, 30593, 571, 1, 64, 6442.551758, 222.894867, 397.353943, 2.7317, 5, 60, 0, 1), +(@NEXT+2, 30593, 571, 1, 64, 6437.940430, 215.351151, 397.798889, 0.929563, 5, 60, 0, 1), +(@NEXT+3, 30593, 571, 1, 64, 6419.338379, 239.908859, 396.095978, 2.1122, 5, 60, 0, 1), +(@NEXT+4, 30593, 571, 1, 64, 6428.831055, 239.908859, 396.763702, 3.5549, 5, 60, 0, 1), +(@NEXT+5, 30593, 571, 1, 64, 6400.702148, 236.755035, 395.685333, 1.32629, 5, 60, 0, 1), +(@NEXT+6, 30593, 571, 1, 64, 6410.955078, 249.759094, 396.454742, 2.77181, 5, 60, 0, 1), +(@NEXT+7, 30593, 571, 1, 64, 6367.340820, 183.807068, 391.614655, 0.501217, 5, 60, 0, 1), +(@NEXT+8, 30593, 571, 1, 64, 6382.062500, 176.836975, 393.132507, 1.22528, 5, 60, 0, 1), +(@NEXT+9, 30593, 571, 1, 64, 6357.964355, 158.979782, 391.124756, 2.99677, 5, 60, 0, 1), +(@NEXT+10, 30593, 571, 1, 64, 6373.327537, 146.681412, 392.788330, 3.35221, 5, 60, 0, 1), +(@NEXT+11, 30593, 571, 1, 64, 6343.335938, 173.300323, 389.862518, 4.18409, 5, 60, 0, 1), +(@NEXT+12, 30593, 571, 1, 64, 6335.788086, 148.828232, 389.702972, 3.19711, 5, 60, 0, 1), +(@NEXT+13, 30593, 571, 1, 64, 6347.954590, 129.882919, 3391.126984, 2.81552, 5, 60, 0, 1), +(@NEXT+14, 30593, 571, 1, 64, 6333.287109, 88.245689, 391.002228, 5.84132, 5, 60, 0, 1), +(@NEXT+15, 30593, 571, 1, 64, 6336.879395, 71.525627, 390.192871, 0.785398, 5, 60, 0, 1), +(@NEXT+16, 30593, 571, 1, 64, 6318.244629, 32.249405, 391.493988, 2.1325, 5, 60, 0, 1), +(@NEXT+17, 30593, 571, 1, 64, 6312.728320, 8.393217, 392.626587, 0.291176, 5, 60, 0, 1), +(@NEXT+18, 30593, 571, 1, 64, 6326.704590, 107.359123, 391.002045, 0.919091, 5, 60, 0, 1), +(@NEXT+19, 30593, 571, 1, 64, 6301.972656, 119.744209, 389.925903, 1.55615, 5, 60, 0, 1), +(@NEXT+20, 30593, 571, 1, 64, 6266.120117, 148.388809, 383.515961, 1.84373, 5, 60, 0, 1), +(@NEXT+21, 30593, 571, 1, 64, 6251.726074, 153.168182, 381.629669, 1.80125, 5, 60, 0, 1), +(@NEXT+22, 30593, 571, 1, 64, 6229.003418, 145.614822, 379.721741, 5.84095, 5, 60, 0, 1), +(@NEXT+23, 30593, 571, 1, 64, 6284.683082, 214.294250, 388.699188, 2.78648, 5, 60, 0, 1), +(@NEXT+24, 30593, 571, 1, 64, 6302.265625, 212.301346, 390.488556, 3.48219, 5, 60, 0, 1), +(@NEXT+25, 30593, 571, 1, 64, 6299.725098, 226.082626, 391.288788, 5.13205, 5, 60, 0, 1), +(@NEXT+26, 30593, 571, 1, 64, 6200.917969, 220.434753, 383.776184, 2.88047, 5, 60, 0, 1), +(@NEXT+27, 30593, 571, 1, 64, 6200.930664, 234.127823, 384.630798, 1.50529, 5, 60, 0, 1), +(@NEXT+28, 30593, 571, 1, 64, 6190.595703, 225.242371, 382.554016, 4.4761, 5, 60, 0, 1), +(@NEXT+29, 30593, 571, 1, 64, 6189.209961, 210.502823, 381.877960, 2.11574, 5, 60, 0, 1), +(@NEXT+30, 30593, 571, 1, 64, 6176.683594, 213.375336, 380.395172, 0.763302, 5, 60, 0, 1), +(@NEXT+31, 30593, 571, 1, 64, 6113.089844, 156.401672, 369.398804, 5.60417, 5, 60, 0, 1), +(@NEXT+32, 30593, 571, 1, 64, 6103.571289, 140.684174, 367.524414, 0.430917, 5, 60, 0, 1), +(@NEXT+33, 30593, 571, 1, 64, 6093.838867, 143.838867, 367.781097, 6.10437, 5, 60, 0, 1), +(@NEXT+34, 30593, 571, 1, 64, 6090.764160, 141.764160, 365.786255, 5.91518, 5, 60, 0, 1), +(@NEXT+35, 30593, 571, 1, 64, 6079.681641, 141.840958, 366.456573, 5.91108, 5, 60, 0, 1), +(@NEXT+36, 30593, 571, 1, 64, 6062.076660, 155.683197, 363.868896, 2.05191, 5, 60, 0, 1), +(@NEXT+37, 30593, 571, 1, 64, 6076.666016, 163.742477, 362.454651, 3.57468, 5, 60, 0, 1), +(@NEXT+38, 30593, 571, 1, 64, 6088.131348, 179.086304, 360.483307, 5.6035, 5, 60, 0, 1), +(@NEXT+39, 30593, 571, 1, 64, 6098.503418, 176.307312, 364.942688, 5.6035, 5, 60, 0, 1), +(@NEXT+40, 30593, 571, 1, 64, 6090.764160, 155.876968, 365.786255, 5.6035, 5, 60, 0, 1), +(@NEXT+41, 30593, 571, 1, 64, 6338.830566, 70.974663, 390.432343, 5.6035, 5, 60, 0, 1), +(@NEXT+42, 30593, 571, 1, 64, 6339.270508, 63.711479, 389.662994, 5.6035, 5, 60, 0, 1), +(@NEXT+43, 30593, 571, 1, 64, 6282.305176, 128.449188, 386.556244, 5.6035, 5, 60, 0, 1), +(@NEXT+44, 30593, 571, 1, 64, 6267.317383, 130.918854, 384.601959, 5.6035, 5, 60, 0, 1), +(@NEXT+45, 30593, 571, 1, 64, 6182.309082, 94.777863, 377.689959, 5.6035, 5, 60, 0, 1), +(@NEXT+46, 30593, 571, 1, 64, 6157.960383, 89.072354, 371.833959, 5.6035, 5, 60, 0, 1), +(@NEXT+47, 30593, 571, 1, 64, 6236.617383, 113.980854, 380.351959, 5.6035, 5, 60, 0, 1), +(@NEXT+48, 30593, 571, 1, 64, 6295.647383, 137.418854, 387.451959, 5.6035, 5, 60, 0, 1), +(@NEXT+49, 30593, 571, 1, 64, 6200.917969, 220.434753, 383.776184, 2.88047, 5, 60, 0, 1), +(@NEXT+50, 30593, 571, 1, 64, 6200.930664, 234.127823, 384.630798, 1.50529, 5, 60, 0, 1), +(@NEXT+51, 30593, 571, 1, 64, 6190.595703, 225.242371, 382.554016, 4.4761, 5, 60, 0, 1), +(@NEXT+52, 30593, 571, 1, 64, 6189.209961, 210.502823, 381.877960, 2.11574, 5, 60, 0, 1), +(@NEXT+53, 30593, 571, 1, 64, 6176.683594, 213.375336, 380.395172, 0.763302, 5, 60, 0, 1), +(@NEXT+54, 30593, 571, 1, 64, 6113.089844, 156.401672, 369.398804, 5.60417, 5, 60, 0, 1), +(@NEXT+55, 30593, 571, 1, 64, 6103.571289, 140.684174, 367.524414, 0.430917, 5, 60, 0, 1), +(@NEXT+56, 30593, 571, 1, 64, 6093.838867, 143.838867, 367.781097, 6.10437, 5, 60, 0, 1), +(@NEXT+57, 30593, 571, 1, 64, 6090.764160, 141.764160, 365.786255, 5.91518, 5, 60, 0, 1), +(@NEXT+58, 30593, 571, 1, 64, 6079.681641, 141.840958, 366.456573, 5.91108, 5, 60, 0, 1), +(@NEXT+59, 30593, 571, 1, 64, 6062.076660, 155.683197, 363.868896, 2.05191, 5, 60, 0, 1), +(@NEXT+60, 30593, 571, 1, 64, 6076.666016, 163.742477, 362.454651, 3.57468, 5, 60, 0, 1), +(@NEXT+61, 30593, 571, 1, 64, 6088.131348, 179.086304, 360.483307, 5.6035, 5, 60, 0, 1), +(@NEXT+62, 30593, 571, 1, 64, 6098.503418, 176.307312, 364.942688, 5.6035, 5, 60, 0, 1), +(@NEXT+63, 30593, 571, 1, 64, 6090.764160, 155.876968, 365.786255, 5.6035, 5, 60, 0, 1), +(@NEXT+64, 30593, 571, 1, 64, 6338.830566, 70.974663, 390.432343, 5.6035, 5, 60, 0, 1), +(@NEXT+65, 30593, 571, 1, 64, 6339.270508, 63.711479, 389.662994, 5.6035, 5, 60, 0, 1), +(@NEXT+66, 30593, 571, 1, 64, 6282.305176, 128.449188, 386.556244, 5.6035, 5, 60, 0, 1), +(@NEXT+67, 30593, 571, 1, 64, 6267.317383, 130.918854, 384.601959, 5.6035, 5, 60, 0, 1), +(@NEXT+68, 30593, 571, 1, 64, 6182.309082, 94.777863, 377.689959, 5.6035, 5, 60, 0, 1), +(@NEXT+69, 30593, 571, 1, 64, 6157.960383, 89.072354, 371.833959, 5.6035, 5, 60, 0, 1), +(@NEXT+70, 30593, 571, 1, 64, 6236.617383, 113.980854, 380.351959, 5.6035, 5, 60, 0, 1); + +-- Frostbrood Destroyers 5 +UPDATE `creature_template` SET `maxlevel`=80,`minlevel`=80,`exp`=2,`InhabitType`=7,`speed_walk`=3,`mindmg` = 1170,`dmg_multiplier` = 2,`attackpower` = 342,`maxdmg` = 3470,`movementtype`=1,`faction_A`=2068, `faction_H`=2068,`AIName`= 'SmartAI' WHERE `entry`= 30575; +DELETE FROM `creature` WHERE `id`=30575; +INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `MovementType`) VALUES +(@NEXT+71, 30575,571,1,64,6097.870117, 58.331299, 380.506012, 0.138359, 75,20,1), +(@NEXT+72, 30575,571,1,64,6243.700195, 183.362000, 392.515015, 4.594332, 75,20,1), +(@NEXT+73, 30575,571,1,64,6313.589844, 154.557999, 397.022003, 4.739780, 75,20,1), +(@NEXT+74, 30575,571,1,64,6331.450195, 53.939301, 399.138000, 2.973792, 75,20,1), +(@NEXT+75, 30575,571,1,64,6187.290039, 131.792999, 386.451996, 3.173792, 75,20,1); + +-- Hover mode for Frostbroods +DELETE FROM `creature_template_addon` WHERE `entry`=30575; +INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES +(30575,0,0,33554432,0,0,''); + +-- Pathing +-- Slayers reinforcements left on main path +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+1; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+1; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES +(@NEXT+1,@PATH+1,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+1; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+1,1,6442.551758, 222.894867, 397.353943,0,2,0,100,0), +(@PATH+1,2,6337.383789,113.591568,391.210876,6000,2,0,100,0), +(@PATH+1,3,6299.144531,126.174286,391.081909,6000,2,0,100,0); + +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+2; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+2; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES +(@NEXT+2,@PATH+2,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+2; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+2,1,6437.940430,215.351151,397.798889,0,2,0,100,0), +(@PATH+2,2,6327.383789,143.591568,391.210876,6000,2,0,100,0), +(@PATH+2,3,6296.544531,76.174286,391.081909,6000,2,0,100,0); + +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+3; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+3; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES +(@NEXT+3,@PATH+3,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+3; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+3,1,6419.338379,239.908859,396.095978,0,2,0,100,0), +(@PATH+3,2,6317.383789,115.591568,391.210876,6000,2,0,100,0), +(@PATH+3,3,6294.144531,126.174286,391.081909,6000,2,0,100,0); + +-- Slayers reinforcements right on main path +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+4; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+4; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES +(@NEXT+4,@PATH+4,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+4; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+4,1, 6428.831055, 239.908859, 396.763702,0,2,0,100,0), +(@PATH+4,2,6346.144531,126.174286,391.081909,6000,2,0,100,0), +(@PATH+4,3,6297.353789,80.591568,391.210876,6000,2,0,100,0); + +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+5; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+5; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES +(@NEXT+5,@PATH+5,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+5; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+5,1, 6400.702148, 236.755035, 395.685333,0,2,0,100,0), +(@PATH+5,2,6356.144531,106.174286,391.081909,6000,2,0,100,0), +(@PATH+5,3,6398.383789,70.591568,391.210876,6000,2,0,100,0); + +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+6; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+6; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES +(@NEXT+6,@PATH+6,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+6; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+6,1, 6410.955078, 249.759094, 396.454742,0,2,0,100,0), +(@PATH+6,2,6376.144531,116.174286,391.081909,6000,2,0,100,0), +(@PATH+6,3,6295.383789,65.591568,391.210876,6000,2,0,100,0); + +-- Slayers reinforcements on the rear +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+31; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+31; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES +(@NEXT+31,@PATH+7,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+7; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+7,1, 6113.089844, 156.401672, 369.398804,0,2,0,100,0), +(@PATH+7,2,6175.009766,125.577263,369.434753,6000,2,0,100,0), +(@PATH+7,3,6109.930176,49.710854,369.404419,6000,2,0,100,0); + +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+32; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+32; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+32,@PATH+8,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+8; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+8,1, 6103.571289, 140.684174, 368.524414,0,2,0,100,0), +(@PATH+8,2,6165.009766,119.577263,369.434753,6000,2,0,100,0), +(@PATH+8,3,6118.930176,64.710854,369.404419,6000,2,0,100,0); + +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+33; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+33; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+33,@PATH+9,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+9; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+9,1, 6093.838867, 143.838867, 368.781097,0,2,0,100,0), +(@PATH+9,2,6171.009766,114.577263,369.434753,6000,2,0,100,0), +(@PATH+9,3,6114.930176,61.710854,369.404419,6000,2,0,100,0); + +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+34; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+34; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+34,@PATH+10,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+10; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+10,1, 6090.764160, 141.764160, 369.786255,0,2,0,100,0), +(@PATH+10,2,6183.009766,109.577263,369.434753,6000,2,0,100,0), +(@PATH+10,3,6109.930176,57.710854,369.404419,6000,2,0,100,0); + +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+35; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+35; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+35,@PATH+11,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+11; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+11,1, 6079.681641, 141.840958, 369.456573,0,2,0,100,0), +(@PATH+11,2,6180.009766,121.577263,369.434753,6000,2,0,100,0), +(@PATH+11,3,6124.930176,70.710854,369.404419,6000,2,0,100,0); + +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+36; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+36; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+36,@PATH+12,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+12; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+12,1, 6062.076660, 155.683197, 369.868896,0,2,0,100,0), +(@PATH+12,2,6114.930176,74.710854,368.404419,6000,2,0,100,0), +(@PATH+12,3,6187.009766,111.577263,369.434753,6000,2,0,100,0); + +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+37; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+37; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+37,@PATH+13,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+13; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+13,1, 6076.666016, 163.742477, 369.454651,0,2,0,100,0), +(@PATH+13,2,6117.930176,55.710854,369.404419,6000,2,0,100,0), +(@PATH+13,3,6178.009766,112.577263,369.434753,6000,2,0,100,0); + +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+38; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+38; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+38,@PATH+14,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+14; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+14,1, 6088.131348, 179.086304, 372.483307,0,2,0,100,0), +(@PATH+14,2,6115.930176,73.710854,369.404419,6000,2,0,100,0), +(@PATH+14,3,6185.009766,119.577263,369.434753,6000,2,0,100,0); + +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+39; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+39; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+39,@PATH+15,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+15; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+15,1, 6098.503418, 176.307312, 369.942688,0,2,0,100,0), +(@PATH+15,2,6115.930176,51.710854,369.404419,6000,2,0,100,0), +(@PATH+15,3,6185.009766,110.577263,369.434753,6000,2,0,100,0); + +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+40; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+40; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+40,@PATH+16,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+16; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+16,1, 6090.764160, 155.876968, 368.786255,0,2,0,100,0), +(@PATH+16,2,6112.930176,61.710854,369.404419,6000,2,0,100,0), +(@PATH+16,3,6176.009766,114.577263,370.434753,6000,2,0,100,0); + +-- Slayers from West to both parts +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+26; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+26; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+26,@PATH+17,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+17; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+17,1, 6200.917969, 220.434753, 372.776184,0,2,0,100,0), +(@PATH+17,2,6346.144531,126.174286,372.081909,6000,2,0,100,0), +(@PATH+17,3,6287.383789,80.591568,372.210876,6000,2,0,100,0); + +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+27; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+27; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+27,@PATH+19,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+19; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+19,1, 6200.917969, 220.434753, 372.776184,0,2,0,100,0), +(@PATH+19,2,6356.144531,106.174286,372.081909,6000,2,0,100,0), +(@PATH+19,3,6395.383789,70.591568,372.210876,6000,2,0,100,0); + +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+28; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+28; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NEXT+28,@PATH+20,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+20; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+20,1, 6190.595703, 225.242371, 372.554016,0,2,0,100,0), +(@PATH+20,2,6175.009766,125.577263,372.434753,6000,2,0,100,0), +(@PATH+20,3,6104.930176,59.710854,372.404419,6000,2,0,100,0); + +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+29; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+29; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES +(@NEXT+29,@PATH+21,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+21; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+21,1, 6189.209961, 210.502823, 372.877960,0,2,0,100,0), +(@PATH+21,2,6171.009766,119.577263,372.434753,6000,2,0,100,0), +(@PATH+21,3,6118.930176,64.710854,372.404419,6000,2,0,100,0); + +UPDATE `creature` SET `spawndist`=0,`MovementType`=2 WHERE `guid`=@NEXT+29; +DELETE FROM `creature_addon` WHERE `guid`=@NEXT+29; +INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES +(@NEXT+29,@PATH+22,1,0, ''); + +DELETE FROM `waypoint_data` WHERE `id`=@PATH+22; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH+22,1, 6176.683594, 213.375336, 372.395172,0,2,0,100,0), +(@PATH+22,2,6173.009766,117.577263,372.434753,6000,2,0,100,0), +(@PATH+22,3,6118.930176,63.710854,372.404419,6000,2,0,100,0); + +-- Turrets +UPDATE `creature_template` SET `faction_A`=2231,`faction_H`=2231,`unit_flags`=16777220,`npcflag`=16777216,`vehicleid`=292 WHERE `entry`=30236; +DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=30236; +INSERT INTO `npc_spellclick_spells` (`npc_entry`,`spell_id`,`cast_flags`,`user_type`) VALUES +(30236,57573,1,0); diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 0c80945e357..04940858062 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -922,7 +922,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u (*itr)->ToPlayer()->KilledMonsterCredit(e.action.killedMonster.creature); TC_LOG_DEBUG(LOG_FILTER_DATABASE_AI, "SmartScript::ProcessAction: SMART_ACTION_CALL_KILLEDMONSTER: Player %u, Killcredit: %u", (*itr)->GetGUIDLow(), e.action.killedMonster.creature); - } + } else if (IsUnit(*itr)) // Special handling for vehicles if (Vehicle* vehicle = (*itr)->ToUnit()->GetVehicleKit()) for (SeatMap::iterator itr = vehicle->Seats.begin(); itr != vehicle->Seats.end(); ++itr) diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp index cf63b0505d7..7b0bd9858b0 100644 --- a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp @@ -335,15 +335,15 @@ void BattlegroundIC::HandleAreaTrigger(Player* player, uint32 trigger) /// @hack: this spell should be cast by npc 22515 (World Trigger) and not by the player if (trigger == 5555 && player->GetTeamId() == TEAM_HORDE) { - if (GateStatus[BG_IC_A_FRONT] != BG_IC_GATE_DESTROYED - && GateStatus[BG_IC_A_WEST] != BG_IC_GATE_DESTROYED + if (GateStatus[BG_IC_A_FRONT] != BG_IC_GATE_DESTROYED + && GateStatus[BG_IC_A_WEST] != BG_IC_GATE_DESTROYED && GateStatus[BG_IC_A_EAST] != BG_IC_GATE_DESTROYED) player->CastSpell(player, SPELL_BACK_DOOR_JOB_ACHIEVEMENT, true); } else if (trigger == 5535 && player->GetTeamId() == TEAM_ALLIANCE) { - if (GateStatus[BG_IC_H_FRONT] != BG_IC_GATE_DESTROYED - && GateStatus[BG_IC_H_WEST] != BG_IC_GATE_DESTROYED + if (GateStatus[BG_IC_H_FRONT] != BG_IC_GATE_DESTROYED + && GateStatus[BG_IC_H_WEST] != BG_IC_GATE_DESTROYED && GateStatus[BG_IC_H_EAST] != BG_IC_GATE_DESTROYED) player->CastSpell(player, SPELL_BACK_DOOR_JOB_ACHIEVEMENT, true); } diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp index efd56093f21..6408417e902 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp @@ -744,7 +744,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript void JustDied(Unit* /*Killer*/) OVERRIDE { - if (_instance) + if (_instance) _instance->SetData(DATA_ESCAPE_EVENT, FAIL); } @@ -893,7 +893,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript case EVENT_ESCAPE_13: if (Creature* lichking = me->GetCreature(*me, _lichkingGUID)) { - lichking->AI()->DoCast(lichking, SPELL_REMORSELESS_WINTER, true); + lichking->AI()->DoCast(lichking, SPELL_REMORSELESS_WINTER, true); lichking->AI()->DoCast(lichking, SPELL_SUMMON_RISE_WITCH_DOCTOR); lichking->GetMotionMaster()->MoveIdle(); lichking->GetMotionMaster()->MoveChase(me); @@ -901,9 +901,9 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript if (Creature* walltarget = me->SummonCreature(NPC_ICE_WALL,IceWalls[0].GetPositionX(), IceWalls[0].GetPositionY(), IceWalls[0].GetPositionZ(), IceWalls[0].GetOrientation(), TEMPSUMMON_MANUAL_DESPAWN, 720000)) { _walltargetGUID = walltarget->GetGUID(); - walltarget->AI()->DoCast(walltarget, SPELL_SUMMON_ICE_WALL); + walltarget->AI()->DoCast(walltarget, SPELL_SUMMON_ICE_WALL); walltarget->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); - me->Attack(walltarget,false); + me->Attack(walltarget,false); } me->GetMotionMaster()->MovePoint(0, NpcJainaOrSylvanasEscapeRoute[3]); _events.ScheduleEvent(EVENT_ESCAPE_14, 8000); @@ -921,7 +921,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript else me->AI()->Talk(SAY_SYLVANAS_ESCAPE_2); } - } + } _events.ScheduleEvent(EVENT_ESCAPE_15, 1000); break; case EVENT_ESCAPE_15: @@ -966,7 +966,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript else me->RemoveAurasDueToSpell(SPELL_SYLVANAS_DESTROY_ICE_WALL); } - if (_icewall && _icewall < 4) + if (_icewall && _icewall < 4) me->GetMotionMaster()->MovePoint(0, NpcJainaOrSylvanasEscapeRoute[_icewall + 3]); _events.ScheduleEvent(EVENT_ESCAPE_18, 2000); break; @@ -991,7 +991,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript if (Creature* walltarget = me->SummonCreature(NPC_ICE_WALL, IceWalls[_icewall].GetPositionX(), IceWalls[_icewall].GetPositionY(), IceWalls[_icewall].GetPositionZ(), IceWalls[_icewall].GetOrientation(), TEMPSUMMON_MANUAL_DESPAWN, 720000)) { _walltargetGUID = walltarget->GetGUID(); - walltarget->AI()->DoCast(walltarget, SPELL_SUMMON_ICE_WALL); + walltarget->AI()->DoCast(walltarget, SPELL_SUMMON_ICE_WALL); walltarget->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE); me->Attack(walltarget,false); } @@ -1028,9 +1028,9 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript if (Creature* lichking = me->GetCreature(*me, _lichkingGUID)) { if (_icewall && _icewall < 3) - lichking->AI()->DoCast(lichking, SPELL_SUMMON_RISE_WITCH_DOCTOR); + lichking->AI()->DoCast(lichking, SPELL_SUMMON_RISE_WITCH_DOCTOR); else - lichking->AI()->DoCast(lichking, SPELL_SUMMON_LUMBERING_ABOMINATION); + lichking->AI()->DoCast(lichking, SPELL_SUMMON_LUMBERING_ABOMINATION); } if (_icewall == 3) _events.ScheduleEvent(EVENT_ESCAPE_21, 16000); // last wall, really far @@ -1826,20 +1826,20 @@ class npc_raging_ghoul : public CreatureScript { public: npc_raging_ghoul() : CreatureScript("npc_raging_ghoul") { } - + struct npc_raging_ghoulAI : public ScriptedAI { npc_raging_ghoulAI(Creature* creature) : ScriptedAI(creature) { - _instance = me->GetInstanceScript(); + _instance = me->GetInstanceScript(); } - + InstanceScript* _instance; uint32 _emergeTimer; bool _doEmerge; bool _doJump; uint64 _leaderGUID; - + void Reset() OVERRIDE { _emergeTimer = 4000; @@ -1847,47 +1847,47 @@ public: _doJump = false; if (_instance && _instance->GetData(DATA_ESCAPE_EVENT) == IN_PROGRESS) _instance->SetData(DATA_SUMMONS, 1); - + } - + void IsSummonedBy(Unit*) OVERRIDE { DoCast(me, SPELL_EMERGE_VISUAL); DoZoneInCombat(me, 100.00f); } - + void JustDied(Unit* /*killer*/) OVERRIDE { if (_instance) _instance->SetData(DATA_SUMMONS, 0); } - + void AttackStart(Unit* who) OVERRIDE { if (!who) return; - + if (!_doEmerge) return; - + ScriptedAI::AttackStart(who); } - + void UpdateAI(uint32 diff) OVERRIDE { if (!_instance) return; - + if (_instance->GetData(DATA_ESCAPE_EVENT) == IN_PROGRESS) { _leaderGUID = _instance->GetData64(DATA_ESCAPE_LEADER); Creature* leader = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_ESCAPE_LEADER)); - + if (_doEmerge != true) { if (_emergeTimer < diff) { - _doEmerge = true; + _doEmerge = true; if (leader) { DoResetThreat(); @@ -1898,7 +1898,7 @@ public: else _emergeTimer -= diff; } - + if (me->Attack(leader,true))/*(Unit *target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150.0f))*/ { if (!_doJump && me->IsWithinDistInMap(leader, 30.0f) && !me->IsWithinDistInMap(leader, 5.0f)) @@ -1913,7 +1913,7 @@ public: DoMeleeAttackIfReady(); } }; - + CreatureAI* GetAI(Creature* creature) const OVERRIDE { return new npc_raging_ghoulAI(creature); @@ -1924,14 +1924,14 @@ class npc_risen_witch_doctor : public CreatureScript { public: npc_risen_witch_doctor() : CreatureScript("npc_risen_witch_doctor") { } - + struct npc_risen_witch_doctorAI : public ScriptedAI { npc_risen_witch_doctorAI(Creature* creature) : ScriptedAI(creature) { - _instance = me->GetInstanceScript(); + _instance = me->GetInstanceScript(); } - + InstanceScript* _instance; uint32 _emergeTimer; bool _doEmerge; @@ -1939,7 +1939,7 @@ public: uint32 _boltTimer; uint32 _boltVolleyTimer; uint32 _curseTimer; - + void Reset() OVERRIDE { _emergeTimer = 5000; @@ -1951,36 +1951,36 @@ public: if (_instance->GetData(DATA_ESCAPE_EVENT) == IN_PROGRESS) _instance->SetData(DATA_SUMMONS, 1); } - + void IsSummonedBy(Unit*) OVERRIDE { DoCast(me, SPELL_EMERGE_VISUAL); DoZoneInCombat(me, 100.00f); } - + void JustDied(Unit* /*killer*/) OVERRIDE { - if (_instance) + if (_instance) _instance->SetData(DATA_SUMMONS, 0); - + } - + void AttackStart(Unit* who) OVERRIDE { if (!who) return; - + if (_doEmerge == false) return; - + ScriptedAI::AttackStart(who); } - + void UpdateAI(uint32 diff) OVERRIDE { if (!_instance) return; - + if (_instance->GetData(DATA_ESCAPE_EVENT) == IN_PROGRESS) { if (_doEmerge != true) @@ -1989,7 +1989,7 @@ public: { _doEmerge = true; _leaderGUID = _instance->GetData64(DATA_ESCAPE_LEADER); - + if (Creature* leader = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_ESCAPE_LEADER))) { DoResetThreat(); @@ -2000,25 +2000,25 @@ public: else _emergeTimer -= diff; } - + if (_curseTimer < diff) { if (Unit *target = SelectTarget(SELECT_TARGET_RANDOM)) DoCast(target, SPELL_COURSE_OF_DOOM); _curseTimer = urand(10000, 15000); - } - else + } + else _curseTimer -= diff; - + if (_boltTimer < diff) { if (Unit *target = SelectTarget(SELECT_TARGET_TOPAGGRO)) DoCast(target, SPELL_SHADOW_BOLT); _boltTimer = urand(2000, 3000); - } - else + } + else _boltTimer -= diff; - + if (_boltVolleyTimer < diff) { if (Unit *target = SelectTarget(SELECT_TARGET_TOPAGGRO)) @@ -2033,7 +2033,7 @@ public: DoMeleeAttackIfReady(); } }; - + CreatureAI* GetAI(Creature* creature) const OVERRIDE { return new npc_risen_witch_doctorAI(creature); @@ -2045,20 +2045,20 @@ class npc_lumbering_abomination : public CreatureScript { public: npc_lumbering_abomination() : CreatureScript("npc_lumbering_abomination") { } - + struct npc_lumbering_abominationAI : public ScriptedAI { npc_lumbering_abominationAI(Creature* creature) : ScriptedAI(creature) { - _instance = me->GetInstanceScript(); + _instance = me->GetInstanceScript(); } - + InstanceScript* _instance; uint64 _leaderGUID; bool _doWalk; uint32 _strikeTimer; uint32 _vomitTimer; - + void Reset() OVERRIDE { _doWalk = false; @@ -2066,20 +2066,20 @@ public: _strikeTimer = 6000; if (_instance) if (_instance->GetData(DATA_ESCAPE_EVENT) == IN_PROGRESS) - _instance->SetData(DATA_SUMMONS, 1); + _instance->SetData(DATA_SUMMONS, 1); } - + void IsSummonedBy(Unit*) OVERRIDE { DoCast(me, SPELL_EMERGE_VISUAL); DoZoneInCombat(me, 100.00f); } - + void UpdateAI(uint32 diff) OVERRIDE { if (!_instance) return; - + if (_instance->GetData(DATA_ESCAPE_EVENT) == IN_PROGRESS) { if (_doWalk != true) @@ -2101,7 +2101,7 @@ public: } else _strikeTimer -= diff; - + if (_vomitTimer < diff) { if (Unit *target = SelectTarget(SELECT_TARGET_TOPAGGRO)) @@ -2115,15 +2115,15 @@ public: me->DespawnOrUnsummon(); DoMeleeAttackIfReady(); } - + void JustDied(Unit* /*killer*/) OVERRIDE { - if (_instance) + if (_instance) _instance->SetData(DATA_SUMMONS, 0); } - + }; - + CreatureAI* GetAI(Creature* creature) const OVERRIDE { return new npc_lumbering_abominationAI(creature); @@ -2145,7 +2145,7 @@ void AddSC_halls_of_reflection() new npc_tortured_rifleman(); new npc_raging_ghoul(); new npc_risen_witch_doctor(); - new npc_lumbering_abomination(); + new npc_lumbering_abomination(); new npc_frostworn_general(); new npc_spiritual_reflection(); } diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp index c5c1811d30e..a026a6636d4 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp @@ -181,7 +181,7 @@ public: HandleGameObject(0, true, go); else HandleGameObject(0, false, go); - break; + break; case GO_CAVE: _caveGUID = go->GetGUID(); go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND); @@ -255,17 +255,17 @@ public: if (_teamInInstance == ALLIANCE) instance->SummonCreature(NPC_JAINA_PART2, JainaSpawnPos2); else - instance->SummonCreature(NPC_SYLVANAS_PART2, SylvanasSpawnPos2); + instance->SummonCreature(NPC_SYLVANAS_PART2, SylvanasSpawnPos2); } - _frostwornGeneral = data; - break; + _frostwornGeneral = data; + break; case DATA_ESCAPE_EVENT: if (data == IN_PROGRESS) { if (!_escapeevent) if (Creature* jaina_or_sylvanas = instance->GetCreature(_jainaOrSylvanasPart2GUID)) jaina_or_sylvanas->AI()->DoAction(ACTION_START_ESCAPING); - } + } else if (data == NOT_STARTED) { if (Creature* jaina_or_sylvanas = instance->GetCreature(_jainaOrSylvanasPart2GUID)) @@ -287,7 +287,7 @@ public: if (Creature* jaina_or_sylvanas = instance->GetCreature(_jainaOrSylvanasPart2GUID)) jaina_or_sylvanas->AI()->DoAction(ACTION_WALL_BROKEN); } - } + } else if (data == 1) _mobsaticewall++; break; @@ -489,9 +489,9 @@ public: case DATA_FROSTMOURNE: return _frostmourneGUID; case DATA_ESCAPE_LEADER: - return _jainaOrSylvanasPart2GUID; + return _jainaOrSylvanasPart2GUID; case DATA_CAVE_IN: - return _caveGUID; + return _caveGUID; default: break; } diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index d87278cefc0..10cc62a8a91 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -1785,6 +1785,40 @@ class spell_q12847_summon_soul_moveto_bunny : public SpellScriptLoader } }; +class spell_q13086_cannons_target : public SpellScriptLoader +{ + public: + spell_q13086_cannons_target() : SpellScriptLoader("spell_q13086_cannons_target") { } + + class spell_q13086_cannons_target_SpellScript : public SpellScript + { + PrepareSpellScript(spell_q13086_cannons_target_SpellScript); + + bool Validate(SpellInfo const* spellInfo) OVERRIDE + { + if (!sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_0].CalcValue())) + return false; + return true; + } + + void HandleEffectDummy(SpellEffIndex /*effIndex*/) + { + if (WorldLocation const* pos = GetExplTargetDest()) + GetCaster()->CastSpell(pos->GetPositionX(), pos->GetPositionY(), pos->GetPositionZ(), GetEffectValue(), true); + } + + void Register() OVERRIDE + { + OnEffectHit += SpellEffectFn(spell_q13086_cannons_target_SpellScript::HandleEffectDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const OVERRIDE + { + return new spell_q13086_cannons_target_SpellScript(); + } +}; + void AddSC_quest_spell_scripts() { new spell_q55_sacred_cleansing(); @@ -1829,4 +1863,5 @@ void AddSC_quest_spell_scripts() new spell_q13291_q13292_q13239_q13261_frostbrood_skytalon_grab_decoy(); new spell_q13291_q13292_q13239_q13261_armored_decoy_summon_skytalon(); new spell_q12847_summon_soul_moveto_bunny(); + new spell_q13086_cannons_target(); } -- cgit v1.2.3