Merge branch 'master' of https://github.com/TrinityCore/TrinityCore
This commit is contained in:
@@ -16959,6 +16959,7 @@ INSERT INTO `spell_bonus_data` (`entry`,`direct_bonus`,`dot_bonus`,`ap_bonus`,`a
|
||||
(53600, 0, 0, 0, 0 ,'Paladin - Shield of Righteousness'),
|
||||
(20267, 0, 0, 0, 0, 'Paladin - Judgement of Light Proc'),
|
||||
(25997, 0, 0, 0, 0, 'Paladin - Eye for an Eye'),
|
||||
(64891, -1, 0, -1, -1, 'Paladin - T8 Holy 2P - Holy Mending'),
|
||||
(50256, -1, -1, 0.08, -1, 'Pet Skills - Bear (Swipe)'),
|
||||
(32546, 0.8068, -1, -1, -1, 'Priest - Binding Heal'),
|
||||
(27813, 0, 0, 0, 0, 'Priest - Blessed Recovery Rank 1'),
|
||||
@@ -19354,6 +19355,7 @@ INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFam
|
||||
( 54832, 0x00, 7, 0x00000000, 0x00001000, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Glyph of Innervate
|
||||
( 67353, 0x00, 7, 0x00008000, 0x00100500, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- uncommented
|
||||
( 57989, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0, 0, 0), -- uncommented
|
||||
( 63086, 0x00, 9, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0, 0, 0), -- Glyph of Raptor Strike
|
||||
( 65661, 0x00, 15, 0x00400011, 0x20020004, 0x00000000, 0x00000010, 0x00000000, 0, 100, 0), -- Threat of Thassarian (Rank 1)
|
||||
( 66191, 0x00, 15, 0x00400011, 0x20020004, 0x00000000, 0x00000010, 0x00000000, 0, 100, 0), -- Threat of Thassarian (Rank 2)
|
||||
( 66192, 0x00, 15, 0x00400011, 0x20020004, 0x00000000, 0x00000010, 0x00000000, 0, 100, 0), -- Threat of Thassarian (Rank 3)
|
||||
@@ -19400,6 +19402,7 @@ INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFam
|
||||
( 70803, 0x00, 8, 0x003E0000, 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Item - Rogue T10 4P Bonus
|
||||
( 70805, 0x00, 8, 0x00000000, 0x00020000, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Item - Rogue T10 2P Bonus
|
||||
( 70807, 0x00, 11, 0x00000000, 0x00000000, 0x00000010, 0x00000000, 0x00000000, 0, 0, 0), -- Item - Shaman T10 Restoration 2P Bonus
|
||||
( 70817, 0x00, 11, 0x00000000, 0x00001000, 0x00000000, 0x00010000, 0x00000000, 0, 0, 0), -- Item - Shaman T10 Elemental 4P Bonus
|
||||
( 70830, 0x00, 11, 0x00000000, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Item - Shaman T10 Enhancement 2P Bonus
|
||||
( 70841, 0x00, 5, 0x00000004, 0x00000100, 0x00000000, 0x00040000, 0x00000000, 0, 0, 0), -- Item - Warlock T10 4P Bonus
|
||||
( 70844, 0x00, 4, 0x00000100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Item - Warrior T10 Protection 4P Bonus
|
||||
@@ -27581,7 +27584,7 @@ INSERT INTO `trinity_string` (`entry`,`content_default`,`content_loc1`,`content_
|
||||
(1131, 'The following characters match your query:', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||
(1132, 'Currently Banned Characters:', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||
(1133, '| Character | BanDate | UnbanDate | Banned By | Ban Reason |', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||
(1200, 'You try to view cinemitic %u but it doesn''t exist.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||
(1200, 'You try to view cinematic %u but it doesn''t exist.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||
(1201, 'You try to view movie %u but it doesn''t exist.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||
(1205, 'The battle will begin in two minutes.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||
(1206, 'The battle will begin in 1 minute.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||
|
||||
@@ -1544,7 +1544,7 @@ UPDATE `creature_template` SET `ScriptName`='boss_flame_leviathan_defense_turret
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_flame_leviathan_overload_device' WHERE `entry`=33143;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_flame_leviathan_defense_cannon' WHERE `entry`=33139;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_colossus' WHERE `entry`=33237;
|
||||
UPDATE `creature_template` SET `ScriptName`='spell_pool_of_tar' WHERE `entry`=33090;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_pool_of_tar' WHERE `entry`=33090;
|
||||
UPDATE `creature_template` SET `ScriptName`='boss_ignis' WHERE `entry`=33118;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_iron_construct' WHERE `entry`=33121;
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_scorch_ground' WHERE `entry`=33221;
|
||||
@@ -1827,7 +1827,7 @@ UPDATE `outdoorpvp_template` SET `ScriptName`='outdoorpvp_si' WHERE `TypeId`=5;
|
||||
UPDATE `outdoorpvp_template` SET `ScriptName`='outdoorpvp_ep' WHERE `TypeId`=6;
|
||||
|
||||
/* ACHIEVEMENTS */
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id` IN (3693,3804,3805,3806,3807,3808,3809,3810,3811,3812,3813,1234,1239,5605,5606,12778,13036,13035,13037,12977,12967,12986,12982,12993,12780,13012,13011,13013,12062,12063,12064,12065,12183,12068,12060,12061,12822,12996,12972,12989,10062,10063,10054,10055,10046,10047,10048,10049,10050,10051,10044,10045,6446,7625,7628,5541,5542,5543,7573,7574,7265,7549,12971,12978,12979,12980,7598,7587,7264,7548,10068,10069,10173,10306,10451,10462,10447,10448,10449,10459,10460,10461) AND `type` IN (0,11);
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id` IN (3693,3804,3805,3806,3807,3808,3809,3810,3811,3812,3813,1234,1239,5605,5606,12778,13036,13035,13037,12977,12967,12986,12982,12993,12780,13012,13011,13013,12062,12063,12064,12065,12183,12068,12060,12061,12822,12996,12972,12989,10062,10063,10054,10055,10046,10047,10048,10049,10050,10051,10044,10045,6446,7625,7628,5541,5542,5543,7573,7574,7265,7549,12971,12978,12979,12980,7598,7587,7264,7548,10068,10069,10173,10306,10451,10462,10447,10448,10449,10459,10460,10461,7316,7317,7318,7583,4240,6803,7319,7577,7320,7590,7361) AND `type` IN (0,11);
|
||||
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`) VALUES
|
||||
(3693,11,0,0, 'achievement_storm_glory'),
|
||||
(3804,11,0,0, 'achievement_resilient_victory'),
|
||||
@@ -1911,7 +1911,18 @@ INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,
|
||||
(10460,11,0,0,'achievement_knock_knock_on_wood'),
|
||||
(10461,11,0,0,'achievement_knock_knock_knock_on_wood'),
|
||||
(10445,11,0,0,'achievement_getting_back_to_nature'),
|
||||
(10758,11,0,0,'achievement_getting_back_to_nature');
|
||||
(10758,11,0,0,'achievement_getting_back_to_nature'),
|
||||
(7317,11,0,0,'achievement_respect_your_elders'),
|
||||
(7318,11,0,0,'achievement_king_dred'),
|
||||
(7316,11,0,0,'achievement_chaos_theory'),
|
||||
(7583,11,0,0,'achievement_share_the_love'),
|
||||
(4240,11,0,0,'achievement_watch_him_die'),
|
||||
(6803,11,0,0,'achievement_defenseless'),
|
||||
(7319,11,0,0,'achievement_less_rabi'),
|
||||
(7577,11,0,0,'achievement_split_personality'),
|
||||
(7320,11,0,0,'achievement_dehydration'),
|
||||
(7590,11,0,0,'achievement_brann_sparklin_news'),
|
||||
(7361,11,0,0,'achievement_oh_novos');
|
||||
|
||||
/* SPELLS */
|
||||
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
@@ -1919,7 +1930,6 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
( 39228, 'spell_gen_absorb0_hitlimit1'),
|
||||
( 60218, 'spell_gen_absorb0_hitlimit1'),
|
||||
( 6962, 'spell_gen_pet_summoned'),
|
||||
( 10848, 'spell_gen_shroud_of_death'),
|
||||
( 24750, 'spell_gen_trick'),
|
||||
( 24751, 'spell_gen_trick_or_treat'),
|
||||
( 29266, 'spell_creature_permanent_feign_death'),
|
||||
@@ -1972,6 +1982,11 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
( 25281, 'spell_gen_turkey_marker'),
|
||||
(-55428, 'spell_gen_lifeblood'),
|
||||
( 65917, 'spell_gen_magic_rooster'),
|
||||
( 4073, 'spell_gen_allow_cast_from_item_only'),
|
||||
( 19804, 'spell_gen_allow_cast_from_item_only'),
|
||||
( 12749, 'spell_gen_allow_cast_from_item_only'),
|
||||
( 13258, 'spell_gen_allow_cast_from_item_only'),
|
||||
( 13166, 'spell_gen_allow_cast_from_item_only'),
|
||||
-- instances
|
||||
-- Black Temple
|
||||
( 41475, 'spell_boss_lady_malande_shield'),
|
||||
@@ -2242,6 +2257,8 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
( 37751, 'spell_xt002_submerged'),
|
||||
( 37752, 'spell_xt002_stand'),
|
||||
( 64381, 'spell_auriaya_strenght_of_the_pack'),
|
||||
( 64679, 'spell_auriaya_sentinel_blast'),
|
||||
( 64392, 'spell_auriaya_sentinel_blast'),
|
||||
-- Eye Of Eternity
|
||||
( 56105, 'spell_malygos_vortex_dummy'),
|
||||
( 55873, 'spell_malygos_vortex_visual'),
|
||||
@@ -2366,6 +2383,7 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
(-33851, 'spell_dru_primal_tenacity'),
|
||||
( 62606, 'spell_dru_savage_defense'),
|
||||
( 70691, 'spell_dru_t10_restoration_4p_bonus'),
|
||||
(-50294, 'spell_dru_starfall_aoe'),
|
||||
-- example
|
||||
( 66244, 'spell_ex_66244'),
|
||||
( 5581, 'spell_ex_5581'),
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
DELETE FROM `disables` WHERE `entry`=7136 AND `sourceType`=4;
|
||||
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=7136 AND `type`=5;
|
||||
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`) VALUES
|
||||
(7136,5,55817,0,'');
|
||||
@@ -0,0 +1,6 @@
|
||||
DELETE FROM `disables` WHERE `entry`=4240 AND `sourceType`=4;
|
||||
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=4240 AND `type`=11;
|
||||
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`)
|
||||
VALUES
|
||||
(4240,11,0,0,'achievement_watch_him_die');
|
||||
@@ -0,0 +1,5 @@
|
||||
DELETE FROM `spell_script_names` WHERE `spell_id` IN (64679,64392);
|
||||
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`)
|
||||
VALUES
|
||||
(64679,'spell_auriaya_sentinel_blast'),
|
||||
(64392,'spell_auriaya_sentinel_blast');
|
||||
@@ -0,0 +1,959 @@
|
||||
-- Pathing for Arctic Ram Entry: 26426
|
||||
SET @NPC := 133248;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3509.64,`position_y`=-750.9414,`position_z`=294.3868 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,3511.387,-733.5805,299.6368,49000,0,0,100,0),
|
||||
(@PATH,2,3509.64,-750.9414,294.3868,0,0,0,100,0),
|
||||
(@PATH,3,3498.443,-768.702,291.2594,0,0,0,100,0),
|
||||
(@PATH,4,3509.64,-750.9414,294.3868,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Illusia Lune Entry: 27042
|
||||
SET @NPC := 133617;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3647.948,`position_y`=-717.1948,`position_z`=215.0342 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,3648.265,-715.3195,215.0314,0,0,0,100,0),
|
||||
(@PATH,2,3644.507,-714.7984,214.2407,0,0,0,100,0),
|
||||
(@PATH,3,3635.043,-713.5746,214.2407,0,0,0,100,0),
|
||||
(@PATH,4,3644.625,-714.8554,214.2407,0,0,0,100,0),
|
||||
(@PATH,5,3648.25,-715.2807,215.0314,0,0,0,100,0),
|
||||
(@PATH,6,3647.977,-717.1859,215.0342,0,0,0,100,0),
|
||||
(@PATH,7,3655.216,-718.0604,215.0296,0,0,0,100,0),
|
||||
(@PATH,8,3647.948,-717.1948,215.0342,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Ordal McLumpkins Entry: 27044
|
||||
SET @NPC := 133619;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=3621.722,`position_y`=-718.3648,`position_z`=215.0349 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,2,3619.423,-714.603,215.0349,35000,0,@PATH+1,100,0),
|
||||
(@PATH,4,3616.081,-716.1984,215.0349,50000,0,@PATH+2,100,0),
|
||||
(@PATH,6,3621.722,-718.3648,215.0349,35000,0,@PATH+2,100,0);
|
||||
DELETE FROM `waypoint_scripts` WHERE `id` IN (@PATH+1,@PATH+2,@PATH+3);
|
||||
INSERT INTO `waypoint_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`o`,`guid`) VALUES
|
||||
(@PATH+1,0,30,0,0,1.466077,846),
|
||||
(@PATH+1,1,2,83,69,0,847),
|
||||
(@PATH+2,0,30,0,0,4.639134,848),
|
||||
(@PATH+2,1,2,83,69,0,849);
|
||||
|
||||
-- Pathing for Hulking Jormungar Entry: 26293
|
||||
SET @NPC := 113071;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=4686.325,`position_y`=338.1416,`position_z`=116.9954 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,4700.168,367.0156,118.5855,0,0,0,100,0),
|
||||
(@PATH,2,4731.135,364.8878,126.2894,0,0,0,100,0),
|
||||
(@PATH,3,4743.483,343.251,129.0478,0,0,0,100,0),
|
||||
(@PATH,4,4713.793,315.9503,120.7992,0,0,0,100,0),
|
||||
(@PATH,5,4686.325,338.1416,116.9954,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Magnataur Patriarch Entry: 26295
|
||||
SET @NPC := 113266;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=4049.302,`position_y`=-29.04574,`position_z`=55.26999 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,4047.976,-37.78185,55.98508,0,0,0,100,0),
|
||||
(@PATH,2,4047.698,-50.11871,53.98508,0,0,0,100,0),
|
||||
(@PATH,3,4047.976,-37.78185,55.98508,0,0,0,100,0),
|
||||
(@PATH,4,4049.302,-29.04574,55.26999,0,0,0,100,0),
|
||||
(@PATH,5,4047.754,-16.93381,53.89499,0,0,0,100,0),
|
||||
(@PATH,6,4049.302,-29.04574,55.26999,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Crystalline Ice Elemental Entry: 26316
|
||||
SET @NPC := 115062;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=4860.147,`position_y`=992.9332,`position_z`=210.192 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,4869.752,1002.653,215.5425,0,0,0,100,0),
|
||||
(@PATH,2,4860.147,992.9332,210.192,0,0,0,100,0),
|
||||
(@PATH,3,4850.6,983.3943,204.442,0,0,0,100,0),
|
||||
(@PATH,4,4844.505,971.259,198.692,0,0,0,100,0),
|
||||
(@PATH,5,4858.342,938.2769,188.1321,0,0,0,100,0),
|
||||
(@PATH,6,4844.505,971.259,198.692,0,0,0,100,0),
|
||||
(@PATH,7,4850.6,983.3943,204.442,0,0,0,100,0),
|
||||
(@PATH,8,4860.147,992.9332,210.192,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Crystalline Ice Elemental Entry: 26316
|
||||
SET @NPC := 115054;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=4917.303,`position_y`=924.0703,`position_z`=223.1336 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,4929.146,915.8573,220.6336,0,0,0,100,0),
|
||||
(@PATH,2,4940.256,927.373,227.7124,0,0,0,100,0),
|
||||
(@PATH,3,4941.91,938.2441,233.9879,0,0,0,100,0),
|
||||
(@PATH,4,4938.07,947.0781,238.7379,0,0,0,100,0),
|
||||
(@PATH,5,4917.303,924.0703,223.1336,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Crystalline Ice Giant Entry: 26291
|
||||
SET @NPC := 112865;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=4770.23,`position_y`=469.9691,`position_z`=111.7675 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,4796.084,455.2377,109.338,54000,0,@PATH+1,100,0),
|
||||
(@PATH,2,4770.23,469.9691,111.7675,22000,0,@PATH+2,100,0);
|
||||
DELETE FROM `waypoint_scripts` WHERE `id` IN (@PATH+1,@PATH+2);
|
||||
INSERT INTO `waypoint_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`o`,`guid`) VALUES
|
||||
(@PATH+1,0,30,0,0,2.9147,850),
|
||||
(@PATH+2,0,30,0,0,5.201081,851);
|
||||
|
||||
-- Pathing for Crystalline Ice Giant Entry: 26291
|
||||
SET @NPC := 112866;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=4874.087,`position_y`=452.3281,`position_z`=115.6979 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,4888.814,445.456,118.1979,5000,0,@PATH+1,100,0),
|
||||
(@PATH,2,4901.041,426.041,116.2949,0,0,0,100,0),
|
||||
(@PATH,3,4901.041,426.041,116.2949,6000,0,@PATH+2,100,0),
|
||||
(@PATH,4,4874.087,452.3281,115.6979,0,0,0,100,0),
|
||||
(@PATH,5,4874.087,452.3281,115.6979,8000,0,@PATH+3,100,0);
|
||||
DELETE FROM `waypoint_scripts` WHERE `id` IN (@PATH+1,@PATH+2,@PATH+3);
|
||||
INSERT INTO `waypoint_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`o`,`guid`) VALUES
|
||||
(@PATH+1,0,30,0,0,0.8552113,852),
|
||||
(@PATH+2,0,30,0,0,0.8901179,853),
|
||||
(@PATH+3,0,30,0,0,0.06981317,854);
|
||||
|
||||
-- Pathing for Rabbit Entry: 721
|
||||
SET @NPC := 115702;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=5753.539,`position_y`=772.873,`position_z`=640.8826 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,5767.785,754.2614,641.7114,0,0,0,100,0),
|
||||
(@PATH,2,5773.825,766.6644,640.7427,0,0,0,100,0),
|
||||
(@PATH,3,5767.785,754.2614,641.7114,5000,0,0,100,0),
|
||||
(@PATH,4,5753.539,772.873,640.8826,0,0,0,100,0),
|
||||
(@PATH,5,5748.938,764.3101,641.9448,0,0,0,100,0),
|
||||
(@PATH,6,5733.615,778.2639,641.7114,0,0,0,100,0),
|
||||
(@PATH,7,5737.831,782.386,641.448,0,0,0,100,0),
|
||||
(@PATH,8,5740.602,787.1411,641.0325,0,0,0,100,0),
|
||||
(@PATH,9,5733.241,793.4806,640.9481,0,0,0,100,0),
|
||||
(@PATH,10,5722.088,796.697,641.5259,0,0,0,100,0),
|
||||
(@PATH,11,5726.339,806.3635,640.8337,0,0,0,100,0),
|
||||
(@PATH,12,5722.138,815.5085,640.8914,0,0,0,100,0),
|
||||
(@PATH,13,5714.45,821.5867,641.2027,0,0,0,100,0),
|
||||
(@PATH,14,5700.078,828.2365,641.8647,0,0,0,100,0),
|
||||
(@PATH,15,5698.136,820.8531,641.5467,0,0,0,100,0),
|
||||
(@PATH,16,5709.789,810.5593,641.5497,0,0,0,100,0),
|
||||
(@PATH,17,5698.065,820.5817,641.5533,0,0,0,100,0),
|
||||
(@PATH,18,5700.078,828.2365,641.8647,0,0,0,100,0),
|
||||
(@PATH,19,5714.45,821.5867,641.2027,0,0,0,100,0),
|
||||
(@PATH,20,5722.138,815.5085,640.8914,0,0,0,100,0),
|
||||
(@PATH,21,5726.339,806.3635,640.8337,0,0,0,100,0),
|
||||
(@PATH,22,5722.088,796.697,641.5259,0,0,0,100,0),
|
||||
(@PATH,23,5733.241,793.4806,640.9481,0,0,0,100,0),
|
||||
(@PATH,24,5740.602,787.1411,641.0325,0,0,0,100,0),
|
||||
(@PATH,25,5737.831,782.386,641.448,0,0,0,100,0),
|
||||
(@PATH,26,5733.615,778.2639,641.7114,0,0,0,100,0),
|
||||
(@PATH,27,5748.938,764.3101,641.9448,0,0,0,100,0),
|
||||
(@PATH,28,5753.539,772.873,640.8826,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Putrid Wight Entry: 23992
|
||||
SET @NPC := 113344;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=2668.823,`position_y`=-3746.312,`position_z`=249.9565 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,2646.826,-3743.444,246.5889,0,0,0,100,0),
|
||||
(@PATH,2,2629.433,-3732.29,245.4538,0,0,0,100,0),
|
||||
(@PATH,3,2623.224,-3719.469,245.4964,0,0,0,100,0),
|
||||
(@PATH,4,2627.88,-3711.047,246.3409,0,0,0,100,0),
|
||||
(@PATH,5,2639.799,-3709.354,243.2022,0,0,0,100,0),
|
||||
(@PATH,6,2647.973,-3713.873,239.3536,0,0,0,100,0),
|
||||
(@PATH,7,2655.269,-3720.628,235.0643,0,0,0,100,0),
|
||||
(@PATH,8,2664.609,-3723.947,230.2771,0,0,0,100,0),
|
||||
(@PATH,9,2672.977,-3721.034,225.9482,0,0,0,100,0),
|
||||
(@PATH,10,2680.715,-3711.313,221.8469,6000,0,0,100,0),
|
||||
(@PATH,11,2677.229,-3716.424,222.8778,0,0,0,100,0),
|
||||
(@PATH,12,2668.853,-3722.688,228.2985,0,0,0,100,0),
|
||||
(@PATH,13,2659.52,-3723.743,232.6282,0,0,0,100,0),
|
||||
(@PATH,14,2651.728,-3716.389,237.3867,0,0,0,100,0),
|
||||
(@PATH,15,2643.281,-3709.406,241.6877,0,0,0,100,0),
|
||||
(@PATH,16,2632.315,-3711.092,245.6459,0,0,0,100,0),
|
||||
(@PATH,17,2624.75,-3717.884,245.7113,0,0,0,100,0),
|
||||
(@PATH,18,2624.219,-3728.446,245.2014,0,0,0,100,0),
|
||||
(@PATH,19,2631.771,-3736.979,245.6085,0,0,0,100,0),
|
||||
(@PATH,20,2643.255,-3747.242,246.4638,0,0,0,100,0),
|
||||
(@PATH,21,2655.134,-3751.437,248.9429,0,0,0,100,0),
|
||||
(@PATH,22,2662.831,-3751.152,249.8362,0,0,0,100,0),
|
||||
(@PATH,23,2668.823,-3746.312,249.9565,8000,0,0,100,0);
|
||||
|
||||
-- Pathing for Putrid Wight Entry: 23992
|
||||
SET @NPC := 113343;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=2785.402,`position_y`=-3613.447,`position_z`=250.922 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,2785.402,-3613.447,250.922,0,0,0,100,0),
|
||||
(@PATH,2,2785.44,-3590.348,251.3575,0,0,0,100,0),
|
||||
(@PATH,3,2780.647,-3566.933,248.1158,0,0,0,100,0),
|
||||
(@PATH,4,2776.989,-3563.271,247.6174,6000,0,0,100,0),
|
||||
(@PATH,5,2786.118,-3579.14,249.4645,0,0,0,100,0),
|
||||
(@PATH,6,2789.177,-3593.625,250.844,0,0,0,100,0),
|
||||
(@PATH,7,2784.655,-3606.138,251.7757,0,0,0,100,0),
|
||||
(@PATH,8,2778.348,-3606.077,253.5872,0,0,0,100,0),
|
||||
(@PATH,9,2781.997,-3610.31,252.2005,0,0,0,100,0),
|
||||
(@PATH,10,2789.771,-3615.286,249.8559,0,0,0,100,0),
|
||||
(@PATH,11,2796.63,-3628.361,248.4757,0,0,0,100,0),
|
||||
(@PATH,12,2798.595,-3636.199,247.7422,0,0,0,100,0),
|
||||
(@PATH,13,2794.572,-3637.352,248.0836,0,0,0,100,0),
|
||||
(@PATH,14,2806.817,-3639.35,246.4777,0,0,0,100,0),
|
||||
(@PATH,15,2815.37,-3643.385,242.7697,0,0,0,100,0),
|
||||
(@PATH,16,2817.436,-3655.363,242.607,0,0,0,100,0),
|
||||
(@PATH,17,2803.864,-3660.431,246.2676,0,0,0,100,0),
|
||||
(@PATH,18,2790.148,-3659.774,245.6176,0,0,0,100,0),
|
||||
(@PATH,19,2783.257,-3650.315,241.2681,0,0,0,100,0),
|
||||
(@PATH,20,2778.241,-3638.333,235.9849,0,0,0,100,0),
|
||||
(@PATH,21,2771.057,-3630.219,230.9954,0,0,0,100,0),
|
||||
(@PATH,22,2761.502,-3627.29,226.378,0,0,0,100,0),
|
||||
(@PATH,23,2751.042,-3632.291,221.8077,6000,0,0,100,0),
|
||||
(@PATH,24,2754.787,-3630.722,223.3591,0,0,0,100,0),
|
||||
(@PATH,25,2766.29,-3628.396,228.8643,0,0,0,100,0),
|
||||
(@PATH,26,2774.306,-3633.359,232.863,0,0,0,100,0),
|
||||
(@PATH,27,2779.261,-3642.92,237.6714,0,0,0,100,0),
|
||||
(@PATH,28,2785.011,-3652.979,242.7388,0,0,0,100,0),
|
||||
(@PATH,29,2792.728,-3659.369,246.4393,0,0,0,100,0),
|
||||
(@PATH,30,2806.87,-3658.866,245.5233,0,0,0,100,0),
|
||||
(@PATH,31,2817.342,-3650.064,242.2243,0,0,0,100,0),
|
||||
(@PATH,32,2799.635,-3631.787,247.9718,0,0,0,100,0),
|
||||
(@PATH,33,2785.402,-3613.447,250.922,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Necrolord Entry: 24014
|
||||
SET @NPC := 97230;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `id`=24014,`modelid`=0,`spawndist`=0,`MovementType`=2,`position_x`=2809.687,`position_y`=-3622.016,`position_z`=161.3961 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,2814.799,-3624.542,161.3958,0,0,0,100,0),
|
||||
(@PATH,2,2823.035,-3625.648,161.3949,0,0,0,100,0),
|
||||
(@PATH,3,2829.876,-3624.724,161.3975,0,0,0,100,0),
|
||||
(@PATH,4,2836.048,-3620.994,161.3983,0,0,0,100,0),
|
||||
(@PATH,5,2841.855,-3615.051,161.3947,0,0,0,100,0),
|
||||
(@PATH,6,2844.207,-3609.994,161.3975,0,0,0,100,0),
|
||||
(@PATH,7,2845.186,-3601.875,161.3951,0,0,0,100,0),
|
||||
(@PATH,8,2844.337,-3594.973,161.3975,0,0,0,100,0),
|
||||
(@PATH,9,2840.764,-3588.99,161.3957,0,0,0,100,0),
|
||||
(@PATH,10,2834.76,-3583.182,161.3952,0,0,0,100,0),
|
||||
(@PATH,11,2829.575,-3580.736,161.3979,0,0,0,100,0),
|
||||
(@PATH,12,2821.425,-3579.65,161.3952,0,0,0,100,0),
|
||||
(@PATH,13,2814.341,-3580.5,161.4046,0,0,0,100,0),
|
||||
(@PATH,14,2808.07,-3583.772,161.4029,0,0,0,100,0),
|
||||
(@PATH,15,2802.685,-3590.109,161.395,0,0,0,100,0),
|
||||
(@PATH,16,2800.225,-3595.279,161.3977,0,0,0,100,0),
|
||||
(@PATH,17,2799.105,-3603.418,161.3947,0,0,0,100,0),
|
||||
(@PATH,18,2800.01,-3610.333,161.3973,0,0,0,100,0),
|
||||
(@PATH,19,2803.705,-3616.418,161.3981,0,0,0,100,0),
|
||||
(@PATH,20,2809.687,-3622.016,161.3961,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Necrolord Entry: 24014
|
||||
SET @NPC := 97248;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `id`=24014,`modelid`=0,`spawndist`=0,`MovementType`=2,`position_x`=2824.036,`position_y`=-3624.829,`position_z`=221.4252 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,2816.773,-3623.985,221.4255,0,0,0,100,0),
|
||||
(@PATH,2,2809.992,-3621.294,221.4247,0,0,0,100,0),
|
||||
(@PATH,3,2803.77,-3615.729,221.4243,0,0,0,100,0),
|
||||
(@PATH,4,2800.449,-3608.825,221.4259,0,0,0,100,0),
|
||||
(@PATH,5,2799.794,-3601.215,221.4245,0,0,0,100,0),
|
||||
(@PATH,6,2802.056,-3593.389,221.4274,0,0,0,100,0),
|
||||
(@PATH,7,2806.402,-3587.211,221.4274,0,0,0,100,0),
|
||||
(@PATH,8,2812.614,-3583.304,221.4273,0,0,0,100,0),
|
||||
(@PATH,9,2819.016,-3581.604,221.4285,0,0,0,100,0),
|
||||
(@PATH,10,2825.446,-3581.84,221.4301,0,0,0,100,0),
|
||||
(@PATH,11,2831.818,-3583.644,221.4293,0,0,0,100,0),
|
||||
(@PATH,12,2836.348,-3587.178,221.4313,0,0,0,100,0),
|
||||
(@PATH,13,2839.835,-3592.544,221.434,0,0,0,100,0),
|
||||
(@PATH,14,2842.145,-3599.79,221.4294,0,0,0,100,0),
|
||||
(@PATH,15,2843.347,-3608.321,221.4291,0,0,0,100,0),
|
||||
(@PATH,16,2840.997,-3614.059,221.4281,0,0,0,100,0),
|
||||
(@PATH,17,2836.926,-3619.116,221.4238,0,0,0,100,0),
|
||||
(@PATH,18,2831.312,-3622.841,221.4241,0,0,0,100,0),
|
||||
(@PATH,19,2824.036,-3624.829,221.4252,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Necrolord Entry: 24014
|
||||
SET @NPC := 97260;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `id`=24014,`modelid`=0,`spawndist`=0,`MovementType`=2,`position_x`=2586.513,`position_y`=-3756.084,`position_z`=161.398 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,2594.313,-3758.43,161.3953,0,0,0,100,0),
|
||||
(@PATH,2,2601.175,-3758.778,161.3977,0,0,0,100,0),
|
||||
(@PATH,3,2607.68,-3756.348,161.3983,0,0,0,100,0),
|
||||
(@PATH,4,2614.385,-3751.512,161.3951,0,0,0,100,0),
|
||||
(@PATH,5,2617.877,-3746.704,161.3976,0,0,0,100,0),
|
||||
(@PATH,6,2620.328,-3738.942,161.3956,0,0,0,100,0),
|
||||
(@PATH,7,2620.506,-3731.859,161.3961,0,0,0,100,0),
|
||||
(@PATH,8,2618.016,-3725.396,161.3984,0,0,0,100,0),
|
||||
(@PATH,9,2612.961,-3718.617,161.3952,0,0,0,100,0),
|
||||
(@PATH,10,2608.518,-3715.498,161.398,0,0,0,100,0),
|
||||
(@PATH,11,2600.665,-3713.045,161.3954,0,0,0,100,0),
|
||||
(@PATH,12,2593.633,-3712.684,161.4046,0,0,0,100,0),
|
||||
(@PATH,13,2586.809,-3714.743,161.4106,0,0,0,100,0),
|
||||
(@PATH,14,2580.48,-3720.084,161.3953,0,0,0,100,0),
|
||||
(@PATH,15,2577.218,-3724.641,161.3979,0,0,0,100,0),
|
||||
(@PATH,16,2574.743,-3732.453,161.3959,0,0,0,100,0),
|
||||
(@PATH,17,2574.244,-3739.552,161.3972,0,0,0,100,0),
|
||||
(@PATH,18,2576.927,-3746.14,161.3958,0,0,0,100,0),
|
||||
(@PATH,19,2581.687,-3752.61,161.398,0,0,0,100,0),
|
||||
(@PATH,20,2586.513,-3756.084,161.398,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Necrolord Entry: 24014
|
||||
SET @NPC := 203503;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=2603.992,`position_y`=-3713.681,`position_z`=141.3663 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,2597.609,-3712.674,141.3633,0,0,0,100,0),
|
||||
(@PATH,2,2593.398,-3712.327,141.3879,0,0,0,100,0),
|
||||
(@PATH,3,2587.152,-3715.266,141.3655,0,0,0,100,0),
|
||||
(@PATH,4,2580.309,-3720.183,141.3624,0,0,0,100,0),
|
||||
(@PATH,5,2576.709,-3724.49,141.3625,0,0,0,100,0),
|
||||
(@PATH,6,2574.215,-3732.656,141.3617,0,0,0,100,0),
|
||||
(@PATH,7,2574.386,-3739.554,141.3635,0,0,0,100,0),
|
||||
(@PATH,8,2576.045,-3746.666,141.3606,0,0,0,100,0),
|
||||
(@PATH,9,2579.443,-3751.851,141.3886,0,0,0,100,0),
|
||||
(@PATH,10,2584.13,-3754.667,141.3627,0,0,0,100,0),
|
||||
(@PATH,11,2590.743,-3758.33,141.3646,0,0,0,100,0),
|
||||
(@PATH,12,2597.277,-3758.514,141.364,0,0,0,100,0),
|
||||
(@PATH,13,2605.202,-3757.24,141.363,0,0,0,100,0),
|
||||
(@PATH,14,2611.11,-3754.3,141.3651,0,0,0,100,0),
|
||||
(@PATH,15,2616.42,-3749.062,141.363,0,0,0,100,0),
|
||||
(@PATH,16,2619.533,-3741.9,141.3637,0,0,0,100,0),
|
||||
(@PATH,17,2620.534,-3736.029,141.3637,0,0,0,100,0),
|
||||
(@PATH,18,2618.751,-3727.877,141.3636,0,0,0,100,0),
|
||||
(@PATH,19,2616.373,-3722.089,141.3558,0,0,0,100,0),
|
||||
(@PATH,20,2610.62,-3717.114,141.3638,0,0,0,100,0),
|
||||
(@PATH,21,2603.992,-3713.681,141.3663,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Necrolord Entry: 24014
|
||||
SET @NPC := 115178;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=2810.375,`position_y`=-3582.374,`position_z`=141.3599 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,2805.214,-3586.358,141.3641,0,0,0,100,0),
|
||||
(@PATH,2,2801.175,-3592.824,141.363,0,0,0,100,0),
|
||||
(@PATH,3,2798.759,-3600.248,141.3618,0,0,0,100,0),
|
||||
(@PATH,4,2799.583,-3606.401,141.3644,0,0,0,100,0),
|
||||
(@PATH,5,2802.503,-3614.063,141.3632,0,0,0,100,0),
|
||||
(@PATH,6,2805.852,-3619.302,141.3641,0,0,0,100,0),
|
||||
(@PATH,7,2812.384,-3623.335,141.3662,0,0,0,100,0),
|
||||
(@PATH,8,2819.554,-3625.753,141.3661,0,0,0,100,0),
|
||||
(@PATH,9,2825.986,-3625.251,141.364,0,0,0,100,0),
|
||||
(@PATH,10,2833.809,-3622.541,141.3623,0,0,0,100,0),
|
||||
(@PATH,11,2838.974,-3618.843,141.3642,0,0,0,100,0),
|
||||
(@PATH,12,2843.044,-3612.401,141.3634,0,0,0,100,0),
|
||||
(@PATH,13,2845.442,-3605.066,141.3624,0,0,0,100,0),
|
||||
(@PATH,14,2845.091,-3598.814,141.3633,0,0,0,100,0),
|
||||
(@PATH,15,2842.213,-3590.969,141.3621,0,0,0,100,0),
|
||||
(@PATH,16,2838.518,-3585.883,141.3633,0,0,0,100,0),
|
||||
(@PATH,17,2831.972,-3581.769,141.3635,0,0,0,100,0),
|
||||
(@PATH,18,2824.755,-3579.538,141.3658,0,0,0,100,0),
|
||||
(@PATH,19,2818.303,-3579.807,141.3651,0,0,0,100,0),
|
||||
(@PATH,20,2810.375,-3582.374,141.3599,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Necrolord Entry: 24014
|
||||
SET @NPC := 97251;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `id`=24014,`modelid`=0,`spawndist`=0,`MovementType`=2,`position_x`=2801.415,`position_y`=-3592.805,`position_z`=181.4086 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,2805.63,-3586.741,181.4093,0,0,0,100,0),
|
||||
(@PATH,2,2810.837,-3582.852,181.4067,0,0,0,100,0),
|
||||
(@PATH,3,2818.372,-3579.891,181.4075,0,0,0,100,0),
|
||||
(@PATH,4,2824.698,-3579.42,181.4061,0,0,0,100,0),
|
||||
(@PATH,5,2831.986,-3581.824,181.4095,0,0,0,100,0),
|
||||
(@PATH,6,2838.559,-3585.897,181.4075,0,0,0,100,0),
|
||||
(@PATH,7,2842.173,-3590.988,181.4084,0,0,0,100,0),
|
||||
(@PATH,8,2845.01,-3598.905,181.3987,0,0,0,100,0),
|
||||
(@PATH,9,2845.163,-3605.083,181.4067,0,0,0,100,0),
|
||||
(@PATH,10,2842.933,-3612.533,181.4066,0,0,0,100,0),
|
||||
(@PATH,11,2839.144,-3618.943,181.4076,0,0,0,100,0),
|
||||
(@PATH,12,2833.877,-3622.96,181.4045,0,0,0,100,0),
|
||||
(@PATH,13,2826.177,-3625.395,181.4086,0,0,0,100,0),
|
||||
(@PATH,14,2819.915,-3625.802,181.4059,0,0,0,100,0),
|
||||
(@PATH,15,2812.322,-3623.443,181.3985,0,0,0,100,0),
|
||||
(@PATH,16,2805.912,-3619.149,181.4085,0,0,0,100,0),
|
||||
(@PATH,17,2801.737,-3614.466,181.4039,0,0,0,100,0),
|
||||
(@PATH,18,2799.258,-3606.344,181.4081,0,0,0,100,0),
|
||||
(@PATH,19,2798.46,-3600.148,181.4072,0,0,0,100,0),
|
||||
(@PATH,20,2801.415,-3592.805,181.4086,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Necrolord Entry: 24014
|
||||
SET @NPC := 115180;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=2819.609,`position_y`=-3625.823,`position_z`=201.4168 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,2825.926,-3625.365,201.4147,0,0,0,100,0),
|
||||
(@PATH,2,2833.738,-3622.546,201.414,0,0,0,100,0),
|
||||
(@PATH,3,2838.858,-3618.962,201.4162,0,0,0,100,0),
|
||||
(@PATH,4,2842.757,-3612.3,201.4155,0,0,0,100,0),
|
||||
(@PATH,5,2845.156,-3605.187,201.4145,0,0,0,100,0),
|
||||
(@PATH,6,2845.112,-3598.919,201.4165,0,0,0,100,0),
|
||||
(@PATH,7,2842.278,-3590.991,201.4143,0,0,0,100,0),
|
||||
(@PATH,8,2838.798,-3585.699,201.4129,0,0,0,100,0),
|
||||
(@PATH,9,2832.123,-3581.366,201.4112,0,0,0,100,0),
|
||||
(@PATH,10,2824.705,-3579.036,201.4159,0,0,0,100,0),
|
||||
(@PATH,11,2818.319,-3579.608,201.414,0,0,0,100,0),
|
||||
(@PATH,12,2810.397,-3582.356,201.4127,0,0,0,100,0),
|
||||
(@PATH,13,2805.141,-3585.997,201.4149,0,0,0,100,0),
|
||||
(@PATH,14,2801.093,-3592.536,201.4165,0,0,0,100,0),
|
||||
(@PATH,15,2798.692,-3600.158,201.4118,0,0,0,100,0),
|
||||
(@PATH,16,2799.542,-3606.275,201.4129,0,0,0,100,0),
|
||||
(@PATH,17,2802.349,-3614.061,201.4144,0,0,0,100,0),
|
||||
(@PATH,18,2805.995,-3619.276,201.4165,0,0,0,100,0),
|
||||
(@PATH,19,2812.382,-3623.6,201.4161,0,0,0,100,0),
|
||||
(@PATH,20,2819.609,-3625.823,201.4168,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Necrolord Entry: 24014
|
||||
SET @NPC := 97241;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `id`=24014,`modelid`=0,`spawndist`=0,`MovementType`=2,`position_x`=2576.456,`position_y`=-3746.067,`position_z`=201.4139 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,2581.68,-3752.681,201.414,0,0,0,100,0),
|
||||
(@PATH,2,2586.568,-3756.62,201.413,0,0,0,100,0),
|
||||
(@PATH,3,2594.226,-3758.521,201.4138,0,0,0,100,0),
|
||||
(@PATH,4,2601.322,-3758.976,201.4392,0,0,0,100,0),
|
||||
(@PATH,5,2608.325,-3756.202,201.4066,0,0,0,100,0),
|
||||
(@PATH,6,2614.482,-3751.383,201.4148,0,0,0,100,0),
|
||||
(@PATH,7,2617.85,-3746.781,201.4146,0,0,0,100,0),
|
||||
(@PATH,8,2620.605,-3739.148,201.4127,0,0,0,100,0),
|
||||
(@PATH,9,2620.888,-3731.896,201.415,0,0,0,100,0),
|
||||
(@PATH,10,2618.019,-3725.131,201.4144,0,0,0,100,0),
|
||||
(@PATH,11,2613.131,-3718.841,201.4171,0,0,0,100,0),
|
||||
(@PATH,12,2608.565,-3715.357,201.4166,0,0,0,100,0),
|
||||
(@PATH,13,2600.781,-3713.322,201.4151,0,0,0,100,0),
|
||||
(@PATH,14,2593.642,-3712.292,201.4142,0,0,0,100,0),
|
||||
(@PATH,15,2586.736,-3714.775,201.4059,0,0,0,100,0),
|
||||
(@PATH,16,2580.157,-3719.908,201.413,0,0,0,100,0),
|
||||
(@PATH,17,2577.031,-3724.391,201.4146,0,0,0,100,0),
|
||||
(@PATH,18,2574.256,-3732.734,201.4134,0,0,0,100,0),
|
||||
(@PATH,19,2573.823,-3739.465,201.4134,0,0,0,100,0),
|
||||
(@PATH,20,2576.456,-3746.067,201.4139,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Necrolord Entry: 24014
|
||||
SET @NPC := 97249;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `id`=24014,`modelid`=0,`spawndist`=0,`MovementType`=2,`position_x`=2611.017,`position_y`=-3716.675,`position_z`=181.398 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,2616.453,-3722.186,181.4082,0,0,0,100,0),
|
||||
(@PATH,2,2619.343,-3727.752,181.4051,0,0,0,100,0),
|
||||
(@PATH,3,2620.622,-3735.984,181.4042,0,0,0,100,0),
|
||||
(@PATH,4,2619.866,-3742.29,181.4087,0,0,0,100,0),
|
||||
(@PATH,5,2616.442,-3749.24,181.4057,0,0,0,100,0),
|
||||
(@PATH,6,2611.063,-3754.8,181.4085,0,0,0,100,0),
|
||||
(@PATH,7,2604.478,-3757.701,181.4068,0,0,0,100,0),
|
||||
(@PATH,8,2597.286,-3758.759,181.4067,0,0,0,100,0),
|
||||
(@PATH,9,2590.852,-3757.972,181.4083,0,0,0,100,0),
|
||||
(@PATH,10,2584.248,-3754.43,181.4082,0,0,0,100,0),
|
||||
(@PATH,11,2578.261,-3749.372,181.4069,0,0,0,100,0),
|
||||
(@PATH,12,2575.873,-3743.828,181.4057,0,0,0,100,0),
|
||||
(@PATH,13,2574.191,-3735.234,181.4073,0,0,0,100,0),
|
||||
(@PATH,14,2575.195,-3729.327,181.4094,0,0,0,100,0),
|
||||
(@PATH,15,2578.681,-3722.37,181.4084,0,0,0,100,0),
|
||||
(@PATH,16,2583.938,-3716.915,181.4063,0,0,0,100,0),
|
||||
(@PATH,17,2589.764,-3714.326,181.4076,0,0,0,100,0),
|
||||
(@PATH,18,2597.566,-3712.55,181.4071,0,0,0,100,0),
|
||||
(@PATH,19,2604.017,-3713.141,181.4054,0,0,0,100,0),
|
||||
(@PATH,20,2611.017,-3716.675,181.398,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Necrolord Entry: 24014
|
||||
SET @NPC := 97250;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `id`=24014,`modelid`=0,`spawndist`=0,`MovementType`=2,`position_x`=2585.757,`position_y`=-3717.824,`position_z`=221.4304 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,2579.807,-3722.263,221.4254,0,0,0,100,0),
|
||||
(@PATH,2,2575.761,-3730.515,221.4254,0,0,0,100,0),
|
||||
(@PATH,3,2575.521,-3739.346,221.4455,0,0,0,100,0),
|
||||
(@PATH,4,2577.731,-3745.002,221.4266,0,0,0,100,0),
|
||||
(@PATH,5,2581.885,-3751.379,221.4258,0,0,0,100,0),
|
||||
(@PATH,6,2588.023,-3755.677,221.4271,0,0,0,100,0),
|
||||
(@PATH,7,2596.354,-3757.416,221.4265,0,0,0,100,0),
|
||||
(@PATH,8,2602.154,-3756.99,221.4272,0,0,0,100,0),
|
||||
(@PATH,9,2608.952,-3753.872,221.4283,0,0,0,100,0),
|
||||
(@PATH,10,2613.777,-3748.49,221.4299,0,0,0,100,0),
|
||||
(@PATH,11,2616.507,-3743.333,221.4301,0,0,0,100,0),
|
||||
(@PATH,12,2617.603,-3736.914,221.4314,0,0,0,100,0),
|
||||
(@PATH,13,2616.173,-3730.112,221.4334,0,0,0,100,0),
|
||||
(@PATH,14,2611.927,-3721.691,221.432,0,0,0,100,0),
|
||||
(@PATH,15,2605.345,-3717.231,221.4332,0,0,0,100,0),
|
||||
(@PATH,16,2595.783,-3715.589,221.4307,0,0,0,100,0),
|
||||
(@PATH,17,2585.757,-3717.824,221.4304,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Fearsome Horror Entry: 24073
|
||||
SET @NPC := 97267;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=2685.435,`position_y`=-3516.336,`position_z`=161.3539 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,2662.709,-3500.542,161.3926,0,0,0,100,0),
|
||||
(@PATH,2,2650.608,-3502.922,161.3893,0,0,0,100,0),
|
||||
(@PATH,3,2642.166,-3507.048,161.4015,0,0,0,100,0),
|
||||
(@PATH,4,2640.603,-3513.472,161.4016,0,0,0,100,0),
|
||||
(@PATH,5,2643.823,-3521.674,161.4016,0,0,0,100,0),
|
||||
(@PATH,6,2647.113,-3529.029,161.403,0,0,0,100,0),
|
||||
(@PATH,7,2655.038,-3531.975,161.4017,0,0,0,100,0),
|
||||
(@PATH,8,2671.99,-3521.808,161.3573,0,0,0,100,0),
|
||||
(@PATH,9,2673.333,-3507.633,161.3396,0,0,0,100,0),
|
||||
(@PATH,10,2675.246,-3494.586,161.3678,0,0,0,100,0),
|
||||
(@PATH,11,2685.497,-3487.036,161.3884,0,0,0,100,0),
|
||||
(@PATH,12,2692.917,-3484.15,161.3961,0,0,0,100,0),
|
||||
(@PATH,13,2699.012,-3487.089,161.4006,0,0,0,100,0),
|
||||
(@PATH,14,2706.217,-3502.243,161.4013,0,0,0,100,0),
|
||||
(@PATH,15,2703.759,-3510.093,161.4025,0,0,0,100,0),
|
||||
(@PATH,16,2685.435,-3516.336,161.3539,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Fearsome Horror Entry: 24073
|
||||
SET @NPC := 97246;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=2579.879,`position_y`=-3696.3,`position_z`=161.4409 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,2588.232,-3690.074,161.4458,0,0,0,100,0),
|
||||
(@PATH,2,2589.271,-3684.429,161.4359,0,0,0,100,0),
|
||||
(@PATH,3,2585.342,-3675.472,161.4335,0,0,0,100,0),
|
||||
(@PATH,4,2581.837,-3668.191,161.4327,0,0,0,100,0),
|
||||
(@PATH,5,2575.887,-3666.925,161.4406,0,0,0,100,0),
|
||||
(@PATH,6,2570.748,-3698.407,161.4427,0,0,0,100,0),
|
||||
(@PATH,7,2579.879,-3696.3,161.4409,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Fearsome Horror Entry: 24073
|
||||
SET @NPC := 105763;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `id`=24073,`modelid`=0,`spawndist`=0,`MovementType`=2,`position_x`=2725.236,`position_y`=-3392.25,`position_z`=159.6907 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,2727.104,-3390.643,159.6644,0,0,0,100,0),
|
||||
(@PATH,2,2724.281,-3389.372,159.6592,0,0,0,100,0),
|
||||
(@PATH,3,2721.806,-3387.376,159.6504,0,0,0,100,0),
|
||||
(@PATH,4,2722.977,-3393.822,159.6598,0,0,0,100,0),
|
||||
(@PATH,5,2725.236,-3392.25,159.6907,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Fearsome Horror Entry: 24073
|
||||
SET @NPC := 97252;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=2813.579,`position_y`=-3620.822,`position_z`=161.4043 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,2820.259,-3622.993,161.4039,0,0,0,100,0),
|
||||
(@PATH,2,2825.655,-3622.695,161.4055,0,0,0,100,0),
|
||||
(@PATH,3,2832.094,-3620.313,161.4071,0,0,0,100,0),
|
||||
(@PATH,4,2836.655,-3616.929,161.4057,0,0,0,100,0),
|
||||
(@PATH,5,2840.545,-3611.404,161.4061,0,0,0,100,0),
|
||||
(@PATH,6,2842.39,-3604.52,161.4045,0,0,0,100,0),
|
||||
(@PATH,7,2842.031,-3599.292,161.4063,0,0,0,100,0),
|
||||
(@PATH,8,2839.814,-3592.598,161.4043,0,0,0,100,0),
|
||||
(@PATH,9,2836.608,-3587.857,161.4041,0,0,0,100,0),
|
||||
(@PATH,10,2830.603,-3584.255,161.4064,0,0,0,100,0),
|
||||
(@PATH,11,2823.961,-3581.964,161.4031,0,0,0,100,0),
|
||||
(@PATH,12,2818.599,-3582.841,161.4023,0,0,0,100,0),
|
||||
(@PATH,13,2809.316,-3579.184,161.4106,0,0,0,100,0),
|
||||
(@PATH,14,2801.529,-3572.713,161.4457,0,0,0,100,0),
|
||||
(@PATH,15,2795.903,-3559.435,161.579,0,0,0,100,0),
|
||||
(@PATH,16,2793.693,-3547.917,161.4434,0,0,0,100,0),
|
||||
(@PATH,17,2794.609,-3538.025,161.6062,0,0,0,100,0),
|
||||
(@PATH,18,2789.339,-3527.189,166.2076,0,0,0,100,0),
|
||||
(@PATH,19,2778.46,-3527.366,166.1371,0,0,0,100,0),
|
||||
(@PATH,20,2772.763,-3531.095,166.1371,0,0,0,100,0),
|
||||
(@PATH,21,2765.156,-3536.607,166.1371,0,0,0,100,0),
|
||||
(@PATH,22,2763.8,-3543.712,166.3489,0,0,0,100,0),
|
||||
(@PATH,23,2772.348,-3554.362,161.5688,0,0,0,100,0),
|
||||
(@PATH,24,2780.89,-3556.149,161.4322,0,0,0,100,0),
|
||||
(@PATH,25,2791.389,-3562.775,161.5777,0,0,0,100,0),
|
||||
(@PATH,26,2803.1,-3574.7,161.4174,0,0,0,100,0),
|
||||
(@PATH,27,2803.814,-3581.895,161.3991,0,0,0,100,0),
|
||||
(@PATH,28,2804,-3593.935,161.4066,0,0,0,100,0),
|
||||
(@PATH,29,2801.798,-3600.579,161.4039,0,0,0,100,0),
|
||||
(@PATH,30,2802.101,-3606.185,161.4054,0,0,0,100,0),
|
||||
(@PATH,31,2804.482,-3612.46,161.4072,0,0,0,100,0),
|
||||
(@PATH,32,2807.753,-3617.282,161.405,0,0,0,100,0),
|
||||
(@PATH,33,2813.579,-3620.822,161.4043,0,0,0,100,0);
|
||||
|
||||
-- Pathing for Gjalerbron Warrior Entry: 23991
|
||||
SET @NPC := 113286;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=2656.009,`position_y`=-3595.201,`position_z`=205.3548 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,2619.413,-3562.591,205.3707,0,0,0,100,0),
|
||||
(@PATH,2,2578.914,-3535.467,206.4749,0,0,0,100,0),
|
||||
(@PATH,3,2569.813,-3526.975,206.25688,0,0,0,100,0),
|
||||
(@PATH,4,2547.857,-3503.03,187.9234,0,0,0,100,0),
|
||||
(@PATH,5,2550.461,-3454.087,184.147,0,0,0,100,0),
|
||||
(@PATH,6,2603.13,-3431.154,184.0111,0,0,0,100,0),
|
||||
(@PATH,7,2618.346,-3441.865,186.16079,0,0,0,100,0),
|
||||
(@PATH,8,2636.813,-3462.923,202.8718,0,0,0,100,0),
|
||||
(@PATH,9,2639.909,-3468.866,206.72212,0,0,0,100,0),
|
||||
(@PATH,10,2659.177,-3506.079,205.3751,0,0,0,100,0),
|
||||
(@PATH,11,2684.902,-3549.402,205.3751,0,0,0,100,0),
|
||||
(@PATH,12,2687.326,-3578.99,205.3152,0,0,0,100,0),
|
||||
(@PATH,13,2656.009,-3595.201,205.3548,0,0,0,100,0);
|
||||
|
||||
-- Allerian Stronghold Fixup
|
||||
|
||||
-- Update position for Erick Nateson
|
||||
UPDATE `creature` SET `position_x`=-2947.306,`position_y`=3982.602,`position_z`=0.04192996,`orientation`=3.493307 WHERE `id`=21399;
|
||||
|
||||
-- Pathing for High Elf Ranger Entry: 19000
|
||||
SET @NPC := 68300;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-2892.84,`position_y`=3947.823,`position_z`=13.40542 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,258,0, '');
|
||||
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,-2900.541,3949.979,13.40506,8000,0,0,100,0),
|
||||
(@PATH,2,-2892.84,3947.823,13.40542,16000,0,0,100,0);
|
||||
|
||||
-- Pathing for High Elf Ranger Entry: 19000
|
||||
SET @NPC := 68302;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-2984.74,`position_y`=4065.979,`position_z`=16.47879 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,258,0, '');
|
||||
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,-2989.837,4072.737,16.47879,16000,0,0,100,0),
|
||||
(@PATH,2,-2984.74,4065.979,16.47879,8000,0,0,100,0);
|
||||
|
||||
-- Pathing for High Elf Ranger Entry: 19000
|
||||
SET @NPC := 68304;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-3057.808,`position_y`=4017.832,`position_z`=16.17462 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,258,0, '');
|
||||
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,-3052.007,4011.99,16.17451,8000,0,0,100,0),
|
||||
(@PATH,2,-3057.808,4017.832,16.17462,16000,0,0,100,0);
|
||||
|
||||
-- Pathing for Allerian Horseman Entry: 19003
|
||||
SET @NPC := 68308;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-2872.895,`position_y`=3981.621,`position_z`=5.133294 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,2404, '');
|
||||
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,-2862.589,3983.513,4.859164,23000,0,0,100,0),
|
||||
(@PATH,2,-2877.861,3980.92,4.691218,22000,0,@PATH+1,100,0),
|
||||
(@PATH,3,-2872.895,3981.621,5.133294,0,0,0,100,0);
|
||||
DELETE FROM `waypoint_scripts` WHERE `id` IN (@PATH+1);
|
||||
INSERT INTO `waypoint_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`o`,`guid`) VALUES
|
||||
(@PATH+1,1,30,0,0,0.1919862,822);
|
||||
|
||||
-- Pathing for Allerian Horseman Entry: 19003
|
||||
SET @NPC := 68309;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-2965.397,`position_y`=4084.842,`position_z`=3.064998 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,2404, '');
|
||||
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,-2971.184,4089.91,4.059246,0,0,0,100,0),
|
||||
(@PATH,2,-2974.546,4096.034,4.809246,0,0,0,100,0),
|
||||
(@PATH,3,-2975.984,4102.904,5.563596,0,0,0,100,0),
|
||||
(@PATH,4,-2976.84,4109.215,6.188596,0,0,0,100,0),
|
||||
(@PATH,5,-2977.442,4116.1,6.438596,29000,0,0,100,0),
|
||||
(@PATH,6,-2976.687,4106.692,6.063596,0,0,0,100,0),
|
||||
(@PATH,7,-2975.544,4099.55,5.309246,0,0,0,100,0),
|
||||
(@PATH,8,-2973.493,4091.829,4.309246,0,0,0,100,0),
|
||||
(@PATH,9,-2969.062,4087.132,3.684246,0,0,0,100,0),
|
||||
(@PATH,10,-2965.397,4084.842,3.064998,29000,0,@PATH+1,100,0);
|
||||
DELETE FROM `waypoint_scripts` WHERE `id` IN (@PATH+1);
|
||||
INSERT INTO `waypoint_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`o`,`guid`) VALUES
|
||||
(@PATH+1,1,30,0,0,2.321288,823);
|
||||
|
||||
-- Pathing for Lemla Hopewing Entry: 19181
|
||||
SET @NPC := 68626;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-2981.203,`position_y`=3879.134,`position_z`=9.613096 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,-2992.487,3878.415,9.613096,9000,0,@PATH+1,100,0),
|
||||
(@PATH,2,-2996.076,3870.127,9.613096,20000,0,0,100,0),
|
||||
(@PATH,3,-2997.53,3865.11,9.484549,8000,0,0,100,0),
|
||||
(@PATH,4,-2993.53,3863.55,9.484549,7000,0,0,100,0),
|
||||
(@PATH,5,-2981.203,3879.134,9.613096,7000,0,0,100,0);
|
||||
DELETE FROM `waypoint_scripts` WHERE `id` IN (@PATH+1);
|
||||
INSERT INTO `waypoint_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`o`,`guid`) VALUES
|
||||
(@PATH+1,0,30,0,0,1.27409,824);
|
||||
|
||||
-- Pathing for Allerian Defender Entry: 18999
|
||||
SET @NPC := 68292;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-2947.596,`position_y`=3983.544,`position_z`=-0.08307004 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,-2944.827,3979.540,0.041929,0,0,0,100,0),
|
||||
(@PATH,2,-2942.500,3979.078,-0.20807,25000,0,@PATH+1,100,0),
|
||||
(@PATH,3,-2939.759,3978.620,-0.425645,0,0,0,100,0),
|
||||
(@PATH,4,-2936.500,3981.641,-0.33307,0,0,0,100,0),
|
||||
(@PATH,5,-2935.938,3983.333,-0.33307,29000,0,@PATH+2,100,0),
|
||||
(@PATH,6,-2935.374,3986.827,-0.594707,0,0,0,100,0),
|
||||
(@PATH,7,-2937.500,3990.625,-0.58307,0,0,0,100,0),
|
||||
(@PATH,8,-2940.678,3990.862,-0.70807,23000,0,@PATH+3,100,0),
|
||||
(@PATH,9,-2943.362,3990.967,-0.597971,0,0,0,100,0),
|
||||
(@PATH,10,-2947.396,3988.542,-0.20807,0,0,0,100,0),
|
||||
(@PATH,11,-2947.596,3983.544,-0.08307004,27000,0,@PATH+4,100,0);
|
||||
DELETE FROM `waypoint_scripts` WHERE `id` IN (@PATH+1,@PATH+2,@PATH+3,@PATH+4);
|
||||
INSERT INTO `waypoint_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`o`,`guid`) VALUES
|
||||
(@PATH+1,1,30,0,0,4.729842,825),
|
||||
(@PATH+2,1,30,0,0,6.091199,826),
|
||||
(@PATH+3,1,30,0,0,1.815142,827),
|
||||
(@PATH+4,1,30,0,0,3.560472,828);
|
||||
|
||||
-- Pathing for Allerian Defender Entry: 18999
|
||||
SET @NPC := 68296;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-3004.182,`position_y`=4059.2,`position_z`=16.47264 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,-3016.535,4050.462,16.47229,0,0,0,100,0),
|
||||
(@PATH,2,-3022.042,4045.356,17.46166,0,0,0,100,0),
|
||||
(@PATH,3,-3030.056,4039.186,17.46166,0,0,0,100,0),
|
||||
(@PATH,4,-3032.783,4036.933,16.18017,0,0,0,100,0),
|
||||
(@PATH,5,-3044.368,4027.187,16.17542,12000,0,@PATH+1,100,0),
|
||||
(@PATH,6,-3039.387,4030.45,16.1769,0,0,0,100,0),
|
||||
(@PATH,7,-3032.683,4037.32,16.1804,0,0,0,100,0),
|
||||
(@PATH,8,-3025.89,4042.386,17.46166,0,0,0,100,0),
|
||||
(@PATH,9,-3019.17,4047.763,17.46166,0,0,0,100,0),
|
||||
(@PATH,10,-3016.295,4049.834,16.47264,0,0,0,100,0),
|
||||
(@PATH,11,-3004.042,4059.303,16.47269,12000,0,@PATH+2,100,0),
|
||||
(@PATH,12,-2992.944,4066.828,16.47743,0,0,0,100,0),
|
||||
(@PATH,13,-2989.875,4062.297,16.47566,0,0,0,100,0),
|
||||
(@PATH,14,-2999.597,4055.534,10.61597,0,0,0,100,0),
|
||||
(@PATH,15,-3008.305,4049.41,5.663261,10000,0,@PATH+3,100,0),
|
||||
(@PATH,16,-3003.988,4052.784,7.524997,0,0,0,100,0),
|
||||
(@PATH,17,-2989.94,4062.394,16.47567,0,0,0,100,0),
|
||||
(@PATH,18,-2992.964,4066.766,16.47739,0,0,0,100,0),
|
||||
(@PATH,19,-3004.182,4059.2,16.47264,12000,0,@PATH+4,100,0);
|
||||
DELETE FROM `waypoint_scripts` WHERE `id` IN (@PATH+1,@PATH+2,@PATH+3,@PATH+4);
|
||||
INSERT INTO `waypoint_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`o`,`guid`) VALUES
|
||||
(@PATH+1,1,30,0,0,2.373648,829),
|
||||
(@PATH+2,1,30,0,0,2.164208,830),
|
||||
(@PATH+3,1,30,0,0,0.3490658,831),
|
||||
(@PATH+4,1,30,0,0,2.164208,832);
|
||||
|
||||
-- Pathing for Allerian Defender Entry: 18999
|
||||
SET @NPC := 68290;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-2908.265,`position_y`=3922.398,`position_z`=13.40726 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,-2905.809,3933.479,7.323796,0,0,0,100,0),
|
||||
(@PATH,2,-2903.188,3943.559,2.596507,11000,0,@PATH+1,100,0),
|
||||
(@PATH,3,-2907.823,3925.806,12.06445,0,0,0,100,0),
|
||||
(@PATH,4,-2908.265,3922.398,13.40726,0,0,0,100,0),
|
||||
(@PATH,5,-2903.021,3920.76,13.40938,19000,0,@PATH+2,100,0),
|
||||
(@PATH,6,-2900.368,3931.102,13.40561,0,0,0,100,0),
|
||||
(@PATH,7,-2896.775,3945.807,13.40281,29000,0,@PATH+3,100,0),
|
||||
(@PATH,8,-2898.747,3936.718,13.40411,0,0,0,100,0),
|
||||
(@PATH,9,-2903.021,3920.76,13.40938,28000,0,@PATH+4,100,0),
|
||||
(@PATH,10,-2908.265,3922.398,13.40726,0,0,0,100,0);
|
||||
DELETE FROM `waypoint_scripts` WHERE `id` IN (@PATH+1,@PATH+2,@PATH+3,@PATH+4);
|
||||
INSERT INTO `waypoint_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`o`,`guid`) VALUES
|
||||
(@PATH+1,1,30,0,0,2.80998,833),
|
||||
(@PATH+2,1,30,0,0,6.021386,834),
|
||||
(@PATH+3,1,30,0,0,6.161012,835),
|
||||
(@PATH+4,1,30,0,0,6.003932,836);
|
||||
|
||||
-- Allerian Defender SAI
|
||||
SET @ENTRY := 18999; -- NPC entry
|
||||
SET @SPELL1 := 18396; -- Dismounting Blast
|
||||
SET @GUID1 := 68293; -- One Defender is scripted
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='' WHERE `entry`=@ENTRY; -- Set SAI as AI. Remove cpp ScriptName if one exist
|
||||
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY; -- Remove EAI if exist
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid` IN (@ENTRY,-@GUID1);
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=9 AND `entryorguid` IN (@ENTRY*100);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(@ENTRY,0,0,0,4,0,100,1,0,0,0,0,11,@SPELL1,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Allerian Defender - On Aggro - Cast Dismounting Blast on victim'),
|
||||
(-@GUID1,0,0,0,4,0,100,1,0,0,0,0,11,@SPELL1,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Allerian Defender - On Aggro - Cast Dismounting Blast on victim'),
|
||||
(-@GUID1,0,1,0,1,0,100,0,40000,80000,180000,180000,80,@ENTRY*100,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Allerian Defender - OOC - Run Script'),
|
||||
(@ENTRY*100,9,0,0,0,0,100,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,4.642576, 'Allerian Defender - Script - turn to'),
|
||||
(@ENTRY*100,9,1,0,0,0,100,0,1000,1000,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Allerian Defender - Script - Say text 0'),
|
||||
(@ENTRY*100,9,2,0,0,0,100,0,5000,5000,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,1.466077, 'Allerian Defender - Script - turn to'),
|
||||
(@ENTRY*100,9,3,0,0,0,100,0,1000,1000,0,0,1,1,0,0,0,0,0,10,68291,@ENTRY,0,0,0,0,0, 'Allerian Defender - Script - Say text 0');
|
||||
-- NPC talk text insert from sniff
|
||||
DELETE FROM `creature_text` WHERE `entry`=18999;
|
||||
INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
|
||||
(18999,0,0, 'Hey, did you read the bounty on this wanted poster?',12,7,100,6,0,0, 'Allerian Defender'),
|
||||
(18999,0,1, 'The Bone Wastes! I don''t care what''s being offered as a reward, I''m not going into the Bone Wastes!',12,7,100,6,0,0, 'Allerian Defender'),
|
||||
(18999,0,2, 'This wanted poster says that they''re offering gold to these so-called adventurers to go kill things. Isn''t that what we do? I don''t think I''m being paid enough!',12,7,100,6,0,0, 'Allerian Defender'),
|
||||
(18999,0,3, 'You want to go do the bounty off of this wanted poster after the shift is over?',12,7,100,6,0,0, 'Allerian Defender'),
|
||||
(18999,0,4, 'This poster has a bounty on bonelashers. You think I should do that?',12,7,100,6,0,0, 'Allerian Defender'),
|
||||
(18999,1,0, 'Is that wanted poster all that you''re going to talk about today?',12,7,100,1,0,0, 'Allerian Defender'),
|
||||
(18999,1,1, 'I''m up to looking into that bounty after this shift.',12,7,100,1,0,0, 'Allerian Defender'),
|
||||
(18999,1,2, 'I could use the extra money.',12,7,100,1,0,0, 'Allerian Defender'),
|
||||
(18999,1,3, 'I don''t know and I don''t care.',12,7,100,1,0,0, 'Allerian Defender'),
|
||||
(18999,1,4, 'The bonelashers of the wastes are no laughing matter. I hear they carry diseases!',12,7,100,1,0,0, 'Allerian Defender');
|
||||
-- Remove old crappy script
|
||||
UPDATE `creature` SET `MovementType`=0 WHERE `guid` IN (68291,68293);
|
||||
UPDATE `creature_addon` SET `path_id`=0 WHERE `guid` IN (68291,68293);
|
||||
DELETE FROM `waypoint_data` WHERE `id` IN (682910,682930);
|
||||
DELETE FROM `waypoint_scripts` WHERE `id` BETWEEN 170 AND 171;
|
||||
DELETE FROM `db_script_string` WHERE `entry` IN (2000005046,2000005047);
|
||||
|
||||
-- Pathing for Allerian Peasant Entry: 19147
|
||||
SET @NPC := 68470;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-2983.204,`position_y`=3971.366,`position_z`=2.162047 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,-2981.773,3966.45,2.614914,0,0,0,100,0),
|
||||
(@PATH,2,-2981.005,3960.968,2.989914,0,0,0,100,0),
|
||||
(@PATH,3,-2981.881,3954.581,2.614914,0,0,0,100,0),
|
||||
(@PATH,4,-2982.862,3947.319,3.114914,0,0,0,100,0),
|
||||
(@PATH,5,-2986.684,3945.63,3.239914,0,0,0,100,0),
|
||||
(@PATH,6,-2986.646,3950.593,3.761735,6000,0,@PATH+1,100,0),
|
||||
(@PATH,7,-2986.979,3946.354,3.114914,0,0,0,100,0),
|
||||
(@PATH,8,-2982.707,3945.763,3.364914,0,0,0,100,0),
|
||||
(@PATH,9,-2980.747,3953.042,2.739914,0,0,0,100,0),
|
||||
(@PATH,10,-2980.202,3961.786,2.864914,0,0,0,100,0),
|
||||
(@PATH,11,-2983.204,3971.366,2.162047,4000,0,@PATH+2,100,0);
|
||||
-- F1304ACB07BEF300 .go -2981.773 3966.45 2.614914
|
||||
DELETE FROM `waypoint_scripts` WHERE `id` IN (188,189,@PATH+1,@PATH+2);
|
||||
INSERT INTO `waypoint_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`o`,`guid`) VALUES
|
||||
(@PATH+1,0,30,0,0,1.413717,837),
|
||||
(@PATH+1,1,2,83,381,0,838),
|
||||
(@PATH+2,1,2,83,381,0,839);
|
||||
|
||||
-- Pathing for Allerian Peasant Entry: 19147
|
||||
SET @NPC := 68468;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-2977.357,`position_y`=4012.234,`position_z`=1.424733 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,-2978.323,4006.793,1.174733,0,0,0,100,0),
|
||||
(@PATH,2,-2973.405,4002.646,1.424733,0,0,0,100,0),
|
||||
(@PATH,3,-2967.158,4003.521,1.299733,0,0,0,100,0),
|
||||
(@PATH,4,-2964.591,4008.163,1.124218,0,0,0,100,0),
|
||||
(@PATH,5,-2966.771,4010.062,1.299733,0,0,0,100,0),
|
||||
(@PATH,6,-2969.096,4008.951,1.830398,5000,0,@PATH+1,100,0),
|
||||
(@PATH,7,-2966.771,4010.062,1.299733,0,0,0,100,0),
|
||||
(@PATH,8,-2964.591,4008.163,1.124218,0,0,0,100,0),
|
||||
(@PATH,9,-2965.665,4005.173,1.249218,0,0,0,100,0),
|
||||
(@PATH,10,-2972.548,4002.835,1.424733,0,0,0,100,0),
|
||||
(@PATH,11,-2977.689,4007.088,1.174733,0,0,0,100,0),
|
||||
(@PATH,12,-2977.357,4012.234,1.424733,4000,0,@PATH+2,100,0);
|
||||
DELETE FROM `waypoint_scripts` WHERE `id` IN (184,185,@PATH+1,@PATH+2);
|
||||
INSERT INTO `waypoint_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`o`,`guid`) VALUES
|
||||
(@PATH+1,0,30,0,0,3.839724,840),
|
||||
(@PATH+1,1,2,83,381,0,841),
|
||||
(@PATH+2,1,2,83,381,0,842);
|
||||
|
||||
-- Pathing for Allerian Peasant Entry: 19147
|
||||
SET @NPC := 68469;
|
||||
SET @PATH := @NPC * 10;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-2994.862,`position_y`=4029.217,`position_z`=1.799733 WHERE `guid`=@NPC;
|
||||
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
|
||||
INSERT INTO `creature_addon` (`guid`,`path_id`,`bytes2`,`mount`,`auras`) VALUES (@NPC,@PATH,1,0, '');
|
||||
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,-2995.501,4024.677,1.674733,0,0,0,100,0),
|
||||
(@PATH,2,-2991.115,4017.175,1.424733,0,0,0,100,0),
|
||||
(@PATH,3,-2986.05,4011.426,0.7997329,0,0,0,100,0),
|
||||
(@PATH,4,-2980.667,4005.888,1.049733,0,0,0,100,0),
|
||||
(@PATH,5,-2974.792,4001.254,1.424733,0,0,0,100,0),
|
||||
(@PATH,6,-2969.111,3999.192,1.787047,0,0,0,100,0),
|
||||
(@PATH,7,-2962.025,4001.197,1.249218,0,0,0,100,0),
|
||||
(@PATH,8,-2955.767,4003.337,0.8742183,0,0,0,100,0),
|
||||
(@PATH,9,-2949.479,4006.26,-0.5007817,0,0,0,100,0),
|
||||
(@PATH,10,-2943.639,4005.681,-0.8757817,0,0,0,100,0),
|
||||
(@PATH,11,-2938.82,4004.248,-0.8757817,5000,0,@PATH+2,100,0),
|
||||
(@PATH,12,-2944.247,4006.454,-0.8757817,0,0,0,100,0),
|
||||
(@PATH,13,-2950.113,4005.459,-0.2507817,0,0,0,100,0),
|
||||
(@PATH,14,-2958.819,4002.142,1.124218,0,0,0,100,0),
|
||||
(@PATH,15,-2968.181,3999.478,1.662047,0,0,0,100,0),
|
||||
(@PATH,16,-2976.377,4001.348,1.424733,0,0,0,100,0),
|
||||
(@PATH,17,-2982.522,4005.211,1.049733,0,0,0,100,0),
|
||||
(@PATH,18,-2987.678,4011.322,0.6747329,0,0,0,100,0),
|
||||
(@PATH,19,-2991.716,4016.418,1.174733,0,0,0,100,0),
|
||||
(@PATH,20,-2994.956,4023.157,1.549733,0,0,0,100,0),
|
||||
(@PATH,21,-2994.996,4027.696,1.799733,0,0,0,100,0),
|
||||
(@PATH,22,-2994.862,4029.217,1.799733,5000,0,@PATH+1,100,0);
|
||||
DELETE FROM `waypoint_scripts` WHERE `id` IN (186,187,@PATH+1,@PATH+2);
|
||||
INSERT INTO `waypoint_scripts` (`id`,`delay`,`command`,`datalong`,`datalong2`,`o`,`guid`) VALUES
|
||||
(@PATH+1,0,30,0,0,1.570796,843),
|
||||
(@PATH+1,1,2,83,381,0,844),
|
||||
(@PATH+2,1,2,83,69,0,845);
|
||||
@@ -0,0 +1,6 @@
|
||||
DELETE FROM `disables` WHERE `entry`=6803 AND `sourceType`=4;
|
||||
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=6803 AND `type`=11;
|
||||
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`)
|
||||
VALUES
|
||||
(6803,11,0,0,'achievement_defenseless');
|
||||
@@ -0,0 +1,6 @@
|
||||
DELETE FROM `disables` WHERE `entry`=7319 AND `sourceType`=4;
|
||||
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=7319 AND `type`=11;
|
||||
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`)
|
||||
VALUES
|
||||
(7319,11,0,0,'achievement_less_rabi');
|
||||
@@ -0,0 +1,6 @@
|
||||
DELETE FROM `disables` WHERE `entry`=7577 AND `sourceType`=4;
|
||||
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=7577 AND `type`=11;
|
||||
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`)
|
||||
VALUES
|
||||
(7577,11,0,0,'achievement_split_personality');
|
||||
@@ -0,0 +1,6 @@
|
||||
DELETE FROM `disables` WHERE `entry`=7320 AND `sourceType`=4;
|
||||
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=7320 AND `type`=11;
|
||||
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`)
|
||||
VALUES
|
||||
(7320,11,0,0,'achievement_dehydration');
|
||||
@@ -0,0 +1 @@
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=7590 AND `type`=18;
|
||||
@@ -0,0 +1,3 @@
|
||||
DELETE FROM `spell_bonus_data` WHERE `entry` = 64891;
|
||||
INSERT INTO `spell_bonus_data` VALUES
|
||||
(64891, -1, 0, -1, -1, 'Paladin - T8 Holy 2P - Holy Mending');
|
||||
@@ -0,0 +1,7 @@
|
||||
DELETE FROM `spell_script_names` WHERE `spell_id` IN(4073,19804,12749,13258,13166);
|
||||
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
(4073,'spell_gen_allow_cast_from_item_only'),
|
||||
(19804,'spell_gen_allow_cast_from_item_only'),
|
||||
(12749,'spell_gen_allow_cast_from_item_only'),
|
||||
(13258,'spell_gen_allow_cast_from_item_only'),
|
||||
(13166,'spell_gen_allow_cast_from_item_only');
|
||||
@@ -0,0 +1,9 @@
|
||||
DELETE FROM `spell_dbc` WHERE `id`=59046;
|
||||
INSERT INTO `spell_dbc` (`Id`,`Effect1`,`EffectRadiusIndex1`,`EffectImplicitTargetA1`,`EffectImplicitTargetB1`,`comment`)
|
||||
VALUES
|
||||
(59046,3,28,22,30,'Tribunal of Ages - Criteria Marker');
|
||||
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=7590 AND `type`=11;
|
||||
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`)
|
||||
VALUES
|
||||
(7590,11,0,0,'achievement_brann_spankin_new');
|
||||
@@ -0,0 +1,6 @@
|
||||
DELETE FROM `disables` WHERE `entry`=7361 AND `sourceType`=4;
|
||||
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=7361 AND `type`=11;
|
||||
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`)
|
||||
VALUES
|
||||
(7361,11,0,0,'achievement_oh_novos');
|
||||
@@ -0,0 +1,3 @@
|
||||
DELETE FROM `spell_dbc` WHERE `Id`=24308;
|
||||
INSERT INTO `spell_dbc`(`Id`,`Dispel`,`Mechanic`,`Attributes`,`AttributesEx`,`AttributesEx2`,`AttributesEx3`,`AttributesEx4`,`AttributesEx5`,`Stances`,`StancesNot`,`Targets`,`CastingTimeIndex`,`AuraInterruptFlags`,`ProcFlags`,`ProcChance`,`ProcCharges`,`MaxLevel`,`BaseLevel`,`SpellLevel`,`DurationIndex`,`RangeIndex`,`StackAmount`,`EquippedItemClass`,`EquippedItemSubClassMask`,`EquippedItemInventoryTypeMask`,`Effect1`,`Effect2`,`Effect3`,`EffectDieSides1`,`EffectDieSides2`,`EffectDieSides3`,`EffectRealPointsPerLevel1`,`EffectRealPointsPerLevel2`,`EffectRealPointsPerLevel3`,`EffectBasePoints1`,`EffectBasePoints2`,`EffectBasePoints3`,`EffectMechanic1`,`EffectMechanic2`,`EffectMechanic3`,`EffectImplicitTargetA1`,`EffectImplicitTargetA2`,`EffectImplicitTargetA3`,`EffectImplicitTargetB1`,`EffectImplicitTargetB2`,`EffectImplicitTargetB3`,`EffectRadiusIndex1`,`EffectRadiusIndex2`,`EffectRadiusIndex3`,`EffectApplyAuraName1`,`EffectApplyAuraName2`,`EffectApplyAuraName3`,`EffectAmplitude1`,`EffectAmplitude2`,`EffectAmplitude3`,`EffectMultipleValue1`,`EffectMultipleValue2`,`EffectMultipleValue3`,`EffectMiscValue1`,`EffectMiscValue2`,`EffectMiscValue3`,`EffectMiscValueB1`,`EffectMiscValueB2`,`EffectMiscValueB3`,`EffectTriggerSpell1`,`EffectTriggerSpell2`,`EffectTriggerSpell3`,`EffectSpellClassMaskA1`,`EffectSpellClassMaskA2`,`EffectSpellClassMaskA3`,`EffectSpellClassMaskB1`,`EffectSpellClassMaskB2`,`EffectSpellClassMaskB3`,`EffectSpellClassMaskC1`,`EffectSpellClassMaskC2`,`EffectSpellClassMaskC3`,`MaxTargetLevel`,`SpellFamilyName`,`SpellFamilyFlags1`,`SpellFamilyFlags2`,`SpellFamilyFlags3`,`MaxAffectedTargets`,`DmgClass`,`PreventionType`,`DmgMultiplier1`,`DmgMultiplier2`,`DmgMultiplier3`,`AreaGroupId`,`SchoolMask`,`Comment`) VALUES
|
||||
('24308','0','0','256','0','0','0','0','0','0','0','0','1','0','0','101','0','0','0','0','26','1','0','-1','0','0','41','0','0','1','0','0','0','0','0','0','0','0','0','0','0','18','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','14986','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','1','0','0','0','0','Summon Shade of Jin''Do');
|
||||
@@ -0,0 +1,2 @@
|
||||
-- Fix typo for Ragnaros' Magmaburst
|
||||
UPDATE `script_texts` SET `content_default`='MY PATIENCE IS DWINDLING! COME, GNATS, TO YOUR DEATH!' WHERE `npc_entry`=11502 AND `entry`='-1409018';
|
||||
@@ -0,0 +1,31 @@
|
||||
-- Fix Quest 11465 "The Ransacked Caravan"
|
||||
-- Fjord Turkey SAI
|
||||
SET @ENTRY := 24746; -- NPC entry
|
||||
SET @SPELL1 := 44323; -- Hawk Hunting
|
||||
SET @SPELL2 := 44327; -- Hawk Hunting
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='' WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
|
||||
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
|
||||
(@ENTRY,0,0,1,8,0,100,0,@SPELL1,0,0,0,11,@SPELL2,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Fjord Turkey - On Spellhit - Cast spell on invoker'),
|
||||
(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,41,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Fjord Turkey - On Spellhit - Despawn');
|
||||
-- Fix condition for Item 34111 to only target Fjord Turkey
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=18 AND `SourceEntry`=34111;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
|
||||
(18,0,34111,0,24,1,@ENTRY,0,63,'','Item Trained Rock Falcon targets only Fjord Turkey');
|
||||
-- Dragonflayer Ambusher SAI
|
||||
SET @ENTRY := 24779; -- NPC entry
|
||||
SET @SPELL1 := 38557; -- Throw
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='' WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
|
||||
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
|
||||
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,89,10,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Dragonflayer Ambusher - On spawn - Set random movement'),
|
||||
(@ENTRY,0,1,0,4,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Dragonflayer Ambusher - On aggro - Say text'),
|
||||
(@ENTRY,0,2,0,0,0,100,1,0,0,0,0,11,@SPELL1,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Dragonflayer Ambusher - Combat - Cast spell on victim');
|
||||
-- NPC talk text insert from sniff
|
||||
DELETE FROM `creature_text` WHERE `entry`=24779;
|
||||
INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES
|
||||
(24779,0,0, 'Tonight we feast on you!',12,0,100,0,0,0, 'Dragonflayer Ambusher'),
|
||||
(24779,0,1, 'Such easy prey...',12,0,100,0,0,0, 'Dragonflayer Ambusher'),
|
||||
(24779,0,2, 'Who''s hunting who?',12,0,100,0,0,0, 'Dragonflayer Ambusher');
|
||||
@@ -0,0 +1,52 @@
|
||||
-- Ice Heart Jormungar Feeder SAI
|
||||
SET @ENTRY := 26358; -- NPC entry
|
||||
SET @SPELL1 := 47447; -- Corrosive Spit
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI', `ScriptName`='' WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
|
||||
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
|
||||
(@ENTRY,0,0,0,0,0,100,0,5000,11000,20000,26000,11,@SPELL1,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Ice Heart Jormungar Feeder - Combat - Cast Corrosive Spit');
|
||||
|
||||
-- SAI for Fulgorge
|
||||
SET @ENTRY := 18678;
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
|
||||
UPDATE `creature` SET `spawndist`=20,`MovementType`=1 WHERE `id`=@ENTRY;
|
||||
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
|
||||
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
|
||||
(@ENTRY,0,0,1,1,0,100,1,0,0,0,0,11,34038,0,0,0,0,0,1,0,0,0,0,0,0,0,'Fulgorge - OOC - Cast Submerge Visual'),
|
||||
(@ENTRY,0,1,0,61,0,100,1,0,0,0,0,18,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Fulgorge - OOC - Set Unselectable and Unattackable Flags'),
|
||||
(@ENTRY,0,2,3,0,0,100,1,0,0,0,0,28,34038,0,0,0,0,0,1,0,0,0,0,0,0,0,'Fulgorge - On Aggro - Remove Submerge Visual'),
|
||||
(@ENTRY,0,3,4,61,0,100,0,0,0,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Fulgorge - On Aggro - Remove Unselectable and Unattackable Flags'),
|
||||
(@ENTRY,0,4,5,61,0,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Fulgorge - On Aggro - Prevent Combat Movement'),
|
||||
(@ENTRY,0,5,0,61,0,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Fulgorge - On Aggro - Set Phase 1'),
|
||||
(@ENTRY,0,6,7,0,1,100,0,1000,1000,2100,4500,11,31747,1,0,0,0,0,2,0,0,0,0,0,0,0,'Fulgorge - Combat - Cast Poison (Phase 1)'),
|
||||
(@ENTRY,0,7,0,61,1,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Fulgorge - Combat - Prevent Combat Movement (Phase 1)'),
|
||||
(@ENTRY,0,8,0,0,1,100,0,20400,20400,45000,50000,11,32738,1,0,0,0,0,2,0,0,0,0,0,0,0,'Fulgorge - Combat - Cast Bore (Phase 1)'),
|
||||
(@ENTRY,0,9,10,9,1,100,0,20,60,0,0,11,34038,0,0,0,0,0,1,0,0,0,0,0,0,0,'Fulgorge - At 20 - 60 Yards Range - Cast Submerge Visual (Phase 1)'),
|
||||
(@ENTRY,0,10,0,61,1,100,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Fulgorge - At 20 - 60 Yards Range - Set Phase 2 (Phase 1)'),
|
||||
(@ENTRY,0,11,12,9,2,100,0,0,8,0,0,28,34038,0,0,0,0,0,1,0,0,0,0,0,0,0,'Fulgorge - At 0 - 8 Yards - Remove Submerge Visual (Phase 2)'),
|
||||
(@ENTRY,0,12,13,61,2,100,0,0,0,0,0,21,0,0,0,0,0,0,1,0,0,0,0,0,0,0,'Fulgorge - Combat - Prevent Combat Movement (Phase 2)'),
|
||||
(@ENTRY,0,13,14,61,2,100,0,0,8,0,0,19,33554434,0,0,0,0,0,1,0,0,0,0,0,0,0,'Fulgorge - At 0 - 8 Yards - Remove Unselectable and Unattackable Flags (Phase 2)'),
|
||||
(@ENTRY,0,14,0,61,2,100,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,'Fulgorge - At 20 - 60 Yards Range - Set Phase 1 (Phase 2)');
|
||||
|
||||
-- Deranged Helboar SAI
|
||||
SET @ENTRY := 16863; -- NPC entry
|
||||
SET @SPELL1 := 33908; -- Burning Spikes
|
||||
SET @SPELL2 := 8599; -- Enrage
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
|
||||
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
|
||||
(@ENTRY,0,0,0,11,0,100,0,0,0,0,0,11,@SPELL1,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Deranged Helboar - On spawn - Cast Burning Spikes on self'),
|
||||
(@ENTRY,0,1,0,2,0,100,1,0,30,0,0,11,@SPELL2,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Deranged Helboar - On Health level - Cast Enrage When Below 30% HP');
|
||||
|
||||
-- Stonescythe Alpha SAI
|
||||
SET @ENTRY := 16929; -- NPC entry
|
||||
SET @SPELL1 := 33911; -- Tear Armor
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `creature_ai_scripts` WHERE `creature_id`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
|
||||
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
|
||||
(@ENTRY,0,0,0,0,0,50,0,3000,3000,8000,8000,11,@SPELL1,0,0,0,0,0,2,0,0,0,0,0,0,0, 'Stonescythe Alpha - Combat - Cast Tear Armor');
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
DELETE FROM `disables` WHERE `entry`=7593 AND `sourceType`=4;
|
||||
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=7593 AND `type`=11;
|
||||
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`)
|
||||
VALUES
|
||||
(7593,11,0,0,'achievement_abuse_the_ooze');
|
||||
@@ -0,0 +1,6 @@
|
||||
DELETE FROM `disables` WHERE `entry`=7579 AND `sourceType`=4;
|
||||
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=7579 AND `type`=11;
|
||||
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`)
|
||||
VALUES
|
||||
(7579,11,0,0,'achievement_consumption_junction');
|
||||
@@ -0,0 +1,4 @@
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=12976 AND `type`=11;
|
||||
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`)
|
||||
VALUES
|
||||
(12976,11,0,0,'achievement_three_faced');
|
||||
@@ -0,0 +1,6 @@
|
||||
DELETE FROM `disables` WHERE `entry`=7359 AND `sourceType`=4;
|
||||
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=7359 AND `type`=11;
|
||||
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`)
|
||||
VALUES
|
||||
(7359,11,0,0,'achievement_volunteer_work');
|
||||
@@ -0,0 +1 @@
|
||||
UPDATE `achievement_criteria_data` SET `ScriptName`='achievement_brann_spankin_new' WHERE `ScriptName`='achievement_brann_sparklin_news';
|
||||
@@ -0,0 +1,11 @@
|
||||
DELETE FROM `disables` WHERE `entry` IN (7328,7329,7330,7331,7332,7333) AND `sourceType`=4;
|
||||
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id` IN (7328,7329,7330,7331,7332,7333) AND `type`=11;
|
||||
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`)
|
||||
VALUES
|
||||
(7328,11,0,0,'achievement_twilight_assist'),
|
||||
(7329,11,0,0,'achievement_twilight_duo'),
|
||||
(7330,11,0,0,'achievement_twilight_zone'),
|
||||
(7331,11,0,0,'achievement_twilight_assist'),
|
||||
(7332,11,0,0,'achievement_twilight_duo'),
|
||||
(7333,11,0,0,'achievement_twilight_zone');
|
||||
@@ -0,0 +1,11 @@
|
||||
DELETE FROM `disables` WHERE `entry`=7315 AND `sourceType`=4;
|
||||
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=7315 AND `type`=11;
|
||||
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`)
|
||||
VALUES
|
||||
(7315,11,0,0,'achievement_intense_cold');
|
||||
|
||||
DELETE FROM `spell_script_names` WHERE `spell_id`=48095;
|
||||
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`)
|
||||
VALUES
|
||||
(48095,'spell_intense_cold');
|
||||
@@ -0,0 +1 @@
|
||||
UPDATE `creature_template` SET `ScriptName`='npc_pool_of_tar' WHERE `entry`=33090;
|
||||
@@ -0,0 +1 @@
|
||||
UPDATE `trinity_string` SET `content_default`='You try to view cinematic %u but it doesn\'t exist.' WHERE entry='1200';
|
||||
@@ -0,0 +1 @@
|
||||
DELETE FROM `conditions` WHERE `SourceEntry`=24311 AND `ConditionValue2` IN (14825,14986,14826,14883);
|
||||
@@ -0,0 +1,3 @@
|
||||
DELETE FROM `spell_proc_event` WHERE `entry` = 70817;
|
||||
INSERT INTO `spell_proc_event` VALUES
|
||||
(70817,0,11,0,0x1000,0,0x10000,0,0,0,0);
|
||||
@@ -0,0 +1,13 @@
|
||||
DELETE FROM `disables` WHERE `entry` IN (10056,10057,10058,10059,10060,10061,10218,10219) AND `sourceType`=4;
|
||||
|
||||
DELETE FROM `achievement_criteria_data` WHERE `criteria_id` IN (10056,10057,10058,10059,10060,10061,10218,10219) AND `type`=11;
|
||||
INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`)
|
||||
VALUES
|
||||
(10056,11,0,0,'achievement_orbital_bombardment'),
|
||||
(10057,11,0,0,'achievement_orbital_devastation'),
|
||||
(10058,11,0,0,'achievement_nuked_from_orbit'),
|
||||
(10059,11,0,0,'achievement_orbital_bombardment'),
|
||||
(10060,11,0,0,'achievement_orbital_devastation'),
|
||||
(10061,11,0,0,'achievement_nuked_from_orbit'),
|
||||
(10218,11,0,0,'achievement_orbit_uary'),
|
||||
(10219,11,0,0,'achievement_orbit_uary');
|
||||
@@ -0,0 +1,3 @@
|
||||
DELETE FROM `spell_proc_event` WHERE `entry` = 63086;
|
||||
INSERT INTO `spell_proc_event` VALUES
|
||||
(63086, 0x00, 9, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0, 0, 0);
|
||||
@@ -186,7 +186,7 @@ void BattlegroundIC::Update(uint32 diff)
|
||||
siege->Respawn(true);
|
||||
}
|
||||
|
||||
// we need to confirm this, i am not sure if this every 3 minutes
|
||||
// we need to confirm if it is every 3 minutes
|
||||
for (uint8 u = (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_1_A : BG_IC_NPC_DEMOLISHER_1_H); u < (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_4_A : BG_IC_NPC_DEMOLISHER_4_H); u++)
|
||||
{
|
||||
if (Creature* demolisher = GetBGCreature(u))
|
||||
@@ -200,7 +200,7 @@ void BattlegroundIC::Update(uint32 diff)
|
||||
}
|
||||
}
|
||||
|
||||
// the point is waiting for a change on his banner
|
||||
// the point is waiting for a change on its banner
|
||||
if (nodePoint[i].needChange)
|
||||
{
|
||||
if (nodePoint[i].timer <= diff)
|
||||
|
||||
@@ -774,7 +774,7 @@ class GameObject : public WorldObject, public GridObject<GameObject>
|
||||
|
||||
uint64 GetRotation() const { return m_rotation; }
|
||||
virtual uint32 GetScriptId() const { return GetGOInfo()->ScriptId; }
|
||||
GameObjectAI* AI() const { return (GameObjectAI*)m_AI; }
|
||||
GameObjectAI* AI() const { return m_AI; }
|
||||
|
||||
std::string GetAIName() const;
|
||||
protected:
|
||||
|
||||
@@ -5704,7 +5704,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
|
||||
{
|
||||
if (effIndex != 0)
|
||||
return false;
|
||||
AuraEffect* counter = triggeredByAura->GetBase()->GetEffect(1);
|
||||
AuraEffect* counter = triggeredByAura->GetBase()->GetEffect(EFFECT_1);
|
||||
if (!counter)
|
||||
return true;
|
||||
|
||||
@@ -6040,7 +6040,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
|
||||
// regen mana for caster
|
||||
CastCustomSpell(this, 59117, &basepoints0, NULL, NULL, true, castItem, triggeredByAura);
|
||||
// Get second aura of spell for replenishment effect on party
|
||||
if (AuraEffect const* aurEff = (*i)->GetBase()->GetEffect(1))
|
||||
if (AuraEffect const* aurEff = (*i)->GetBase()->GetEffect(EFFECT_1))
|
||||
{
|
||||
// Replenishment - roll chance
|
||||
if (roll_chance_i(aurEff->GetAmount()))
|
||||
@@ -6108,7 +6108,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
|
||||
{
|
||||
// Multiple effects stack, so let's try to find this aura.
|
||||
int32 bonus = 0;
|
||||
if (AuraEffect* aurEff = target->GetAuraEffect(47753, 0))
|
||||
if (AuraEffect const* aurEff = target->GetAuraEffect(47753, 0))
|
||||
bonus = aurEff->GetAmount();
|
||||
|
||||
basepoints0 = CalculatePctN(int32(damage), triggerAmount) + bonus;
|
||||
@@ -6605,7 +6605,6 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
|
||||
// This effect only from Rapid Killing (mana regen)
|
||||
if (!(procSpell->SpellFamilyFlags[1] & 0x01000000))
|
||||
return false;
|
||||
triggered_spell_id = 56654;
|
||||
|
||||
target = this;
|
||||
|
||||
@@ -6688,7 +6687,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
|
||||
{
|
||||
if (procFlag & PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_POS)
|
||||
{
|
||||
if ((procSpell->SpellFamilyName == SPELLFAMILY_PALADIN) && (procSpell->SpellFamilyFlags[0] & 0x40000000))
|
||||
if (procSpell->SpellFamilyName == SPELLFAMILY_PALADIN && (procSpell->SpellFamilyFlags[0] & 0x40000000))
|
||||
{
|
||||
basepoints0 = damage / 12;
|
||||
|
||||
@@ -6703,6 +6702,11 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
|
||||
else if (damage > 0)
|
||||
triggered_spell_id = 58597;
|
||||
|
||||
// Item - Paladin T8 Holy 4P Bonus
|
||||
if (Unit* caster = triggeredByAura->GetCaster())
|
||||
if (AuraEffect const* aurEff = caster->GetAuraEffect(64895, 0))
|
||||
cooldown = aurEff->GetAmount();
|
||||
|
||||
target = this;
|
||||
break;
|
||||
}
|
||||
@@ -6710,7 +6714,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
|
||||
if (dummySpell->SpellIconID == 3025)
|
||||
{
|
||||
// 4 damage tick
|
||||
basepoints0 = triggerAmount*damage/400;
|
||||
basepoints0 = triggerAmount * damage / 400;
|
||||
triggered_spell_id = 61840;
|
||||
// Add remaining ticks to damage done
|
||||
basepoints0 += pVictim->GetRemainingPeriodicAmount(GetGUID(), triggered_spell_id, SPELL_AURA_PERIODIC_DAMAGE);
|
||||
@@ -6720,7 +6724,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
|
||||
if (dummySpell->SpellIconID == 3030)
|
||||
{
|
||||
// 4 healing tick
|
||||
basepoints0 = triggerAmount*damage/400;
|
||||
basepoints0 = triggerAmount * damage / 400;
|
||||
triggered_spell_id = 54203;
|
||||
break;
|
||||
}
|
||||
@@ -6808,7 +6812,8 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
|
||||
|
||||
// At melee attack or Hammer of the Righteous spell damage considered as melee attack
|
||||
bool stacker = !procSpell || procSpell->Id == 53595;
|
||||
bool damager = procSpell && procSpell->EquippedItemClass == ITEM_CLASS_WEAPON;
|
||||
// spells with SPELL_DAMAGE_CLASS_MELEE excluding Judgements
|
||||
bool damager = procSpell && procSpell->EquippedItemClass != -1;
|
||||
|
||||
if (!stacker && !damager)
|
||||
return false;
|
||||
@@ -6839,7 +6844,8 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
|
||||
|
||||
// At melee attack or Hammer of the Righteous spell damage considered as melee attack
|
||||
bool stacker = !procSpell || procSpell->Id == 53595;
|
||||
bool damager = procSpell && procSpell->EquippedItemClass == ITEM_CLASS_WEAPON;
|
||||
// spells with SPELL_DAMAGE_CLASS_MELEE excluding Judgements
|
||||
bool damager = procSpell && procSpell->EquippedItemClass != -1;
|
||||
|
||||
if (!stacker && !damager)
|
||||
return false;
|
||||
@@ -6913,6 +6919,13 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
|
||||
basepoints0 = CalculatePctN(int32(damage), triggerAmount);
|
||||
break;
|
||||
}
|
||||
// Item - Paladin T8 Holy 2P Bonus
|
||||
case 64890:
|
||||
{
|
||||
triggered_spell_id = 64891;
|
||||
basepoints0 = triggerAmount * damage / 300;
|
||||
break;
|
||||
}
|
||||
case 71406: // Tiny Abomination in a Jar
|
||||
case 71545: // Tiny Abomination in a Jar (Heroic)
|
||||
{
|
||||
@@ -7239,6 +7252,26 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
|
||||
}
|
||||
return false;
|
||||
}
|
||||
// Item - Shaman T10 Elemental 4P Bonus
|
||||
case 70817:
|
||||
{
|
||||
// try to find spell Flame Shock on the target
|
||||
if (AuraEffect const* aurEff = target->GetAuraEffect(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_SHAMAN, 0x10000000, 0x0, 0x0, GetGUID()))
|
||||
{
|
||||
Aura* flameShock = aurEff->GetBase();
|
||||
int32 maxDuration = flameShock->GetMaxDuration();
|
||||
int32 newDuration = flameShock->GetDuration() + 2 * aurEff->GetAmplitude();
|
||||
|
||||
flameShock->SetDuration(newDuration);
|
||||
// is it blizzlike to change max duration for FS?
|
||||
if (newDuration > maxDuration)
|
||||
flameShock->SetMaxDuration(newDuration);
|
||||
|
||||
return true;
|
||||
}
|
||||
// if not found Flame Shock
|
||||
return false;
|
||||
}
|
||||
case 63280: // Glyph of Totem of Wrath
|
||||
{
|
||||
if (procSpell->SpellIconID != 2019)
|
||||
@@ -7942,6 +7975,9 @@ bool Unit::HandleAuraProc(Unit* pVictim, uint32 damage, Aura * triggeredByAura,
|
||||
if (pVictim->HasAura(53601))
|
||||
{
|
||||
int32 bp0 = CalculatePctN(int32(damage / 12), SpellMgr::CalculateSpellEffectAmount(dummySpell, 2));
|
||||
// Item - Paladin T9 Holy 4P Bonus
|
||||
if (AuraEffect const* aurEff = GetAuraEffect(67191, 0))
|
||||
AddPctN(bp0, aurEff->GetAmount());
|
||||
CastCustomSpell(pVictim, 66922, &bp0, NULL, NULL, true);
|
||||
return true;
|
||||
}
|
||||
@@ -8014,7 +8050,7 @@ bool Unit::HandleAuraProc(Unit* pVictim, uint32 damage, Aura * triggeredByAura,
|
||||
return false;
|
||||
|
||||
int32 bp0 = int32(CalculatePctN(GetCreateMana(), SpellMgr::CalculateSpellEffectAmount(spInfo, 0)));
|
||||
CastCustomSpell(this, 67545, &bp0, NULL, NULL, true, NULL, triggeredByAura->GetEffect(0), GetGUID());
|
||||
CastCustomSpell(this, 67545, &bp0, NULL, NULL, true, NULL, triggeredByAura->GetEffect(EFFECT_0), GetGUID());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -8037,7 +8073,7 @@ bool Unit::HandleAuraProc(Unit* pVictim, uint32 damage, Aura * triggeredByAura,
|
||||
// can't proc from death rune use
|
||||
if (rune == RUNE_DEATH)
|
||||
return false;
|
||||
AuraEffect* aurEff = triggeredByAura->GetEffect(0);
|
||||
AuraEffect* aurEff = triggeredByAura->GetEffect(EFFECT_0);
|
||||
if (!aurEff)
|
||||
return false;
|
||||
// Reset amplitude - set death rune remove timer to 30s
|
||||
@@ -8786,7 +8822,7 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig
|
||||
}
|
||||
// Cast positive spell on enemy target
|
||||
case 7099: // Curse of Mending
|
||||
case 39647: // Curse of Mending
|
||||
case 39703: // Curse of Mending
|
||||
case 29494: // Temptation
|
||||
case 20233: // Improved Lay on Hands (cast on target)
|
||||
{
|
||||
@@ -10940,7 +10976,7 @@ bool Unit::isSpellCrit(Unit *pVictim, SpellEntry const *spellProto, SpellSchoolM
|
||||
// Improved Faerie Fire
|
||||
if (pVictim->HasAuraState(AURA_STATE_FAERIE_FIRE))
|
||||
if (AuraEffect const* aurEff = GetDummyAuraEffect(SPELLFAMILY_DRUID, 109, 0))
|
||||
crit_chance+=aurEff->GetAmount();
|
||||
crit_chance += aurEff->GetAmount();
|
||||
|
||||
// cumulative effect - don't break
|
||||
|
||||
@@ -10950,7 +10986,7 @@ bool Unit::isSpellCrit(Unit *pVictim, SpellEntry const *spellProto, SpellSchoolM
|
||||
// Improved Insect Swarm
|
||||
if (AuraEffect const* aurEff = GetDummyAuraEffect(SPELLFAMILY_DRUID, 1771, 0))
|
||||
if (pVictim->GetAuraEffect(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_DRUID, 0x00000002, 0, 0))
|
||||
crit_chance+=aurEff->GetAmount();
|
||||
crit_chance += aurEff->GetAmount();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -10964,9 +11000,8 @@ bool Unit::isSpellCrit(Unit *pVictim, SpellEntry const *spellProto, SpellSchoolM
|
||||
if (spellProto->SpellFamilyFlags[0] & 0x40000000)
|
||||
{
|
||||
// Sacred Shield
|
||||
AuraEffect const* aura = pVictim->GetAuraEffect(58597, 1);
|
||||
if (aura && aura->GetCasterGUID() == GetGUID())
|
||||
crit_chance+=aura->GetAmount();
|
||||
if (AuraEffect const* aura = pVictim->GetAuraEffect(58597, 1, GetGUID()))
|
||||
crit_chance += aura->GetAmount();
|
||||
break;
|
||||
}
|
||||
// Exorcism
|
||||
@@ -11839,7 +11874,7 @@ void Unit::MeleeDamageBonus(Unit *pVictim, uint32 *pdamage, WeaponAttackType att
|
||||
case 6427: case 6428: // Dirty Deeds
|
||||
if (pVictim->HasAuraState(AURA_STATE_HEALTHLESS_35_PERCENT, spellProto, this))
|
||||
{
|
||||
AuraEffect* eff0 = (*i)->GetBase()->GetEffect(0);
|
||||
AuraEffect* eff0 = (*i)->GetBase()->GetEffect(EFFECT_0);
|
||||
if (!eff0 || (*i)->GetEffIndex() != 1)
|
||||
{
|
||||
sLog->outError("Spell structure of DD (%u) changed.", (*i)->GetId());
|
||||
|
||||
@@ -319,24 +319,6 @@ void InstanceScript::DoSendNotifyToInstance(const char *format, ...)
|
||||
}
|
||||
}
|
||||
|
||||
// Complete Achievement for all players in instance
|
||||
void InstanceScript::DoCompleteAchievement(uint32 achievement)
|
||||
{
|
||||
AchievementEntry const* pAE = GetAchievementStore()->LookupEntry(achievement);
|
||||
Map::PlayerList const &PlayerList = instance->GetPlayers();
|
||||
|
||||
if (!pAE)
|
||||
{
|
||||
sLog->outError("TSCR: DoCompleteAchievement called for not existing achievement %u", achievement);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!PlayerList.isEmpty())
|
||||
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
|
||||
if (Player *pPlayer = i->getSource())
|
||||
pPlayer->CompletedAchievement(pAE);
|
||||
}
|
||||
|
||||
// Update Achievement Criteria for all players in instance
|
||||
void InstanceScript::DoUpdateAchievementCriteria(AchievementCriteriaTypes type, uint32 miscValue1 /*= 0*/, uint32 miscValue2 /*= 0*/, Unit* unit /*= NULL*/)
|
||||
{
|
||||
|
||||
@@ -169,9 +169,6 @@ class InstanceScript : public ZoneScript
|
||||
// Send Notify to all players in instance
|
||||
void DoSendNotifyToInstance(char const* format, ...);
|
||||
|
||||
// Complete Achievement for all players in instance
|
||||
DECLSPEC_DEPRECATED void DoCompleteAchievement(uint32 achievement) ATTR_DEPRECATED;
|
||||
|
||||
// Update Achievement Criteria for all players in instance
|
||||
void DoUpdateAchievementCriteria(AchievementCriteriaTypes type, uint32 miscValue1 = 0, uint32 miscValue2 = 0, Unit* unit = NULL);
|
||||
|
||||
|
||||
@@ -831,8 +831,8 @@ enum TrinityStrings
|
||||
LANG_BG_IC_REFINERY = 1222,
|
||||
LANG_BG_IC_QUARRY = 1223,
|
||||
LANG_BG_IC_HANGAR = 1224,
|
||||
LANG_BG_IC_ALLIANCE = 1225,
|
||||
LANG_BG_IC_HORDE = 1226,
|
||||
LANG_BG_IC_ALLIANCE = 1300,
|
||||
LANG_BG_IC_HORDE = 1301,
|
||||
|
||||
// FREE IDS 1228-9999
|
||||
|
||||
|
||||
@@ -718,14 +718,14 @@ void WorldSession::HandleListInventoryOpcode(WorldPacket & recv_data)
|
||||
SendListInventory(guid);
|
||||
}
|
||||
|
||||
void WorldSession::SendListInventory(uint64 vendorguid)
|
||||
void WorldSession::SendListInventory(uint64 vendorGuid)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Sent SMSG_LIST_INVENTORY");
|
||||
|
||||
Creature *pCreature = GetPlayer()->GetNPCIfCanInteractWith(vendorguid, UNIT_NPC_FLAG_VENDOR);
|
||||
if (!pCreature)
|
||||
Creature* vendor = GetPlayer()->GetNPCIfCanInteractWith(vendorGuid, UNIT_NPC_FLAG_VENDOR);
|
||||
if (!vendor)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: SendListInventory - Unit (GUID: %u) not found or you can not interact with him.", uint32(GUID_LOPART(vendorguid)));
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: SendListInventory - Unit (GUID: %u) not found or you can not interact with him.", uint32(GUID_LOPART(vendorGuid)));
|
||||
_player->SendSellError(SELL_ERR_CANT_FIND_VENDOR, NULL, 0, 0);
|
||||
return;
|
||||
}
|
||||
@@ -735,56 +735,62 @@ void WorldSession::SendListInventory(uint64 vendorguid)
|
||||
GetPlayer()->RemoveAurasByType(SPELL_AURA_FEIGN_DEATH);
|
||||
|
||||
// Stop the npc if moving
|
||||
if (pCreature->HasUnitState(UNIT_STAT_MOVING))
|
||||
pCreature->StopMoving();
|
||||
if (vendor->HasUnitState(UNIT_STAT_MOVING))
|
||||
vendor->StopMoving();
|
||||
|
||||
VendorItemData const* vItems = pCreature->GetVendorItems();
|
||||
if (!vItems)
|
||||
VendorItemData const* items = vendor->GetVendorItems();
|
||||
if (!items)
|
||||
{
|
||||
WorldPacket data(SMSG_LIST_INVENTORY, (8+1+1));
|
||||
data << uint64(vendorguid);
|
||||
data << uint8(0); // count==0, next will be error code
|
||||
WorldPacket data(SMSG_LIST_INVENTORY, 8 + 1 + 1);
|
||||
data << uint64(vendorGuid);
|
||||
data << uint8(0); // count == 0, next will be error code
|
||||
data << uint8(0); // "Vendor has no inventory"
|
||||
SendPacket(&data);
|
||||
return;
|
||||
}
|
||||
|
||||
uint8 numitems = vItems->GetItemCount();
|
||||
uint8 itemCount = items->GetItemCount();
|
||||
uint8 count = 0;
|
||||
|
||||
WorldPacket data(SMSG_LIST_INVENTORY, (8+1+numitems*8*4));
|
||||
data << uint64(vendorguid);
|
||||
WorldPacket data(SMSG_LIST_INVENTORY, 8 + 1 + itemCount * 8 * 4);
|
||||
data << uint64(vendorGuid);
|
||||
|
||||
size_t count_pos = data.wpos();
|
||||
size_t countPos = data.wpos();
|
||||
data << uint8(count);
|
||||
|
||||
float discountMod = _player->GetReputationPriceDiscount(pCreature);
|
||||
float discountMod = _player->GetReputationPriceDiscount(vendor);
|
||||
|
||||
for (uint8 vendorslot = 0; vendorslot < numitems; ++vendorslot )
|
||||
for (uint8 slot = 0; slot < itemCount; ++slot)
|
||||
{
|
||||
if (VendorItem const* crItem = vItems->GetItem(vendorslot))
|
||||
if (VendorItem const* item = items->GetItem(slot))
|
||||
{
|
||||
if (ItemTemplate const *pProto = sObjectMgr->GetItemTemplate(crItem->item))
|
||||
if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(item->item))
|
||||
{
|
||||
if ((pProto->AllowableClass & _player->getClassMask()) == 0 && pProto->Bonding == BIND_WHEN_PICKED_UP && !_player->isGameMaster())
|
||||
if (!(itemTemplate->AllowableClass & _player->getClassMask()) && itemTemplate->Bonding == BIND_WHEN_PICKED_UP && !_player->isGameMaster())
|
||||
continue;
|
||||
// Only display items in vendor lists for the team the
|
||||
// player is on. If GM on, display all items.
|
||||
if (!_player->isGameMaster() && ((pProto->Flags2 & ITEM_FLAGS_EXTRA_HORDE_ONLY && _player->GetTeam() == ALLIANCE) || (pProto->Flags2 == ITEM_FLAGS_EXTRA_ALLIANCE_ONLY && _player->GetTeam() == HORDE)))
|
||||
if (!_player->isGameMaster() && ((itemTemplate->Flags2 & ITEM_FLAGS_EXTRA_HORDE_ONLY && _player->GetTeam() == ALLIANCE) || (itemTemplate->Flags2 == ITEM_FLAGS_EXTRA_ALLIANCE_ONLY && _player->GetTeam() == HORDE)))
|
||||
continue;
|
||||
|
||||
// Items sold out are not displayed in list
|
||||
uint32 leftInStock = !item->maxcount ? 0xFFFFFFFF : vendor->GetVendorItemCurrentCount(item);
|
||||
if (!_player->isGameMaster() && !leftInStock)
|
||||
continue;
|
||||
|
||||
++count;
|
||||
|
||||
// reputation discount
|
||||
int32 price = crItem->IsGoldRequired(pProto) ? uint32(floor(pProto->BuyPrice * discountMod)) : 0;
|
||||
int32 price = item->IsGoldRequired(itemTemplate) ? uint32(floor(itemTemplate->BuyPrice * discountMod)) : 0;
|
||||
|
||||
data << uint32(vendorslot+1); // client expects counting to start at 1
|
||||
data << uint32(crItem->item);
|
||||
data << uint32(pProto->DisplayInfoID);
|
||||
data << int32(crItem->maxcount <= 0 ? 0xFFFFFFFF : pCreature->GetVendorItemCurrentCount(crItem));
|
||||
data << uint32(slot + 1); // client expects counting to start at 1
|
||||
data << uint32(item->item);
|
||||
data << uint32(itemTemplate->DisplayInfoID);
|
||||
data << int32(leftInStock);
|
||||
data << uint32(price);
|
||||
data << uint32(pProto->MaxDurability);
|
||||
data << uint32(pProto->BuyCount);
|
||||
data << uint32(crItem->ExtendedCost);
|
||||
data << uint32(itemTemplate->MaxDurability);
|
||||
data << uint32(itemTemplate->BuyCount);
|
||||
data << uint32(item->ExtendedCost);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -796,7 +802,7 @@ void WorldSession::SendListInventory(uint64 vendorguid)
|
||||
return;
|
||||
}
|
||||
|
||||
data.put<uint8>(count_pos, count);
|
||||
data.put<uint8>(countPos, count);
|
||||
SendPacket(&data);
|
||||
}
|
||||
|
||||
|
||||
@@ -402,7 +402,7 @@ void WorldSession::HandleCastSpellOpcode(WorldPacket& recvPacket)
|
||||
spellInfo = actualSpellInfo;
|
||||
}
|
||||
|
||||
Spell* spell = new Spell(mover, spellInfo, false);
|
||||
Spell* spell = new Spell(mover, spellInfo, false, 0, false, true);
|
||||
spell->m_cast_count = castCount; // set count of casts
|
||||
spell->prepare(&targets);
|
||||
}
|
||||
|
||||
@@ -284,7 +284,7 @@ class WorldSession
|
||||
|
||||
void SendTrainerList(uint64 guid);
|
||||
void SendTrainerList(uint64 guid, const std::string& strTitle);
|
||||
void SendListInventory(uint64 guid);
|
||||
void SendListInventory(uint64 vendorGuid);
|
||||
void SendShowBank(uint64 guid);
|
||||
void SendTabardVendorActivate(uint64 guid);
|
||||
void SendSpiritResurrect();
|
||||
|
||||
@@ -439,7 +439,7 @@ void SpellCastTargets::OutDebug() const
|
||||
sLog->outString("elevation: %f", m_elevation);
|
||||
}
|
||||
|
||||
Spell::Spell(Unit* Caster, SpellEntry const *info, bool triggered, uint64 originalCasterGUID, bool skipCheck):
|
||||
Spell::Spell(Unit* Caster, SpellEntry const *info, bool triggered, uint64 originalCasterGUID, bool skipCheck, bool castedClientside):
|
||||
m_spellInfo(sSpellMgr->GetSpellForDifficultyFromSpell(info, Caster)),
|
||||
m_caster(Caster), m_spellValue(new SpellValue(m_spellInfo))
|
||||
{
|
||||
@@ -502,6 +502,7 @@ m_caster(Caster), m_spellValue(new SpellValue(m_spellInfo))
|
||||
|
||||
m_spellState = SPELL_STATE_NULL;
|
||||
|
||||
m_castedClientside = castedClientside;
|
||||
m_IsTriggeredSpell = bool(triggered || (info->AttributesEx4 & SPELL_ATTR4_TRIGGERED));
|
||||
m_CastItem = NULL;
|
||||
|
||||
|
||||
@@ -386,7 +386,7 @@ class Spell
|
||||
|
||||
typedef std::set<Aura*> UsedSpellMods;
|
||||
|
||||
Spell(Unit* Caster, SpellEntry const *info, bool triggered, uint64 originalCasterGUID = 0, bool skipCheck = false);
|
||||
Spell(Unit* Caster, SpellEntry const *info, bool triggered, uint64 originalCasterGUID = 0, bool skipCheck = false, bool castedClientside = false);
|
||||
~Spell();
|
||||
|
||||
void prepare(SpellCastTargets const* targets, AuraEffect const* triggeredByAura = NULL);
|
||||
@@ -684,6 +684,7 @@ class Spell
|
||||
uint32 m_timer;
|
||||
|
||||
bool m_IsTriggeredSpell;
|
||||
bool m_castedClientside;
|
||||
|
||||
// if need this can be replaced by Aura copy
|
||||
// we can't store original aura link to prevent access to deleted auras
|
||||
|
||||
@@ -3823,7 +3823,6 @@ void SpellMgr::LoadSpellCustomAttr()
|
||||
case 45641: // Fire Bloom
|
||||
case 55665: // Life Drain - Sapphiron (H)
|
||||
case 28796: // Poison Bolt Volly - Faerlina
|
||||
case 5484: // Howl Of Terror (Warlock)
|
||||
spellInfo->MaxAffectedTargets = 5;
|
||||
++count;
|
||||
break;
|
||||
@@ -4176,7 +4175,6 @@ void SpellMgr::LoadSpellCustomAttr()
|
||||
spellInfo->AreaGroupId = 0; // originally, these require area 4522, which is... outside of Icecrown Citadel
|
||||
++count;
|
||||
break;
|
||||
case 70588: // Suppression
|
||||
case 70602: // Corruption
|
||||
spellInfo->AttributesEx |= SPELL_ATTR1_STACK_FOR_DIFF_CASTERS;
|
||||
++count;
|
||||
@@ -4227,9 +4225,6 @@ void SpellMgr::LoadSpellCustomAttr()
|
||||
// Starfall Target Selection
|
||||
if (spellInfo->SpellFamilyFlags[2] & 0x100)
|
||||
spellInfo->MaxAffectedTargets = 2;
|
||||
// Starfall AOE Damage
|
||||
else if (spellInfo->SpellFamilyFlags[2] & 0x800000)
|
||||
mSpellCustomAttr[i] |= SPELL_ATTR0_CU_EXCLUDE_SELF;
|
||||
// Roar
|
||||
else if (spellInfo->SpellFamilyFlags[0] & 0x8)
|
||||
mSpellCustomAttr[i] |= SPELL_ATTR0_CU_AURA_CC;
|
||||
|
||||
+39
-31
@@ -75,11 +75,6 @@ enum Yells
|
||||
SAY_PREFIGHT_3 = -1601019
|
||||
};
|
||||
|
||||
enum Misc
|
||||
{
|
||||
ACHIEV_WATH_HIM_DIE = 1296
|
||||
};
|
||||
|
||||
const Position SpawnPoint[] =
|
||||
{
|
||||
{ 566.164f, 682.087f, 769.079f, 2.21657f },
|
||||
@@ -186,24 +181,8 @@ public:
|
||||
{
|
||||
DoScriptText(SAY_DEATH, me);
|
||||
|
||||
if (!pInstance)
|
||||
return;
|
||||
|
||||
pInstance->SetData(DATA_KRIKTHIR_THE_GATEWATCHER_EVENT, DONE);
|
||||
//Achievement: Watch him die
|
||||
Creature *pAdd = Unit::GetCreature(*me, pInstance->GetData64(DATA_WATCHER_GASHRA));
|
||||
if (!pAdd || !pAdd->isAlive())
|
||||
return;
|
||||
|
||||
pAdd = Unit::GetCreature(*me, pInstance->GetData64(DATA_WATCHER_SILTHIK));
|
||||
if (!pAdd || !pAdd->isAlive())
|
||||
return;
|
||||
|
||||
pAdd = Unit::GetCreature(*me, pInstance->GetData64(DATA_WATCHER_NARJIL));
|
||||
if (!pAdd || !pAdd->isAlive())
|
||||
return;
|
||||
|
||||
pInstance->DoCompleteAchievement(ACHIEV_WATH_HIM_DIE);
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_KRIKTHIR_THE_GATEWATCHER_EVENT, DONE);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* victim)
|
||||
@@ -551,14 +530,43 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_watch_him_die : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_watch_him_die() : AchievementCriteriaScript("achievement_watch_him_die")
|
||||
{
|
||||
}
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
InstanceScript* instance = target->GetInstanceScript();
|
||||
Creature* Watcher[3];
|
||||
if (!instance)
|
||||
return false;
|
||||
|
||||
for (uint8 n = 0; n < 3; ++n)
|
||||
{
|
||||
Watcher[n] = ObjectAccessor::GetCreature(*target, instance->GetData64(DATA_WATCHER_GASHRA + n));
|
||||
if (Watcher[n] && !Watcher[n]->isAlive())
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_krik_thir()
|
||||
{
|
||||
new boss_krik_thir;
|
||||
new npc_skittering_infector;
|
||||
new npc_anub_ar_skirmisher;
|
||||
new npc_anub_ar_shadowcaster;
|
||||
new npc_watcher_gashra;
|
||||
new npc_anub_ar_warrior;
|
||||
new npc_watcher_silthik;
|
||||
new npc_watcher_narjil;
|
||||
new boss_krik_thir();
|
||||
new npc_skittering_infector();
|
||||
new npc_anub_ar_skirmisher();
|
||||
new npc_anub_ar_shadowcaster();
|
||||
new npc_watcher_gashra();
|
||||
new npc_anub_ar_warrior();
|
||||
new npc_watcher_silthik();
|
||||
new npc_watcher_narjil();
|
||||
new achievement_watch_him_die();
|
||||
}
|
||||
|
||||
@@ -44,7 +44,6 @@ enum Data
|
||||
DATA_SPHERE2_EVENT,
|
||||
DATA_JEDOGA_TRIGGER_SWITCH,
|
||||
DATA_JEDOGA_RESET_INITIANDS,
|
||||
DATA_INITIAND_KILLED,
|
||||
DATA_ALL_INITIAND_DEAD
|
||||
};
|
||||
|
||||
|
||||
@@ -127,12 +127,6 @@ class boss_elder_nadox : public CreatureScript
|
||||
return 0;
|
||||
}
|
||||
|
||||
void SetData(uint32 id, uint32 data)
|
||||
{
|
||||
if (id == DATA_RESPECT_YOUR_ELDERS)
|
||||
respectYourElders = data ? true : false;
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 const diff)
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
@@ -311,6 +305,9 @@ class achievement_respect_your_elders : public AchievementCriteriaScript
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Nadox = target->ToCreature())
|
||||
if (Nadox->AI()->GetData(DATA_RESPECT_YOUR_ELDERS))
|
||||
return true;
|
||||
|
||||
@@ -63,6 +63,9 @@ const Position JedogaPosition[2] =
|
||||
{372.330994f, -705.278015f, -16.179716f, 5.427970f}
|
||||
};
|
||||
|
||||
#define ACTION_INITIAND_KILLED 1
|
||||
#define DATA_VOLUNTEER_WORK 2
|
||||
|
||||
class boss_jedoga_shadowseeker : public CreatureScript
|
||||
{
|
||||
public:
|
||||
@@ -89,7 +92,7 @@ public:
|
||||
bool bOnGround;
|
||||
bool bOpFerokFail;
|
||||
bool bCanDown;
|
||||
|
||||
bool volunteerWork;
|
||||
bool bFirstTime;
|
||||
|
||||
void Reset()
|
||||
@@ -104,6 +107,7 @@ public:
|
||||
bOpFerokFail = false;
|
||||
bOnGround = false;
|
||||
bCanDown = false;
|
||||
volunteerWork = true;
|
||||
|
||||
if (pInstance)
|
||||
{
|
||||
@@ -152,6 +156,20 @@ public:
|
||||
pInstance->SetData(DATA_JEDOGA_SHADOWSEEKER_EVENT, DONE);
|
||||
}
|
||||
|
||||
void DoAction(int32 const action)
|
||||
{
|
||||
if (action == ACTION_INITIAND_KILLED)
|
||||
volunteerWork = false;
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 type)
|
||||
{
|
||||
if (type == DATA_VOLUNTEER_WORK)
|
||||
return volunteerWork ? 1 : 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* who)
|
||||
{
|
||||
if (!pInstance || !who || (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_JEDOGA_CONTROLLER))
|
||||
@@ -374,43 +392,53 @@ public:
|
||||
|
||||
void JustDied(Unit* Killer)
|
||||
{
|
||||
if (!Killer || !pInstance) return;
|
||||
if (!Killer || !pInstance)
|
||||
return;
|
||||
|
||||
if (bWalking)
|
||||
{
|
||||
Creature* boss = me->GetMap()->GetCreature(pInstance->GetData64(DATA_JEDOGA_SHADOWSEEKER));
|
||||
if (boss && !CAST_AI(boss_jedoga_shadowseeker::boss_jedoga_shadowseekerAI, boss->AI())->bOpFerok) CAST_AI(boss_jedoga_shadowseeker::boss_jedoga_shadowseekerAI, boss->AI())->bOpFerokFail = true;
|
||||
if (Creature* boss = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_JEDOGA_SHADOWSEEKER)))
|
||||
{
|
||||
if (!CAST_AI(boss_jedoga_shadowseeker::boss_jedoga_shadowseekerAI, boss->AI())->bOpFerok)
|
||||
CAST_AI(boss_jedoga_shadowseeker::boss_jedoga_shadowseekerAI, boss->AI())->bOpFerokFail = true;
|
||||
|
||||
boss->AI()->DoAction(ACTION_INITIAND_KILLED);
|
||||
}
|
||||
|
||||
if (Killer->GetTypeId() == TYPEID_PLAYER) pInstance->SetData(DATA_INITIAND_KILLED, 1);
|
||||
pInstance->SetData64(DATA_ADD_JEDOGA_OPFER, 0);
|
||||
|
||||
bWalking = false;
|
||||
}
|
||||
if (Killer->GetTypeId() == TYPEID_PLAYER) pInstance->SetData64(DATA_PL_JEDOGA_TARGET, Killer->GetGUID());
|
||||
if (Killer->GetTypeId() == TYPEID_PLAYER)
|
||||
pInstance->SetData64(DATA_PL_JEDOGA_TARGET, Killer->GetGUID());
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* who)
|
||||
{
|
||||
if ((pInstance && pInstance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) == IN_PROGRESS) || !who) return;
|
||||
if ((pInstance && pInstance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) == IN_PROGRESS) || !who)
|
||||
return;
|
||||
}
|
||||
|
||||
void AttackStart(Unit* victim)
|
||||
{
|
||||
if ((pInstance && pInstance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) == IN_PROGRESS) || !victim) return;
|
||||
if ((pInstance && pInstance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) == IN_PROGRESS) || !victim)
|
||||
return;
|
||||
|
||||
ScriptedAI::AttackStart(victim);
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* who)
|
||||
{
|
||||
if ((pInstance && pInstance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) == IN_PROGRESS) || !who) return;
|
||||
if ((pInstance && pInstance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) == IN_PROGRESS) || !who)
|
||||
return;
|
||||
|
||||
ScriptedAI::MoveInLineOfSight(who);
|
||||
}
|
||||
|
||||
void MovementInform(uint32 uiType, uint32 uiPointId)
|
||||
{
|
||||
if (uiType != POINT_MOTION_TYPE || !pInstance) return;
|
||||
if (uiType != POINT_MOTION_TYPE || !pInstance)
|
||||
return;
|
||||
|
||||
switch(uiPointId)
|
||||
{
|
||||
@@ -569,9 +597,30 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_volunteer_work : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_volunteer_work() : AchievementCriteriaScript("achievement_volunteer_work")
|
||||
{
|
||||
}
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Jedoga = target->ToCreature())
|
||||
if (Jedoga->AI()->GetData(DATA_VOLUNTEER_WORK))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_jedoga_shadowseeker()
|
||||
{
|
||||
new boss_jedoga_shadowseeker;
|
||||
new mob_jedoga_initiand;
|
||||
new npc_jedogas_aufseher_trigger;
|
||||
new boss_jedoga_shadowseeker();
|
||||
new mob_jedoga_initiand();
|
||||
new npc_jedogas_aufseher_trigger();
|
||||
new achievement_volunteer_work();
|
||||
}
|
||||
|
||||
@@ -59,9 +59,8 @@ public:
|
||||
uint32 m_auiEncounter[MAX_ENCOUNTER];
|
||||
uint32 spheres[2];
|
||||
|
||||
uint8 InitiandCnt,
|
||||
switchtrigger,
|
||||
initiandkilled;
|
||||
uint8 InitiandCnt;
|
||||
uint8 switchtrigger;
|
||||
|
||||
std::string str_data;
|
||||
|
||||
@@ -81,7 +80,6 @@ public:
|
||||
|
||||
InitiandCnt = 0;
|
||||
switchtrigger = 0;
|
||||
initiandkilled = 0;
|
||||
JedogaSacrifices = 0;
|
||||
JedogaTarget = 0;
|
||||
}
|
||||
@@ -200,8 +198,6 @@ public:
|
||||
cr->RemoveCorpse();
|
||||
}
|
||||
}
|
||||
if (!initiandkilled && instance->IsHeroic())
|
||||
DoCompleteAchievement(ACHIEV_VOLUNTEER_WORK);
|
||||
}
|
||||
break;
|
||||
case DATA_HERALD_VOLAZJ_EVENT: m_auiEncounter[3] = data; break;
|
||||
@@ -209,7 +205,6 @@ public:
|
||||
case DATA_SPHERE1_EVENT: spheres[0] = data; break;
|
||||
case DATA_SPHERE2_EVENT: spheres[1] = data; break;
|
||||
case DATA_JEDOGA_TRIGGER_SWITCH: switchtrigger = data; break;
|
||||
case DATA_INITIAND_KILLED: initiandkilled = data; break;
|
||||
case DATA_JEDOGA_RESET_INITIANDS:
|
||||
for (std::set<uint64>::const_iterator itr = InitiandGUIDs.begin(); itr != InitiandGUIDs.end(); ++itr)
|
||||
{
|
||||
@@ -245,7 +240,6 @@ public:
|
||||
}
|
||||
return 1;
|
||||
case DATA_JEDOGA_TRIGGER_SWITCH: return switchtrigger;
|
||||
case DATA_INITIAND_KILLED: return initiandkilled;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -122,14 +122,6 @@ enum eEnums
|
||||
//using these custom points for dragons start and end
|
||||
POINT_ID_INIT = 100,
|
||||
POINT_ID_LAND = 200,
|
||||
|
||||
//Achievements
|
||||
ACHIEV_TWILIGHT_ASSIST = 2049,
|
||||
H_ACHIEV_TWILIGHT_ASSIST = 2052,
|
||||
ACHIEV_TWILIGHT_DUO = 2050,
|
||||
H_ACHIEV_TWILIGHT_DUO = 2053,
|
||||
ACHIEV_TWILIGHT_ZONE = 2051,
|
||||
H_ACHIEV_TWILIGHT_ZONE = 2054
|
||||
};
|
||||
|
||||
#define DATA_CAN_LOOT 0
|
||||
@@ -213,6 +205,8 @@ Locations TwilightEggsSarth[] =
|
||||
{3257.54f, 502.285f , 58.2077f}
|
||||
};
|
||||
|
||||
#define TWILIGHT_ACHIEVEMENTS 1
|
||||
|
||||
/*######
|
||||
## Boss Sartharion
|
||||
######*/
|
||||
@@ -256,7 +250,7 @@ public:
|
||||
bool m_bHasCalledShadron;
|
||||
bool m_bHasCalledVesperon;
|
||||
|
||||
uint32 achievProgress;
|
||||
uint8 drakeCount;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
@@ -285,7 +279,7 @@ public:
|
||||
|
||||
me->SetHomePosition(3246.57f, 551.263f, 58.6164f, 4.66003f);
|
||||
|
||||
achievProgress = 0;
|
||||
drakeCount = 0;
|
||||
|
||||
// Drakes respawning system
|
||||
if (pInstance)
|
||||
@@ -384,20 +378,6 @@ public:
|
||||
if (pVesperon && pVesperon->isAlive())
|
||||
pVesperon->DisappearAndDie();
|
||||
|
||||
if (achievProgress == 1)
|
||||
pInstance->DoCompleteAchievement(RAID_MODE(ACHIEV_TWILIGHT_ASSIST, H_ACHIEV_TWILIGHT_ASSIST));
|
||||
else if (achievProgress == 2)
|
||||
{
|
||||
pInstance->DoCompleteAchievement(RAID_MODE(ACHIEV_TWILIGHT_ASSIST, H_ACHIEV_TWILIGHT_ASSIST));
|
||||
pInstance->DoCompleteAchievement(RAID_MODE(ACHIEV_TWILIGHT_DUO, H_ACHIEV_TWILIGHT_DUO));
|
||||
}
|
||||
else if (achievProgress == 3)
|
||||
{
|
||||
pInstance->DoCompleteAchievement(RAID_MODE(ACHIEV_TWILIGHT_ASSIST, H_ACHIEV_TWILIGHT_ASSIST));
|
||||
pInstance->DoCompleteAchievement(RAID_MODE(ACHIEV_TWILIGHT_DUO, H_ACHIEV_TWILIGHT_DUO));
|
||||
pInstance->DoCompleteAchievement(RAID_MODE(ACHIEV_TWILIGHT_ZONE, H_ACHIEV_TWILIGHT_ZONE));
|
||||
}
|
||||
|
||||
pInstance->SetData(TYPE_SARTHARION_EVENT, DONE);
|
||||
}
|
||||
}
|
||||
@@ -419,13 +399,21 @@ public:
|
||||
me->AddLootMode(LOOT_MODE_HARD_MODE_1); // Add 1st Drake loot mode
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 type)
|
||||
{
|
||||
if (type == TWILIGHT_ACHIEVEMENTS)
|
||||
return drakeCount;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void FetchDragons()
|
||||
{
|
||||
if(!pInstance)
|
||||
if (!pInstance)
|
||||
return;
|
||||
|
||||
me->ResetLootMode();
|
||||
achievProgress = 0;
|
||||
drakeCount = 0;
|
||||
|
||||
Creature* pFetchTene = Unit::GetCreature(*me, pInstance->GetData64(DATA_TENEBRON));
|
||||
Creature* pFetchShad = Unit::GetCreature(*me, pInstance->GetData64(DATA_SHADRON));
|
||||
@@ -437,10 +425,10 @@ public:
|
||||
if (pFetchTene && pFetchTene->isAlive() && !pFetchTene->getVictim())
|
||||
{
|
||||
bCanUseWill = true;
|
||||
if(!pFetchTene->isInCombat())
|
||||
if (!pFetchTene->isInCombat())
|
||||
{
|
||||
AddDrakeLootMode();
|
||||
achievProgress++;
|
||||
++drakeCount;
|
||||
}
|
||||
pFetchTene->GetMotionMaster()->MovePoint(POINT_ID_INIT, m_aTene[0].m_fX, m_aTene[0].m_fY, m_aTene[0].m_fZ);
|
||||
|
||||
@@ -451,10 +439,10 @@ public:
|
||||
if (pFetchShad && pFetchShad->isAlive() && !pFetchShad->getVictim())
|
||||
{
|
||||
bCanUseWill = true;
|
||||
if(!pFetchShad->isInCombat())
|
||||
if (!pFetchShad->isInCombat())
|
||||
{
|
||||
AddDrakeLootMode();
|
||||
achievProgress++;
|
||||
++drakeCount;
|
||||
}
|
||||
pFetchShad->GetMotionMaster()->MovePoint(POINT_ID_INIT, m_aShad[0].m_fX, m_aShad[0].m_fY, m_aShad[0].m_fZ);
|
||||
|
||||
@@ -465,10 +453,10 @@ public:
|
||||
if (pFetchVesp && pFetchVesp->isAlive() && !pFetchVesp->getVictim())
|
||||
{
|
||||
bCanUseWill = true;
|
||||
if(!pFetchVesp->isInCombat())
|
||||
if (!pFetchVesp->isInCombat())
|
||||
{
|
||||
AddDrakeLootMode();
|
||||
achievProgress++;
|
||||
++drakeCount;
|
||||
}
|
||||
pFetchVesp->GetMotionMaster()->MovePoint(POINT_ID_INIT, m_aVesp[0].m_fX, m_aVesp[0].m_fY, m_aVesp[0].m_fZ);
|
||||
|
||||
@@ -1710,6 +1698,66 @@ public:
|
||||
|
||||
};
|
||||
|
||||
class achievement_twilight_assist : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_twilight_assist() : AchievementCriteriaScript("achievement_twilight_assist")
|
||||
{
|
||||
}
|
||||
|
||||
bool OnCheck(Player* player, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Sartharion = target->ToCreature())
|
||||
if (Sartharion->AI()->GetData(TWILIGHT_ACHIEVEMENTS) >= 1)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_twilight_duo : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_twilight_duo() : AchievementCriteriaScript("achievement_twilight_duo")
|
||||
{
|
||||
}
|
||||
|
||||
bool OnCheck(Player* player, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Sartharion = target->ToCreature())
|
||||
if (Sartharion->AI()->GetData(TWILIGHT_ACHIEVEMENTS) >= 2)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_twilight_zone : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_twilight_zone() : AchievementCriteriaScript("achievement_twilight_zone")
|
||||
{
|
||||
}
|
||||
|
||||
bool OnCheck(Player* player, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Sartharion = target->ToCreature())
|
||||
if (Sartharion->AI()->GetData(TWILIGHT_ACHIEVEMENTS) == 3)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_sartharion()
|
||||
{
|
||||
new boss_sartharion();
|
||||
@@ -1722,4 +1770,7 @@ void AddSC_boss_sartharion()
|
||||
new npc_flame_tsunami();
|
||||
new npc_twilight_fissure();
|
||||
new mob_twilight_whelp();
|
||||
new achievement_twilight_assist();
|
||||
new achievement_twilight_duo();
|
||||
new achievement_twilight_zone();
|
||||
}
|
||||
|
||||
@@ -283,6 +283,9 @@ class achievement_king_dred : public AchievementCriteriaScript
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Dred = target->ToCreature())
|
||||
if (Dred->AI()->GetData(DATA_KING_DRED) >= 6)
|
||||
return true;
|
||||
|
||||
@@ -31,6 +31,7 @@ enum Spells
|
||||
H_SPELL_WRATH_OF_MISERY = 59856,
|
||||
SPELL_SUMMON_MINIONS = 59910 //Summons an army of Fetid Troll Corpses to assist the caster.
|
||||
};
|
||||
|
||||
//not in db
|
||||
enum Yells
|
||||
{
|
||||
@@ -41,6 +42,7 @@ enum Yells
|
||||
SAY_REUBBLE_1 = -1600004,
|
||||
SAY_REUBBLE_2 = -1600005
|
||||
};
|
||||
|
||||
enum Creatures
|
||||
{
|
||||
CREATURE_RISEN_SHADOWCASTER = 27600,
|
||||
@@ -48,16 +50,16 @@ enum Creatures
|
||||
CREATURE_HULKING_CORPSE = 27597,
|
||||
CREATURE_CRYSTAL_HANDLER = 26627
|
||||
};
|
||||
|
||||
enum CombatPhase
|
||||
{
|
||||
IDLE,
|
||||
PHASE_1,
|
||||
PHASE_2
|
||||
};
|
||||
enum Achievements
|
||||
{
|
||||
ACHIEV_OH_NOVOS = 2057
|
||||
};
|
||||
|
||||
#define ACTION_MINION_REACHED 1
|
||||
#define DATA_OH_NOVOS 2
|
||||
|
||||
static Position AddSpawnPoint = { -379.20f, -816.76f, 59.70f, 0.0f };
|
||||
static Position CrystalHandlerSpawnPoint = { -326.626343f, -709.956604f, 27.813314f, 0.0f };
|
||||
@@ -79,7 +81,7 @@ public:
|
||||
uint32 uiCrystalHandlerTimer;
|
||||
uint8 crystalHandlerAmount;
|
||||
|
||||
bool bAchiev;
|
||||
bool ohNovos;
|
||||
|
||||
SummonList lSummons;
|
||||
|
||||
@@ -93,7 +95,7 @@ public:
|
||||
{
|
||||
Phase = IDLE;
|
||||
luiCrystals.clear();
|
||||
bAchiev = true;
|
||||
ohNovos = true;
|
||||
me->CastStop();
|
||||
lSummons.DespawnAll();
|
||||
crystalHandlerAmount = 0;
|
||||
@@ -108,10 +110,8 @@ public:
|
||||
if (pInstance)
|
||||
{
|
||||
pInstance->SetData(DATA_NOVOS_EVENT, NOT_STARTED);
|
||||
luiCrystals.push_back(pInstance->GetData64(DATA_NOVOS_CRYSTAL_1));
|
||||
luiCrystals.push_back(pInstance->GetData64(DATA_NOVOS_CRYSTAL_2));
|
||||
luiCrystals.push_back(pInstance->GetData64(DATA_NOVOS_CRYSTAL_3));
|
||||
luiCrystals.push_back(pInstance->GetData64(DATA_NOVOS_CRYSTAL_4));
|
||||
for (uint8 n = 0; n < 4; ++n)
|
||||
luiCrystals.push_back(pInstance->GetData64(DATA_NOVOS_CRYSTAL_1 + n));
|
||||
for (std::list<uint64>::const_iterator itr = luiCrystals.begin(); itr != luiCrystals.end(); ++itr)
|
||||
{
|
||||
if (GameObject* pTemp = pInstance->instance->GetGameObject(*itr))
|
||||
@@ -182,12 +182,7 @@ public:
|
||||
{
|
||||
DoScriptText(SAY_DEATH, me);
|
||||
if (pInstance)
|
||||
{
|
||||
pInstance->SetData(DATA_NOVOS_EVENT, DONE);
|
||||
|
||||
if (IsHeroic() && bAchiev)
|
||||
pInstance->DoCompleteAchievement(ACHIEV_OH_NOVOS);
|
||||
}
|
||||
lSummons.DespawnAll();
|
||||
}
|
||||
|
||||
@@ -206,6 +201,20 @@ public:
|
||||
lSummons.Summon(summon);
|
||||
}
|
||||
|
||||
void DoAction(int32 const action)
|
||||
{
|
||||
if (action == ACTION_MINION_REACHED)
|
||||
ohNovos = false;
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 type)
|
||||
{
|
||||
if (type == DATA_OH_NOVOS)
|
||||
return ohNovos ? 1 : 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void RemoveCrystal()
|
||||
{
|
||||
if (!luiCrystals.empty())
|
||||
@@ -319,10 +328,10 @@ public:
|
||||
{
|
||||
if (type != POINT_MOTION_TYPE || id !=0)
|
||||
return;
|
||||
if (Creature* pNovos = Unit::GetCreature(*me, pInstance ? pInstance->GetData64(DATA_NOVOS) : 0))
|
||||
if (Creature* Novos = ObjectAccessor::GetCreature(*me, pInstance ? pInstance->GetData64(DATA_NOVOS) : 0))
|
||||
{
|
||||
CAST_AI(boss_novos::boss_novosAI, pNovos->AI())->bAchiev = false;
|
||||
if (Unit *pTarget = CAST_AI(boss_novos::boss_novosAI, pNovos->AI())->GetRandomTarget())
|
||||
Novos->AI()->DoAction(ACTION_MINION_REACHED);
|
||||
if (Unit *pTarget = CAST_AI(boss_novos::boss_novosAI, Novos->AI())->GetRandomTarget())
|
||||
AttackStart(pTarget);
|
||||
}
|
||||
}
|
||||
@@ -334,9 +343,30 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_oh_novos : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_oh_novos() : AchievementCriteriaScript("achievement_oh_novos")
|
||||
{
|
||||
}
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Novos = target->ToCreature())
|
||||
if (Novos->AI()->GetData(DATA_OH_NOVOS))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_novos()
|
||||
{
|
||||
new boss_novos;
|
||||
new mob_crystal_handler;
|
||||
new mob_novos_minion;
|
||||
new boss_novos();
|
||||
new mob_crystal_handler();
|
||||
new mob_novos_minion();
|
||||
new achievement_oh_novos();
|
||||
}
|
||||
|
||||
@@ -34,6 +34,7 @@ enum Spells
|
||||
H_SPELL_CONSUME = 59803,
|
||||
H_SPELL_CONSUME_AURA = 59805,
|
||||
};
|
||||
|
||||
enum Yells
|
||||
{
|
||||
SAY_AGGRO = -1600006,
|
||||
@@ -42,16 +43,15 @@ enum Yells
|
||||
SAY_EXPLODE = -1600009,
|
||||
SAY_DEATH = -1600010
|
||||
};
|
||||
enum Achievements
|
||||
{
|
||||
ACHIEV_CONSUMPTION_JUNCTION = 2151
|
||||
};
|
||||
|
||||
enum Creatures
|
||||
{
|
||||
NPC_DRAKKARI_INVADER_1 = 27753,
|
||||
NPC_DRAKKARI_INVADER_2 = 27709
|
||||
};
|
||||
|
||||
#define DATA_CONSUMPTION_JUNCTION 1
|
||||
|
||||
Position AddSpawnPoint = { -260.493011f, -622.968018f, 26.605301f, 3.036870f };
|
||||
|
||||
class boss_trollgore : public CreatureScript
|
||||
@@ -73,7 +73,7 @@ public:
|
||||
uint32 uiExplodeCorpseTimer;
|
||||
uint32 uiSpawnTimer;
|
||||
|
||||
bool bAchiev;
|
||||
bool consumptionJunction;
|
||||
|
||||
SummonList lSummons;
|
||||
|
||||
@@ -88,7 +88,7 @@ public:
|
||||
uiExplodeCorpseTimer = 3*IN_MILLISECONDS;
|
||||
uiSpawnTimer = urand(30*IN_MILLISECONDS, 40*IN_MILLISECONDS);
|
||||
|
||||
bAchiev = IsHeroic();
|
||||
consumptionJunction = true;
|
||||
|
||||
lSummons.DespawnAll();
|
||||
|
||||
@@ -127,11 +127,11 @@ public:
|
||||
uiConsumeTimer = 15*IN_MILLISECONDS;
|
||||
} else uiConsumeTimer -= diff;
|
||||
|
||||
if (bAchiev)
|
||||
if (consumptionJunction)
|
||||
{
|
||||
Aura *pConsumeAura = me->GetAura(DUNGEON_MODE(SPELL_CONSUME_AURA, H_SPELL_CONSUME_AURA));
|
||||
if (pConsumeAura && pConsumeAura->GetStackAmount() > 9)
|
||||
bAchiev = false;
|
||||
Aura* ConsumeAura = me->GetAura(DUNGEON_MODE(SPELL_CONSUME_AURA, H_SPELL_CONSUME_AURA));
|
||||
if (ConsumeAura && ConsumeAura->GetStackAmount() > 9)
|
||||
consumptionJunction = false;
|
||||
}
|
||||
|
||||
if (uiCrushTimer <= diff)
|
||||
@@ -163,11 +163,15 @@ public:
|
||||
lSummons.DespawnAll();
|
||||
|
||||
if (pInstance)
|
||||
{
|
||||
if (bAchiev)
|
||||
pInstance->DoCompleteAchievement(ACHIEV_CONSUMPTION_JUNCTION);
|
||||
pInstance->SetData(DATA_TROLLGORE_EVENT, DONE);
|
||||
}
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 type)
|
||||
{
|
||||
if (type == DATA_CONSUMPTION_JUNCTION)
|
||||
return consumptionJunction ? 1 : 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* victim)
|
||||
@@ -191,7 +195,28 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_consumption_junction : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_consumption_junction() : AchievementCriteriaScript("achievement_consumption_junction")
|
||||
{
|
||||
}
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Trollgore = target->ToCreature())
|
||||
if (Trollgore->AI()->GetData(DATA_CONSUMPTION_JUNCTION))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_trollgore()
|
||||
{
|
||||
new boss_trollgore;
|
||||
new boss_trollgore();
|
||||
new achievement_consumption_junction();
|
||||
}
|
||||
|
||||
@@ -77,7 +77,6 @@ enum Events
|
||||
|
||||
enum eEnum
|
||||
{
|
||||
ACHIEV_THREE_FACED = 4523,
|
||||
DISPLAY_ANGER = 30148,
|
||||
DISPLAY_SORROW = 30149,
|
||||
DISPLAY_DESIRE = 30150,
|
||||
@@ -115,6 +114,8 @@ struct outroPosition
|
||||
{ { 0, 0 }, { 0.0f, 0.0f, 0.0f, 0.0f } }
|
||||
};
|
||||
|
||||
#define DATA_THREE_FACED 1
|
||||
|
||||
class boss_devourer_of_souls : public CreatureScript
|
||||
{
|
||||
public:
|
||||
@@ -143,7 +144,7 @@ class boss_devourer_of_souls : public CreatureScript
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
|
||||
threeFaceAchievement = true;
|
||||
threeFaced = true;
|
||||
mirroredSoulTarget = 0;
|
||||
|
||||
instance->SetData(DATA_DEVOURER_EVENT, NOT_STARTED);
|
||||
@@ -214,9 +215,6 @@ class boss_devourer_of_souls : public CreatureScript
|
||||
|
||||
instance->SetData(DATA_DEVOURER_EVENT, DONE);
|
||||
|
||||
if (threeFaceAchievement && IsHeroic())
|
||||
instance->DoCompleteAchievement(ACHIEV_THREE_FACED);
|
||||
|
||||
int32 entryIndex;
|
||||
if (instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
|
||||
entryIndex = 0;
|
||||
@@ -239,7 +237,15 @@ class boss_devourer_of_souls : public CreatureScript
|
||||
void SpellHitTarget(Unit* /*target*/, const SpellEntry *spell)
|
||||
{
|
||||
if (spell->Id == H_SPELL_PHANTOM_BLAST)
|
||||
threeFaceAchievement = false;
|
||||
threeFaced = false;
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 type)
|
||||
{
|
||||
if (type == DATA_THREE_FACED)
|
||||
return threeFaced;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
@@ -344,7 +350,7 @@ class boss_devourer_of_souls : public CreatureScript
|
||||
}
|
||||
|
||||
private:
|
||||
bool threeFaceAchievement;
|
||||
bool threeFaced;
|
||||
|
||||
// wailing soul event
|
||||
float beamAngle;
|
||||
@@ -360,7 +366,28 @@ class boss_devourer_of_souls : public CreatureScript
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_three_faced : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_three_faced() : AchievementCriteriaScript("achievement_three_faced")
|
||||
{
|
||||
}
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Devourer = target->ToCreature())
|
||||
if (Devourer->AI()->GetData(DATA_THREE_FACED))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_devourer_of_souls()
|
||||
{
|
||||
new boss_devourer_of_souls();
|
||||
new achievement_three_faced();
|
||||
}
|
||||
|
||||
@@ -32,7 +32,6 @@ enum Spells
|
||||
SPELL_STAMPEDE = 55218,
|
||||
SPELL_WHIRLING_SLASH = 55250,
|
||||
H_SPELL_WHIRLING_SLASH = 59824,
|
||||
SPELL_ECK_RESIDUE = 55817
|
||||
};
|
||||
|
||||
//Yells
|
||||
@@ -50,11 +49,6 @@ enum Yells
|
||||
SAY_TRANSFORM_2 = -1604009
|
||||
};
|
||||
|
||||
enum Achievements
|
||||
{
|
||||
ACHIEV_WHAT_THE_ECK = 1864,
|
||||
};
|
||||
|
||||
enum Displays
|
||||
{
|
||||
DISPLAY_RHINO = 26265,
|
||||
@@ -276,21 +270,7 @@ public:
|
||||
DoScriptText(SAY_DEATH, me);
|
||||
|
||||
if (pInstance)
|
||||
{
|
||||
if (IsHeroic())
|
||||
{
|
||||
AchievementEntry const *achievWhatTheEck = GetAchievementStore()->LookupEntry(ACHIEV_WHAT_THE_ECK);
|
||||
if (achievWhatTheEck)
|
||||
{
|
||||
Map::PlayerList const &players = pInstance->instance->GetPlayers();
|
||||
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
|
||||
if (itr->getSource()->HasAura(SPELL_ECK_RESIDUE))
|
||||
itr->getSource()->CompletedAchievement(achievWhatTheEck);
|
||||
}
|
||||
}
|
||||
|
||||
pInstance->SetData(DATA_GAL_DARAH_EVENT, DONE);
|
||||
}
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* victim)
|
||||
@@ -313,6 +293,9 @@ class achievement_share_the_love : public AchievementCriteriaScript
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* GalDarah = target->ToCreature())
|
||||
if (GalDarah->AI()->GetData(DATA_SHARE_THE_LOVE) >= 5)
|
||||
return true;
|
||||
|
||||
@@ -31,11 +31,6 @@ enum eSpells
|
||||
SPELL_TRANSFORMATION = 55098, //Periodic, The caster transforms into a powerful mammoth, increasing Physical damage done by 25% and granting immunity to Stun effects.
|
||||
};
|
||||
|
||||
enum eArchivements
|
||||
{
|
||||
ACHIEV_LESS_RABI = 2040
|
||||
};
|
||||
|
||||
enum eSays
|
||||
{
|
||||
SAY_AGGRO = -1604010,
|
||||
@@ -48,6 +43,8 @@ enum eSays
|
||||
EMOTE_TRANSFORM = -1604017
|
||||
};
|
||||
|
||||
#define DATA_LESS_RABI 1
|
||||
|
||||
class boss_moorabi : public CreatureScript
|
||||
{
|
||||
public:
|
||||
@@ -146,17 +143,20 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 type)
|
||||
{
|
||||
if (type == DATA_LESS_RABI)
|
||||
return bPhase ? 0 : 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*pKiller*/)
|
||||
{
|
||||
DoScriptText(SAY_DEATH, me);
|
||||
|
||||
if (pInstance)
|
||||
{
|
||||
pInstance->SetData(DATA_MOORABI_EVENT, DONE);
|
||||
|
||||
if (IsHeroic() && !bPhase)
|
||||
pInstance->DoCompleteAchievement(ACHIEV_LESS_RABI);
|
||||
}
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* pVictim)
|
||||
@@ -170,7 +170,28 @@ public:
|
||||
|
||||
};
|
||||
|
||||
class achievement_less_rabi : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_less_rabi() : AchievementCriteriaScript("achievement_less_rabi")
|
||||
{
|
||||
}
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Moorabi = target->ToCreature())
|
||||
if (Moorabi->AI()->GetData(DATA_LESS_RABI))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_moorabi()
|
||||
{
|
||||
new boss_moorabi();
|
||||
new achievement_less_rabi();
|
||||
}
|
||||
|
||||
@@ -216,6 +216,9 @@ class achievement_safety_dance : public AchievementCriteriaScript
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Heigan = target->ToCreature())
|
||||
if (Heigan->AI()->GetData(DATA_SAFETY_DANCE))
|
||||
return true;
|
||||
|
||||
@@ -263,6 +263,9 @@ class achievement_chaos_theory : public AchievementCriteriaScript
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Anomalus = target->ToCreature())
|
||||
if (Anomalus->AI()->GetData(DATA_CHAOS_THEORY))
|
||||
return true;
|
||||
|
||||
@@ -32,6 +32,7 @@ enum Spells
|
||||
SPELL_INTENSE_COLD = 48094,
|
||||
SPELL_INTENSE_COLD_TRIGGERED = 48095
|
||||
};
|
||||
|
||||
enum Yells
|
||||
{
|
||||
//Yell
|
||||
@@ -41,13 +42,11 @@ enum Yells
|
||||
SAY_DEATH = -1576043,
|
||||
SAY_CRYSTAL_NOVA = -1576044
|
||||
};
|
||||
enum Achievements
|
||||
{
|
||||
ACHIEV_INTENSE_COLD = 2036
|
||||
};
|
||||
|
||||
enum Misc
|
||||
{
|
||||
DATA_CONTAINMENT_SPHERES = 3
|
||||
DATA_INTENSE_COLD = 1,
|
||||
DATA_CONTAINMENT_SPHERES = 3,
|
||||
};
|
||||
|
||||
class boss_keristrasza : public CreatureScript
|
||||
@@ -69,16 +68,14 @@ public:
|
||||
|
||||
InstanceScript* pInstance;
|
||||
|
||||
std::list<uint64> intenseColdList;
|
||||
uint64 auiContainmentSphereGUIDs[DATA_CONTAINMENT_SPHERES];
|
||||
uint32 uiCrystalfireBreathTimer;
|
||||
uint32 uiCrystalChainsCrystalizeTimer;
|
||||
uint32 uiTailSweepTimer;
|
||||
bool intenseCold;
|
||||
bool bEnrage;
|
||||
|
||||
uint64 auiContainmentSphereGUIDs[DATA_CONTAINMENT_SPHERES];
|
||||
|
||||
uint32 uiCheckIntenseColdTimer;
|
||||
bool bMoreThanTwoIntenseCold; // needed for achievement: Intense Cold(2036)
|
||||
|
||||
void Reset()
|
||||
{
|
||||
uiCrystalfireBreathTimer = 14*IN_MILLISECONDS;
|
||||
@@ -86,8 +83,8 @@ public:
|
||||
uiTailSweepTimer = 5*IN_MILLISECONDS;
|
||||
bEnrage = false;
|
||||
|
||||
uiCheckIntenseColdTimer = 2*IN_MILLISECONDS;
|
||||
bMoreThanTwoIntenseCold = false;
|
||||
intenseCold = true;
|
||||
intenseColdList.clear();
|
||||
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
|
||||
|
||||
@@ -111,11 +108,7 @@ public:
|
||||
DoScriptText(SAY_DEATH, me);
|
||||
|
||||
if (pInstance)
|
||||
{
|
||||
if (IsHeroic() && !bMoreThanTwoIntenseCold)
|
||||
pInstance->DoCompleteAchievement(ACHIEV_INTENSE_COLD);
|
||||
pInstance->SetData(DATA_KERISTRASZA_EVENT, DONE);
|
||||
}
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
@@ -164,30 +157,17 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void SetGUID(uint64 const& guid, int32 id/* = 0 */)
|
||||
{
|
||||
if (id == DATA_INTENSE_COLD)
|
||||
intenseColdList.push_back(guid);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
if (uiCheckIntenseColdTimer < diff && !bMoreThanTwoIntenseCold)
|
||||
{
|
||||
std::list<HostileReference*> ThreatList = me->getThreatManager().getThreatList();
|
||||
for (std::list<HostileReference*>::const_iterator itr = ThreatList.begin(); itr != ThreatList.end(); ++itr)
|
||||
{
|
||||
Unit *pTarget = Unit::GetUnit(*me, (*itr)->getUnitGuid());
|
||||
if (!pTarget || pTarget->GetTypeId() != TYPEID_PLAYER)
|
||||
continue;
|
||||
|
||||
Aura *AuraIntenseCold = pTarget->GetAura(SPELL_INTENSE_COLD_TRIGGERED);
|
||||
if (AuraIntenseCold && AuraIntenseCold->GetStackAmount() > 2)
|
||||
{
|
||||
bMoreThanTwoIntenseCold = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
uiCheckIntenseColdTimer = 2*IN_MILLISECONDS;
|
||||
} else uiCheckIntenseColdTimer -= diff;
|
||||
|
||||
if (!bEnrage && HealthBelowPct(25))
|
||||
{
|
||||
DoScriptText(SAY_ENRAGE, me);
|
||||
@@ -246,8 +226,63 @@ public:
|
||||
|
||||
};
|
||||
|
||||
class spell_intense_cold : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_intense_cold() : SpellScriptLoader("spell_intense_cold") { }
|
||||
|
||||
class spell_intense_cold_AuraScript : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_intense_cold_AuraScript);
|
||||
|
||||
void HandlePeriodicTick(AuraEffect const* aurEff)
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
if (!caster)
|
||||
return;
|
||||
|
||||
if (aurEff->GetBase()->GetStackAmount() >= 2)
|
||||
caster->GetAI()->SetGUID(GetTarget()->GetGUID(), DATA_INTENSE_COLD);
|
||||
}
|
||||
|
||||
void Register()
|
||||
{
|
||||
OnEffectPeriodic += AuraEffectPeriodicFn(spell_intense_cold_AuraScript::HandlePeriodicTick, EFFECT_1, SPELL_AURA_PERIODIC_DAMAGE);
|
||||
}
|
||||
};
|
||||
|
||||
AuraScript* GetAuraScript() const
|
||||
{
|
||||
return new spell_intense_cold_AuraScript();
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_intense_cold : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_intense_cold() : AchievementCriteriaScript("achievement_intense_cold")
|
||||
{
|
||||
}
|
||||
|
||||
bool OnCheck(Player* player, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
std::list<uint64> intenseColdList = CAST_AI(boss_keristrasza::boss_keristraszaAI, target->ToCreature()->AI())->intenseColdList;
|
||||
if (!intenseColdList.empty())
|
||||
for (std::list<uint64>::iterator itr = intenseColdList.begin(); itr != intenseColdList.end(); ++itr)
|
||||
if (player->GetGUID() == *itr)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_keristrasza()
|
||||
{
|
||||
new boss_keristrasza();
|
||||
new containment_sphere();
|
||||
new achievement_intense_cold();
|
||||
new spell_intense_cold();
|
||||
}
|
||||
|
||||
@@ -32,12 +32,14 @@ enum Spells
|
||||
SPELL_FROST_MAGUS_VISUAL = 47706,
|
||||
SPELL_ARCANE_MAGUS_VISUAL = 47704
|
||||
};
|
||||
|
||||
enum Creatures
|
||||
{
|
||||
MOB_FIRE_MAGUS = 26928,
|
||||
MOB_FROST_MAGUS = 26930,
|
||||
MOB_ARCANE_MAGUS = 26929
|
||||
};
|
||||
|
||||
enum Yells
|
||||
{
|
||||
SAY_AGGRO = -1576000,
|
||||
@@ -47,11 +49,9 @@ enum Yells
|
||||
SAY_SPLIT_1 = -1576004,
|
||||
SAY_SPLIT_2 = -1576005,
|
||||
};
|
||||
enum Achievements
|
||||
{
|
||||
ACHIEV_SPLIT_PERSONALITY = 2150,
|
||||
ACHIEV_TIMER = 5*IN_MILLISECONDS
|
||||
};
|
||||
|
||||
#define ACTION_MAGUS_DEAD 1
|
||||
#define DATA_SPLIT_PERSONALITY 2
|
||||
|
||||
const Position CenterOfRoom = {504.80f, 89.07f, -16.12f, 6.27f};
|
||||
|
||||
@@ -82,17 +82,16 @@ public:
|
||||
bool bFrostMagusDead;
|
||||
bool bArcaneMagusDead;
|
||||
bool bIsWaitingToAppear;
|
||||
bool bIsAchievementTimerRunning;
|
||||
|
||||
uint32 uiIsWaitingToAppearTimer;
|
||||
uint32 uiIceNovaTimer;
|
||||
uint32 uiFireBombTimer;
|
||||
uint32 uiGravityWellTimer;
|
||||
uint32 uiCooldown;
|
||||
uint32 uiAchievementTimer;
|
||||
|
||||
uint8 Phase;
|
||||
uint8 uiAchievementProgress;
|
||||
uint8 splitPersonality;
|
||||
time_t time[3];
|
||||
|
||||
void Reset()
|
||||
{
|
||||
@@ -107,10 +106,10 @@ public:
|
||||
uiFrostMagusGUID = 0;
|
||||
uiArcaneMagusGUID = 0;
|
||||
|
||||
uiAchievementProgress = 0;
|
||||
uiAchievementTimer = 0;
|
||||
for (uint8 n = 0; n < 3; ++n)
|
||||
time[n] = 0;
|
||||
|
||||
bIsAchievementTimerRunning = false;
|
||||
splitPersonality = 0;
|
||||
bIsWaitingToAppear = false;
|
||||
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
@@ -133,11 +132,7 @@ public:
|
||||
DoScriptText(SAY_DEATH, me);
|
||||
|
||||
if (pInstance)
|
||||
{
|
||||
if (IsHeroic() && uiAchievementProgress == 2)
|
||||
pInstance->DoCompleteAchievement(ACHIEV_SPLIT_PERSONALITY);
|
||||
pInstance->SetData(DATA_MAGUS_TELESTRA_EVENT, DONE);
|
||||
}
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
@@ -145,6 +140,28 @@ public:
|
||||
DoScriptText(SAY_KILL, me);
|
||||
}
|
||||
|
||||
void DoAction(int32 const action)
|
||||
{
|
||||
if (action == ACTION_MAGUS_DEAD)
|
||||
{
|
||||
uint8 i = 0;
|
||||
while (time[i] != 0)
|
||||
++i;
|
||||
|
||||
time[i] = sWorld->GetGameTime();
|
||||
if (i == 2 && (time[2] - time[1] < 5) && (time[1] - time[0] < 5))
|
||||
++splitPersonality;
|
||||
}
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 type)
|
||||
{
|
||||
if (type == DATA_SPLIT_PERSONALITY)
|
||||
return splitPersonality;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint64 SplitPersonality(uint32 entry)
|
||||
{
|
||||
if (Creature* Summoned = me->SummonCreature(entry, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation(), TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 1*IN_MILLISECONDS))
|
||||
@@ -181,18 +198,18 @@ public:
|
||||
|
||||
if (summon->GetGUID() == uiFireMagusGUID)
|
||||
{
|
||||
me->AI()->DoAction(ACTION_MAGUS_DEAD);
|
||||
bFireMagusDead = true;
|
||||
bIsAchievementTimerRunning = true;
|
||||
}
|
||||
else if (summon->GetGUID() == uiFrostMagusGUID)
|
||||
{
|
||||
me->AI()->DoAction(ACTION_MAGUS_DEAD);
|
||||
bFrostMagusDead = true;
|
||||
bIsAchievementTimerRunning = true;
|
||||
}
|
||||
else if (summon->GetGUID() == uiArcaneMagusGUID)
|
||||
{
|
||||
me->AI()->DoAction(ACTION_MAGUS_DEAD);
|
||||
bArcaneMagusDead = true;
|
||||
bIsAchievementTimerRunning = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -216,12 +233,10 @@ public:
|
||||
|
||||
if ((Phase == 1) ||(Phase == 3))
|
||||
{
|
||||
if (bIsAchievementTimerRunning)
|
||||
uiAchievementTimer += diff;
|
||||
if (bFireMagusDead && bFrostMagusDead && bArcaneMagusDead)
|
||||
{
|
||||
if (uiAchievementTimer <= ACHIEV_TIMER)
|
||||
uiAchievementProgress +=1;
|
||||
for (uint8 n = 0; n < 3; ++n)
|
||||
time[n] = 0;
|
||||
me->GetMotionMaster()->Clear();
|
||||
me->GetMap()->CreatureRelocation(me, CenterOfRoom.GetPositionX(), CenterOfRoom.GetPositionY(), CenterOfRoom.GetPositionZ(), CenterOfRoom.GetOrientation());
|
||||
DoCast(me, SPELL_TELESTRA_BACK);
|
||||
@@ -236,8 +251,6 @@ public:
|
||||
bIsWaitingToAppear = true;
|
||||
uiIsWaitingToAppearTimer = 4*IN_MILLISECONDS;
|
||||
DoScriptText(SAY_MERGE, me);
|
||||
bIsAchievementTimerRunning = false;
|
||||
uiAchievementTimer = 0;
|
||||
}
|
||||
else
|
||||
return;
|
||||
@@ -324,7 +337,28 @@ public:
|
||||
|
||||
};
|
||||
|
||||
class achievement_split_personality : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_split_personality() : AchievementCriteriaScript("achievement_split_personality")
|
||||
{
|
||||
}
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Telestra = target->ToCreature())
|
||||
if (Telestra->AI()->GetData(DATA_SPLIT_PERSONALITY) == 2)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_magus_telestra()
|
||||
{
|
||||
new boss_magus_telestra();
|
||||
new achievement_split_personality();
|
||||
}
|
||||
|
||||
@@ -60,11 +60,7 @@ enum SjonnirCreatures
|
||||
CREATURE_IRON_SLUDGE = 28165
|
||||
};
|
||||
|
||||
enum Misc
|
||||
{
|
||||
DATA_TIME_BEFORE_OOZE = 150000, //2min 30 secs
|
||||
ACHIEV_ABUSE_THE_OOZE = 2155
|
||||
};
|
||||
#define DATA_TIME_BEFORE_OOZE 150000 //2min 30 secs
|
||||
|
||||
struct Locations
|
||||
{
|
||||
@@ -73,10 +69,13 @@ struct Locations
|
||||
|
||||
static Locations PipeLocations[] =
|
||||
{
|
||||
{1295.44f, 734.07f, 200.3f}, //left
|
||||
{1297.7f, 595.6f, 199.9f} //right
|
||||
{1295.44f, 734.07f, 200.3f}, //left
|
||||
{1297.7f, 595.6f, 199.9f} //right
|
||||
};
|
||||
|
||||
#define ACTION_OOZE_DEAD 1
|
||||
#define DATA_ABUSE_THE_OOZE 2
|
||||
|
||||
static Locations CenterPoint = {1295.21f, 667.157f, 189.691f};
|
||||
|
||||
class boss_sjonnir : public CreatureScript
|
||||
@@ -105,7 +104,7 @@ public:
|
||||
uint32 uiSummonTimer;
|
||||
uint32 uiFrenzyTimer;
|
||||
uint32 uiEncounterTimer;
|
||||
uint32 uiKilledIronSludges;
|
||||
uint8 abuseTheOoze;
|
||||
|
||||
SummonList lSummons;
|
||||
|
||||
@@ -122,7 +121,7 @@ public:
|
||||
uiLightningRingTimer = 30000 + rand()%5000;
|
||||
uiSummonTimer = 5000;
|
||||
uiFrenzyTimer = 300000; //5 minutes
|
||||
uiKilledIronSludges = 0;
|
||||
abuseTheOoze = 0;
|
||||
|
||||
lSummons.DespawnAll();
|
||||
|
||||
@@ -221,11 +220,7 @@ public:
|
||||
lSummons.DespawnAll();
|
||||
|
||||
if (pInstance)
|
||||
{
|
||||
pInstance->SetData(DATA_SJONNIR_EVENT, DONE);
|
||||
if (IsHeroic() && uiKilledIronSludges > 4)
|
||||
pInstance->DoCompleteAchievement(ACHIEV_ABUSE_THE_OOZE);
|
||||
}
|
||||
}
|
||||
void KilledUnit(Unit* victim)
|
||||
{
|
||||
@@ -234,9 +229,18 @@ public:
|
||||
DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me);
|
||||
}
|
||||
|
||||
void KilledIronSludge()
|
||||
void DoAction(int32 const action)
|
||||
{
|
||||
++uiKilledIronSludges;
|
||||
if (action == ACTION_OOZE_DEAD)
|
||||
++abuseTheOoze;
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 type)
|
||||
{
|
||||
if (type == DATA_ABUSE_THE_OOZE)
|
||||
return abuseTheOoze;
|
||||
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -307,16 +311,37 @@ public:
|
||||
void JustDied(Unit* /*pKiller*/)
|
||||
{
|
||||
if (pInstance)
|
||||
if (Creature* pSjonnir = Unit::GetCreature(*me, pInstance->GetData64(DATA_SJONNIR)))
|
||||
CAST_AI(boss_sjonnir::boss_sjonnirAI, pSjonnir->AI())->KilledIronSludge();
|
||||
if (Creature* Sjonnir = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_SJONNIR)))
|
||||
Sjonnir->AI()->DoAction(ACTION_OOZE_DEAD);
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
class achievement_abuse_the_ooze : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_abuse_the_ooze() : AchievementCriteriaScript("achievement_abuse_the_ooze")
|
||||
{
|
||||
}
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Sjonnir = target->ToCreature())
|
||||
if (Sjonnir->AI()->GetData(DATA_ABUSE_THE_OOZE) >= 5)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_sjonnir()
|
||||
{
|
||||
new boss_sjonnir();
|
||||
new mob_malformed_ooze();
|
||||
new mob_iron_sludge();
|
||||
new achievement_abuse_the_ooze();
|
||||
}
|
||||
|
||||
@@ -110,7 +110,9 @@ enum Spells
|
||||
H_SPELL_DARK_MATTER = 59868,
|
||||
//Abedneum
|
||||
SPELL_SEARING_GAZE = 51136,
|
||||
H_SPELL_SEARING_GAZE = 59867
|
||||
H_SPELL_SEARING_GAZE = 59867,
|
||||
|
||||
SPELL_REWARD_ACHIEVEMENT = 59046,
|
||||
};
|
||||
|
||||
enum Quests
|
||||
@@ -118,13 +120,9 @@ enum Quests
|
||||
QUEST_HALLS_OF_STONE = 13207
|
||||
};
|
||||
|
||||
enum Achievements
|
||||
{
|
||||
ACHIEV_BRANN_SPANKIN_NEW = 2154
|
||||
};
|
||||
|
||||
#define GOSSIP_ITEM_START "Brann, it would be our honor!"
|
||||
#define GOSSIP_ITEM_PROGRESS "Let's move Brann, enough of the history lessons!"
|
||||
#define DATA_BRANN_SPARKLIN_NEWS 1
|
||||
|
||||
static Position SpawnLocations[]=
|
||||
{
|
||||
@@ -184,7 +182,7 @@ public:
|
||||
}
|
||||
|
||||
void UpdateFacesList()
|
||||
{
|
||||
{
|
||||
/*GetCreatureListWithEntryInGrid(lKaddrakGUIDList, me, CREATURE_KADDRAK, 50.0f);
|
||||
if (!lKaddrakGUIDList.empty())
|
||||
{
|
||||
@@ -315,7 +313,7 @@ public:
|
||||
|
||||
bool bIsBattle;
|
||||
bool bIsLowHP;
|
||||
bool bHasBeenDamaged;
|
||||
bool brannSparklinNews;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
@@ -323,10 +321,10 @@ public:
|
||||
{
|
||||
bIsLowHP = false;
|
||||
bIsBattle = false;
|
||||
bHasBeenDamaged = false;
|
||||
uiStep = 0;
|
||||
uiPhaseTimer = 0;
|
||||
uiControllerGUID = 0;
|
||||
brannSparklinNews = true;
|
||||
|
||||
DespawnDwarf();
|
||||
|
||||
@@ -425,8 +423,16 @@ public:
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 & /*damage*/)
|
||||
{
|
||||
if (!bHasBeenDamaged)
|
||||
bHasBeenDamaged = true;
|
||||
if (brannSparklinNews)
|
||||
brannSparklinNews = false;
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 type)
|
||||
{
|
||||
if (type == DATA_BRANN_SPARKLIN_NEWS)
|
||||
return brannSparklinNews ? 1 : 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void UpdateEscortAI(const uint32 uiDiff)
|
||||
@@ -590,17 +596,8 @@ public:
|
||||
case 29:
|
||||
DoScriptText(SAY_EVENT_END_02, me);
|
||||
if (pInstance)
|
||||
{
|
||||
pInstance->SetData(DATA_BRANN_EVENT, DONE);
|
||||
|
||||
// Achievement criteria is with spell 59046 which does not exist.
|
||||
// There is thus no way it can be given by casting the spell on the players.
|
||||
pInstance->DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, 59046);
|
||||
|
||||
if (!bHasBeenDamaged)
|
||||
pInstance->DoCompleteAchievement(ACHIEV_BRANN_SPANKIN_NEW);
|
||||
}
|
||||
|
||||
me->CastSpell(me, SPELL_REWARD_ACHIEVEMENT, true);
|
||||
JumpToNextStep(5500);
|
||||
break;
|
||||
case 30:
|
||||
@@ -738,8 +735,29 @@ public:
|
||||
|
||||
};
|
||||
|
||||
class achievement_brann_spankin_new : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_brann_spankin_new() : AchievementCriteriaScript("achievement_brann_spankin_new")
|
||||
{
|
||||
}
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Brann = target->ToCreature())
|
||||
if (Brann->AI()->GetData(DATA_BRANN_SPARKLIN_NEWS))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_halls_of_stone()
|
||||
{
|
||||
new npc_brann_hos();
|
||||
new mob_tribuna_controller();
|
||||
new achievement_brann_spankin_new();
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@ class boss_auriaya : public CreatureScript
|
||||
{
|
||||
_Reset();
|
||||
DefenderGUID = 0;
|
||||
defenderLifes = 8;
|
||||
defenderLives = 8;
|
||||
crazyCatLady = true;
|
||||
nineLives = false;
|
||||
}
|
||||
@@ -165,8 +165,8 @@ class boss_auriaya : public CreatureScript
|
||||
SetData(DATA_CRAZY_CAT_LADY, 0);
|
||||
break;
|
||||
case ACTION_RESPAWN_DEFENDER:
|
||||
--defenderLifes;
|
||||
if (!defenderLifes)
|
||||
--defenderLives;
|
||||
if (!defenderLives)
|
||||
{
|
||||
SetData(DATA_NINE_LIVES, 1);
|
||||
break;
|
||||
@@ -247,8 +247,8 @@ class boss_auriaya : public CreatureScript
|
||||
if (Creature* Defender = ObjectAccessor::GetCreature(*me, DefenderGUID))
|
||||
{
|
||||
Defender->Respawn();
|
||||
if (defenderLifes)
|
||||
Defender->SetAuraStack(SPELL_FERAL_ESSENCE, Defender, defenderLifes);
|
||||
if (defenderLives)
|
||||
Defender->SetAuraStack(SPELL_FERAL_ESSENCE, Defender, defenderLives);
|
||||
Defender->SetInCombatWithZone();
|
||||
if (!Defender->isInCombat())
|
||||
Defender->AI()->AttackStart(me->getVictim());
|
||||
@@ -273,7 +273,7 @@ class boss_auriaya : public CreatureScript
|
||||
|
||||
private:
|
||||
uint64 DefenderGUID;
|
||||
uint8 defenderLifes;
|
||||
uint8 defenderLives;
|
||||
bool crazyCatLady;
|
||||
bool nineLives;
|
||||
};
|
||||
@@ -507,6 +507,34 @@ class spell_auriaya_strenght_of_the_pack : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
class spell_auriaya_sentinel_blast : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_auriaya_sentinel_blast() : SpellScriptLoader("spell_auriaya_sentinel_blast") { }
|
||||
|
||||
class spell_auriaya_sentinel_blast_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_auriaya_sentinel_blast_SpellScript);
|
||||
|
||||
void FilterTargets(std::list<Unit*>& unitList)
|
||||
{
|
||||
unitList.remove_if(PlayerOrPetCheck());
|
||||
}
|
||||
|
||||
void Register()
|
||||
{
|
||||
OnUnitTargetSelect += SpellUnitTargetFn(spell_auriaya_sentinel_blast_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_AREA_ENEMY_SRC);
|
||||
OnUnitTargetSelect += SpellUnitTargetFn(spell_auriaya_sentinel_blast_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_AREA_ENEMY_SRC);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const
|
||||
{
|
||||
return new spell_auriaya_sentinel_blast_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
class achievement_nine_lives : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
@@ -516,6 +544,9 @@ class achievement_nine_lives : public AchievementCriteriaScript
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Auriaya = target->ToCreature())
|
||||
if (Auriaya->AI()->GetData(DATA_NINE_LIVES))
|
||||
return true;
|
||||
@@ -533,6 +564,9 @@ class achievement_crazy_cat_lady : public AchievementCriteriaScript
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Auriaya = target->ToCreature())
|
||||
if (Auriaya->AI()->GetData(DATA_CRAZY_CAT_LADY))
|
||||
return true;
|
||||
@@ -548,6 +582,7 @@ void AddSC_boss_auriaya()
|
||||
new npc_feral_defender();
|
||||
new npc_sanctum_sentry();
|
||||
new spell_auriaya_strenght_of_the_pack();
|
||||
new spell_auriaya_sentinel_blast();
|
||||
new achievement_nine_lives();
|
||||
new achievement_crazy_cat_lady();
|
||||
}
|
||||
|
||||
@@ -158,20 +158,6 @@ enum Yells
|
||||
SAY_OVERLOAD_3 = -1603075,
|
||||
};
|
||||
|
||||
enum AchievementData
|
||||
{
|
||||
ACHIEV_10_NUKED_FROM_ORBIT = 2915,
|
||||
ACHIEV_25_NUKED_FROM_ORBIT = 2917,
|
||||
ACHIEV_10_ORBITAL_BOMBARDMENT = 2913,
|
||||
ACHIEV_25_ORBITAL_BOMBARDMENT = 2918,
|
||||
ACHIEV_10_ORBITAL_DEVASTATION = 2914,
|
||||
ACHIEV_25_ORBITAL_DEVASTATION = 2916,
|
||||
ACHIEV_10_ORBIT_UARY = 3056,
|
||||
ACHIEV_25_ORBIT_UARY = 3057,
|
||||
ACHIEV_10_SIEGE_OF_ULDUAR = 2886,
|
||||
ACHIEV_25_SIEGE_OF_ULDUAR = 2887,
|
||||
};
|
||||
|
||||
enum actions
|
||||
{
|
||||
ACTION_TOWER_OF_STORM_DESTROYED = 1,
|
||||
@@ -212,6 +198,8 @@ Position const PosDemolisher[5] =
|
||||
{-798.01f, -227.24f, 429.84f, 1.446f},
|
||||
};
|
||||
|
||||
#define DATA_ORBIT_ACHIEVEMENTS 1
|
||||
|
||||
class boss_flame_leviathan : public CreatureScript
|
||||
{
|
||||
public:
|
||||
@@ -321,21 +309,6 @@ class boss_flame_leviathan : public CreatureScript
|
||||
{
|
||||
_JustDied();
|
||||
DoScriptText(SAY_DEATH, me);
|
||||
|
||||
if (ActiveTowers)
|
||||
{
|
||||
switch (ActiveTowersCount)
|
||||
{
|
||||
case 4:
|
||||
instance->DoCompleteAchievement(RAID_MODE(ACHIEV_10_ORBIT_UARY, ACHIEV_25_ORBIT_UARY));
|
||||
case 3:
|
||||
instance->DoCompleteAchievement(RAID_MODE(ACHIEV_10_NUKED_FROM_ORBIT, ACHIEV_25_NUKED_FROM_ORBIT));
|
||||
case 2:
|
||||
instance->DoCompleteAchievement(RAID_MODE(ACHIEV_10_ORBITAL_DEVASTATION, ACHIEV_25_ORBITAL_DEVASTATION));
|
||||
case 1:
|
||||
instance->DoCompleteAchievement(RAID_MODE(ACHIEV_10_ORBITAL_BOMBARDMENT, ACHIEV_25_ORBITAL_BOMBARDMENT));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SpellHit(Unit* /*caster*/, SpellEntry const* spell)
|
||||
@@ -358,6 +331,8 @@ class boss_flame_leviathan : public CreatureScript
|
||||
return Shutout ? 1 : 0;
|
||||
case DATA_UNBROKEN:
|
||||
return Unbroken ? 1 : 0;
|
||||
case DATA_ORBIT_ACHIEVEMENTS:
|
||||
return ActiveTowersCount;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -846,15 +821,14 @@ class npc_mechanolift : public CreatureScript
|
||||
}
|
||||
};
|
||||
|
||||
// WHY IS THIS CALLED spell_???
|
||||
class spell_pool_of_tar : public CreatureScript
|
||||
class npc_pool_of_tar : public CreatureScript
|
||||
{
|
||||
public:
|
||||
spell_pool_of_tar() : CreatureScript("spell_pool_of_tar") { }
|
||||
npc_pool_of_tar() : CreatureScript("npc_pool_of_tar") { }
|
||||
|
||||
struct spell_pool_of_tarAI : public ScriptedAI
|
||||
struct npc_pool_of_tarAI : public ScriptedAI
|
||||
{
|
||||
spell_pool_of_tarAI(Creature* creature) : ScriptedAI(creature)
|
||||
npc_pool_of_tarAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
@@ -877,7 +851,7 @@ class spell_pool_of_tar : public CreatureScript
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new spell_pool_of_tarAI(creature);
|
||||
return new npc_pool_of_tarAI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1412,6 +1386,78 @@ class achievement_unbroken : public AchievementCriteriaScript
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_orbital_bombardment : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_orbital_bombardment() : AchievementCriteriaScript("achievement_orbital_bombardment") { }
|
||||
|
||||
bool OnCheck(Player* /*source*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Leviathan = target->ToCreature())
|
||||
if (Leviathan->AI()->GetData(DATA_ORBIT_ACHIEVEMENTS) >= 1)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_orbital_devastation : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_orbital_devastation() : AchievementCriteriaScript("achievement_orbital_devastation") { }
|
||||
|
||||
bool OnCheck(Player* /*source*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Leviathan = target->ToCreature())
|
||||
if (Leviathan->AI()->GetData(DATA_ORBIT_ACHIEVEMENTS) >= 2)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_nuked_from_orbit : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_nuked_from_orbit() : AchievementCriteriaScript("achievement_nuked_from_orbit") { }
|
||||
|
||||
bool OnCheck(Player* /*source*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Leviathan = target->ToCreature())
|
||||
if (Leviathan->AI()->GetData(DATA_ORBIT_ACHIEVEMENTS) >= 3)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_orbit_uary : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_orbit_uary() : AchievementCriteriaScript("achievement_orbit_uary") { }
|
||||
|
||||
bool OnCheck(Player* /*source*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Leviathan = target->ToCreature())
|
||||
if (Leviathan->AI()->GetData(DATA_ORBIT_ACHIEVEMENTS) == 4)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_flame_leviathan()
|
||||
{
|
||||
new boss_flame_leviathan();
|
||||
@@ -1421,7 +1467,7 @@ void AddSC_boss_flame_leviathan()
|
||||
new boss_flame_leviathan_overload_device();
|
||||
new boss_flame_leviathan_safety_container();
|
||||
new npc_mechanolift();
|
||||
new spell_pool_of_tar();
|
||||
new npc_pool_of_tar();
|
||||
new npc_colossus();
|
||||
new npc_thorims_hammer();
|
||||
new npc_mimirons_inferno();
|
||||
@@ -1437,4 +1483,8 @@ void AddSC_boss_flame_leviathan()
|
||||
new achievement_three_car_garage_siege();
|
||||
new achievement_shutout();
|
||||
new achievement_unbroken();
|
||||
new achievement_orbital_bombardment();
|
||||
new achievement_orbital_devastation();
|
||||
new achievement_nuked_from_orbit();
|
||||
new achievement_orbit_uary();
|
||||
}
|
||||
|
||||
@@ -1620,6 +1620,9 @@ class achievement_knock_on_wood : public AchievementCriteriaScript
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Freya = target->ToCreature())
|
||||
if (Freya->AI()->GetData(DATA_KNOCK_ON_WOOD) >= 1)
|
||||
return true;
|
||||
@@ -1637,6 +1640,9 @@ class achievement_knock_knock_on_wood : public AchievementCriteriaScript
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Freya = target->ToCreature())
|
||||
if (Freya->AI()->GetData(DATA_KNOCK_ON_WOOD) >= 2)
|
||||
return true;
|
||||
@@ -1654,6 +1660,9 @@ class achievement_knock_knock_knock_on_wood : public AchievementCriteriaScript
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Freya = target->ToCreature())
|
||||
if (Freya->AI()->GetData(DATA_KNOCK_ON_WOOD) == 3)
|
||||
return true;
|
||||
@@ -1671,6 +1680,9 @@ class achievement_getting_back_to_nature : public AchievementCriteriaScript
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Freya = target->ToCreature())
|
||||
if (Freya->AI()->GetData(DATA_GETTING_BACK_TO_NATURE) >= 25)
|
||||
return true;
|
||||
|
||||
@@ -203,7 +203,7 @@ class boss_general_vezax : public CreatureScript
|
||||
void SpellHitTarget(Unit* who, SpellEntry const* spell)
|
||||
{
|
||||
if (who && who->GetTypeId() == TYPEID_PLAYER && spell->Id == SPELL_SHADOW_CRASH_HIT)
|
||||
SetData(DATA_SHADOWDODGER, 0);
|
||||
shadowDodger = false;
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* /*who*/)
|
||||
@@ -245,25 +245,12 @@ class boss_general_vezax : public CreatureScript
|
||||
return 0;
|
||||
}
|
||||
|
||||
void SetData(uint32 id, uint32 data)
|
||||
{
|
||||
switch (id)
|
||||
{
|
||||
case DATA_SHADOWDODGER:
|
||||
shadowDodger = data ? true : false;
|
||||
break;
|
||||
case DATA_SMELL_SARONITE:
|
||||
smellSaronite = data ? true : false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void DoAction(int32 const action)
|
||||
{
|
||||
switch (action)
|
||||
{
|
||||
case ACTION_VAPORS_DIE:
|
||||
SetData(DATA_SMELL_SARONITE, 0);
|
||||
smellSaronite = false;
|
||||
break;
|
||||
case ACTION_ANIMUS_DIE:
|
||||
me->RemoveAurasDueToSpell(SPELL_SARONITE_BARRIER);
|
||||
@@ -487,6 +474,9 @@ class achievement_shadowdodger : public AchievementCriteriaScript
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Vezax = target->ToCreature())
|
||||
if (Vezax->AI()->GetData(DATA_SHADOWDODGER))
|
||||
return true;
|
||||
@@ -504,6 +494,9 @@ class achievement_smell_saronite : public AchievementCriteriaScript
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Vezax = target->ToCreature())
|
||||
if (Vezax->AI()->GetData(DATA_SMELL_SARONITE))
|
||||
return true;
|
||||
|
||||
@@ -194,13 +194,7 @@ public:
|
||||
void SpellHitTarget(Unit* who, SpellEntry const* spell)
|
||||
{
|
||||
if (who && who->GetTypeId() == TYPEID_PLAYER && spell->Id == 59302)
|
||||
SetData(DATA_KINGS_BANE, 0);
|
||||
}
|
||||
|
||||
void SetData(uint32 id, uint32 data)
|
||||
{
|
||||
if (id == DATA_KINGS_BANE)
|
||||
kingsBane = data ? true : false;
|
||||
kingsBane = false;
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 type)
|
||||
@@ -406,6 +400,9 @@ class achievement_kings_bane : public AchievementCriteriaScript
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Ymiron = target->ToCreature())
|
||||
if (Ymiron->AI()->GetData(DATA_KINGS_BANE))
|
||||
return true;
|
||||
|
||||
@@ -159,7 +159,28 @@ public:
|
||||
|
||||
};
|
||||
|
||||
class achievement_defenseless : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_defenseless() : AchievementCriteriaScript("achievement_defenseless")
|
||||
{
|
||||
}
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
InstanceScript* instance = target->GetInstanceScript();
|
||||
if (!instance)
|
||||
return false;
|
||||
|
||||
if (!instance->GetData(DATA_DEFENSELESS))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_cyanigosa()
|
||||
{
|
||||
new boss_cyanigosa();
|
||||
new achievement_defenseless();
|
||||
}
|
||||
|
||||
@@ -50,11 +50,6 @@ enum Yells
|
||||
SAY_BUBBLE = -1608026
|
||||
};
|
||||
|
||||
enum Achievements
|
||||
{
|
||||
ACHIEVEMENT_DEHYDRATION = 2041,
|
||||
};
|
||||
|
||||
enum Actions
|
||||
{
|
||||
ACTION_WATER_ELEMENT_HIT = 1,
|
||||
@@ -72,6 +67,8 @@ static Position SpawnLoc[MAX_SPAWN_LOC]=
|
||||
{1935.50f, 796.224f, 52.492f, 4.224f},
|
||||
};
|
||||
|
||||
#define DATA_DEHYDRATION 1
|
||||
|
||||
class boss_ichoron : public CreatureScript
|
||||
{
|
||||
public:
|
||||
@@ -91,7 +88,7 @@ public:
|
||||
|
||||
bool bIsExploded;
|
||||
bool bIsFrenzy;
|
||||
bool bAchievement;
|
||||
bool dehydration;
|
||||
|
||||
uint32 uiBubbleCheckerTimer;
|
||||
uint32 uiWaterBoltVolleyTimer;
|
||||
@@ -104,7 +101,7 @@ public:
|
||||
{
|
||||
bIsExploded = false;
|
||||
bIsFrenzy = false;
|
||||
bAchievement = true;
|
||||
dehydration = true;
|
||||
uiBubbleCheckerTimer = 1000;
|
||||
uiWaterBoltVolleyTimer = urand(10000, 15000);
|
||||
|
||||
@@ -168,7 +165,7 @@ public:
|
||||
if (bIsExploded)
|
||||
DoExplodeCompleted();
|
||||
|
||||
bAchievement = false;
|
||||
dehydration = false;
|
||||
break;
|
||||
case ACTION_WATER_ELEMENT_KILLED:
|
||||
uint32 damage = me->CountPctFromMaxHealth(3);
|
||||
@@ -199,11 +196,18 @@ public:
|
||||
me->GetMotionMaster()->MoveChase(me->getVictim());
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 type)
|
||||
{
|
||||
if (type == DATA_DEHYDRATION)
|
||||
return dehydration ? 1 : 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* /*pWho*/) {}
|
||||
|
||||
void UpdateAI(const uint32 uiDiff)
|
||||
{
|
||||
//Return since we have no target
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
@@ -284,9 +288,6 @@ public:
|
||||
|
||||
if (pInstance)
|
||||
{
|
||||
if (IsHeroic() && bAchievement)
|
||||
pInstance->DoCompleteAchievement(ACHIEVEMENT_DEHYDRATION);
|
||||
|
||||
if (pInstance->GetData(DATA_WAVE_COUNT) == 6)
|
||||
{
|
||||
pInstance->SetData(DATA_1ST_BOSS_EVENT, DONE);
|
||||
@@ -394,8 +395,29 @@ public:
|
||||
|
||||
};
|
||||
|
||||
class achievement_dehydration : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_dehydration() : AchievementCriteriaScript("achievement_dehydration")
|
||||
{
|
||||
}
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Ichoron = target->ToCreature())
|
||||
if (Ichoron->AI()->GetData(DATA_DEHYDRATION))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_ichoron()
|
||||
{
|
||||
new boss_ichoron();
|
||||
new mob_ichor_globule();
|
||||
new achievement_dehydration();
|
||||
}
|
||||
|
||||
@@ -154,13 +154,7 @@ public:
|
||||
void SummonedCreatureDies(Creature* summoned, Unit* /*who*/)
|
||||
{
|
||||
if (summoned->GetEntry() == CREATURE_VOID_SENTRY)
|
||||
SetData(DATA_VOID_DANCE, 0);
|
||||
}
|
||||
|
||||
void SetData(uint32 id, uint32 data)
|
||||
{
|
||||
if (id == DATA_VOID_DANCE)
|
||||
voidDance = data ? true : false;
|
||||
voidDance = false;
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 type)
|
||||
@@ -217,6 +211,9 @@ class achievement_void_dance : public AchievementCriteriaScript
|
||||
|
||||
bool OnCheck(Player* /*player*/, Unit* target)
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Creature* Zuramat = target->ToCreature())
|
||||
if (Zuramat->AI()->GetData(DATA_VOID_DANCE))
|
||||
return true;
|
||||
|
||||
@@ -93,15 +93,12 @@ enum Yells
|
||||
{
|
||||
CYANIGOSA_SAY_SPAWN = -1608005
|
||||
};
|
||||
|
||||
enum Spells
|
||||
{
|
||||
CYANIGOSA_SPELL_TRANSFORM = 58668,
|
||||
CYANIGOSA_BLUE_AURA = 47759,
|
||||
};
|
||||
enum Achievements
|
||||
{
|
||||
ACHIEV_DEFENSELESS = 1816
|
||||
};
|
||||
|
||||
class instance_violet_hold : public InstanceMapScript
|
||||
{
|
||||
@@ -165,6 +162,7 @@ public:
|
||||
bool bWiped;
|
||||
bool bIsDoorSpellCasted;
|
||||
bool bCrystalActivated;
|
||||
bool defenseless;
|
||||
|
||||
std::list<uint8> NpcAtDoorCastingList;
|
||||
|
||||
@@ -214,6 +212,7 @@ public:
|
||||
bActive = false;
|
||||
bIsDoorSpellCasted = false;
|
||||
bCrystalActivated = false;
|
||||
defenseless = true;
|
||||
uiMainEventPhase = NOT_STARTED;
|
||||
|
||||
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
|
||||
@@ -334,8 +333,6 @@ public:
|
||||
uiMainEventPhase = DONE;
|
||||
if (GameObject* pMainDoor = instance->GetGameObject(uiMainDoor))
|
||||
pMainDoor->SetGoState(GO_STATE_ACTIVE);
|
||||
if (!bCrystalActivated && uiDoorIntegrity == 100)
|
||||
DoCompleteAchievement(ACHIEV_DEFENSELESS);
|
||||
}
|
||||
break;
|
||||
case DATA_WAVE_COUNT:
|
||||
@@ -350,6 +347,7 @@ public:
|
||||
break;
|
||||
case DATA_DOOR_INTEGRITY:
|
||||
uiDoorIntegrity = data;
|
||||
defenseless = false;
|
||||
DoUpdateWorldState(WORLD_STATE_VH_PRISON_STATE, uiDoorIntegrity);
|
||||
break;
|
||||
case DATA_NPC_PRESENCE_AT_DOOR_ADD:
|
||||
@@ -432,6 +430,7 @@ public:
|
||||
case DATA_FIRST_BOSS: return uiFirstBoss;
|
||||
case DATA_SECOND_BOSS: return uiSecondBoss;
|
||||
case DATA_MAIN_EVENT_PHASE: return uiMainEventPhase;
|
||||
case DATA_DEFENSELESS: return defenseless ? 1 : 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -52,7 +52,8 @@ enum Data
|
||||
DATA_FIRST_BOSS,
|
||||
DATA_SECOND_BOSS,
|
||||
DATA_ACTIVATE_CRYSTAL,
|
||||
DATA_MAIN_EVENT_PHASE
|
||||
DATA_MAIN_EVENT_PHASE,
|
||||
DATA_DEFENSELESS,
|
||||
};
|
||||
|
||||
enum Data64
|
||||
|
||||
@@ -623,42 +623,6 @@ class spell_gen_animal_blood : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
class spell_gen_shroud_of_death : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_gen_shroud_of_death() : SpellScriptLoader("spell_gen_shroud_of_death") { }
|
||||
|
||||
class spell_gen_shroud_of_death_AuraScript : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_gen_shroud_of_death_AuraScript);
|
||||
|
||||
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
Unit* target = GetTarget();
|
||||
target->m_serverSideVisibility.SetValue(SERVERSIDE_VISIBILITY_GHOST, GHOST_VISIBILITY_GHOST);
|
||||
target->m_serverSideVisibilityDetect.SetValue(SERVERSIDE_VISIBILITY_GHOST, GHOST_VISIBILITY_GHOST);
|
||||
}
|
||||
|
||||
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
Unit* target = GetTarget();
|
||||
target->m_serverSideVisibility.SetValue(SERVERSIDE_VISIBILITY_GHOST, GHOST_VISIBILITY_ALIVE);
|
||||
target->m_serverSideVisibilityDetect.SetValue(SERVERSIDE_VISIBILITY_GHOST, GHOST_VISIBILITY_ALIVE);
|
||||
}
|
||||
|
||||
void Register()
|
||||
{
|
||||
OnEffectApply += AuraEffectApplyFn(spell_gen_shroud_of_death_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
||||
OnEffectRemove += AuraEffectRemoveFn(spell_gen_shroud_of_death_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
||||
}
|
||||
};
|
||||
|
||||
AuraScript* GetAuraScript() const
|
||||
{
|
||||
return new spell_gen_shroud_of_death_AuraScript();
|
||||
}
|
||||
};
|
||||
|
||||
enum DivineStormSpell
|
||||
{
|
||||
SPELL_DIVINE_STORM = 53385,
|
||||
@@ -1161,6 +1125,35 @@ class spell_gen_magic_rooster : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
class spell_gen_allow_cast_from_item_only : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_gen_allow_cast_from_item_only() : SpellScriptLoader("spell_gen_allow_cast_from_item_only") { }
|
||||
|
||||
class spell_gen_allow_cast_from_item_only_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_gen_allow_cast_from_item_only_SpellScript);
|
||||
|
||||
SpellCastResult CheckRequirement()
|
||||
{
|
||||
if (!GetCastItem())
|
||||
return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
|
||||
|
||||
return SPELL_CAST_OK;
|
||||
}
|
||||
|
||||
void Register()
|
||||
{
|
||||
OnCheckCast += SpellCheckCastFn(spell_gen_allow_cast_from_item_only_SpellScript::CheckRequirement);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const
|
||||
{
|
||||
return new spell_gen_allow_cast_from_item_only_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_generic_spell_scripts()
|
||||
{
|
||||
new spell_gen_absorb0_hitlimit1();
|
||||
@@ -1176,7 +1169,6 @@ void AddSC_generic_spell_scripts()
|
||||
new spell_creature_permanent_feign_death();
|
||||
new spell_pvp_trinket_wotf_shared_cd();
|
||||
new spell_gen_animal_blood();
|
||||
new spell_gen_shroud_of_death();
|
||||
new spell_gen_divine_storm_cd_reset();
|
||||
new spell_gen_parachute_ic();
|
||||
new spell_gen_gunship_portal();
|
||||
@@ -1188,4 +1180,5 @@ void AddSC_generic_spell_scripts()
|
||||
new spell_gen_turkey_marker();
|
||||
new spell_gen_lifeblood();
|
||||
new spell_gen_magic_rooster();
|
||||
new spell_gen_allow_cast_from_item_only();
|
||||
}
|
||||
|
||||
@@ -85,9 +85,6 @@ enum Events
|
||||
* ---
|
||||
* --- Emerald Dragons : Base AI-structure used for all the Emerald dragons
|
||||
* ---
|
||||
*
|
||||
* TODO
|
||||
* - Fix player teleportation when running off too far from the dragon (emerald_dragonAI)
|
||||
*/
|
||||
|
||||
struct emerald_dragonAI : public WorldBossAI
|
||||
@@ -153,10 +150,8 @@ struct emerald_dragonAI : public WorldBossAI
|
||||
while (uint32 eventId = events.ExecuteEvent())
|
||||
ExecuteEvent(eventId);
|
||||
|
||||
std::list<HostileReference*> threats = me->getThreatManager().getThreatList();
|
||||
if (Unit* target = threats.front()->getTarget())
|
||||
if ((target->GetTypeId() == TYPEID_PLAYER) && (me->GetDistance(target) > 20.0f))
|
||||
DoCast(target, SPELL_SUMMON_PLAYER);
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO, 0, -50.0f, true))
|
||||
DoCast(target, SPELL_SUMMON_PLAYER);
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
@@ -190,8 +185,7 @@ class npc_dream_fog : public CreatureScript
|
||||
if (!_roamTimer)
|
||||
{
|
||||
// Chase target, but don't attack - otherwise just roam around
|
||||
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true);
|
||||
if (target)
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
|
||||
{
|
||||
_roamTimer = urand(15000, 30000);
|
||||
me->GetMotionMaster()->Clear(false);
|
||||
@@ -397,22 +391,6 @@ class boss_ysondre : public CreatureScript
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 const diff)
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
if (me->HasUnitState(UNIT_STAT_CASTING))
|
||||
return;
|
||||
|
||||
while (uint32 eventId = events.ExecuteEvent())
|
||||
ExecuteEvent(eventId);
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
uint8 _stage;
|
||||
};
|
||||
@@ -496,22 +474,6 @@ class boss_lethon : public CreatureScript
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 const diff)
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
if (me->HasUnitState(UNIT_STAT_CASTING))
|
||||
return;
|
||||
|
||||
while (uint32 eventId = events.ExecuteEvent())
|
||||
ExecuteEvent(eventId);
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
uint8 _stage;
|
||||
};
|
||||
@@ -597,22 +559,6 @@ class boss_emeriss : public CreatureScript
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 const diff)
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
if (me->HasUnitState(UNIT_STAT_CASTING))
|
||||
return;
|
||||
|
||||
while (uint32 eventId = events.ExecuteEvent())
|
||||
ExecuteEvent(eventId);
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
uint8 _stage;
|
||||
};
|
||||
@@ -738,12 +684,7 @@ class boss_taerar : public CreatureScript
|
||||
|
||||
void UpdateAI(uint32 const diff)
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
if (me->HasUnitState(UNIT_STAT_CASTING))
|
||||
if (!me->isInCombat())
|
||||
return;
|
||||
|
||||
if (_banished)
|
||||
@@ -760,13 +701,14 @@ class boss_taerar : public CreatureScript
|
||||
// _banishtimer has not expired, and we still have active shades:
|
||||
else
|
||||
_banishedTimer -= diff;
|
||||
|
||||
// Update the events before we return (handled under emerald_dragonAI::UpdateAI(diff); if we're not inside this check)
|
||||
events.Update(diff);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
while (uint32 eventId = events.ExecuteEvent())
|
||||
ExecuteEvent(eventId);
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
emerald_dragonAI::UpdateAI(diff);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -1895,11 +1895,12 @@ GM.LowerSecurity = 0
|
||||
|
||||
#
|
||||
# GM.AllowAchievementGain.Level
|
||||
# Description: Max GM level that can obtain achievements.
|
||||
# Default: 3 - (Anyone)
|
||||
# 0 - (Only players)
|
||||
# 1 - (Only moderators)
|
||||
# 2 - (Only gamemasters)
|
||||
# Description: Max GM level allowed to obtain achievements.
|
||||
# Default: 3 - (Players, Moderators, GameMasters, Admins)
|
||||
# 0 - (Players)
|
||||
# 1 - (Players, Moderators)
|
||||
# 2 - (Players, Moderators, GameMasters)
|
||||
# 3 - (Players, Moderators, GameMasters, Admins)
|
||||
|
||||
GM.AllowAchievementGain.Level = 3
|
||||
|
||||
|
||||
Reference in New Issue
Block a user