diff options
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 )) |