Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4

Conflicts:
	src/server/game/Globals/ObjectMgr.cpp
	src/server/game/Maps/Map.cpp
	src/server/game/Quests/QuestDef.cpp
This commit is contained in:
Vincent-Michael
2014-05-11 23:08:54 +02:00
24 changed files with 3667 additions and 2453 deletions
@@ -0,0 +1,2 @@
--
DELETE FROM `player_factionchange_items` WHERE `alliance_id` BETWEEN 48357 AND 48370;
@@ -0,0 +1,218 @@
SET @CGUID := 142975; -- need 93
DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+92;
INSERT INTO `creature` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `spawndist`, `MovementType`) VALUES
-- The Skybreaker
(@CGUID+0, 30351, 712, 3, 1, 40.85356, 44.65979, 25.11708, 2.617994, 7200, 0, 0),
(@CGUID+1, 30867, 712, 3, 1, -32.58828, 22.11204, 21.78542, 1.762783, 7200, 0, 0),
(@CGUID+2, 30867, 712, 3, 1, -11.11922, 23.02313, 21.71026, 1.727876, 7200, 0, 0),
(@CGUID+3, 30867, 712, 3, 1, 36.80393, 45.60984, 25.11626, 1.43117, 7200, 0, 0),
(@CGUID+4, 30351, 712, 3, 1, 1.432831, 22.45517, 21.75367, 3.193953, 7200, 0, 0),
(@CGUID+5, 30394, 712, 3, 1, -57.66117, -6.004808, 23.56313, 4.956735, 7200, 0, 0),
(@CGUID+6, 30351, 712, 3, 1, 1.032896, 9.635975, 20.53982, 3.211406, 7200, 0, 0),
(@CGUID+7, 30351, 712, 3, 1, -36.27486, -6.711545, 20.53283, 1.53589, 7200, 0, 0),
(@CGUID+8, 30351, 712, 3, 1, -36.26366, 6.612509, 20.5329, 4.642576, 7200, 0, 0),
(@CGUID+9, 30352, 712, 3, 1, -16.93313, 2.497342, 20.87589, 3.106686, 7200, 0, 0),
(@CGUID+10, 30352, 712, 3, 1, -49.00542, 0.003014, 20.75066, 0.01745329, 7200, 0, 0),
(@CGUID+11, 30352, 712, 3, 1, 16.73826, 2.378118, 20.50117, 3.159046, 7200, 0, 0),
(@CGUID+12, 30352, 712, 3, 1, 48.81408, 8.76864, 40.16452, 1.675516, 7200, 0, 0),
(@CGUID+13, 30352, 712, 3, 1, -16.85414, -2.518523, 20.87587, 3.263766, 7200, 0, 0),
(@CGUID+14, 30351, 712, 3, 1, 4.010166, -22.42914, 21.77942, 0.2617994, 7200, 0, 0),
(@CGUID+15, 30351, 712, 3, 1, 0.778628, -9.484917, 20.5411, 3.036873, 7200, 0, 0),
(@CGUID+16, 30867, 712, 3, 1, -9.599308, -23.15501, 21.71576, 4.782202, 7200, 0, 0),
(@CGUID+17, 30352, 712, 3, 1, 48.82674, -8.803922, 40.16443, 4.712389, 7200, 0, 0),
(@CGUID+18, 30867, 712, 3, 1, -32.99351, -22.17393, 21.7879, 4.502949, 7200, 0, 0),
(@CGUID+19, 30867, 712, 3, 1, 37.14339, -45.94594, 25.11639, 4.014257, 7200, 0, 0),
(@CGUID+20, 30344, 712, 3, 1, -2.700737, 12.2316, 20.52945, 1.727876, 7200, 0, 0),
(@CGUID+21, 22515, 712, 3, 1, -27.09398, 38.85326, 1.366914, 1.256637, 7200, 0, 0),
(@CGUID+22, 22515, 712, 3, 1, -6.396934, 39.80114, 1.470398, 1.256637, 7200, 0, 0),
(@CGUID+23, 22515, 712, 3, 1, 4.017809, 38.32001, 1.533938, 1.256637, 7200, 0, 0),
(@CGUID+24, 30392, 712, 3, 1, 28.1948, 7.542603, 23.37183, 5.8294, 7200, 0, 0),
(@CGUID+25, 30833, 712, 3, 1, 6.518055, 0.003965, 20.66434, 0, 7200, 0, 0),
(@CGUID+26, 30350, 712, 3, 1, 16.36582, -2.323581, 20.49201, 3.141593, 7200, 0, 0),
(@CGUID+27, 30347, 712, 3, 1, 28.24817, -7.667989, 23.37183, 0.4363323, 7200, 0, 0),
-- Orgrim Hammer
(@CGUID+28, 30755, 713, 3, 1, -18.96152, 27.52218, 90.04992, 6.213372, 7200, 0, 0),
(@CGUID+29, 30754, 713, 3, 1, -54.68485, 15.01545, 34.49284, 2.338741, 7200, 0, 0),
(@CGUID+30, 30752, 713, 3, 1, -10.94232, 32.12282, 10.65215, 1.518436, 7200, 0, 0),
(@CGUID+31, 30754, 713, 3, 1, -8.504885, -0.019059, 86.17371, 3.159046, 7200, 0, 0),
(@CGUID+32, 30866, 713, 3, 1, -36.03656, 23.91632, 34.00398, 1.937315, 7200, 0, 0),
(@CGUID+33, 30754, 713, 3, 1, 29.97084, 29.32993, 89.84912, 0.122173, 7200, 0, 0),
(@CGUID+34, 30753, 713, 3, 1, 15.19238, -0.108369, 86.17371, 3.071779, 7200, 0, 0),
(@CGUID+35, 30752, 713, 3, 1, 7.702429, 25.23042, 35.08076, 4.764749, 7200, 0, 0),
(@CGUID+36, 30755, 713, 3, 1, 8.555423, 5.155768, 84.79706, 3.560472, 7200, 0, 0),
(@CGUID+37, 30755, 713, 3, 1, -4.588624, 27.91955, 34.27925, 4.729842, 7200, 0, 0),
(@CGUID+38, 30754, 713, 3, 1, -19.19535, -27.024, 90.05069, 3.124139, 7200, 0, 0),
(@CGUID+39, 30754, 713, 3, 1, -54.63672, -15.29832, 34.48149, 3.717551, 7200, 0, 0),
(@CGUID+40, 30753, 713, 3, 1, -26.19901, -10.37834, 35.63048, 1.64061, 7200, 0, 0),
(@CGUID+41, 30755, 713, 3, 1, -56.79522, -3.870484, 13.31639, 0.1047198, 7200, 0, 0),
(@CGUID+42, 30755, 713, 3, 1, -56.8364, 3.557915, 13.3138, 6.178465, 7200, 0, 0),
(@CGUID+43, 30753, 713, 3, 1, -34.95441, 11.84717, 11.5961, 1.082104, 7200, 0, 0),
(@CGUID+44, 30752, 713, 3, 1, 1.994709, 31.96335, 10.09305, 1.448623, 7200, 0, 0),
(@CGUID+45, 30753, 713, 3, 1, -26.06219, 10.57757, 35.58858, 4.712389, 7200, 0, 0),
(@CGUID+46, 30752, 713, 3, 1, 15.2307, 31.76827, 10.66515, 1.466077, 7200, 0, 0),
(@CGUID+47, 30753, 713, 3, 1, 1.994774, 17.06817, 9.246212, 1.500983, 7200, 0, 0),
(@CGUID+48, 30755, 713, 3, 1, -4.484874, 18.00111, 8.70937, 4.729842, 7200, 0, 0),
(@CGUID+49, 30755, 713, 3, 1, 8.521951, 17.92888, 8.777781, 4.625123, 7200, 0, 0),
(@CGUID+50, 30755, 713, 3, 1, -26.0374, 6.533113, 9.42994, 3.124139, 7200, 0, 0),
(@CGUID+51, 30755, 713, 3, 1, -19.30323, 6.17474, 6.879124, 0, 7200, 0, 0),
(@CGUID+52, 30755, 713, 3, 1, 8.786416, -5.037911, 84.79706, 2.740167, 7200, 0, 0),
(@CGUID+53, 30755, 713, 3, 1, 8.557505, 5.72448, 34.52152, 3.106686, 7200, 0, 0),
(@CGUID+54, 30755, 713, 3, 1, 8.450569, -5.609207, 34.52058, 2.792527, 7200, 0, 0),
(@CGUID+55, 30866, 713, 3, 1, -36.32559, -23.21568, 34.04234, 4.39823, 7200, 0, 0),
(@CGUID+56, 30753, 713, 3, 1, -35.48437, -11.9256, 11.71411, 5.986479, 7200, 0, 0),
(@CGUID+57, 30752, 713, 3, 1, 8.472344, -22.36673, 34.99833, 1.780236, 7200, 0, 0),
(@CGUID+58, 30755, 713, 3, 1, -4.738312, -28.17381, 34.26831, 1.466077, 7200, 0, 0),
(@CGUID+59, 30755, 713, 3, 1, 31.3718, -29.84369, 89.84172, 2.96706, 7200, 0, 0),
(@CGUID+60, 30755, 713, 3, 1, 37.59615, -9.010085, 30.1788, 0.05235988, 7200, 0, 0),
(@CGUID+61, 30755, 713, 3, 1, 37.52684, 8.718971, 30.17881, 5.969026, 7200, 0, 0),
(@CGUID+62, 30755, 713, 3, 1, -25.42656, -6.577197, 9.33257, 2.932153, 7200, 0, 0),
(@CGUID+63, 30755, 713, 3, 1, 23.24178, 6.302864, 7.032903, 3.176499, 7200, 0, 0),
(@CGUID+64, 30755, 713, 3, 1, -19.45751, -6.235432, 6.89157, 6.265732, 7200, 0, 0),
(@CGUID+65, 30752, 713, 3, 1, -11.36508, -29.14235, 10.01249, 4.642576, 7200, 0, 0),
(@CGUID+66, 30753, 713, 3, 1, 46.41658, 7.696208, 10.48851, 4.101524, 7200, 0, 0),
(@CGUID+67, 30752, 713, 3, 1, 15.44485, -29.7788, 9.977043, 4.694936, 7200, 0, 0),
(@CGUID+68, 30754, 713, 3, 1, 38.01897, -12.83605, 30.17452, 0.6108652, 7200, 0, 0),
(@CGUID+69, 30866, 713, 3, 1, 17.22244, -26.63993, 35.64188, 4.817109, 7200, 0, 0),
(@CGUID+70, 30752, 713, 3, 1, 2.069969, -29.66959, 9.395721, 4.677482, 7200, 0, 0),
(@CGUID+71, 30753, 713, 3, 1, 2.036507, -17.18819, 9.245911, 4.764749, 7200, 0, 0),
(@CGUID+72, 30753, 713, 3, 1, 46.33955, -7.35728, 10.47599, 2.391101, 7200, 0, 0),
(@CGUID+73, 30755, 713, 3, 1, 8.592517, -17.94128, 8.77952, 1.553343, 7200, 0, 0),
(@CGUID+74, 30755, 713, 3, 1, -4.406364, -17.97099, 8.709299, 1.48353, 7200, 0, 0),
(@CGUID+75, 30755, 713, 3, 1, 22.90693, -6.745431, 7.115322, 3.124139, 7200, 0, 0),
(@CGUID+76, 30824, 713, 3, 1, 17.28272, 21.73325, 35.37741, 1.623156, 7200, 0, 0),
(@CGUID+77, 30827, 713, 3, 1, 45.76886, -8.964413, 30.17881, 1.396263, 7200, 0, 0),
(@CGUID+78, 30825, 713, 3, 1, 38.55754, -0.025193, 10.27214, 3.106686, 7200, 0, 0),
(@CGUID+79, 30826, 713, 3, 1, 55.08521, -3.344726, 30.1788, 2.687807, 7200, 0, 0),
(@CGUID+80, 37593, 713, 3, 1, 2.015905, 34.44526, 10.09305, 1.64061, 7200, 0, 0),
(@CGUID+81, 37593, 713, 3, 1, 14.85607, 33.80163, 9.849781, 1.64061, 7200, 0, 0),
(@CGUID+82, 37593, 713, 3, 1, -10.84229, 34.34502, 10.6434, 1.64061, 7200, 0, 0),
-- Others
(@CGUID+83, 22515, 668, 3, 1, 5274.933, 1693.941, 797.2499, 0, 7200, 0, 0),
(@CGUID+84, 36736, 668, 3, 1, 5415.332, 2080.358, 720.5068, 1.64061, 7200, 0, 0),
(@CGUID+85, 36736, 668, 3, 1, 5376.905, 2115.425, 720.3566, 6.126106, 7200, 0, 0),
(@CGUID+86, 36736, 668, 3, 1, 5445.525, 2099.37, 720.3999, 2.600541, 7200, 0, 0),
(@CGUID+87, 36736, 668, 3, 1, 5431.74, 2087.503, 720.3914, 2.076942, 7200, 0, 0),
(@CGUID+88, 36736, 668, 3, 1, 5395.38, 2146.632, 720.2123, 5.305801, 7200, 0, 0),
(@CGUID+89, 36736, 668, 3, 1, 5380.971, 2134.462, 720.6889, 5.637414, 7200, 0, 0),
(@CGUID+90, 36736, 668, 3, 1, 5449.623, 2117.587, 720.4929, 3.176499, 7200, 0, 0),
(@CGUID+91, 36736, 668, 3, 1, 5412.493, 2150.627, 720.3359, 4.502949, 7200, 0, 0),
(@CGUID+92, 37071, 668, 3, 1, 5408.362, 2110.33, 726.9917, 3.630285, 7200, 0, 0);
DELETE FROM `creature_template_addon` WHERE `entry`=36736;
INSERT INTO `creature_template_addon` (`entry`, `mount`, `bytes1`, `bytes2`, `auras`) VALUES
(36736, 0, 0x0, 0x1, '69174'); -- Invisible Stalker (Icecrown Dungeon Trap) - Reflection Window Beam Visual
DELETE FROM `creature_text` WHERE `entry` IN (30344, 30824, 36954);
INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES
-- High Captain Justin Bartlett
(30344, 0, 0, 'FIRE! FIRE!', 14, 0, 100, 0, 0, 16721, 'High Captain Justin Bartlett - Fire', 36993),
(30344, 1, 0, 'Quickly, climb aboard! We mustn''t tarry here! There''s no telling when this whole mountainside will collapse.', 14, 0, 100, 0, 0, 16722, 'High Captain Justin Bartlett - Final', 37213),
-- Sky-Reaver Korm Blackscar
(30824, 0, 0, 'FIRE! FIRE!', 14, 0, 100, 0, 0, 16732, 'Sky-Reaver Korm Blackscar - Fire', 38681),
(30824, 1, 0, 'Get on board, now! This whole mountainside could collapse at any moment.', 14, 0, 100, 0, 0, 16733, 'Sky-Reaver Korm Blackscar - Final', 37212),
-- Lich King
(36954, 0, 0, 'Your allies have arrived, Jaina, just as you promised. You will all become powerful agents of the Scourge..', 14, 0, 100, 0, 0, 17212, 'Lich King SAY_LICH_KING_AGGRO_A', 37172),
(36954, 1, 0, 'I will not make the same mistake again, Sylvanas. This time there will be no escape. You will all serve me in death!', 14, 0, 100, 0, 0, 17213, 'Lich King SAY_LICH_KING_AGGRO_H', 37173),
(36954, 2, 0, 'There is no escape!', 14, 0, 100, 0, 0, 17217, 'Lich King SAY_LICH_KING_WALL_01', 37177),
(36954, 3, 0, 'Succumb to the chill of the grave.', 14, 0, 100, 0, 0, 17218, 'Lich King SAY_LICH_KING_WALL_02', 37175),
(36954, 4, 0, 'Another dead end.', 14, 0, 100, 0, 0, 17219, 'Lich King SAY_LICH_KING_WALL_03', 37176),
(36954, 5, 0, 'How long can you fight it?', 14, 0, 100, 0, 0, 17220, 'Lich King SAY_LICH_KING_WALL_04', 38668),
(36954, 6, 0, 'Arise minions. Do not let them pass.', 14, 0, 100, 0, 0, 17216, 'Lich King SAY_LICH_KING_GHOUL', 38669),
(36954, 7, 0, 'Minions, sieze them. Bring their corpses back to me.', 14, 0, 100, 0, 0, 17222, 'Lich King SAY_LICH_KING_ABON', 38670),
(36954, 8, 0, 'Death''s cold embrace awaits.', 14, 0, 100, 0, 0, 17221, 'Lich King SAY_LICH_KING_WINTER', 37174),
(36954, 9, 0, 'Nowhere to run! You''re mine now...', 14, 0, 100, 0, 0, 17223, 'Lich King SAY_LICH_KING_END_DUN', 36994);
DELETE FROM `areatrigger_scripts` WHERE `entry` IN (5605,5740);
INSERT INTO `areatrigger_scripts` (`entry`,`scriptname`) VALUES
(5605, 'at_hor_shadow_throne'),
(5740, 'at_hor_impenetrable_door');
DELETE FROM `areatrigger_teleport` WHERE `id`=5740;
INSERT INTO `areatrigger_teleport` (`id`, `name`, `target_map`, `target_position_x`, `target_position_y`, `target_position_z`, `target_orientation`) VALUES
(5740, 'Halls of Reflection (The Impenetrable Door)', 668, 5354.01, 2053.53, 707.695, 0.7853982);
DELETE FROM `lfg_entrances` WHERE `dungeonId` IN(255,256);
INSERT INTO `lfg_entrances` (`dungeonId`, `name`, `position_x`, `position_y`, `position_z`, `orientation`) VALUES
(255, 'Halls of Reflection (Normal)', 5239.01, 1932.64, 707.695, 0.800565),
(256, 'Halls of Reflection (Heroic)', 5239.01, 1932.64, 707.695, 0.800565);
-- Lady Jaina Proudmoore
UPDATE `creature_template` SET `ScriptName`='npc_jaina_or_sylvanas_intro_hor' WHERE `entry`=37221;
-- Lady Sylvanas Windrunner
UPDATE `creature_template` SET `ScriptName`='npc_jaina_or_sylvanas_intro_hor' WHERE `entry`=37223;
-- Frostsworn General
UPDATE `creature_template` SET `ScriptName`='npc_frostsworn_general' WHERE `entry`=36723;
-- The Lich King
UPDATE `creature_template` SET `ScriptName`='npc_the_lich_king_escape_hor', `mechanic_immune_mask`=617299839 WHERE `entry` = 36954;
-- Icecrown Dungeon Horde Gunship Cannon
UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry`=37593;
UPDATE `gameobject_template` SET `faction`=2102,`flags`=32 WHERE `entry`=201385;
UPDATE `gameobject_template` SET `faction`=1375,`flags`=32 WHERE `entry` IN (201596,201709,202211);
UPDATE `gameobject_template` SET `flags`=40 WHERE `entry` IN (201598,201599);
UPDATE `gameobject_template` SET `faction`=35,`flags`=16 WHERE `entry` IN (201710,202212,202336,202337);
-- Lady Jaina Proudmoore
UPDATE `creature_template` SET `spell1`=0, `gossip_menu_id`=10860 WHERE `entry`=36955;
-- Lady Sylvanas Windrunner
UPDATE `creature_template` SET `gossip_menu_id`=10909 WHERE `entry`=37554;
DELETE FROM `gossip_menu` WHERE `entry`=10931;
INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES
(10931, 15190); -- 37554 -- outro gossip
UPDATE `gossip_menu_option` SET `option_id`=1, `npc_option_npcflag`=1 WHERE `menu_id`=10860 AND `id`=0;
-- skip intro
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup` IN (11031,10950);
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(15,11031,1,0,0,14,0,24500,0,0,1,0,0,'','Show options only if quest 24500 taken/complete/rewarded'),
(15,10950,1,0,0,14,0,24802,0,0,1,0,0,'','Show options only if quest 24802 taken/complete/rewarded');
DELETE FROM `spell_script_names` WHERE `spell_id` IN (72900,70190,70017,72368,72369);
INSERT INTO `spell_script_names` (`spell_id` ,`ScriptName`) VALUES
(72900, 'spell_hor_start_halls_of_reflection_quest_ae'),
(70190, 'spell_hor_evasion'),
(70017, 'spell_hor_gunship_cannon_fire'),
(72368, 'spell_marwyn_shared_suffering'),
(72369, 'spell_marwyn_shared_suffering');
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry` IN (69857,70199,70021,70246);
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(13,1,69857,0,0,31,0,3,36954,0,0,0,0,'','Taunt Arthas targets The Lich King'),
(13,2,70199,0,0,31,0,3,36954,0,0,0,0,'','Blinding Retreat targets The Lich King'),
(13,1,70021,0,0,31,0,3,22515,0,0,0,0,'','Gunship Cannon Fire targets World Trigger'),
(13,1,70021,0,0,1,0,70017,0,0,1,0,0,'','Gunship Cannon Fire target not has aura Gunship Cannon Fire'),
(13,1,70246,0,0,31,0,3,22515,0,0,0,0,'','Gunship Cannon Fire targets World Trigger'),
(13,1,70246,0,0,1,0,70017,0,0,1,0,0,'','Gunship Cannon Fire target not has aura Gunship Cannon Fire');
-- Cloak of Darkness proc on dodge
DELETE FROM `spell_proc_event` WHERE `entry`=70188;
INSERT INTO `spell_proc_event` (`entry`,`procEx`) VALUES
(70188,0x10);
SET @OGUID := 21620; -- need 12
DELETE FROM `gameobject` WHERE `guid` BETWEEN @OGUID+0 AND @OGUID+11;
INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`) VALUES
(@OGUID+0, 201709, 668, 3, 1, 5228.354, 1640.958, 783.7306, 5.585054, 0, 0, 0, 1, -7200, 255, 1),
(@OGUID+1, 201709, 668, 3, 1, 5215.889, 1626.078, 796.4562, 5.585054, 0, 0, 0, 1, -7200, 255, 1),
(@OGUID+2, 202211, 668, 3, 1, 5242.835, 1623.45, 784.1498, 5.811947, 0, 0, 0, 1, -7200, 255, 1),
(@OGUID+3, 202211, 668, 3, 1, 5225.201, 1589.099, 808.5507, 5.811947, 0, 0, 0, 1, -7200, 255, 1),
(@OGUID+4, 202211, 668, 3, 1, 5233.985, 1606.311, 796.2543, 5.811947, 0, 0, 0, 1, -7200, 255, 1),
(@OGUID+5, 195682, 712, 3, 1, 4.395291, 13.68329, 20.80389, 4.19445, 0, 0, 0, 1, 7200, 255, 1),
(@OGUID+6, 201710, 712, 1, 1, -11.7548, 12.02463, 20.40827, 3.217069, 0, 0, 0, 1, 7200, 255, 1),
(@OGUID+7, 202336, 712, 2, 1, -11.7548, 12.02463, 20.40827, 3.217069, 0, 0, 0, 1, 7200, 255, 1),
(@OGUID+8, 202212, 713, 1, 1, 12.23327, 22.47315, 35.07432, 1.239183, 0, 0, 0, 1, 7200, 255, 1),
(@OGUID+9, 202337, 713, 2, 1, 12.23327, 22.47315, 35.07432, 1.239183, 0, 0, 0, 1, 7200, 255, 1),
(@OGUID+10, 195682, 713, 3, 1, 22.17697, 22.95274, 35.65761, 1.919862, 0, 0, 0, 1, 7200, 255, 1),
(@OGUID+11, 191640, 713, 3, 1, 42.08455, 14.60723, 10.65548, 4.244588, 0, 0, 0, 1, 7200, 255, 1);
DELETE FROM `spelldifficulty_dbc` WHERE `id` IN(72395,72396,72397);
INSERT INTO `spelldifficulty_dbc` (`id`,`spellid0`,`spellid1`) VALUES
(72395,72395,72390), -- Hopelessness
(72396,72396,72391), -- Hopelessness
(72397,72397,72393); -- Hopelessness
DELETE FROM `spell_custom_attr` WHERE `entry` = 74117;
INSERT INTO `spell_custom_attr` (`entry`,`attributes`) VALUES
(74117, 2);
@@ -0,0 +1,289 @@
ALTER TABLE `gameobject` ADD `VerifiedBuild` SMALLINT(5) DEFAULT '0';
SET @OGUID := 76921;
DELETE FROM `gameobject` WHERE `guid` BETWEEN @OGUID+0 AND @OGUID+282;
INSERT INTO `gameobject` (`guid`, `id`, `map`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `VerifiedBuild`) VALUES
(@OGUID+0, 186519, 571, 1, 1, 2017.644, -4887.931, 214.6985, 5.244714, 0, 0, 0, 1, 120, 255, 1, 15595), -- Fort Wildervar
(@OGUID+1, 186520, 571, 1, 1, 2014.79, -4890.302, 214.6067, 2.434729, 0, 0, 0, 1, 120, 255, 1, 15595), -- Vengeance Landing
(@OGUID+2, 186526, 571, 1, 1, 2017.778, -4887.679, 211.9238, 5.218536, 0, 0, 0, 1, 120, 255, 1, 15595), -- Camp Winterhoof
(@OGUID+3, 186666, 571, 1, 1, 2978.301, -4561.268, 265.7909, 1.090829, 0, 0, 0, 1, 120, 255, 1, 17658), -- Frozen Waterfall
(@OGUID+4, 186798, 571, 1, 1, 2597.174, -3735.528, 244.6674, 3.769912, 0, 0, 0, 1, 120, 255, 1, 17658), -- Gjalerbron Cage
(@OGUID+5, 187106, 571, 1, 1, 1916.92, 5820.15, 8.111198, 2.303831, 0, 0, 0, 1, 120, 255, 1, 15595), -- Brazier
(@OGUID+6, 187251, 571, 1, 1, 2853.868, 5838.515, 100.9134, 4.699066, 0, 0, 0, 1, 120, 255, 1, 17658), -- Campfire
(@OGUID+7, 187453, 571, 1, 1, 3489.599, 6303.194, -125.5745, 6.26304, 0, 0, 0, 1, 120, 255, 1, 17658), -- Bubbly Fissure
(@OGUID+8, 187454, 571, 1, 1, 3830.716, 5984.776, -126.78, 0.7966011, 0, 0, 0, 1, 120, 255, 1, 17658), -- Bubbly Fissure
(@OGUID+9, 187455, 571, 1, 1, 4007.937, 6009.374, -125.0908, 0.1617281, 0, 0, 0, 1, 120, 255, 1, 17658), -- Bubbly Fissure
(@OGUID+10, 188265, 571, 1, 1, 3095.937, -2048.806, 89.02545, 0.5235979, 0, 0, 0, 1, 120, 255, 1, 15595), -- Venture Bay
(@OGUID+11, 188266, 571, 1, 1, 3183.273, -1991.391, 90.70473, 2.024579, 0, 0, 0, 1, 120, 255, 1, 15595), -- Conquest Hold
(@OGUID+12, 188267, 571, 1, 1, 3183.291, -1991.38, 89.82629, 2.024579, 0, 0, 0, 1, 120, 255, 1, 15595), -- Amberpine Lodge
(@OGUID+13, 188268, 571, 1, 1, 3185.445, -1990.872, 90.65273, 4.721116, 0, 0, 0, 1, 120, 255, 1, 15595), -- Zul''Drak
(@OGUID+14, 188269, 571, 1, 1, 3184.378, -1989.682, 90.62007, 6.178466, 0, 0, 0, 1, 120, 255, 1, 15595), -- Dragonblight
(@OGUID+15, 188270, 571, 1, 1, 3096.181, -2050.726, 89.68048, 2.95833, 0, 0, 0, 1, 120, 255, 1, 15595), -- Amberpine Lodge
(@OGUID+16, 188271, 571, 1, 1, 3096.269, -2050.634, 88.82845, 2.975771, 0, 0, 0, 1, 120, 255, 1, 15595), -- Conquest Hold
(@OGUID+17, 188330, 571, 1, 1, 3785.572, -4975.321, 119.4001, 2.74889, 0, 0, 0, 1, 120, 255, 1, 15595), -- Dun Argol
(@OGUID+18, 188331, 571, 1, 1, 3785.993, -4975.519, 119.3407, 5.916667, 0, 0, 0, 1, 120, 255, 1, 15595), -- Thor Modan
(@OGUID+19, 188332, 571, 1, 1, 3785.9, -4975.272, 119.3984, 1.160642, 0, 0, 0, 1, 120, 255, 1, 15595), -- Grizzlemaw
(@OGUID+20, 188336, 571, 1, 1, 4359.022, -4089.576, 188.5192, 4.869471, 0, 0, 0, 1, 120, 255, 1, 15595), -- Dragonblight
(@OGUID+21, 188387, 571, 1, 1, 4460.03, -1060.602, 169.3596, 4.878196, 0, 0, 0, 1, 120, 255, 1, 15595), -- Grizzly Hills
(@OGUID+22, 188388, 571, 1, 1, 4459.658, -1058.771, 169.4787, 1.850049, 0, 0, 0, 1, 120, 255, 1, 15595), -- Wyrmrest Temple
(@OGUID+23, 188389, 571, 1, 1, 4460.785, -1059.484, 169.2406, 0.1483503, 0, 0, 0, 1, 120, 255, 1, 15595), -- Light''s Trust
(@OGUID+24, 188405, 571, 1, 1, 4458.938, -1059.854, 169.1528, 3.150327, 0, 0, 0, 1, 120, 255, 1, 15595), -- Wintergarde Keep
(@OGUID+25, 188406, 571, 1, 1, 4460.755, -1059.488, 168.8691, 0.08726409, 0, 0, 0, 1, 120, 255, 1, 15595), -- Zul''Drak
(@OGUID+26, 188542, 571, 1, 1, 4319.167, 580.9983, -6.637729, 2.853604, 0, 0, 0, 1, 120, 255, 1, 15595), -- Scourge Bonfire
(@OGUID+27, 188545, 571, 1, 1, 4295.252, 376.5208, -6.531718, 2.897245, 0, 0, 0, 1, 120, 255, 1, 15595), -- Scourge Bonfire
(@OGUID+28, 188547, 571, 1, 1, 4222.608, 514.5868, 11.47814, 2.495818, 0, 0, 0, 1, 120, 255, 1, 15595), -- Scourge Bonfire
(@OGUID+29, 188551, 571, 1, 1, 4924.042, 1250.615, 226.7416, 5.646141, 0, 0, 0, 1, 120, 255, 1, 15595), -- Bonfire
(@OGUID+30, 188565, 571, 1, 1, 4872.197, -1268.828, 168.1219, 4.047813, 0, 0, 0, 1, 120, 255, 1, 15595), --
(@OGUID+31, 188566, 571, 1, 1, 4869.077, -1266.7, 168.1245, 4.053197, 0, 0, 0, 1, 120, 255, 1, 15595), --
(@OGUID+32, 188567, 571, 1, 1, 4887.115, -1319.99, 169.8827, 2.763404, 0, 0, 0, 1, 120, 255, 1, 15595), --
(@OGUID+33, 188568, 571, 1, 1, 4843.478, -1238.389, 168.1355, 3.189116, 0, 0, 0, 1, 120, 255, 1, 15595), --
(@OGUID+34, 188569, 571, 1, 1, 4843.253, -1234.773, 168.0832, 3.001129, 0, 0, 0, 1, 120, 255, 1, 15595), --
(@OGUID+35, 188570, 571, 1, 1, 4834.089, -1278.816, 168.0286, 1.95314, 0, 0, 0, 1, 120, 255, 1, 15595), --
(@OGUID+36, 188571, 571, 1, 1, 4839.024, -1277.866, 168.0992, 1.88234, 0, 0, 0, 1, 120, 255, 1, 15595), --
(@OGUID+37, 188576, 571, 1, 1, 4830.733, -1281.578, 168.0519, 3.001428, 0, 0, 0, 1, 120, 255, 1, 15595), --
(@OGUID+38, 188577, 571, 1, 1, 4813.866, -1379.148, 168.2439, 1.575411, 0, 0, 0, 1, 120, 255, 1, 15595), --
(@OGUID+39, 188578, 571, 1, 1, 4759.164, -1324.038, 168.0459, 0.9814962, 0, 0, 0, 1, 120, 255, 1, 15595), --
(@OGUID+40, 188579, 571, 1, 1, 4756.252, -1322.118, 167.9957, 0.9735442, 0, 0, 0, 1, 120, 255, 1, 15595), --
(@OGUID+41, 188580, 571, 1, 1, 4594.677, -1384.538, 157.1768, 3.218987, 0, 0, 0, 1, 120, 255, 1, 15595), --
(@OGUID+42, 189294, 571, 1, 1, 3471.479, 940.9305, 153.8268, 1.727875, 0, 0, 0, 1, 120, 255, 1, 15595), -- Campfire
(@OGUID+43, 189324, 571, 1, 1, 1946.168, -5494.583, 206.8149, 4.319691, 0, 0, 0, 1, 120, 255, 1, 15595), -- Bonfire
(@OGUID+44, 189961, 571, 1, 1, 2734.848, -3931.597, 374.5498, 3.001947, 0, 0, 0, 1, 120, 255, 1, 17658), -- Campfire
(@OGUID+45, 189962, 571, 1, 1, 2710.609, -3917.27, 375.0239, 3.141593, 0, 0, 0, 1, 120, 255, 1, 17658), -- Campfire
(@OGUID+46, 189963, 571, 1, 1, 2687.596, -3977.962, 375.6875, 2.91469, 0, 0, 0, 1, 120, 255, 1, 17658), -- Campfire
(@OGUID+47, 189964, 571, 1, 1, 2674.4, -4011.544, 374.0872, 3.141593, 0, 0, 0, 1, 120, 255, 1, 15595), -- Campfire
(@OGUID+48, 189965, 571, 1, 1, 2640.501, -4069.877, 352.7829, 3.316144, 0, 0, 0, 1, 120, 255, 1, 15595), -- Campfire
(@OGUID+49, 189966, 571, 1, 1, 2652.039, -4094.349, 352.7137, 2.696529, 0, 0, 0, 1, 120, 255, 1, 15595), -- Campfire
(@OGUID+50, 190017, 571, 1, 1, 3886.404, -3854.78, 178.6396, 3.298687, 0, 0, 0, 1, 120, 255, 1, 15595), -- Bonfire
(@OGUID+51, 190018, 571, 1, 1, 3879.928, -3898.141, 177.3041, 3.298687, 0, 0, 0, 1, 120, 255, 1, 15595), -- Bonfire
(@OGUID+52, 190129, 571, 1, 1, 4093.27, -814.5311, 312.8538, 3.141593, 0, 0, 0, 1, 120, 255, 1, 17658), -- Campfire
(@OGUID+53, 190132, 571, 1, 1, 4067.972, -1217.099, 129.8714, 2.33874, 0, 0, 0, 1, 120, 255, 1, 17658), -- Bonfire
(@OGUID+54, 190134, 571, 1, 1, 4039.465, -1295.785, 130.3643, 3.194002, 0, 0, 0, 1, 120, 255, 1, 17658), -- Bonfire
(@OGUID+55, 190136, 571, 1, 1, 2901.714, -4730.744, 322.4269, 0.06981169, 0, 0, 0, 1, 120, 255, 1, 15595), -- Campfire
(@OGUID+56, 190137, 571, 1, 1, 2916.552, -4763.382, 324.672, 1.48353, 0, 0, 0, 1, 120, 255, 1, 15595), -- Campfire
(@OGUID+57, 190138, 571, 1, 1, 2929.887, -4738.271, 322.2895, 0.2967051, 0, 0, 0, 1, 120, 255, 1, 15595), -- Campfire
(@OGUID+58, 190275, 571, 1, 1, 3285.183, 1226.998, 137.6425, 2.050762, 0, 0, 0, 1, 120, 255, 1, 15595), -- Bonfire
(@OGUID+59, 190281, 571, 1, 1, 3167.204, 977.7576, 113.9504, 1.84132, 0, 0, 0, 1, 120, 255, 1, 17658), -- Bonfire
(@OGUID+60, 190662, 571, 1, 1, 2013.997, -4888.311, 211.8739, 1.413715, 0, 0, 0, 1, 120, 255, 1, 15595), -- Westguard Keep
(@OGUID+61, 191201, 571, 1, 1, 4352.986, -4139.897, 183.2539, 0.9250238, 0, 0, 0, 1, 120, 255, 1, 15595), -- Bonfire
(@OGUID+62, 191223, 571, 1, 1, 3395.608, 3933.193, 28.70841, 0.3316107, 0, 0, 0, 1, 120, 255, 1, 15595), -- Taunka''le Village
(@OGUID+63, 191224, 571, 1, 1, 3396.677, 3930.758, 28.65611, 3.47321, 0, 0, 0, 1, 120, 255, 1, 15595), -- Dragonblight
(@OGUID+64, 191241, 571, 1, 1, 3200.345, -1976.016, 85.20889, 3.036875, 0, 0, 0, 1, 120, 255, 1, 15595), -- Bonfire
(@OGUID+65, 191242, 571, 1, 1, 3201.704, -1965.061, 85.96173, 1.431168, 0, 0, 0, 1, 120, 255, 1, 15595), -- Chair
(@OGUID+66, 191243, 571, 1, 1, 3210.138, -1984.84, 85.72446, 5.471607, 0, 0, 0, 1, 120, 255, 1, 15595), -- Chair
(@OGUID+67, 191245, 571, 1, 1, 3192.13, -1984.083, 85.71163, 3.857178, 0, 0, 0, 1, 120, 255, 1, 15595), -- Chair
(@OGUID+68, 191256, 571, 1, 1, 3501.222, -4490.944, 225.8872, 2.897245, 0, 0, 0, 1, 120, 255, 1, 17658), -- Bonfire
(@OGUID+69, 191257, 571, 1, 1, 3510.455, -4590.846, 221.0397, 2.565629, 0, 0, 0, 1, 120, 255, 1, 17658), -- Bonfire
(@OGUID+70, 191333, 571, 1, 1, 3072.524, -512.8351, 124.2693, 0.8203033, 0, 0, 0, 1, 120, 255, 1, 15595), -- Bonfire
(@OGUID+71, 191791, 571, 1, 1, 5798.875, -1597.493, 234.2027, 2.10312, 0, 0, 0, 1, 120, 255, 0, 15595), --
(@OGUID+72, 192256, 571, 1, 1, 9025.685, -1178.616, 1058.108, 3.141593, 0, 0, 0, 1, 120, 255, 1, 17658), -- Gravestone
(@OGUID+73, 192555, 571, 1, 1, 6137.667, -322.4479, 436.2447, 0.1414226, 0, 0, 0, 1, 120, 255, 1, 17658), -- Bonfire
(@OGUID+74, 192722, 571, 1, 4, 7355.991, -2967.411, 906.3082, 1.727875, 0, 0, 0, 1, 120, 255, 1, 17658), -- Throne
(@OGUID+75, 192723, 571, 1, 4, 7352.724, -2973.597, 938.7529, 2.033306, 0, 0, 0, 1, 120, 255, 1, 17658), -- Throne
(@OGUID+76, 192724, 571, 1, 4, 7354.643, -2973.122, 921.2005, 5.009097, 0, 0, 0, 1, 120, 255, 1, 17658), -- Throne
(@OGUID+77, 192725, 571, 1, 4, 7348.135, -2967.436, 911.3059, 0.7417646, 0, 0, 0, 1, 120, 255, 1, 17658), -- Throne
(@OGUID+78, 192726, 571, 1, 4, 7355.149, -2969.905, 920.3154, 3.281227, 0, 0, 0, 1, 120, 255, 1, 17658), -- Throne
(@OGUID+79, 192727, 571, 1, 4, 7360.083, -2966.736, 911.498, 0.4014239, 0, 0, 0, 1, 120, 255, 1, 17658), -- Throne
(@OGUID+80, 192728, 571, 1, 4, 7360.628, -2971.285, 912.2922, 2.556908, 0, 0, 0, 1, 120, 255, 1, 17658), -- Throne
(@OGUID+81, 192729, 571, 1, 4, 7347.269, -2971.479, 912.0352, 0.1483528, 0, 0, 0, 1, 120, 255, 1, 17658), -- Throne
(@OGUID+82, 192730, 571, 1, 4, 7347.157, -2963.165, 907.7184, 2.801247, 0, 0, 0, 1, 120, 255, 1, 17658), -- Throne
(@OGUID+83, 192731, 571, 1, 4, 7362.757, -2961.672, 907.7986, 3.42085, 0, 0, 0, 1, 120, 255, 1, 17658), -- Throne
(@OGUID+84, 193196, 571, 1, 2, 4840.929, 1494.97, 209.6041, 2.103119, 0, 0, 0, 1, 120, 255, 1, 17658), -- Fordragon''s Shield
(@OGUID+85, 193197, 571, 1, 2, 4875.424, 1486.991, 209.5768, 2.120576, 0, 0, 0, 1, 120, 255, 1, 17658), -- Saurfang''s Battle Armor
(@OGUID+86, 193198, 571, 1, 2, 4875.969, 1487.23, 209.6242, 5.707228, 0, 0, 0, 1, 120, 255, 1, 17658), -- Shoulder [PH]
(@OGUID+87, 193220, 571, 1, 2, 4901.706, 1501.568, 214.8973, 0.0005237369, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+88, 193221, 571, 1, 2, 4899.952, 1499.167, 214.9082, 5.41925, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+89, 193222, 571, 1, 2, 4867.967, 1505.212, 209.1965, 1.82941, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+90, 193223, 571, 1, 2, 4867.679, 1501.424, 209.7898, 0.969179, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+91, 193224, 571, 1, 2, 4867.233, 1510.344, 210.8179, 2.48454, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+92, 193225, 571, 1, 2, 4869.894, 1498.136, 209.9754, 2.077466, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+93, 193226, 571, 1, 2, 4868.827, 1515.047, 210.5834, 1.567609, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+94, 193227, 571, 1, 2, 4872.966, 1514.59, 212.3312, 4.885982, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+95, 193228, 571, 1, 2, 4867.919, 1513.521, 211.374, 4.224219, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+96, 193229, 571, 1, 2, 4899.046, 1500.026, 213.7757, 4.281601, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+97, 193230, 571, 1, 2, 4875.33, 1483.97, 209.321, 1.099933, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+98, 193231, 571, 1, 2, 4875.167, 1482.726, 209.5813, 3.899255, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+99, 193232, 571, 1, 2, 4873.677, 1479.37, 209.2619, 6.044956, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+100, 193233, 571, 1, 2, 4878.027, 1483.453, 209.3674, 3.726801, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+101, 193234, 571, 1, 2, 4874.569, 1482.123, 209.5809, 5.821372, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+102, 193235, 571, 1, 2, 4874.725, 1480.063, 209.5809, 3.477762, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+103, 193236, 571, 1, 2, 4877.155, 1482.281, 209.5077, 6.219547, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+104, 193237, 571, 1, 2, 4879.968, 1484.747, 209.8505, 4.501981, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+105, 193238, 571, 1, 2, 4876.323, 1484.97, 208.3138, 2.230834, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+106, 193239, 571, 1, 2, 4877.1, 1484.656, 209.1863, 2.269449, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+107, 193240, 571, 1, 2, 4871.932, 1485.224, 209.3937, 1.457871, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+108, 193241, 571, 1, 2, 4868.574, 1498.977, 210.52, 0.1396255, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+109, 193242, 571, 1, 2, 4868.924, 1496.627, 210.149, 3.220151, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+110, 193243, 571, 1, 2, 4866.884, 1497.613, 209.2193, 5.581869, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+111, 193244, 571, 1, 2, 4870.409, 1485.929, 208.8148, 2.012669, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+112, 193245, 571, 1, 2, 4873.674, 1463.747, 209.9446, 1.692968, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+113, 193246, 571, 1, 2, 4867.43, 1463.248, 208.1823, 3.382769, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+114, 193247, 571, 1, 2, 4870.533, 1463.094, 209.2539, 2.985031, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+115, 193248, 571, 1, 2, 4872.965, 1463.778, 208.817, 0.3284273, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+116, 193249, 571, 1, 2, 4866.135, 1454.382, 209.254, 2.906489, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+117, 193250, 571, 1, 2, 4863.497, 1511.99, 211.0073, 5.427976, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+118, 193251, 571, 1, 2, 4862.127, 1509.542, 210.2737, 4.765272, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+119, 193252, 571, 1, 2, 4865.178, 1507.217, 210.3379, 5.044526, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+120, 193253, 571, 1, 2, 4853.508, 1504.255, 209.7053, 1.998924, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+121, 193254, 571, 1, 2, 4849.161, 1504.778, 210.4205, 4.066619, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+122, 193255, 571, 1, 2, 4835.896, 1488.719, 209.5815, 3.416903, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+123, 193256, 571, 1, 2, 4841.354, 1482.227, 209.5805, 1.850049, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+124, 193257, 571, 1, 2, 4841.196, 1489.903, 209.5813, 5.725396, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+125, 193258, 571, 1, 2, 4840.608, 1484.361, 209.5813, 2.016231, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+126, 193259, 571, 1, 2, 4839.124, 1486.542, 209.2619, 1.978337, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+127, 193260, 571, 1, 2, 4843.821, 1489.113, 209.283, 5.184155, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+128, 193261, 571, 1, 2, 4842.286, 1483.191, 209.5809, 0.3759405, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+129, 193262, 571, 1, 2, 4845.386, 1486.806, 209.4725, 1.254085, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+130, 193263, 571, 1, 2, 4835.046, 1490.908, 209.2909, 1.831047, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+131, 193264, 571, 1, 2, 4838.369, 1493.165, 209.3897, 2.568887, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+132, 193265, 571, 1, 2, 4842.897, 1491.009, 209.5809, 5.959332, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+133, 193266, 571, 1, 2, 4844.97, 1489.892, 209.3359, 3.932379, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+134, 193267, 571, 1, 2, 4847.749, 1488.823, 209.301, 5.789437, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+135, 193268, 571, 1, 2, 4841.975, 1486.234, 209.4944, 5.791942, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+136, 193269, 571, 1, 2, 4844.339, 1484.116, 209.4908, 3.889533, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+137, 193270, 571, 1, 2, 4840.96, 1481.422, 209.4966, 4.98909, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+138, 193271, 571, 1, 2, 4844.502, 1486.135, 209.3802, 1.443149, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+139, 193272, 571, 1, 2, 4836.853, 1488.425, 209.4966, 3.060501, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+140, 193273, 571, 1, 2, 4844.616, 1493.514, 209.3608, 3.11481, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+141, 193274, 571, 1, 2, 4847.851, 1486.434, 209.3608, 1.151302, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+142, 193275, 571, 1, 2, 4841.349, 1488.082, 208.3138, 3.749274, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+143, 193276, 571, 1, 2, 4842.697, 1487.741, 209.3854, 3.587177, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+144, 193277, 571, 1, 2, 4847.485, 1488.835, 207.9903, 0.485505, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+145, 193278, 571, 1, 2, 4856.974, 1498.668, 210.0112, 5.593781, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+146, 193279, 571, 1, 2, 4860.162, 1499.833, 209.4969, 5.515764, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+147, 193280, 571, 1, 2, 4862.285, 1462.604, 209.3651, 4.037887, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+148, 193281, 571, 1, 2, 4862.758, 1457.965, 209.9445, 0.4537852, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+149, 193282, 571, 1, 2, 4859.121, 1463.345, 209.3854, 5.777565, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+150, 193283, 571, 1, 2, 4861.292, 1455.554, 209.3854, 5.742657, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+151, 193284, 571, 1, 2, 4865.374, 1460.495, 209.1164, 0.3146807, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+152, 193285, 571, 1, 2, 4865.479, 1453.684, 209.7114, 5.969027, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+153, 193286, 571, 1, 2, 4840.913, 1402.094, 192.9591, 5.131985, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+154, 193287, 571, 1, 2, 4837.317, 1400.465, 192.6397, 1.384923, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+155, 193288, 571, 1, 2, 4842.942, 1402.059, 192.9587, 5.365919, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+156, 193289, 571, 1, 2, 4836.487, 1403.299, 192.8744, 2.467085, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+157, 193290, 571, 1, 2, 4840.022, 1400.498, 191.6916, 3.15663, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+158, 193291, 571, 1, 2, 4854.309, 1417.488, 193.4538, 2.059487, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+159, 193292, 571, 1, 2, 4848.659, 1414.785, 191.6916, 3.749274, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+160, 193293, 571, 1, 2, 4852.316, 1415.811, 192.7632, 2.889032, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+161, 193294, 571, 1, 2, 4856.42, 1416.295, 192.7632, 1.702218, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+162, 193295, 571, 1, 2, 4838.964, 1398.37, 192.9591, 1.928963, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+163, 193296, 571, 1, 2, 4842.648, 1399.972, 192.6608, 4.590742, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+164, 193297, 571, 1, 2, 4842.655, 1397.182, 192.8535, 0.6606718, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+165, 193298, 571, 1, 2, 4844.037, 1399.976, 192.7137, 3.338978, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+166, 193299, 571, 1, 2, 4844.027, 1397.335, 192.6788, 4.733513, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+167, 193300, 571, 1, 2, 4839.507, 1398.616, 192.8744, 5.198529, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+168, 193301, 571, 1, 2, 4840.949, 1399.462, 192.7632, 2.993751, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+169, 193302, 571, 1, 2, 4844.576, 1399.304, 191.3681, 5.878576, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+170, 193303, 571, 1, 2, 4819.022, 1437.061, 195.9568, 0.7853968, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+171, 193304, 571, 1, 2, 4814.786, 1441.675, 193.9325, 2.475178, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+172, 193305, 571, 1, 2, 4816.835, 1438.477, 195.4229, 1.614948, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+173, 193306, 571, 1, 2, 4818.494, 1434.955, 194.9861, 6.227641, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+174, 193307, 571, 1, 2, 4804.619, 1464.389, 193.2142, 0.8726636, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+175, 193308, 571, 1, 2, 4802.317, 1465.608, 192.5236, 1.702218, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+176, 193309, 571, 1, 2, 4838.382, 1400.665, 192.9736, 0.165805, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+177, 193310, 571, 1, 2, 4804.275, 1462.243, 192.1949, 0.03171997, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+178, 193311, 571, 1, 2, 4818.627, 1432.585, 195.6188, 0.7931821, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+179, 193312, 571, 1, 2, 4818.935, 1434.288, 194.9375, 6.100451, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+180, 193313, 571, 1, 2, 4802.595, 1414.417, 193.2174, 5.02655, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+181, 193314, 571, 1, 2, 4808.629, 1416.099, 191.6722, 0.4331469, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+182, 193315, 571, 1, 2, 4805.602, 1422.391, 192.5222, 3.915716, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+183, 193316, 571, 1, 2, 4806.971, 1413.819, 192.5371, 0.8470061, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+184, 193317, 571, 1, 2, 4800.958, 1415.844, 192.1961, 4.185608, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+185, 193318, 571, 1, 2, 4814.53, 1421.677, 193.837, 4.031712, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+186, 193319, 571, 1, 2, 4818.464, 1416.958, 192.3035, 0.1713461, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+187, 193320, 571, 1, 2, 4816.804, 1417.587, 192.5431, 2.827954, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+188, 193321, 571, 1, 2, 4813.185, 1424.823, 193.4423, 2.793048, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+189, 193322, 571, 1, 2, 4810.121, 1419.193, 193.3252, 3.648265, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+190, 193323, 571, 1, 2, 4807.363, 1428.156, 193.9222, 3.0194, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+191, 193324, 571, 1, 2, 4806.887, 1426.839, 192.9712, 0.3234065, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+192, 193325, 571, 1, 2, 4822.01, 1384.936, 193.2164, 4.05789, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+193, 193326, 571, 1, 2, 4821.838, 1389.484, 192.8276, 1.342961, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+194, 193327, 571, 1, 2, 4826.813, 1380.915, 191.5601, 5.747677, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+195, 193328, 571, 1, 2, 4824.364, 1383.818, 192.6317, 4.887444, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+196, 193329, 571, 1, 2, 4822.135, 1389.366, 192.6317, 3.831524, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+197, 193330, 571, 1, 2, 4823.995, 1380.991, 192.6317, 6.161535, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+198, 193331, 571, 1, 2, 4822.26, 1387.094, 192.1949, 3.21697, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+199, 193332, 571, 1, 2, 4799.996, 1468.615, 191.452, 2.562449, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+200, 193333, 571, 1, 2, 4792.137, 1470.661, 193.0653, 6.161014, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+201, 193334, 571, 1, 2, 4794.401, 1474.757, 192.7633, 4.957259, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+202, 193335, 571, 1, 2, 4790.183, 1467.854, 192.762, 4.922352, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+203, 193336, 571, 1, 2, 4796.58, 1468.24, 192.1685, 5.777565, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+204, 193337, 571, 1, 2, 4784.452, 1470.938, 192.9553, 4.127707, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+205, 193338, 571, 1, 2, 4784.479, 1470.891, 192.5763, 0.9255483, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+206, 193339, 571, 1, 2, 4772.658, 1434.781, 193.2318, 3.691376, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+207, 193340, 571, 1, 2, 4774.897, 1439.738, 192.737, 3.725339, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+208, 193341, 571, 1, 2, 4775.096, 1434.278, 192.5412, 4.040963, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+209, 193342, 571, 1, 2, 4796.264, 1462.712, 192.9666, 6.045015, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+210, 193343, 571, 1, 2, 4790.44, 1461.151, 192.981, 5.148722, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+211, 193344, 571, 1, 2, 4791.811, 1461.446, 192.6317, 2.452708, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+212, 193345, 571, 1, 2, 4796.167, 1458.012, 192.8273, 4.96452, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+213, 193346, 571, 1, 2, 4778.761, 1431.167, 191.4696, 5.21535, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+214, 193347, 571, 1, 2, 4772.64, 1435.917, 192.8096, 5.940294, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+215, 193348, 571, 1, 2, 4774.135, 1431.061, 192.5412, 5.821197, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+216, 193349, 571, 1, 2, 4772.312, 1368.96, 179.3861, 0.8115751, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+217, 193350, 571, 1, 2, 4768.762, 1368.182, 178.913, 1.444671, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+218, 193351, 571, 1, 2, 4768.806, 1368.814, 178.492, 0.1401508, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+219, 193352, 571, 1, 2, 4773.032, 1368.717, 178.4498, 6.18401, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+220, 193353, 571, 1, 2, 4769.212, 1371.894, 177.5704, 3.96744, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+221, 193354, 571, 1, 2, 4753.28, 1340.752, 168.824, 5.942847, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+222, 193355, 571, 1, 2, 4755.793, 1348.842, 171.9237, 2.460914, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+223, 193356, 571, 1, 2, 4748.543, 1338.941, 166.3824, 5.994266, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+224, 193357, 571, 1, 2, 4755.62, 1346.563, 169.7958, 1.349443, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+225, 193358, 571, 1, 2, 4753.616, 1343.335, 168.9523, 0.4892147, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+226, 193359, 571, 1, 2, 4756.417, 1343.859, 170.2456, 1.763303, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+227, 193360, 571, 1, 2, 4751.151, 1340.321, 166.6075, 5.101904, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+228, 193361, 571, 1, 2, 4734.48, 1318.531, 157.1364, 1.850571, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+229, 193362, 571, 1, 2, 4729.611, 1321.644, 157.5598, 3.769916, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+230, 193363, 571, 1, 2, 4730.31, 1318.991, 155.5435, 4.299054, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+231, 193364, 571, 1, 2, 4730.522, 1317.274, 156.2261, 2.566151, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+232, 193365, 571, 1, 2, 4845.421, 1487.394, 209.5798, 3.621566, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+233, 193366, 571, 1, 2, 4873.986, 1482.95, 209.5806, 2.321287, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+234, 193367, 571, 1, 2, 4877.768, 1484.813, 209.6253, 0.9861118, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+235, 193368, 571, 1, 2, 4843.112, 1399.606, 192.9736, 4.04044, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+236, 193369, 571, 1, 2, 4733.987, 1316.142, 156.3821, 4.214973, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+237, 193370, 571, 1, 2, 4771.53, 1370.231, 177.6764, 3.473215, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+238, 193371, 571, 1, 2, 4747.052, 1371.73, 174.6061, 3.272515, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+239, 193372, 571, 1, 2, 4745.647, 1372.851, 180.6194, 0.2879769, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+240, 193373, 571, 1, 2, 4748.801, 1370.48, 177.2103, 1.125736, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+241, 193374, 571, 1, 2, 4739.766, 1375.458, 175.0408, 5.899213, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+242, 193375, 571, 1, 2, 4747.372, 1376.691, 177.1419, 4.241152, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+243, 193376, 571, 1, 2, 4729.662, 1338.746, 165.7118, 1.483528, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+244, 193377, 571, 1, 2, 4724.683, 1339.089, 165.6361, 0.9512024, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+245, 193378, 571, 1, 2, 4722.371, 1315.175, 153.0163, 4.712391, 0, 0, 0, 1, 120, 255, 1, 15595),
(@OGUID+246, 193379, 571, 1, 2, 4722.186, 1312.745, 151.8177, 2.207837, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+247, 193380, 571, 1, 2, 4721.955, 1313.016, 155.3777, 4.267334, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+248, 193381, 571, 1, 2, 4828.909, 1364.957, 187.7651, 3.141593, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+249, 193382, 571, 1, 2, 4767.654, 1414.143, 182.9588, 3.141593, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+250, 193383, 571, 1, 2, 4885.875, 1446.399, 197.2411, 3.141593, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+251, 193384, 571, 1, 2, 4967.423, 1382.576, 280.6783, 3.141593, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+252, 193385, 571, 1, 2, 4819.641, 1494.38, 197.8983, 3.141593, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+253, 193386, 571, 1, 2, 4760.751, 1331.356, 166.7298, 1.483529, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+254, 193388, 571, 1, 2, 4841.913, 1491.074, 209.5806, 5.026549, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+255, 193389, 571, 1, 2, 4854.66, 1501.157, 209.4814, 2.347464, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+256, 193390, 571, 1, 2, 4867.81, 1503.073, 209.8845, 4.398232, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+257, 193391, 571, 1, 2, 4806.318, 1418.541, 192.7293, 3.996809, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+258, 193392, 571, 1, 2, 4809.103, 1418.015, 192.8921, 1.754055, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+259, 193393, 571, 1, 2, 4866.126, 1504.92, 209.6104, 3.586657, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+260, 193394, 571, 1, 2, 4822.109, 1385.169, 190.8455, 0.5934095, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+261, 193395, 571, 1, 2, 4770.155, 1370.927, 176.3797, 2.809977, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+262, 193396, 571, 1, 2, 4794.685, 1457.065, 192.5883, 2.644167, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+263, 193397, 571, 1, 2, 4733.944, 1315.556, 156.3676, 5.009097, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+264, 193398, 571, 1, 2, 4848.95, 1412.977, 192.9511, 4.468044, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+265, 193399, 571, 1, 2, 4859.428, 1457.759, 209.3438, 3.168109, 0, 0, 0, 1, 120, 255, 1, 17658),
(@OGUID+266, 193986, 571, 1, 1, 7917.546, -2461.021, 1135.937, 3.071766, 0, 0, 0, 1, 120, 255, 1, 15595), -- Gravestone
(@OGUID+267, 194127, 571, 1, 1, 6099.222, -1077.966, 404.2272, 2.948969, 0, 0, 0, 1, 120, 255, 1, 17658), -- Anvil
(@OGUID+268, 194128, 571, 1, 1, 6096.169, -1074.005, 404.5583, 0.5148721, 0, 0, 0, 1, 120, 255, 1, 17658), -- Forge
(@OGUID+269, 194155, 571, 1, 1, 3848.472, -4069.614, 200.835, 6.058595, 0, 0, 0, 1, 120, 255, 1, 15595), -- Mysterious Wreckage
(@OGUID+270, 194535, 571, 1, 1, 4957.066, 1291.01, 234.8064, 4.06662, 0, 0, 0, 1, 120, 255, 1, 15595), -- Campfire
(@OGUID+271, 194540, 571, 1, 1, 6219.549, 1.6977, 410.1644, 0.6981294, 0, 0, 0, 1, 120, 255, 1, 17658), -- Bonfire
(@OGUID+272, 194545, 571, 1, 1, 3833.437, 1629.639, 89.75687, 3.028127, 0, 0, 0, 1, 120, 255, 1, 17658), -- Brazier
(@OGUID+273, 194546, 571, 1, 1, 3823.038, 1623.943, 89.76097, 3.865906, 0, 0, 0, 1, 120, 255, 1, 17658), -- Brazier
(@OGUID+274, 194547, 571, 1, 1, 3887.406, 1585.241, 90.91903, 1.204277, 0, 0, 0, 1, 120, 255, 1, 17658), -- Brazier
(@OGUID+275, 194548, 571, 1, 1, 3887.188, 1596.438, 90.96321, 2.10312, 0, 0, 0, 1, 120, 255, 1, 17658), -- Brazier
(@OGUID+276, 194832, 571, 1, 1, 6452.789, 2345.028, 464.2545, 4.497677, 0, 0, 0, 1, 120, 255, 1, 15595),
(@OGUID+277, 194833, 571, 1, 1, 6454.819, 2346.186, 464.1093, 6.165739, 0, 0, 0, 1, 120, 255, 1, 15595),
(@OGUID+278, 194834, 571, 1, 1, 6424.471, 2383.731, 466.7144, 6.260079, 0, 0, 0, 1, 120, 255, 1, 15595),
(@OGUID+279, 194835, 571, 1, 1, 6422.702, 2385.566, 466.9037, 4.598919, 0, 0, 0, 1, 120, 255, 1, 15595),
(@OGUID+280, 194836, 571, 1, 1, 6429.28, 2385.773, 466.5732, 3.505927, 0, 0, 0, 1, 120, 255, 1, 15595),
(@OGUID+281, 194837, 571, 1, 1, 6425.83, 2383.571, 466.5943, 3.120276, 0, 0, 0, 1, 120, 255, 1, 15595),
(@OGUID+282, 194838, 571, 1, 1, 6425.671, 2386.106, 465.9078, 5.982333, 0, 0, 0, 1, 120, 255, 1, 15595);
File diff suppressed because one or more lines are too long
@@ -0,0 +1,4 @@
ALTER TABLE `points_of_interest` ADD `VerifiedBuild` SMALLINT(5) DEFAULT '0';
ALTER TABLE `spell_target_position` ADD `VerifiedBuild` SMALLINT(5) DEFAULT '0';
UPDATE `gameobject` SET `phasemask`=256 WHERE `guid`=76992;
File diff suppressed because one or more lines are too long
-1
View File
@@ -28,7 +28,6 @@
void UnitAI::AttackStart(Unit* victim)
{
if (victim && me->Attack(victim, true))
me->GetMotionMaster()->MoveChase(victim);
}
@@ -478,10 +478,7 @@ void BossAI::_JustDied()
events.Reset();
summons.DespawnAll();
if (instance)
{
instance->SetBossState(_bossId, DONE);
instance->SaveToDB();
}
}
void BossAI::_EnterCombat()
@@ -527,7 +527,7 @@ void GameObject::Update(uint32 diff)
{
case GAMEOBJECT_TYPE_DOOR:
case GAMEOBJECT_TYPE_BUTTON:
if (GetGOInfo()->GetAutoCloseTime() && (m_cooldownTime < time(NULL)))
if (m_cooldownTime && (m_cooldownTime < time(NULL)))
ResetDoorOrButton();
break;
case GAMEOBJECT_TYPE_GOOBER:
@@ -569,10 +569,12 @@ void GameObject::Update(uint32 diff)
CastSpell(target, goInfo->trap.spellId);
// Template value or 4 seconds
m_cooldownTime = time(NULL) + (goInfo->trap.cooldown ? goInfo->trap.cooldown : uint32(4));
m_cooldownTime = time(NULL) + (goInfo->trap.cooldown ? goInfo->trap.cooldown : uint32(4));
if (goInfo->trap.type == 1)
SetLootState(GO_JUST_DEACTIVATED);
else if (!goInfo->trap.type)
SetLootState(GO_READY);
// Battleground gameobjects have data2 == 0 && data5 == 3
if (!goInfo->trap.diameter && goInfo->trap.cooldown == 3)
@@ -371,6 +371,12 @@ void TradeData::SetMoney(uint64 money)
if (m_money == money)
return;
if (!m_player->HasEnoughMoney(money))
{
m_player->GetSession()->SendTradeStatus(TRADE_STATUS_BUSY);
return;
}
m_money = money;
SetAccepted(false);
@@ -85,8 +85,8 @@ bool Transport::Create(uint32 guidlow, uint32 entry, uint32 mapid, float x, floa
_triggeredDepartureEvent = false;
m_goValue.Transport.PathProgress = 0;
SetFloatValue(OBJECT_FIELD_SCALE_X, goinfo->size);
SetUInt32Value(GAMEOBJECT_FACTION, goinfo->faction);
SetObjectScale(goinfo->size);
SetFaction(goinfo->faction);
SetUInt32Value(GAMEOBJECT_FLAGS, goinfo->flags);
SetPeriod(tInfo->pathTime);
SetEntry(goinfo->entry);
@@ -209,8 +209,14 @@ void Transport::Update(uint32 diff)
3. transport moves from active to inactive grid
4. the grid that transport is currently in unloads
*/
if (_staticPassengers.empty() && GetMap()->IsGridLoaded(GetPositionX(), GetPositionY())) // 2.
bool gridActive = GetMap()->IsGridLoaded(GetPositionX(), GetPositionY());
if (_staticPassengers.empty() && gridActive) // 2.
LoadStaticPassengers();
else if (!_staticPassengers.empty() && !gridActive)
// 4. - if transports stopped on grid edge, some passengers can remain in active grids
// unload all static passengers otherwise passengers won't load correctly when the grid that transport is currently in becomes active
UnloadStaticPassengers();
}
}
@@ -447,6 +453,7 @@ TempSummon* Transport::SummonPassenger(uint32 entry, Position const& pos, TempSu
void Transport::UpdatePosition(float x, float y, float z, float o)
{
bool newActive = GetMap()->IsGridLoaded(x, y);
Cell oldCell(GetPositionX(), GetPositionY());
Relocate(x, y, z, o);
UpdateModelPosition();
@@ -461,7 +468,7 @@ void Transport::UpdatePosition(float x, float y, float z, float o)
*/
if (_staticPassengers.empty() && newActive) // 1.
LoadStaticPassengers();
else if (!_staticPassengers.empty() && !newActive && Cell(x, y).DiffGrid(Cell(GetPositionX(), GetPositionY()))) // 3.
else if (!_staticPassengers.empty() && !newActive && oldCell.DiffGrid(Cell(GetPositionX(), GetPositionY()))) // 3.
UnloadStaticPassengers();
else
UpdatePassengerPositions(_staticPassengers);
+2 -2
View File
@@ -3657,8 +3657,8 @@ void ObjectMgr::LoadQuests()
"QuestGiverTextWindow, QuestGiverTargetName, QuestTurnTextWindow, QuestTurnTargetName, SoundAccept, SoundTurnIn, "
// 150 151 152 153 154 155 156 157 158 159
"DetailsEmote1, DetailsEmote2, DetailsEmote3, DetailsEmote4, DetailsEmoteDelay1, DetailsEmoteDelay2, DetailsEmoteDelay3, DetailsEmoteDelay4, EmoteOnIncomplete, EmoteOnComplete, "
// 160 161 162 163 164 165 166 167 168
"OfferRewardEmote1, OfferRewardEmote2, OfferRewardEmote3, OfferRewardEmote4, OfferRewardEmoteDelay1, OfferRewardEmoteDelay2, OfferRewardEmoteDelay3, OfferRewardEmoteDelay4, WDBVerified"
// 160 161 162 163 164 165 166 167
"OfferRewardEmote1, OfferRewardEmote2, OfferRewardEmote3, OfferRewardEmote4, OfferRewardEmoteDelay1, OfferRewardEmoteDelay2, OfferRewardEmoteDelay3, OfferRewardEmoteDelay4"
" FROM quest_template");
if (!result)
{
+1 -1
View File
@@ -433,7 +433,7 @@ struct BroadcastText
uint32 SoundId;
uint32 Unk1;
uint32 Unk2;
// uint32 WDBVerified;
// uint32 VerifiedBuild;
std::string const& GetText(LocaleConstant locale = DEFAULT_LOCALE, uint8 gender = GENDER_MALE, bool forceGender = false) const
{
@@ -785,7 +785,6 @@ void WorldSession::HandleSetTradeGoldOpcode(WorldPacket& recvPacket)
if (!my_trade)
return;
// gold can be incorrect, but this is checked at trade finished.
my_trade->SetMoney(gold);
}
+25 -25
View File
@@ -1544,11 +1544,8 @@ void Map::UnloadAll()
Transport* transport = *itr;
++itr;
transport->RemoveFromWorld();
delete transport;
RemoveFromMap<Transport>(transport, true);
}
_transports.clear();
}
// *****************************
@@ -2648,27 +2645,30 @@ void Map::RemoveAllObjectsInRemoveList()
RemoveFromMap(corpse, true);
break;
}
case TYPEID_DYNAMICOBJECT:
RemoveFromMap((DynamicObject*)obj, true);
break;
case TYPEID_AREATRIGGER:
RemoveFromMap((AreaTrigger*)obj, true);
break;
case TYPEID_GAMEOBJECT:
if (Transport* transport = obj->ToGameObject()->ToTransport())
RemoveFromMap(transport, true);
else
RemoveFromMap(obj->ToGameObject(), true);
break;
case TYPEID_UNIT:
// in case triggered sequence some spell can continue casting after prev CleanupsBeforeDelete call
// make sure that like sources auras/etc removed before destructor start
obj->ToCreature()->CleanupsBeforeDelete();
RemoveFromMap(obj->ToCreature(), true);
break;
default:
TC_LOG_ERROR("maps", "Non-grid object (TypeId: %u) is in grid object remove list, ignored.", obj->GetTypeId());
break;
case TYPEID_DYNAMICOBJECT:
RemoveFromMap(obj->ToDynObject(), true);
break;
case TYPEID_AREATRIGGER:
RemoveFromMap((AreaTrigger*)obj, true);
break;
case TYPEID_GAMEOBJECT:
{
GameObject* go = obj->ToGameObject();
if (Transport* transport = go->ToTransport())
RemoveFromMap(transport, true);
else
RemoveFromMap(go, true);
break;
}
case TYPEID_UNIT:
// in case triggered sequence some spell can continue casting after prev CleanupsBeforeDelete call
// make sure that like sources auras/etc removed before destructor start
obj->ToCreature()->CleanupsBeforeDelete();
RemoveFromMap(obj->ToCreature(), true);
break;
default:
TC_LOG_ERROR("maps", "Non-grid object (TypeId: %u) is in grid object remove list, ignored.", obj->GetTypeId());
break;
}
i_objectsToRemove.erase(itr);
+1 -1
View File
@@ -162,7 +162,7 @@ Quest::Quest(Field* questRecord)
for (int i = 0; i < QUEST_EMOTE_COUNT; ++i)
OfferRewardEmoteDelay[i] = questRecord[164+i].GetInt32();
// int32 WDBVerified = questRecord[168].GetInt32();
//int32 VerifiedBuild = questRecord[168].GetInt32();
if (SpecialFlags & QUEST_SPECIAL_FLAGS_AUTO_ACCEPT)
Flags |= QUEST_FLAGS_AUTO_ACCEPT;
+1 -11
View File
@@ -1305,17 +1305,7 @@ void Aura::HandleAuraSpecificMods(AuraApplication const* aurApp, Unit* caster, b
if (target->HasAura(61988) && !target->HasAura(25771))
target->RemoveAura(61988);
break;
case 72368: // Shared Suffering
case 72369:
if (caster)
{
if (AuraEffect* aurEff = GetEffect(0))
{
int32 remainingDamage = aurEff->GetAmount() * (aurEff->GetTotalTicks() - aurEff->GetTickNumber());
if (remainingDamage > 0)
caster->CastCustomSpell(caster, 72373, NULL, &remainingDamage, NULL, true);
}
}
default:
break;
}
break;
+12
View File
@@ -3385,6 +3385,18 @@ void SpellMgr::LoadSpellInfoCorrections()
break;
// ENDOF TRIAL OF THE CRUSADER SPELLS
//
// HALLS OF REFLECTION SPELLS
//
case 72435: // Defiling Horror
case 72452: // Defiling Horror
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_60_YARDS); // 60yd
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_60_YARDS); // 60yd
break;
case 72900: // Start Halls of Reflection Quest AE
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
break;
// ENDOF HALLS OF REFLECTION SPELLS
//
// ICECROWN CITADEL SPELLS
//
// THESE SPELLS ARE WORKING CORRECTLY EVEN WITHOUT THIS HACK
@@ -25,7 +25,7 @@ enum Texts
SAY_SLAY = 1,
SAY_DEATH = 2,
SAY_IMPENDING_DESPAIR = 3,
SAY_DEFILING_HORROR = 4,
SAY_DEFILING_HORROR = 4
};
enum Spells
@@ -33,8 +33,9 @@ enum Spells
SPELL_QUIVERING_STRIKE = 72422,
SPELL_IMPENDING_DESPAIR = 72426,
SPELL_DEFILING_HORROR = 72435,
SPELL_HOPELESSNESS = 72395,
H_SPELL_HOPELESSNESS = 72390, /// @todo not in dbc. Add in DB.
SPELL_HOPELESSNESS_1 = 72395,
SPELL_HOPELESSNESS_2 = 72396,
SPELL_HOPELESSNESS_3 = 72397
};
enum Events
@@ -42,99 +43,106 @@ enum Events
EVENT_NONE,
EVENT_QUIVERING_STRIKE,
EVENT_IMPENDING_DESPAIR,
EVENT_DEFILING_HORROR,
EVENT_DEFILING_HORROR
};
uint32 const HopelessnessHelper[3] = { SPELL_HOPELESSNESS_1, SPELL_HOPELESSNESS_2, SPELL_HOPELESSNESS_3 };
class boss_falric : public CreatureScript
{
public:
boss_falric() : CreatureScript("boss_falric") { }
public:
boss_falric() : CreatureScript("boss_falric") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_falricAI>(creature);
}
struct boss_falricAI : public boss_horAI
{
boss_falricAI(Creature* creature) : boss_horAI(creature) { }
uint8 uiHopelessnessCount;
void Reset() override
struct boss_falricAI : public boss_horAI
{
boss_horAI::Reset();
boss_falricAI(Creature* creature) : boss_horAI(creature, DATA_FALRIC) { }
uiHopelessnessCount = 0;
instance->SetBossState(DATA_FALRIC_EVENT, NOT_STARTED);
}
void EnterCombat(Unit* /*who*/) override
{
Talk(SAY_AGGRO);
instance->SetBossState(DATA_FALRIC_EVENT, IN_PROGRESS);
events.ScheduleEvent(EVENT_QUIVERING_STRIKE, 23000);
events.ScheduleEvent(EVENT_IMPENDING_DESPAIR, 9000);
events.ScheduleEvent(EVENT_DEFILING_HORROR, urand(25000, 45000)); /// @todo adjust timer.
}
void JustDied(Unit* /*killer*/) override
{
Talk(SAY_DEATH);
instance->SetBossState(DATA_FALRIC_EVENT, DONE);
}
void KilledUnit(Unit* /*victim*/) override
{
Talk(SAY_SLAY);
}
void UpdateAI(uint32 diff) override
{
// Return since we have no target
if (!UpdateVictim())
return;
events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
switch (events.ExecuteEvent())
void Reset() override
{
case EVENT_QUIVERING_STRIKE:
DoCast(SPELL_QUIVERING_STRIKE);
events.ScheduleEvent(EVENT_QUIVERING_STRIKE, 10000);
break;
case EVENT_IMPENDING_DESPAIR:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
{
Talk(SAY_IMPENDING_DESPAIR);
DoCast(target, SPELL_IMPENDING_DESPAIR);
}
events.ScheduleEvent(EVENT_IMPENDING_DESPAIR, 13000);
break;
case EVENT_DEFILING_HORROR:
DoCast(SPELL_DEFILING_HORROR);
events.ScheduleEvent(EVENT_DEFILING_HORROR, urand(25000, 45000)); /// @todo adjust timer.
break;
boss_horAI::Reset();
_hopelessnessCount = 0;
}
if ((uiHopelessnessCount < 1 && HealthBelowPct(66))
|| (uiHopelessnessCount < 2 && HealthBelowPct(33))
|| (uiHopelessnessCount < 3 && HealthBelowPct(10)))
void EnterCombat(Unit* /*who*/) override
{
uiHopelessnessCount++;
DoCast(DUNGEON_MODE(SPELL_HOPELESSNESS, H_SPELL_HOPELESSNESS));
Talk(SAY_AGGRO);
DoZoneInCombat();
instance->SetBossState(DATA_FALRIC, IN_PROGRESS);
events.ScheduleEvent(EVENT_QUIVERING_STRIKE, 23000);
events.ScheduleEvent(EVENT_IMPENDING_DESPAIR, 9000);
events.ScheduleEvent(EVENT_DEFILING_HORROR, urand(21000, 39000));
}
DoMeleeAttackIfReady();
}
};
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
{
if ((_hopelessnessCount < 1 && me->HealthBelowPctDamaged(66, damage))
|| (_hopelessnessCount < 2 && me->HealthBelowPctDamaged(33, damage))
|| (_hopelessnessCount < 3 && me->HealthBelowPctDamaged(10, damage)))
{
if (_hopelessnessCount)
me->RemoveOwnedAura(sSpellMgr->GetSpellIdForDifficulty(HopelessnessHelper[_hopelessnessCount - 1], me));
DoCast(me, HopelessnessHelper[_hopelessnessCount]);
++_hopelessnessCount;
}
}
void JustDied(Unit* /*killer*/) override
{
Talk(SAY_DEATH);
events.Reset();
instance->SetBossState(DATA_FALRIC, DONE);
}
void KilledUnit(Unit* who) override
{
if (who->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_SLAY);
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
switch (events.ExecuteEvent())
{
case EVENT_QUIVERING_STRIKE:
DoCastVictim(SPELL_QUIVERING_STRIKE);
events.ScheduleEvent(EVENT_QUIVERING_STRIKE, 10000);
break;
case EVENT_IMPENDING_DESPAIR:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 45.0f, true))
{
Talk(SAY_IMPENDING_DESPAIR);
DoCast(target, SPELL_IMPENDING_DESPAIR);
}
events.ScheduleEvent(EVENT_IMPENDING_DESPAIR, 13000);
break;
case EVENT_DEFILING_HORROR:
DoCastAOE(SPELL_DEFILING_HORROR);
events.ScheduleEvent(EVENT_DEFILING_HORROR, urand(21000, 39000));
break;
default:
break;
}
DoMeleeAttackIfReady();
}
private:
uint8 _hopelessnessCount;
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetHallsOfReflectionAI<boss_falricAI>(creature);
}
};
void AddSC_boss_falric()
@@ -17,6 +17,8 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
#include "SpellAuraEffects.h"
#include "halls_of_reflection.h"
enum Texts
@@ -33,6 +35,7 @@ enum Spells
SPELL_WELL_OF_CORRUPTION = 72362,
SPELL_CORRUPTED_FLESH = 72363,
SPELL_SHARED_SUFFERING = 72368,
SPELL_SHARED_SUFFERING_DISPEL = 72373
};
enum Events
@@ -41,93 +44,130 @@ enum Events
EVENT_OBLITERATE,
EVENT_WELL_OF_CORRUPTION,
EVENT_CORRUPTED_FLESH,
EVENT_SHARED_SUFFERING,
EVENT_SHARED_SUFFERING
};
class boss_marwyn : public CreatureScript
{
public:
boss_marwyn() : CreatureScript("boss_marwyn") { }
public:
boss_marwyn() : CreatureScript("boss_marwyn") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_marwynAI>(creature);
}
struct boss_marwynAI : public boss_horAI
{
boss_marwynAI(Creature* creature) : boss_horAI(creature) { }
void Reset() override
struct boss_marwynAI : public boss_horAI
{
boss_horAI::Reset();
boss_marwynAI(Creature* creature) : boss_horAI(creature, DATA_MARWYN) { }
instance->SetBossState(DATA_MARWYN_EVENT, NOT_STARTED);
}
void EnterCombat(Unit* /*who*/) override
{
Talk(SAY_AGGRO);
instance->SetBossState(DATA_MARWYN_EVENT, IN_PROGRESS);
events.ScheduleEvent(EVENT_OBLITERATE, 30000); /// @todo Check timer
events.ScheduleEvent(EVENT_WELL_OF_CORRUPTION, 13000);
events.ScheduleEvent(EVENT_CORRUPTED_FLESH, 20000);
events.ScheduleEvent(EVENT_SHARED_SUFFERING, 20000); /// @todo Check timer
}
void JustDied(Unit* /*killer*/) override
{
Talk(SAY_DEATH);
instance->SetBossState(DATA_MARWYN_EVENT, DONE);
}
void KilledUnit(Unit* /*victim*/) override
{
Talk(SAY_SLAY);
}
void UpdateAI(uint32 diff) override
{
// Return since we have no target
if (!UpdateVictim())
return;
events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
switch (events.ExecuteEvent())
void Reset() override
{
case EVENT_OBLITERATE:
DoCast(SPELL_OBLITERATE);
events.ScheduleEvent(EVENT_OBLITERATE, 30000);
break;
case EVENT_WELL_OF_CORRUPTION:
DoCast(SPELL_WELL_OF_CORRUPTION);
events.ScheduleEvent(EVENT_WELL_OF_CORRUPTION, 13000);
break;
case EVENT_CORRUPTED_FLESH:
Talk(SAY_CORRUPTED_FLESH);
DoCast(SPELL_CORRUPTED_FLESH);
events.ScheduleEvent(EVENT_CORRUPTED_FLESH, 20000);
break;
case EVENT_SHARED_SUFFERING:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
DoCast(target, SPELL_SHARED_SUFFERING);
events.ScheduleEvent(EVENT_SHARED_SUFFERING, 20000);
break;
boss_horAI::Reset();
}
DoMeleeAttackIfReady();
}
};
void EnterCombat(Unit* /*who*/) override
{
Talk(SAY_AGGRO);
DoZoneInCombat();
instance->SetBossState(DATA_MARWYN, IN_PROGRESS);
events.ScheduleEvent(EVENT_OBLITERATE, urand(8000, 13000));
events.ScheduleEvent(EVENT_WELL_OF_CORRUPTION, 13000);
events.ScheduleEvent(EVENT_CORRUPTED_FLESH, 20000);
events.ScheduleEvent(EVENT_SHARED_SUFFERING, urand(14000, 15000));
}
void JustDied(Unit* /*killer*/) override
{
Talk(SAY_DEATH);
events.Reset();
instance->SetBossState(DATA_MARWYN, DONE);
}
void KilledUnit(Unit* who) override
{
if (who->GetTypeId() == TYPEID_PLAYER)
Talk(SAY_SLAY);
}
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
return;
events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
switch (events.ExecuteEvent())
{
case EVENT_OBLITERATE:
DoCastVictim(SPELL_OBLITERATE);
events.ScheduleEvent(EVENT_OBLITERATE, urand(8000, 13000));
break;
case EVENT_WELL_OF_CORRUPTION:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true))
DoCast(target, SPELL_WELL_OF_CORRUPTION);
events.ScheduleEvent(EVENT_WELL_OF_CORRUPTION, 13000);
break;
case EVENT_CORRUPTED_FLESH:
Talk(SAY_CORRUPTED_FLESH);
DoCastAOE(SPELL_CORRUPTED_FLESH);
events.ScheduleEvent(EVENT_CORRUPTED_FLESH, 20000);
break;
case EVENT_SHARED_SUFFERING:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
DoCast(target, SPELL_SHARED_SUFFERING);
events.ScheduleEvent(EVENT_SHARED_SUFFERING, urand(14000, 15000));
break;
default:
break;
}
DoMeleeAttackIfReady();
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetHallsOfReflectionAI<boss_marwynAI>(creature);
}
};
// 72368, 72369 - Shared Suffering
class spell_marwyn_shared_suffering : public SpellScriptLoader
{
public:
spell_marwyn_shared_suffering() : SpellScriptLoader("spell_marwyn_shared_suffering") { }
class spell_marwyn_shared_suffering_AuraScript : public AuraScript
{
PrepareAuraScript(spell_marwyn_shared_suffering_AuraScript);
void HandleEffectRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
{
if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_ENEMY_SPELL)
return;
if (Unit* caster = GetCaster())
{
int32 remainingDamage = aurEff->GetAmount() * (aurEff->GetTotalTicks() - aurEff->GetTickNumber());
if (remainingDamage > 0)
caster->CastCustomSpell(SPELL_SHARED_SUFFERING_DISPEL, SPELLVALUE_BASE_POINT1, remainingDamage, GetTarget(), TRIGGERED_FULL_MASK);
}
}
void Register() override
{
AfterEffectRemove += AuraEffectRemoveFn(spell_marwyn_shared_suffering_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
}
};
AuraScript* GetAuraScript() const override
{
return new spell_marwyn_shared_suffering_AuraScript();
}
};
void AddSC_boss_marwyn()
{
new boss_marwyn();
new spell_marwyn_shared_suffering();
}
File diff suppressed because it is too large Load Diff
@@ -15,170 +15,231 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef DEF_HALLS_OF_REFLECTION_H
#define DEF_HALLS_OF_REFLECTION_H
#ifndef HALLS_OF_REFLECTION_H_
#define HALLS_OF_REFLECTION_H_
#define HoRScriptName "instance_halls_of_reflection"
#define MAX_ENCOUNTER 3
uint32 const EncounterCount = 3;
/* Halls of Reflection encounters:
0- Falric
1- Marwyn
2- The Lich King
0 - Falric
1 - Marwyn
2 - The Lich King
*/
enum Data
enum DataTypes
{
DATA_FALRIC_EVENT = 0,
DATA_MARWYN_EVENT = 1,
DATA_LICHKING_EVENT = 2,
DATA_FALRIC = 0,
DATA_MARWYN = 1,
DATA_THE_LICH_KING_ESCAPE = 2,
DATA_INTRO_EVENT = 3,
DATA_FROSWORN_EVENT = 4,
DATA_FROSTSWORN_GENERAL = 4,
DATA_WAVE_COUNT = 5,
DATA_TEAM_IN_INSTANCE = 6,
DATA_FROSTMOURNE = 7,
DATA_FROSTWORN_DOOR = 8,
DATA_ESCAPE_EVENT = 9,
DATA_KORELN_LORALEN = 5,
DATA_WAVE_COUNT = 6,
DATA_TEAM_IN_INSTANCE = 7,
DATA_FROSTMOURNE = 8,
DATA_IMPENETRABLE_DOOR = 9,
DATA_ESCAPE_LEADER = 10,
DATA_SUMMONS = 11,
DATA_ICEWALL = 12,
DATA_CAVE_IN = 13
DATA_ICEWALL = 11,
DATA_ICEWALL_TARGET = 12,
DATA_GUNSHIP = 13
};
enum Creatures
enum CreatureIds
{
NPC_JAINA_PART1 = 37221,
NPC_SYLVANAS_PART1 = 37223,
NPC_UTHER = 37225,
NPC_LICH_KING_PART1 = 37226,
NPC_LORALEN = 37779,
NPC_KORELN = 37582,
NPC_JAINA_INTRO = 37221,
NPC_SYLVANAS_INTRO = 37223,
NPC_UTHER = 37225,
NPC_THE_LICH_KING_INTRO = 37226,
NPC_KORELN = 37582,
NPC_LORALEN = 37779,
NPC_FROSTMOUNRE_ALTAR_BUNNY = 37704,
NPC_FALRIC = 38112,
NPC_MARWYN = 38113,
NPC_WAVE_MERCENARY = 38177,
NPC_WAVE_FOOTMAN = 38173,
NPC_WAVE_RIFLEMAN = 38176,
NPC_WAVE_PRIEST = 38175,
NPC_WAVE_MAGE = 38172,
NPC_FALRIC = 38112,
NPC_MARWYN = 38113,
NPC_WAVE_MERCENARY = 38177,
NPC_WAVE_FOOTMAN = 38173,
NPC_WAVE_RIFLEMAN = 38176,
NPC_WAVE_PRIEST = 38175,
NPC_WAVE_MAGE = 38172,
NPC_FROSTWORN_GENERAL = 36723,
NPC_REFLECTION = 37068, // 37107 for tank only?
NPC_FROSTSWORN_GENERAL = 36723,
NPC_REFLECTION = 37068, // 37107 for tank only?
NPC_JAINA_PART2 = 36955,
NPC_SYLVANAS_PART2 = 37554,
NPC_LICH_KING_PART2 = 36954,
NPC_BARTLETT = 37182, // High Captain Justin Bartlett
NPC_KORM = 37833, // Sky-Reaver Korm Blackscar
NPC_ICE_WALL = 37014, // Ice Wall Target
NPC_JAINA_ESCAPE = 36955,
NPC_SYLVANAS_ESCAPE = 37554,
NPC_THE_LICH_KING_ESCAPE = 36954,
NPC_ICE_WALL_TARGET = 37014,
NPC_RAGING_GNOUL = 36940,
NPC_RISEN_WITCH_DOCTOR = 36941,
NPC_ABON = 37069
NPC_RAGING_GHOUL = 36940,
NPC_RISEN_WITCH_DOCTOR = 36941,
NPC_LUMBERING_ABOMINATION = 37069,
NPC_GUNSHIP_CANNON_HORDE = 37593,
NPC_JUSTIN_BARTLETT = 30344,
NPC_KORM_BLACKSCAR = 30824,
NPC_WORLD_TRIGGER = 22515
};
enum GameObjects
enum GameObjectIds
{
GO_FROSTMOURNE = 202302,
GO_ENTRANCE_DOOR = 201976,
GO_FROSTWORN_DOOR = 197341,
GO_ARTHAS_DOOR = 197342,
//GO_ESCAPE_DOOR = 197343, // always open ?
GO_FROSTMOURNE = 202302,
GO_ENTRANCE_DOOR = 201976,
GO_IMPENETRABLE_DOOR = 197341,
GO_SHADOW_THRONE_DOOR = 197342,
GO_ESCAPE_DOOR = 197343, // always open ?
GO_ICE_WALL = 201385,
GO_CAVE = 201596,
GO_ICE_WALL = 201385,
GO_CAVE_IN = 201596,
GO_STAIRS_SKYBREAKER = 201709,
GO_SKYBREAKER = 201598,
GO_STAIRS_ORGRIM_HAMMER = 202211,
GO_ORGRIM_HAMMER = 201599,
GO_PORTAL = 202079,
GO_THE_SKYBREAKER = 201598,
GO_ORGRIMS_HAMMER = 201599,
GO_THE_SKYBREAKER_STAIRS = 201709,
GO_ORGRIMS_HAMMER_STAIRS = 202211,
GO_PORTAL_TO_DALARAN = 195682,
GO_CAPTAIN_CHEST_HORDE_NORMAL = 202212, //3145
GO_CAPTAIN_CHEST_ALLIANCE_NORMAL = 201710, //30357
GO_CAPTAIN_CHEST_HORDE_HEROIC = 202337, //3246
GO_CAPTAIN_CHEST_ALLIANCE_HEROIC = 202336, //3333
GO_THE_CAPTAIN_CHEST_ALLIANCE_NORMAL = 201710,
GO_THE_CAPTAIN_CHEST_HORDE_NORMAL = 202212,
GO_THE_CAPTAIN_CHEST_ALLIANCE_HEROIC = 202336,
GO_THE_CAPTAIN_CHEST_HORDE_HEROIC = 202337
};
enum HorWorldStates
enum Achievements
{
WORLD_STATE_HOR_WAVES_ENABLED = 4884,
WORLD_STATE_HOR_WAVE_COUNT = 4882,
ACHIEV_NOT_RETREATING_EVENT = 22615,
SPELL_ACHIEV_CHECK = 72830
};
// Common actions from Instance Script to Boss Script
enum Actions
{
ACTION_ENTER_COMBAT,
ACTION_START_ESCAPING,
ACTION_WALL_BROKEN
};
enum TrashGeneralSpells
{
// General spells
SPELL_WELL_OF_SOULS = 72630, // cast when spawn(become visible)
SPELL_SPIRIT_ACTIVATE = 72130, // cast when unit activates
ACTION_ENTER_COMBAT = -668001,
ACTION_START_PREFIGHT = -668002,
ACTION_WALL_BROKEN = -668003,
ACTION_GUNSHIP_ARRIVAL = -668004,
ACTION_GUNSHIP_ARRIVAL_2 = -668005
};
enum InstanceEvents
{
EVENT_SPAWN_WAVES = 1,
EVENT_NEXT_WAVE = 2,
EVENT_DO_WIPE = 3,
EVENT_ADD_WAVE = 4,
EVENT_SPAWN_WAVES = 1,
EVENT_NEXT_WAVE = 2,
EVENT_DO_WIPE = 3,
EVENT_ADD_WAVE = 4,
EVENT_SPAWN_ESCAPE_EVENT = 5
};
enum InstanceEventIds
{
EVENT_GUNSHIP_ARRIVAL = 22709,
EVENT_GUNSHIP_ARRIVAL_2 = 22714,
EVENT_ICE_WALL_SUMMONED = 22795
};
enum InstanceSpells
{
// Trash
SPELL_WELL_OF_SOULS = 72630, // cast when spawn (become visible)
SPELL_SPIRIT_ACTIVATE = 72130, // cast when unit activates
// Start Quests
SPELL_START_HALLS_OF_REFLECTION_QUEST_A = 71351,
SPELL_START_HALLS_OF_REFLECTION_QUEST_H = 71542,
SPELL_START_HALLS_OF_REFLECTION_QUEST_AE = 72900,
// Quest Credits
SPELL_CREDIT_FINDING_SYLVANAS = 71536,
SPELL_CREDIT_FINDING_JAINA = 71538,
SPELL_CREDIT_ESCAPING_ARTHAS = 71352,
// Gunship
SPELL_GUNSHIP_CANNON_FIRE = 70017,
SPELL_GUNSHIP_CANNON_FIRE_MISSILE_ALLIANCE = 70021,
SPELL_GUNSHIP_CANNON_FIRE_MISSILE_HORDE = 70246
};
enum InstanceWorldStates
{
WORLD_STATE_HOR_WAVES_ENABLED = 4884,
WORLD_STATE_HOR_WAVE_COUNT = 4882
};
enum InstanceYells
{
SAY_CAPTAIN_FIRE = 0,
SAY_CAPTAIN_FINAL = 1
};
// Base class for FALRIC and MARWYN
// handled the summonList and the notification events to/from the InstanceScript
struct boss_horAI : ScriptedAI
struct boss_horAI : BossAI
{
boss_horAI(Creature* creature) : ScriptedAI(creature), summons(creature)
{
instance = me->GetInstanceScript();
}
boss_horAI(Creature* creature, uint32 bossId) : BossAI(creature, bossId) { }
InstanceScript* instance;
EventMap events;
SummonList summons;
void Reset()
void Reset() override
{
events.Reset();
_Reset();
me->SetVisible(false);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
me->SetReactState(REACT_PASSIVE);
if (instance->GetData(DATA_WAVE_COUNT) != NOT_STARTED)
instance->ProcessEvent(0, EVENT_DO_WIPE);
instance->ProcessEvent(NULL, EVENT_DO_WIPE);
}
void DoAction(int32 actionID)
void DoAction(int32 actionId) override
{
switch (actionID)
switch (actionId)
{
case ACTION_ENTER_COMBAT: // called by InstanceScript when boss shall enter in combat.
case ACTION_ENTER_COMBAT: // called by InstanceScript when boss shall enter in combat.
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
me->SetReactState(REACT_AGGRESSIVE);
if (Unit* unit = me->SelectNearestTarget())
AttackStart(unit);
DoZoneInCombat();
DoZoneInCombat(me, 150.0f);
break;
default:
break;
}
}
void JustSummoned(Creature* summoned)
void JustSummoned(Creature* summon) override
{
summons.Summon(summoned);
summons.Summon(summon);
}
};
class GameObjectDeleteDelayEvent : public BasicEvent
{
public:
GameObjectDeleteDelayEvent(Unit* owner, uint64 gameObjectGUID) : _owner(owner), _gameObjectGUID(gameObjectGUID) { }
void DeleteGameObject()
{
if (GameObject* go = ObjectAccessor::GetGameObject(*_owner, _gameObjectGUID))
go->Delete();
}
bool Execute(uint64 /*execTime*/, uint32 /*diff*/) override
{
DeleteGameObject();
return true;
}
void Abort(uint64 /*execTime*/) override
{
DeleteGameObject();
}
private:
Unit* _owner;
uint64 _gameObjectGUID;
};
template<class AI>
AI* GetHallsOfReflectionAI(Creature* creature)
{
return GetInstanceAI<AI>(creature, HoRScriptName);
}
#endif
#endif // HALLS_OF_REFLECTION_H_
@@ -1800,7 +1800,7 @@ class spell_icc_sprit_alarm : public SpellScriptLoader
}
if (GameObject* trap = GetCaster()->FindNearestGameObject(trapId, 5.0f))
trap->SetRespawnTime(trap->GetGOInfo()->trap.autoCloseTime);
trap->SetRespawnTime(trap->GetGOInfo()->GetAutoCloseTime());
std::list<Creature*> wards;
GetCaster()->GetCreatureListWithEntryInGrid(wards, NPC_DEATHBOUND_WARD, 150.0f);