aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/2012_11_24_03_world_various_fixes.sql2
-rw-r--r--sql/updates/world/2012_12_13_00_world.sql3
-rw-r--r--sql/updates/world/2012_12_14_00_world_conditions.sql4
-rw-r--r--sql/updates/world/2012_12_14_01_world_waypoint_data.sql188
-rw-r--r--sql/updates/world/2012_12_14_02_world_misc.sql15
-rw-r--r--sql/updates/world/2012_12_14_03_world_npc_spellclick_spells.sql1
-rw-r--r--sql/updates/world/2012_12_14_04_world_misc.sql7
-rw-r--r--sql/updates/world/2012_12_14_05_world_spell_script_names.sql10
-rw-r--r--src/server/game/AI/CoreAI/PetAI.cpp10
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp4
-rw-r--r--src/server/game/Handlers/QuestHandler.cpp6
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp4
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp2
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp2
-rw-r--r--src/server/scripts/Kalimdor/azuremyst_isle.cpp18
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp117
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp4
-rw-r--r--src/server/scripts/Northrend/borean_tundra.cpp2
-rw-r--r--src/server/scripts/Outland/BlackTemple/illidari_council.cpp2
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp2
-rw-r--r--src/server/scripts/Outland/netherstorm.cpp6
-rw-r--r--src/server/scripts/Outland/shadowmoon_valley.cpp4
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp177
-rw-r--r--src/server/scripts/Spells/spell_holiday.cpp169
-rw-r--r--src/server/scripts/Spells/spell_priest.cpp14
-rw-r--r--src/server/scripts/World/npcs_special.cpp2
-rw-r--r--src/tools/vmap4_extractor/vmapexport.cpp2
27 files changed, 521 insertions, 256 deletions
diff --git a/sql/updates/world/2012_11_24_03_world_various_fixes.sql b/sql/updates/world/2012_11_24_03_world_various_fixes.sql
index 6a30c145165..dfa2d277564 100644
--- a/sql/updates/world/2012_11_24_03_world_various_fixes.sql
+++ b/sql/updates/world/2012_11_24_03_world_various_fixes.sql
@@ -358,7 +358,7 @@ INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`op
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=9456;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(15,9456,0,0,0,9,0,12132,0,0,0,0,'','Koltira Deathweaver show gossip option if player has quest 12132'),
-(15,9456,0,0,0,1,47740,0,0,1,0,0,'','Koltira Deathweaver show gossip option if player has not aura World of Shadows');
+(15,9456,0,0,0,1,0,47740,0,0,1,0,'','Koltira Deathweaver show gossip option if player has not aura World of Shadows');
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (26581,27846) 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
(26581,0,1,0,62,0,100,0,9456,0,0,0,11,47740,0,0,0,0,0,7,0,0,0,0,0,0,0,'Koltira Deathweaver - On gossip option select - Spellcast World of Shadows'),
diff --git a/sql/updates/world/2012_12_13_00_world.sql b/sql/updates/world/2012_12_13_00_world.sql
index 06d93ad501b..ab27796f933 100644
--- a/sql/updates/world/2012_12_13_00_world.sql
+++ b/sql/updates/world/2012_12_13_00_world.sql
@@ -1,7 +1,4 @@
-DELETE FROM `waypoint_data` WHERE `id`=389230 AND `point`=11 AND `position_z`=21.8886; -- duplicated point with wrong `point`
-
ALTER TABLE `creature_classlevelstats` ADD PRIMARY KEY (`level`, `class`);
ALTER TABLE `playercreateinfo_item` ADD PRIMARY KEY (`race`, `class`, `itemid`); -- already got (race, class) index
ALTER TABLE `spell_enchant_proc_data` ADD PRIMARY KEY (`entry`);
ALTER TABLE `version` ADD PRIMARY KEY (`core_version`);
-ALTER TABLE `waypoint_data` ADD PRIMARY KEY (`id`, `point`);
diff --git a/sql/updates/world/2012_12_14_00_world_conditions.sql b/sql/updates/world/2012_12_14_00_world_conditions.sql
new file mode 100644
index 00000000000..6b6fbfd02c0
--- /dev/null
+++ b/sql/updates/world/2012_12_14_00_world_conditions.sql
@@ -0,0 +1,4 @@
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=9456;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
+(15,9456,0,0,0,9,0,12132,0,0,0,0,'','Koltira Deathweaver show gossip option if player has quest 12132'),
+(15,9456,0,0,0,1,0,47740,0,0,1,0,'','Koltira Deathweaver show gossip option if player has not aura World of Shadows');
diff --git a/sql/updates/world/2012_12_14_01_world_waypoint_data.sql b/sql/updates/world/2012_12_14_01_world_waypoint_data.sql
new file mode 100644
index 00000000000..e3589c53340
--- /dev/null
+++ b/sql/updates/world/2012_12_14_01_world_waypoint_data.sql
@@ -0,0 +1,188 @@
+SET @NPC := 131038;
+SET @PATH := @NPC*10;
+DELETE FROM `creature` WHERE `guid`=@NPC;
+INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`) VALUES
+(@NPC,26933,571,1,1,0,0,3738.288,310.6056,206.0655,1.91463,120,0,0,1,0,2);
+DELETE FROM `creature_addon` WHERE `guid`=@NPC;
+INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes1`) VALUES (@NPC,@PATH,50331648);
+DELETE FROM `waypoint_data` WHERE `id`=@PATH;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(@PATH,1,3738.288,310.6056,206.0655,0,0,0,100,0),
+(@PATH,2,3775.943,320.1521,206.0655,0,0,0,100,0),
+(@PATH,3,3791.984,364.0035,206.0655,0,0,0,100,0),
+(@PATH,4,3821.821,375.4122,206.0655,0,0,0,100,0),
+(@PATH,5,3862.769,402.7154,206.0655,0,0,0,100,0),
+(@PATH,6,3833.872,426.7561,206.0655,0,0,0,100,0),
+(@PATH,7,3796.899,413.8476,206.0655,0,0,0,100,0),
+(@PATH,8,3780.125,433.8598,206.0655,0,0,0,100,0),
+(@PATH,9,3736.043,443.3744,206.0655,0,0,0,100,0),
+(@PATH,10,3713.603,445.3026,206.0655,0,0,0,100,0),
+(@PATH,11,3683.613,406.9387,206.0655,0,0,0,100,0),
+(@PATH,12,3706.474,364.4982,206.0655,0,0,0,100,0),
+(@PATH,13,3712.073,324.8767,206.0655,0,0,0,100,0);
+
+DELETE FROM `waypoint_data` WHERE `id`=34760;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(34760,1 ,1527.534058,-4154.753418,40.633469,0,0,0,0,100,0),
+(34760,2 ,1538.660889,-4155.732910,40.592560,0,0,0,0,100,0),
+(34760,3 ,1544.449585,-4165.091797,40.235329,0,0,0,0,100,0),
+(34760,4 ,1549.555054,-4182.306152,40.612457,0,0,0,0,100,0),
+(34760,5 ,1546.198364,-4195.886719,41.639046,0,0,0,0,100,0),
+(34760,6 ,1546.507202,-4208.074219,42.972824,0,0,0,0,100,0),
+(34760,7 ,1563.277588,-4208.397949,43.588390,0,0,0,0,100,0),
+(34760,8 ,1580.304932,-4204.166992,42.040199,0,0,0,0,100,0),
+(34760,9 ,1579.333008,-4190.097656,40.364456,0,0,0,0,100,0),
+(34760,10,1578.215454,-4169.156250,36.905151,0,0,0,0,100,0),
+(34760,11,1583.998901,-4151.174316,34.014111,0,0,0,0,100,0),
+(34760,12,1598.492920,-4127.300293,30.541750,0,0,0,0,100,0),
+(34760,13,1617.180908,-4113.645508,29.638874,0,0,0,0,100,0),
+(34760,14,1636.737183,-4106.015625,30.359407,0,0,0,0,100,0),
+(34760,15,1656.451660,-4098.783691,33.361252,0,0,0,0,100,0),
+(34760,16,1682.917603,-4089.642822,37.421402,0,0,0,0,100,0),
+(34760,17,1703.152954,-4084.039551,40.476315,0,0,0,0,100,0),
+(34760,18,1726.875488,-4072.490234,43.763309,0,0,0,0,100,0),
+(34760,19,1731.973511,-4067.927002,44.831135,0,0,0,0,100,0),
+(34760,20,1741.482544,-4049.207031,44.283241,0,0,0,0,100,0),
+(34760,21,1745.628418,-4030.451172,45.169521,0,0,0,0,100,0),
+(34760,22,1745.231323,-4016.597412,45.969612,0,0,0,0,100,0),
+(34760,23,1740.649658,-3996.140625,46.610088,0,0,0,0,100,0),
+(34760,24,1729.449951,-3971.255615,48.347816,0,0,0,0,100,0),
+(34760,25,1723.011841,-3958.823730,49.068924,0,0,0,0,100,0),
+(34760,26,1708.968994,-3932.853760,50.349556,0,0,0,0,100,0),
+(34760,27,1721.805054,-3957.727295,49.226501,0,0,0,0,100,0),
+(34760,28,1734.530396,-3982.660156,47.613869,0,0,0,0,100,0),
+(34760,29,1740.518555,-4002.613770,46.854977,0,0,0,0,100,0),
+(34760,30,1743.422241,-4023.412109,46.146847,0,0,0,0,100,0),
+(34760,31,1742.478638,-4043.433350,44.345577,0,0,0,0,100,0),
+(34760,32,1735.912354,-4059.685303,44.504650,0,0,0,0,100,0),
+(34760,33,1729.070313,-4071.194092,44.119446,0,0,0,0,100,0),
+(34760,34,1714.267700,-4082.427490,40.937172,0,0,0,0,100,0),
+(34760,35,1696.915161,-4087.865967,38.582226,0,0,0,0,100,0),
+(34760,36,1676.688477,-4093.507080,36.173759,0,0,0,0,100,0),
+(34760,37,1656.776611,-4100.146484,33.436935,0,0,0,0,100,0),
+(34760,38,1637.123169,-4107.544922,30.447823,0,0,0,0,100,0),
+(34760,39,1617.755859,-4115.625000,29.678862,0,0,0,0,100,0),
+(34760,40,1597.177124,-4130.714844,31.122652,0,0,0,0,100,0),
+(34760,41,1590.612183,-4140.921875,32.565376,0,0,0,0,100,0),
+(34760,42,1578.348389,-4166.501953,36.404202,0,0,0,0,100,0),
+(34760,43,1578.059326,-4183.750488,39.244587,0,0,0,0,100,0),
+(34760,44,1578.675171,-4204.605957,42.405655,0,0,0,0,100,0),
+(34760,45,1569.681030,-4206.293457,43.517696,0,0,0,0,100,0),
+(34760,46,1548.253662,-4208.393555,43.110550,0,0,0,0,100,0),
+(34760,47,1544.526123,-4201.686035,42.132000,0,0,0,0,100,0),
+(34760,48,1549.644531,-4176.722656,40.245403,0,0,0,0,100,0),
+(34760,49,1547.767822,-4167.392578,39.779228,0,0,0,0,100,0),
+(34760,50,1541.973145,-4159.893555,40.252274,0,0,0,0,100,0);
+
+DELETE FROM `waypoint_data` WHERE `id`=389230 AND `point`=11 AND CONCAT(`position_z`)=21.8886;
+UPDATE `waypoint_data` SET `point`=18 WHERE `id`=798590 AND `point`=17 AND CONCAT(`position_z`)=86.8893;
+
+DELETE FROM `waypoint_data` WHERE `id`=1004880;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_flag`, `action`, `action_chance`, `wpguid`) VALUES
+(1004880,1 , 3760.31, -5413.58, 26.5976, 0, 0, 0, 0, 100, 0),
+(1004880,2 , 3767.48, -5379.59, 37.1119, 0, 0, 0, 0, 100, 0),
+(1004880,3 , 3766.13, -5345.33, 53.1732, 0, 0, 0, 0, 100, 0),
+(1004880,4 , 3777.34, -5323.27, 63.4175, 0, 0, 0, 0, 100, 0),
+(1004880,5 , 3784.32, -5306.1, 69.4175, 0, 2000, 0, 1158, 100, 0),
+(1004880,6 , 3638.17, -5528.01, 15.9111, 0, 0, 0, 0, 100, 0),
+(1004880,7 , 3659.66, -5509.71, 18.4111, 0, 0, 0, 0, 100, 0),
+(1004880,8 , 3685.62, -5492.93, 17.1109, 0, 0, 0, 0, 100, 0),
+(1004880,9 , 3707.26, -5465.77, 22.0405, 0, 0, 0, 0, 100, 0),
+(1004880,10, 3740.28, -5445.48, 23.4599, 0, 0, 0, 0, 100, 0);
+
+DELETE FROM `waypoint_data` WHERE `id`=1004930;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_flag`, `action`, `action_chance`, `wpguid`) VALUES
+(1004930,1, 3694.05, -5419.93, 29.8607, 0, 0, 0, 0, 100, 0),
+(1004930,2, 3703.84, -5410.59, 31.9159, 0, 0, 0, 0, 100, 0),
+(1004930,3, 3713.04, -5396.53, 35.2108, 0, 0, 0, 0, 100, 0),
+(1004930,4, 3736.31, -5388.52, 37.2879, 0, 0, 0, 0, 100, 0),
+(1004930,5, 3758.76, -5378.36, 37.9129, 0, 0, 0, 0, 100, 0),
+(1004930,6, 3771.44, -5360.71, 46.7247, 0, 2000, 0, 1156, 100, 0),
+(1004930,7, 3657.57, -5440.7, 26.5234, 0, 0, 0, 0, 100, 0),
+(1004930,8, 3679.07, -5423.48, 29.6107, 0, 0, 0, 0, 100, 0);
+
+DELETE FROM `waypoint_data` WHERE `id`=1005300;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_flag`, `action`, `action_chance`, `wpguid`) VALUES
+(1005300,1 , 3706.62, -5237.35, 124.168, 0, 0, 0, 0, 100, 0),
+(1005300,2 , 3718.6, -5224.17, 125.384, 0, 0, 0, 0, 100, 0),
+(1005300,3 , 3725.75, -5214.71, 124.134, 0, 0, 0, 0, 100, 0),
+(1005300,4 , 3745.2, -5187.22, 120.89, 0, 2000, 0, 1157, 100, 0),
+(1005300,5 , 3519.54, -5462.26, 168.561, 0, 0, 0, 0, 100, 0),
+(1005300,6 , 3521.78, -5441.77, 164.311, 0, 0, 0, 0, 100, 0),
+(1005300,7 , 3520.97, -5424.06, 162.656, 0, 0, 0, 0, 100, 0),
+(1005300,8 , 3535.27, -5403.59, 156.172, 0, 0, 0, 0, 100, 0),
+(1005300,9 , 3549.19, -5384.1, 150.723, 0, 0, 0, 0, 100, 0),
+(1005300,10, 3558.99, -5362.74, 147.264, 0, 0, 0, 0, 100, 0),
+(1005300,11, 3575.57, -5347.88, 145.144, 0, 0, 0, 0, 100, 0),
+(1005300,12, 3591.95, -5333.96, 138.394, 0, 0, 0, 0, 100, 0),
+(1005300,13, 3614.07, -5316.79, 128.267, 0, 0, 0, 0, 100, 0),
+(1005300,14, 3629.8, -5303.53, 126.767, 0, 0, 0, 0, 100, 0),
+(1005300,15, 3653.6, -5275.46, 122.074, 0, 0, 0, 0, 100, 0),
+(1005300,16, 3673.5, -5264.86, 120.737, 0, 0, 0, 0, 100, 0),
+(1005300,17, 3694, -5250.39, 120.112, 0, 0, 0, 0, 100, 0);
+
+DELETE FROM `waypoint_data` WHERE `id`=1184060;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_flag`, `action`, `action_chance`, `wpguid`) VALUES
+(1184060,1 , 2202.72, 5394.91, 39.1387, 0, 0, 0, 0, 100, 0),
+(1184060,2 , 2228.7, 5383.33, 41.9165, 0, 0, 0, 0, 100, 0),
+(1184060,3 , 2232.7, 5373.53, 41.111, 0, 0, 0, 0, 100, 0),
+(1184060,4 , 2222.01, 5361.25, 39.1387, 0, 0, 0, 0, 100, 0),
+(1184060,5 , 2198.15, 5369.98, 39.1387, 0, 0, 0, 0, 100, 0),
+(1184060,6 , 2175.98, 5386.82, 39.1387, 0, 0, 0, 0, 100, 0),
+(1184060,7 , 2168.55, 5427.55, 39.1387, 0, 0, 0, 0, 100, 0),
+(1184060,8 , 2152.3, 5456.32, 21.5832, 0, 0, 0, 0, 100, 0),
+(1184060,9 , 2121.99, 5462.54, 15.0276, 0, 0, 0, 0, 100, 0),
+(1184060,10, 2106.46, 5436.09, 7.52763, 0, 0, 0, 0, 100, 0),
+(1184060,11, 2118.35, 5421.9, 11.6109, 0, 0, 0, 0, 100, 0),
+(1184060,12, 2142.4, 5407.65, 26.111, 0, 0, 0, 0, 100, 0),
+(1184060,13, 2163.29, 5410.02, 34.7221, 0, 0, 0, 0, 100, 0),
+(1184060,14, 2175.98, 5410.9, 39.1387, 0, 0, 0, 0, 100, 0),
+(1184060,15, 2191.93, 5401.03, 39.1387, 0, 0, 0, 0, 100, 0);
+
+DELETE FROM `waypoint_data` WHERE `id`=1216840;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_flag`, `action`, `action_chance`, `wpguid`) VALUES
+(1216840,1, 6156.09, -66.6786, 390.412, 0, 0, 0, 0, 100, 0),
+(1216840,2, 6157.94, -72.739, 390.412, 0, 0, 0, 0, 100, 0),
+(1216840,3, 6156.09, -66.6786, 390.412, 0, 0, 0, 0, 100, 0),
+(1216840,4, 6154.23, -60.7648, 390.412, 0, 0, 0, 0, 100, 0);
+
+DELETE FROM `waypoint_data` WHERE `id`=2026020;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
+(2026020,1,7024.75,-1625.538,957.3694,0,0,0,0,0,0),
+(2026020,2,7025.494,-1624.87,957.3694,0,0,0,0,0,0),
+(2026020,3,7167.578,-1501.694,962.5693,0,0,0,0,0,0),
+(2026020,4,7440.402,-1295.861,997.2911,0,0,0,0,0,0),
+(2026020,5,7210.958,-1046.892,1006.18,0,0,0,0,0,0),
+(2026020,6,6998.465,-1076.847,1024.819,0,0,0,0,0,0),
+(2026020,7,6874.249,-1097.382,927.736,0,0,0,0,0,0),
+(2026020,8,6614.792,-875.7547,812.7645,0,0,0,0,0,0),
+(2026020,9,6563.275,-811.7673,749.8757,0,0,0,0,0,0),
+(2026020,10,6299.502,-797.577,529.1257,0,0,0,0,0,0),
+(2026020,11,6194.549,-1013.144,501.5424,0,0,0,0,0,0),
+(2026020,12,6319.254,-1251.661,468.6258,0,0,0,0,0,0),
+(2026020,13,6309.161,-1537.857,615.0423,0,0,0,0,0,0),
+(2026020,14,6748.211,-1664.307,919.3118,0,0,0,0,0,0),
+(2026020,15,6913.308,-1725.261,954.7917,0,0,0,0,0,0),
+(2026020,16,7167.578,-1501.694,962.5693,0,0,0,0,0,0),
+(2026020,17,7440.402,-1295.861,997.2911,0,0,0,0,0,0);
+
+DELETE FROM `waypoint_data` WHERE `id` = 833780 AND `point` = 1 AND CONCAT(`position_x`) = 239.604 AND CONCAT(`position_y`) = -98.2138 AND CONCAT(`position_z`) = 26.5913;
+DELETE FROM `waypoint_data` WHERE `id` = 833780 AND `point` = 2 AND CONCAT(`position_x`) = 239.568 AND CONCAT(`position_y`) = -70.2138 AND CONCAT(`position_z`) = 26.5913;
+DELETE FROM `waypoint_data` WHERE `id` = 833780 AND `point` = 3 AND CONCAT(`position_x`) = 239.533 AND CONCAT(`position_y`) = -42.2138 AND CONCAT(`position_z`) = 26.5913;
+DELETE FROM `waypoint_data` WHERE `id` = 833780 AND `point` = 4 AND CONCAT(`position_x`) = 239.173 AND CONCAT(`position_y`) = -126.667 AND CONCAT(`position_z`) = 26.5913;
+
+DELETE FROM `waypoint_data` WHERE `id`=883750;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_flag`, `action`, `action_chance`, `wpguid`) VALUES
+(883750, 1, -8541.23, 1144.3, 18.9831, 0, 3000, 0, 0, 100, 0),
+(883750, 2, -8538.3, 1149.52, 19.0522, 0, 2000, 0, 0, 100, 0),
+(883750, 3, -8538.3, 1149.52, 19.0522, 0, 15000, 0, 1029, 100, 0),
+(883750, 4, -8538.3, 1149.52, 19.0522, 0, 2000, 0, 0, 100, 0),
+(883750, 5, -8544.61, 1133.18, 18.1536, 0, 0, 0, 0, 100, 0),
+(883750, 6, -8551.97, 1118.55, 19.0523, 0, 0, 0, 0, 100, 0),
+(883750, 7, -8564.22, 1107.25, 19.0523, 0, 0, 0, 0, 100, 0),
+(883750, 8, -8566.66, 1101.82, 19.0523, 0, 2000, 0, 0, 100, 0),
+(883750, 9, -8566.66, 1101.82, 19.0523, 0, 15000, 0, 1030, 100, 0),
+(883750, 10, -8566.66, 1101.82, 19.0523, 0, 2000, 0, 0, 100, 0),
+(883750, 11, -8559.28, 1114.25, 19.0523, 0, 0, 0, 0, 100, 0);
+
+ALTER TABLE `waypoint_data` ADD PRIMARY KEY (`id`, `point`);
diff --git a/sql/updates/world/2012_12_14_02_world_misc.sql b/sql/updates/world/2012_12_14_02_world_misc.sql
new file mode 100644
index 00000000000..29aa47909e1
--- /dev/null
+++ b/sql/updates/world/2012_12_14_02_world_misc.sql
@@ -0,0 +1,15 @@
+DELETE FROM `spell_script_names` WHERE `spell_id` IN (24750, 24751, 44436);
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(24750, 'spell_trick'),
+(24751, 'spell_trick_or_treat'),
+(44436, 'spell_tricky_treat');
+
+DELETE FROM `spell_linked_spell` WHERE `spell_trigger` IN (42965,42966);
+INSERT INTO `spell_linked_spell` (`spell_trigger`,`spell_effect`,`type`,`comment`) VALUES
+(42965,42919,0, 'Hallows End - Tricky Treat'),
+(42966,-42965,0, 'Hallows End - Upset Tummy removes Tricky Treat'),
+(42966,-42919,0, 'Hallows End - Upset Tummy removes Tricky Treat');
+
+DELETE FROM `conditions` WHERE `SourceEntry`=44436 AND `SourceTypeOrReferenceId`=17;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(17, 0, 44436, 0, 0, 1, 0, 42966, 0, 0, 1, 0, '','Tricky Treat casted only if Upset Tummy aura is missing');
diff --git a/sql/updates/world/2012_12_14_03_world_npc_spellclick_spells.sql b/sql/updates/world/2012_12_14_03_world_npc_spellclick_spells.sql
new file mode 100644
index 00000000000..2669abbc562
--- /dev/null
+++ b/sql/updates/world/2012_12_14_03_world_npc_spellclick_spells.sql
@@ -0,0 +1 @@
+DELETE FROM `npc_spellclick_spells` WHERE `npc_entry`=30228;
diff --git a/sql/updates/world/2012_12_14_04_world_misc.sql b/sql/updates/world/2012_12_14_04_world_misc.sql
new file mode 100644
index 00000000000..2cd99cfb12a
--- /dev/null
+++ b/sql/updates/world/2012_12_14_04_world_misc.sql
@@ -0,0 +1,7 @@
+DELETE FROM `spell_script_names` WHERE `spell_id`=44436;
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(44436, 'spell_tricky_treat');
+
+DELETE FROM `waypoint_data` WHERE `id`=883750 AND `point`=3;
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_flag`, `action`, `action_chance`, `wpguid`) VALUES
+(883750, 3, -8538.3, 1149.52, 19.0522, 0, 15000, 0, 1029, 100, 0);
diff --git a/sql/updates/world/2012_12_14_05_world_spell_script_names.sql b/sql/updates/world/2012_12_14_05_world_spell_script_names.sql
new file mode 100644
index 00000000000..6d6ab651365
--- /dev/null
+++ b/sql/updates/world/2012_12_14_05_world_spell_script_names.sql
@@ -0,0 +1,10 @@
+DELETE FROM `spell_script_names` WHERE `spell_id` IN (24750,24751,44436,-139,66118,67630,68646,68647);
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(24750, 'spell_hallow_end_trick'),
+(24751, 'spell_hallow_end_trick_or_treat'),
+(44436, 'spell_hallow_end_tricky_treat'),
+( -139, 'spell_pri_renew'),
+(66118, 'spell_anubarak_leeching_swarm'),
+(67630, 'spell_anubarak_leeching_swarm'),
+(68646, 'spell_anubarak_leeching_swarm'),
+(68647, 'spell_anubarak_leeching_swarm');
diff --git a/src/server/game/AI/CoreAI/PetAI.cpp b/src/server/game/AI/CoreAI/PetAI.cpp
index 812d8dc5f68..b7fa3940a20 100644
--- a/src/server/game/AI/CoreAI/PetAI.cpp
+++ b/src/server/game/AI/CoreAI/PetAI.cpp
@@ -550,10 +550,14 @@ bool PetAI::CanAttack(Unit* target)
return (me->IsWithinMeleeRange(target) || me->GetCharmInfo()->IsCommandAttack());
// Pets attacking something (or chasing) should only switch targets if owner tells them to
- if (me->getVictim() && (me->getVictim() != target))
+ if (me->getVictim() && me->getVictim() != target)
{
// Check if our owner selected this target and clicked "attack"
- Unit* ownerTarget = me->GetCharmerOrOwner()->ToPlayer()->GetSelectedUnit();
+ Unit* ownerTarget = NULL;
+ if (Player* owner = me->GetCharmerOrOwner()->ToPlayer())
+ ownerTarget = owner->GetSelectedUnit();
+ else
+ ownerTarget = me->GetCharmerOrOwner()->getVictim();
if (ownerTarget && me->GetCharmInfo()->IsCommandAttack())
return (target->GetGUID() == ownerTarget->GetGUID());
@@ -561,7 +565,7 @@ bool PetAI::CanAttack(Unit* target)
// Follow
if (me->GetCharmInfo()->HasCommandState(COMMAND_FOLLOW))
- return !me->GetCharmInfo()->IsReturning();
+ return !me->GetCharmInfo()->IsReturning();
// default, though we shouldn't ever get here
return false;
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index 66da873f9e9..4600caa63e3 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -2524,7 +2524,7 @@ float Creature::GetAggroRange(Unit const* target) const
if (target && this->isPet())
{
uint32 targetLevel = 0;
-
+
if (target->GetTypeId() == TYPEID_PLAYER)
targetLevel = target->getLevelForTarget(this);
else if (target->GetTypeId() == TYPEID_UNIT)
@@ -2532,7 +2532,7 @@ float Creature::GetAggroRange(Unit const* target) const
uint32 myLevel = getLevelForTarget(target);
int32 levelDiff = int32(targetLevel) - int32(myLevel);
-
+
// The maximum Aggro Radius is capped at 45 yards (25 level difference)
if (levelDiff < -25)
levelDiff = -25;
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp
index 8defb3b8761..8b230ae05c9 100644
--- a/src/server/game/Handlers/QuestHandler.cpp
+++ b/src/server/game/Handlers/QuestHandler.cpp
@@ -43,7 +43,7 @@ void WorldSession::HandleQuestgiverStatusQueryOpcode(WorldPacket& recvData)
Object* questgiver = ObjectAccessor::GetObjectByTypeMask(*_player, guid, TYPEMASK_UNIT|TYPEMASK_GAMEOBJECT);
if (!questgiver)
{
- sLog->outInfo(LOG_FILTER_NETWORKIO, "Error in CMSG_QUESTGIVER_STATUS_QUERY, called for not found questgiver (Typeid: %u GUID: %u)", GuidHigh2TypeId(GUID_HIPART(guid)), GUID_LOPART(guid));
+ sLog->outInfo(LOG_FILTER_NETWORKIO, "Error in CMSG_QUESTGIVER_STATUS_QUERY, called for non-existing questgiver (Typeid: %u GUID: %u)", GuidHigh2TypeId(GUID_HIPART(guid)), GUID_LOPART(guid));
return;
}
@@ -289,7 +289,7 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPacket& recvData)
if (reward >= QUEST_REWARD_CHOICES_COUNT)
{
- sLog->outError(LOG_FILTER_NETWORKIO, "Error in CMSG_QUESTGIVER_CHOOSE_REWARD: player %s (guid %d) tried to get invalid reward (%u) (probably packet hacking)", _player->GetName().c_str(), _player->GetGUIDLow(), reward);
+ sLog->outError(LOG_FILTER_NETWORKIO, "Error in CMSG_QUESTGIVER_CHOOSE_REWARD: player %s (guid %d) tried to get invalid reward (%u) (possible packet-hacking detected)", _player->GetName().c_str(), _player->GetGUIDLow(), reward);
return;
}
@@ -308,7 +308,7 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPacket& recvData)
if ((!_player->CanSeeStartQuest(quest) && _player->GetQuestStatus(questId) == QUEST_STATUS_NONE) ||
(_player->GetQuestStatus(questId) != QUEST_STATUS_COMPLETE && !quest->IsAutoComplete()))
{
- sLog->outError(LOG_FILTER_NETWORKIO, "HACK ALERT: Player %s (guid: %u) is trying to complete quest (id: %u) but he has no right to do it!",
+ sLog->outError(LOG_FILTER_NETWORKIO, "Error in QUEST_STATUS_COMPLETE: player %s (guid %u) tried to complete quest %u, but is not allowed to do so (possible packet-hacking or high latency)",
_player->GetName().c_str(), _player->GetGUIDLow(), questId);
return;
}
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 3329ecf88d2..4887c8adf62 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
@@ -43,7 +43,7 @@ enum Says
SAY_PHASE201 = 10,
SAY_PHASE203 = 11,
SAY_PHASE205 = 12,
- SAY_PHASE208 = 13,
+ SAY_PHASE208 = 13,
SAY_PHASE209 = 14,
SAY_PHASE210 = 15,
@@ -96,7 +96,7 @@ enum Says
SAY_PHASE117 = 1,
//Cityman
- SAY_PHASE202 = 0,
+ SAY_PHASE202 = 0,
//Crazyman
SAY_PHASE204 = 0,
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp
index 03bebe35fd9..5d9eaeac7b9 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/DarkPortal/dark_portal.cpp
@@ -59,7 +59,7 @@ enum MedivhBm
SPELL_CORRUPT = 31326,
SPELL_CORRUPT_AEONUS = 37853,
-
+
C_COUNCIL_ENFORCER = 17023
};
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
index 4ebdc408963..99a304e3726 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_skeram.cpp
@@ -35,7 +35,7 @@ enum Skeram
SAY_SLAY = 1,
SAY_SPLIT = 2,
SAY_DEATH = 3,
-
+
SPELL_ARCANE_EXPLOSION = 25679,
SPELL_EARTH_SHOCK = 26194,
SPELL_TRUE_FULFILLMENT = 785,
diff --git a/src/server/scripts/Kalimdor/azuremyst_isle.cpp b/src/server/scripts/Kalimdor/azuremyst_isle.cpp
index 85c7b5bba45..3f1ae0fa3bf 100644
--- a/src/server/scripts/Kalimdor/azuremyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/azuremyst_isle.cpp
@@ -491,23 +491,23 @@ public:
Spark->SetInFront(me);
me->SetInFront(Spark);
return 5000;
- case 3:
- Spark->AI()->Talk(SPARK_SAY_2);
+ case 3:
+ Spark->AI()->Talk(SPARK_SAY_2);
return 7000;
- case 4:
+ case 4:
Spark->AI()->Talk(SPARK_SAY_3);
return 8000;
- case 5:
+ case 5:
Talk(GEEZLE_SAY_4, SparkGUID);
return 8000;
- case 6:
+ case 6:
Spark->AI()->Talk(SPARK_SAY_5);
return 9000;
- case 7:
- Spark->AI()->Talk(SPARK_SAY_6);
+ case 7:
+ Spark->AI()->Talk(SPARK_SAY_6);
return 8000;
- case 8:
- Talk(GEEZLE_SAY_7, SparkGUID);
+ case 8:
+ Talk(GEEZLE_SAY_7, SparkGUID);
return 2000;
case 9:
me->GetMotionMaster()->MoveTargetedHome();
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
index f618d0e04e7..a9dc9cf394d 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
@@ -25,6 +25,7 @@
#include "ScriptedCreature.h"
#include "trial_of_the_crusader.h"
#include "SpellScript.h"
+#include "SpellAuraEffects.h"
#include <limits>
enum Yells
@@ -53,54 +54,54 @@ enum Summons
enum BossSpells
{
- SPELL_FREEZE_SLASH = 66012,
- SPELL_PENETRATING_COLD = 66013,
- SPELL_LEECHING_SWARM = 66118,
- SPELL_LEECHING_HEAL = 66125,
- SPELL_LEECHING_DAMAGE = 66240,
- SPELL_MARK = 67574,
- SPELL_SPIKE_CALL = 66169,
- SPELL_SUBMERGE_ANUBARAK = 65981,
- SPELL_CLEAR_ALL_DEBUFFS = 34098,
- SPELL_EMERGE_ANUBARAK = 65982,
- SPELL_SUMMON_BEATLES = 66339,
- SPELL_SUMMON_BURROWER = 66332,
+ SPELL_FREEZE_SLASH = 66012,
+ SPELL_PENETRATING_COLD = 66013,
+ SPELL_LEECHING_SWARM = 66118,
+ SPELL_LEECHING_SWARM_HEAL = 66125,
+ SPELL_LEECHING_SWARM_DMG = 66240,
+ SPELL_MARK = 67574,
+ SPELL_SPIKE_CALL = 66169,
+ SPELL_SUBMERGE_ANUBARAK = 65981,
+ SPELL_CLEAR_ALL_DEBUFFS = 34098,
+ SPELL_EMERGE_ANUBARAK = 65982,
+ SPELL_SUMMON_BEATLES = 66339,
+ SPELL_SUMMON_BURROWER = 66332,
// Burrow
- SPELL_CHURNING_GROUND = 66969,
+ SPELL_CHURNING_GROUND = 66969,
// Scarab
- SPELL_DETERMINATION = 66092,
- SPELL_ACID_MANDIBLE = 65774, //Passive - Triggered
+ SPELL_DETERMINATION = 66092,
+ SPELL_ACID_MANDIBLE = 65774, //Passive - Triggered
// Burrower
- SPELL_SPIDER_FRENZY = 66128,
- SPELL_EXPOSE_WEAKNESS = 67720, //Passive - Triggered
- SPELL_SHADOW_STRIKE = 66134,
- SPELL_SUBMERGE_EFFECT = 68394,
- SPELL_AWAKENED = 66311,
- SPELL_EMERGE_EFFECT = 65982,
+ SPELL_SPIDER_FRENZY = 66128,
+ SPELL_EXPOSE_WEAKNESS = 67720, //Passive - Triggered
+ SPELL_SHADOW_STRIKE = 66134,
+ SPELL_SUBMERGE_EFFECT = 68394,
+ SPELL_AWAKENED = 66311,
+ SPELL_EMERGE_EFFECT = 65982,
- SPELL_PERSISTENT_DIRT = 68048,
+ SPELL_PERSISTENT_DIRT = 68048,
- SUMMON_SCARAB = NPC_SCARAB,
- SUMMON_FROSTSPHERE = NPC_FROST_SPHERE,
- SPELL_BERSERK = 26662,
+ SUMMON_SCARAB = NPC_SCARAB,
+ SUMMON_FROSTSPHERE = NPC_FROST_SPHERE,
+ SPELL_BERSERK = 26662,
//Frost Sphere
- SPELL_FROST_SPHERE = 67539,
- SPELL_PERMAFROST = 66193,
- SPELL_PERMAFROST_VISUAL = 65882,
- SPELL_PERMAFROST_MODEL = 66185,
+ SPELL_FROST_SPHERE = 67539,
+ SPELL_PERMAFROST = 66193,
+ SPELL_PERMAFROST_VISUAL = 65882,
+ SPELL_PERMAFROST_MODEL = 66185,
//Spike
- SPELL_SUMMON_SPIKE = 66169,
- SPELL_SPIKE_SPEED1 = 65920,
- SPELL_SPIKE_TRAIL = 65921,
- SPELL_SPIKE_SPEED2 = 65922,
- SPELL_SPIKE_SPEED3 = 65923,
- SPELL_SPIKE_FAIL = 66181,
- SPELL_SPIKE_TELE = 66170
+ SPELL_SUMMON_SPIKE = 66169,
+ SPELL_SPIKE_SPEED1 = 65920,
+ SPELL_SPIKE_TRAIL = 65921,
+ SPELL_SPIKE_SPEED2 = 65922,
+ SPELL_SPIKE_SPEED3 = 65923,
+ SPELL_SPIKE_FAIL = 66181,
+ SPELL_SPIKE_TELE = 66170
};
#define SPELL_PERMAFROST_HELPER RAID_MODE<uint32>(66193, 67855, 67856, 67857)
@@ -841,6 +842,49 @@ class spell_impale : public SpellScriptLoader
}
};
+class spell_anubarak_leeching_swarm : public SpellScriptLoader
+{
+ public:
+ spell_anubarak_leeching_swarm() : SpellScriptLoader("spell_anubarak_leeching_swarm") { }
+
+ class spell_anubarak_leeching_swarm_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_anubarak_leeching_swarm_AuraScript);
+
+ bool Validate(SpellInfo const* /*spell*/)
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_LEECHING_SWARM_DMG) || !sSpellMgr->GetSpellInfo(SPELL_LEECHING_SWARM_HEAL))
+ return false;
+ return true;
+ }
+
+ void HandleEffectPeriodic(AuraEffect const* aurEff)
+ {
+ Unit* caster = GetCaster();
+ if (Unit* target = GetTarget())
+ {
+ int32 lifeLeeched = target->CountPctFromCurHealth(aurEff->GetAmount());
+ if (lifeLeeched < 250)
+ lifeLeeched = 250;
+ // Damage
+ caster->CastCustomSpell(target, SPELL_LEECHING_SWARM_DMG, &lifeLeeched, 0, 0, false);
+ // Heal
+ caster->CastCustomSpell(caster, SPELL_LEECHING_SWARM_HEAL, &lifeLeeched, 0, 0, false);
+ }
+ }
+
+ void Register()
+ {
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_anubarak_leeching_swarm_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
+ }
+ };
+
+ AuraScript* GetAuraScript() const
+ {
+ return new spell_anubarak_leeching_swarm_AuraScript();
+ }
+};
+
void AddSC_boss_anubarak_trial()
{
new boss_anubarak_trial();
@@ -850,4 +894,5 @@ void AddSC_boss_anubarak_trial()
new mob_frost_sphere();
new spell_impale();
+ new spell_anubarak_leeching_swarm();
}
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
index 969a3621e8e..51eca327810 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
@@ -29,7 +29,7 @@ enum Yells
SAY_GORKUN_INTRO_2 = 0,
SAY_GORKUN_OUTRO_1 = 1,
SAY_GORKUN_OUTRO_2 = 2,
-
+
//Tyrannus
SAY_AMBUSH_1 = 3,
SAY_AMBUSH_2 = 4,
@@ -43,7 +43,7 @@ enum Yells
SAY_MARK_RIMEFANG_2 = 12,
SAY_DARK_MIGHT_1 = 13,
SAY_DARK_MIGHT_2 = 14,
-
+
//Jaina
SAY_JAYNA_OUTRO_3 = 3,
SAY_JAYNA_OUTRO_4 = 4,
diff --git a/src/server/scripts/Northrend/borean_tundra.cpp b/src/server/scripts/Northrend/borean_tundra.cpp
index 628de0238e0..3f20a3d32bc 100644
--- a/src/server/scripts/Northrend/borean_tundra.cpp
+++ b/src/server/scripts/Northrend/borean_tundra.cpp
@@ -931,7 +931,7 @@ enum eThassarian
SAY_LICH_1 = 0,
SAY_LICH_2 = 1,
SAY_LICH_3 = 2,
-
+
SAY_ARLOS_1 = 0,
SAY_ARLOS_2 = 1,
diff --git a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp
index 5a9b6e5a94e..dcbbb76162d 100644
--- a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp
+++ b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp
@@ -37,7 +37,7 @@ enum IllidariCouncil
SAY_GATH_SLAY = 4,
SAY_GATH_COMNT = 5,
SAY_GATH_DEATH = 6,
-
+
SAY_MALA_SPECIAL1 = 2,
SAY_MALA_SPECIAL2 = 3,
SAY_MALA_SLAY = 4,
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
index 6fe1e86551a..157473463af 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp
@@ -387,7 +387,7 @@ public:
{
if (victim->GetTypeId() != TYPEID_PLAYER)
return;
-
+
Talk(DemonForm ? SAY_DEMON_SLAY : SAY_NIGHTELF_SLAY);
}
diff --git a/src/server/scripts/Outland/netherstorm.cpp b/src/server/scripts/Outland/netherstorm.cpp
index 96f707b06f1..7bec3674a84 100644
--- a/src/server/scripts/Outland/netherstorm.cpp
+++ b/src/server/scripts/Outland/netherstorm.cpp
@@ -247,7 +247,7 @@ public:
if (someplayer)
{
Unit* u = Unit::GetUnit(*me, someplayer);
- if (u && u->GetTypeId() == TYPEID_PLAYER)
+ if (u && u->GetTypeId() == TYPEID_PLAYER)
Talk(EMOTE_START, u->GetGUID());
}
Event_Timer = 60000;
@@ -375,7 +375,7 @@ enum eCommanderDawnforgeData
SAY_PATHALEON_CULATOR_IMAGE_2 = 1,
SAY_PATHALEON_CULATOR_IMAGE_2_1 = 2,
SAY_PATHALEON_CULATOR_IMAGE_2_2 = 3,
-
+
QUEST_INFO_GATHERING = 10198,
SPELL_SUNFURY_DISGUISE = 34603,
};
@@ -683,7 +683,7 @@ class npc_professor_dabiri : public CreatureScript
public:
npc_professor_dabiri() : CreatureScript("npc_professor_dabiri") { }
- //OnQuestAccept:
+ //OnQuestAccept:
//if (quest->GetQuestId() == QUEST_DIMENSIUS)
//creature->AI()->Talk(WHISPER_DABIRI, player->GetGUID());
diff --git a/src/server/scripts/Outland/shadowmoon_valley.cpp b/src/server/scripts/Outland/shadowmoon_valley.cpp
index 55fce0c4a8d..65a4dbe92a5 100644
--- a/src/server/scripts/Outland/shadowmoon_valley.cpp
+++ b/src/server/scripts/Outland/shadowmoon_valley.cpp
@@ -1495,8 +1495,8 @@ public:
if (!Announced && AnnounceTimer <= diff)
{
Announced = true;
- }
- else
+ }
+ else
AnnounceTimer -= diff;
if (WaveTimer <= diff)
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 2e36d3811f6..667b6841b63 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -367,59 +367,9 @@ class spell_gen_remove_flight_auras : public SpellScriptLoader
}
};
-// 66118 Leeching Swarm
-enum LeechingSwarmSpells
-{
- SPELL_LEECHING_SWARM_DMG = 66240,
- SPELL_LEECHING_SWARM_HEAL = 66125,
-};
-
-class spell_gen_leeching_swarm : public SpellScriptLoader
-{
- public:
- spell_gen_leeching_swarm() : SpellScriptLoader("spell_gen_leeching_swarm") { }
-
- class spell_gen_leeching_swarm_AuraScript : public AuraScript
- {
- PrepareAuraScript(spell_gen_leeching_swarm_AuraScript);
-
- bool Validate(SpellInfo const* /*spellEntry*/)
- {
- if (!sSpellMgr->GetSpellInfo(SPELL_LEECHING_SWARM_DMG) || !sSpellMgr->GetSpellInfo(SPELL_LEECHING_SWARM_HEAL))
- return false;
- return true;
- }
-
- void HandleEffectPeriodic(AuraEffect const* aurEff)
- {
- Unit* caster = GetCaster();
- if (Unit* target = GetTarget())
- {
- int32 lifeLeeched = target->CountPctFromCurHealth(aurEff->GetAmount());
- if (lifeLeeched < 250)
- lifeLeeched = 250;
- // Damage
- caster->CastCustomSpell(target, SPELL_LEECHING_SWARM_DMG, &lifeLeeched, 0, 0, false);
- // Heal
- caster->CastCustomSpell(caster, SPELL_LEECHING_SWARM_HEAL, &lifeLeeched, 0, 0, false);
- }
- }
-
- void Register()
- {
- OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_leeching_swarm_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
- }
- };
-
- AuraScript* GetAuraScript() const
- {
- return new spell_gen_leeching_swarm_AuraScript();
- }
-};
-
enum EluneCandle
{
- NPC_OMEN = 15467,
+ NPC_OMEN = 15467,
SPELL_ELUNE_CANDLE_OMEN_HEAD = 26622,
SPELL_ELUNE_CANDLE_OMEN_CHEST = 26624,
@@ -483,128 +433,6 @@ class spell_gen_elune_candle : public SpellScriptLoader
}
};
-// 24750 Trick
-enum TrickSpells
-{
- SPELL_PIRATE_COSTUME_MALE = 24708,
- SPELL_PIRATE_COSTUME_FEMALE = 24709,
- SPELL_NINJA_COSTUME_MALE = 24710,
- SPELL_NINJA_COSTUME_FEMALE = 24711,
- SPELL_LEPER_GNOME_COSTUME_MALE = 24712,
- SPELL_LEPER_GNOME_COSTUME_FEMALE = 24713,
- SPELL_SKELETON_COSTUME = 24723,
- SPELL_GHOST_COSTUME_MALE = 24735,
- SPELL_GHOST_COSTUME_FEMALE = 24736,
- SPELL_TRICK_BUFF = 24753,
-};
-
-class spell_gen_trick : public SpellScriptLoader
-{
- public:
- spell_gen_trick() : SpellScriptLoader("spell_gen_trick") {}
-
- class spell_gen_trick_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_gen_trick_SpellScript);
- bool Validate(SpellInfo const* /*spellEntry*/)
- {
- if (!sSpellMgr->GetSpellInfo(SPELL_PIRATE_COSTUME_MALE) || !sSpellMgr->GetSpellInfo(SPELL_PIRATE_COSTUME_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_NINJA_COSTUME_MALE)
- || !sSpellMgr->GetSpellInfo(SPELL_NINJA_COSTUME_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_LEPER_GNOME_COSTUME_MALE) || !sSpellMgr->GetSpellInfo(SPELL_LEPER_GNOME_COSTUME_FEMALE)
- || !sSpellMgr->GetSpellInfo(SPELL_SKELETON_COSTUME) || !sSpellMgr->GetSpellInfo(SPELL_GHOST_COSTUME_MALE) || !sSpellMgr->GetSpellInfo(SPELL_GHOST_COSTUME_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_TRICK_BUFF))
- return false;
- return true;
- }
-
- void HandleScript(SpellEffIndex /*effIndex*/)
- {
- Unit* caster = GetCaster();
- if (Player* target = GetHitPlayer())
- {
- uint8 gender = target->getGender();
- uint32 spellId = SPELL_TRICK_BUFF;
- switch (urand(0, 5))
- {
- case 1:
- spellId = gender ? SPELL_LEPER_GNOME_COSTUME_FEMALE : SPELL_LEPER_GNOME_COSTUME_MALE;
- break;
- case 2:
- spellId = gender ? SPELL_PIRATE_COSTUME_FEMALE : SPELL_PIRATE_COSTUME_MALE;
- break;
- case 3:
- spellId = gender ? SPELL_GHOST_COSTUME_FEMALE : SPELL_GHOST_COSTUME_MALE;
- break;
- case 4:
- spellId = gender ? SPELL_NINJA_COSTUME_FEMALE : SPELL_NINJA_COSTUME_MALE;
- break;
- case 5:
- spellId = SPELL_SKELETON_COSTUME;
- break;
- default:
- break;
- }
-
- caster->CastSpell(target, spellId, true, NULL);
- }
- }
-
- void Register()
- {
- OnEffectHitTarget += SpellEffectFn(spell_gen_trick_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
- }
- };
-
- SpellScript* GetSpellScript() const
- {
- return new spell_gen_trick_SpellScript();
- }
-};
-
-// 24751 Trick or Treat
-enum TrickOrTreatSpells
-{
- SPELL_TRICK = 24714,
- SPELL_TREAT = 24715,
- SPELL_TRICKED_OR_TREATED = 24755
-};
-
-class spell_gen_trick_or_treat : public SpellScriptLoader
-{
- public:
- spell_gen_trick_or_treat() : SpellScriptLoader("spell_gen_trick_or_treat") {}
-
- class spell_gen_trick_or_treat_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_gen_trick_or_treat_SpellScript);
-
- bool Validate(SpellInfo const* /*spellEntry*/)
- {
- if (!sSpellMgr->GetSpellInfo(SPELL_TRICK) || !sSpellMgr->GetSpellInfo(SPELL_TREAT) || !sSpellMgr->GetSpellInfo(SPELL_TRICKED_OR_TREATED))
- return false;
- return true;
- }
-
- void HandleScript(SpellEffIndex /*effIndex*/)
- {
- Unit* caster = GetCaster();
- if (Player* target = GetHitPlayer())
- {
- caster->CastSpell(target, roll_chance_i(50) ? SPELL_TRICK : SPELL_TREAT, true, NULL);
- caster->CastSpell(target, SPELL_TRICKED_OR_TREATED, true, NULL);
- }
- }
-
- void Register()
- {
- OnEffectHitTarget += SpellEffectFn(spell_gen_trick_or_treat_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
- }
- };
-
- SpellScript* GetSpellScript() const
- {
- return new spell_gen_trick_or_treat_SpellScript();
- }
-};
-
class spell_creature_permanent_feign_death : public SpellScriptLoader
{
public:
@@ -3367,12 +3195,9 @@ void AddSC_generic_spell_scripts()
new spell_gen_av_drekthar_presence();
new spell_gen_burn_brutallus();
new spell_gen_cannibalize();
- new spell_gen_leeching_swarm();
new spell_gen_parachute();
new spell_gen_pet_summoned();
new spell_gen_remove_flight_auras();
- new spell_gen_trick();
- new spell_gen_trick_or_treat();
new spell_creature_permanent_feign_death();
new spell_pvp_trinket_wotf_shared_cd();
new spell_gen_animal_blood();
diff --git a/src/server/scripts/Spells/spell_holiday.cpp b/src/server/scripts/Spells/spell_holiday.cpp
index 5b1cbe0c36a..4f48c311612 100644
--- a/src/server/scripts/Spells/spell_holiday.cpp
+++ b/src/server/scripts/Spells/spell_holiday.cpp
@@ -110,7 +110,176 @@ class spell_love_is_in_the_air_romantic_picnic : public SpellScriptLoader
}
};
+// 24750 Trick
+enum TrickSpells
+{
+ SPELL_PIRATE_COSTUME_MALE = 24708,
+ SPELL_PIRATE_COSTUME_FEMALE = 24709,
+ SPELL_NINJA_COSTUME_MALE = 24710,
+ SPELL_NINJA_COSTUME_FEMALE = 24711,
+ SPELL_LEPER_GNOME_COSTUME_MALE = 24712,
+ SPELL_LEPER_GNOME_COSTUME_FEMALE = 24713,
+ SPELL_SKELETON_COSTUME = 24723,
+ SPELL_GHOST_COSTUME_MALE = 24735,
+ SPELL_GHOST_COSTUME_FEMALE = 24736,
+ SPELL_TRICK_BUFF = 24753,
+};
+
+class spell_hallow_end_trick : public SpellScriptLoader
+{
+ public:
+ spell_hallow_end_trick() : SpellScriptLoader("spell_hallow_end_trick") { }
+
+ class spell_hallow_end_trick_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_hallow_end_trick_SpellScript);
+ bool Validate(SpellInfo const* /*spell*/)
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_PIRATE_COSTUME_MALE) || !sSpellMgr->GetSpellInfo(SPELL_PIRATE_COSTUME_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_NINJA_COSTUME_MALE)
+ || !sSpellMgr->GetSpellInfo(SPELL_NINJA_COSTUME_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_LEPER_GNOME_COSTUME_MALE) || !sSpellMgr->GetSpellInfo(SPELL_LEPER_GNOME_COSTUME_FEMALE)
+ || !sSpellMgr->GetSpellInfo(SPELL_SKELETON_COSTUME) || !sSpellMgr->GetSpellInfo(SPELL_GHOST_COSTUME_MALE) || !sSpellMgr->GetSpellInfo(SPELL_GHOST_COSTUME_FEMALE) || !sSpellMgr->GetSpellInfo(SPELL_TRICK_BUFF))
+ return false;
+ return true;
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ Unit* caster = GetCaster();
+ if (Player* target = GetHitPlayer())
+ {
+ uint8 gender = target->getGender();
+ uint32 spellId = SPELL_TRICK_BUFF;
+ switch (urand(0, 5))
+ {
+ case 1:
+ spellId = gender ? SPELL_LEPER_GNOME_COSTUME_FEMALE : SPELL_LEPER_GNOME_COSTUME_MALE;
+ break;
+ case 2:
+ spellId = gender ? SPELL_PIRATE_COSTUME_FEMALE : SPELL_PIRATE_COSTUME_MALE;
+ break;
+ case 3:
+ spellId = gender ? SPELL_GHOST_COSTUME_FEMALE : SPELL_GHOST_COSTUME_MALE;
+ break;
+ case 4:
+ spellId = gender ? SPELL_NINJA_COSTUME_FEMALE : SPELL_NINJA_COSTUME_MALE;
+ break;
+ case 5:
+ spellId = SPELL_SKELETON_COSTUME;
+ break;
+ default:
+ break;
+ }
+
+ caster->CastSpell(target, spellId, true, NULL);
+ }
+ }
+
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_hallow_end_trick_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_hallow_end_trick_SpellScript();
+ }
+};
+
+// 24751 Trick or Treat
+enum TrickOrTreatSpells
+{
+ SPELL_TRICK = 24714,
+ SPELL_TREAT = 24715,
+ SPELL_TRICKED_OR_TREATED = 24755,
+ SPELL_TRICKY_TREAT_SPEED = 42919,
+ SPELL_TRICKY_TREAT_TRIGGER = 42965,
+ SPELL_UPSET_TUMMY = 42966
+};
+
+class spell_hallow_end_trick_or_treat : public SpellScriptLoader
+{
+ public:
+ spell_hallow_end_trick_or_treat() : SpellScriptLoader("spell_hallow_end_trick_or_treat") {}
+
+ class spell_hallow_end_trick_or_treat_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_hallow_end_trick_or_treat_SpellScript);
+
+ bool Validate(SpellInfo const* /*spell*/)
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_TRICK) || !sSpellMgr->GetSpellInfo(SPELL_TREAT) || !sSpellMgr->GetSpellInfo(SPELL_TRICKED_OR_TREATED))
+ return false;
+ return true;
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ Unit* caster = GetCaster();
+ if (Player* target = GetHitPlayer())
+ {
+ caster->CastSpell(target, roll_chance_i(50) ? SPELL_TRICK : SPELL_TREAT, true, NULL);
+ caster->CastSpell(target, SPELL_TRICKED_OR_TREATED, true, NULL);
+ }
+ }
+
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_hallow_end_trick_or_treat_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_hallow_end_trick_or_treat_SpellScript();
+ }
+};
+
+class spell_hallow_end_tricky_treat : public SpellScriptLoader
+{
+ public:
+ spell_hallow_end_tricky_treat() : SpellScriptLoader("spell_hallow_end_tricky_treat") { }
+
+ class spell_hallow_end_tricky_treat_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_hallow_end_tricky_treat_SpellScript);
+
+ bool Validate(SpellInfo const* /*spell*/)
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_TRICKY_TREAT_SPEED))
+ return false;
+ if (!sSpellMgr->GetSpellInfo(SPELL_TRICKY_TREAT_TRIGGER))
+ return false;
+ if (!sSpellMgr->GetSpellInfo(SPELL_UPSET_TUMMY))
+ return false;
+ return true;
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ Unit* caster = GetCaster();
+ if (caster->HasAura(SPELL_TRICKY_TREAT_TRIGGER) && caster->GetAuraCount(SPELL_TRICKY_TREAT_SPEED) > 3 && roll_chance_i(33))
+ caster->CastSpell(caster, SPELL_UPSET_TUMMY, true);
+ }
+
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_hallow_end_tricky_treat_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_hallow_end_tricky_treat_SpellScript();
+ }
+};
+
void AddSC_holiday_spell_scripts()
{
+ // Love is in the Air
new spell_love_is_in_the_air_romantic_picnic();
+ // Hallow's End
+ new spell_hallow_end_trick();
+ new spell_hallow_end_trick_or_treat();
+ new spell_hallow_end_tricky_treat();
}
diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp
index a15eb7ddc2c..2feb6e2b6ef 100644
--- a/src/server/scripts/Spells/spell_priest.cpp
+++ b/src/server/scripts/Spells/spell_priest.cpp
@@ -376,14 +376,14 @@ class spell_pri_vampiric_touch : public SpellScriptLoader
}
};
-class spell_priest_renew : public SpellScriptLoader
+class spell_pri_renew : public SpellScriptLoader
{
public:
- spell_priest_renew() : SpellScriptLoader("spell_priest_renew") { }
+ spell_pri_renew() : SpellScriptLoader("spell_pri_renew") { }
- class spell_priest_renew_AuraScript : public AuraScript
+ class spell_pri_renew_AuraScript : public AuraScript
{
- PrepareAuraScript(spell_priest_renew_AuraScript);
+ PrepareAuraScript(spell_pri_renew_AuraScript);
bool Load()
{
@@ -408,13 +408,13 @@ class spell_priest_renew : public SpellScriptLoader
void Register()
{
- OnEffectApply += AuraEffectApplyFn(spell_priest_renew_AuraScript::HandleApplyEffect, EFFECT_0, SPELL_AURA_PERIODIC_HEAL, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
+ OnEffectApply += AuraEffectApplyFn(spell_pri_renew_AuraScript::HandleApplyEffect, EFFECT_0, SPELL_AURA_PERIODIC_HEAL, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
}
};
AuraScript* GetAuraScript() const
{
- return new spell_priest_renew_AuraScript();
+ return new spell_pri_renew_AuraScript();
}
};
@@ -460,6 +460,6 @@ void AddSC_priest_spell_scripts()
new spell_pri_mind_sear();
new spell_pri_prayer_of_mending_heal();
new spell_pri_vampiric_touch();
- new spell_priest_renew();
+ new spell_pri_renew();
new spell_pri_shadow_word_death();
}
diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp
index 76d2c230808..59ab9cd61e7 100644
--- a/src/server/scripts/World/npcs_special.cpp
+++ b/src/server/scripts/World/npcs_special.cpp
@@ -913,7 +913,7 @@ public:
struct npc_garments_of_questsAI : public npc_escortAI
{
- npc_garments_of_questsAI(Creature* creature) : npc_escortAI(creature)
+ npc_garments_of_questsAI(Creature* creature) : npc_escortAI(creature)
{
Reset();
}
diff --git a/src/tools/vmap4_extractor/vmapexport.cpp b/src/tools/vmap4_extractor/vmapexport.cpp
index 40a22a2a6e0..186f9c8606e 100644
--- a/src/tools/vmap4_extractor/vmapexport.cpp
+++ b/src/tools/vmap4_extractor/vmapexport.cpp
@@ -470,7 +470,7 @@ int main(int argc, char ** argv)
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
// Create the working directory
if (mkdir(szWorkDirWmo
-#ifdef __linux__
+#if defined(__linux__) || defined(__APPLE__)
, 0711
#endif
))