Merge branch 'azerothcore:master' into Playerbot

This commit is contained in:
ZhengPeiRu21
2023-02-21 11:29:39 -07:00
committed by GitHub
58 changed files with 2688 additions and 542 deletions

View File

@@ -1,5 +1,5 @@
{
"name": "azerothcore-wotlk",
"version": "7.0.0-dev.0",
"version": "7.0.0-dev.1",
"license": "AGPL3"
}

View File

@@ -0,0 +1,12 @@
-- DB update 2023_01_31_00 -> 2023_02_20_00
--
DROP TABLE IF EXISTS `motd`;
CREATE TABLE `motd` (
`realmid` INT NOT NULL,
`text` LONGTEXT NULL DEFAULT NULL,
PRIMARY KEY (`realmid`)
) ENGINE=InnoDB;
DELETE FROM `motd` WHERE `realmid`=1;
INSERT INTO `motd` (`realmid`, `text`) VALUES
(-1, 'Welcome to an AzerothCore server.');

View File

@@ -0,0 +1,50 @@
-- DB update 2023_02_17_12 -> 2023_02_18_00
--
DELETE FROM `smart_scripts` WHERE `entryorguid`=18956 AND `source_type`=0;
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(18956, 0, 0, 2, 62, 0, 100, 1, 7868, 0, 0, 0, 0, 80, 1895600, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Lakka - On Gossip Option 0 Selected - Run Script (No Repeat)'),
(18956, 0, 1, 0, 40, 0, 100, 0, 9, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Lakka - On Waypoint 9 Reached - Despawn (0)'),
(18956, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Lakka - On Link - Close Gossip');
DELETE FROM `smart_scripts` WHERE `entryorguid`=1895600 AND `source_type`=9;
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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(1895600, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 33, 18956, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 'Lakka - On Script - Quest Credit \'Brother Against Brother\''),
(1895600, 9, 1, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Lakka - On Script - Say Line 0'),
(1895600, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Lakka - On Script - Remove NPC Flag Gossip'),
(1895600, 9, 3, 0, 0, 0, 100, 0, 1500, 1500, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 20, 183051, 5, 0, 0, 0, 0, 0, 0, 'Lakka - On Script - Activate Closest Gameobject \'Sethekk Cage\''),
(1895600, 9, 4, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 0, 53, 0, 1895600, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Lakka - On Script - Start Waypoint');
DELETE FROM `waypoints` WHERE `entry`=1895600 AND `point_comment`='Lakka';
INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `point_comment`) VALUES
(1895600, 1, -156.811, 159.9, 0.552411, NULL, 0, 'Lakka'),
(1895600, 2, -152.811, 162.15, 0.552411, NULL, 0, 'Lakka'),
(1895600, 3, -148.561, 163.65, 0.552411, NULL, 0, 'Lakka'),
(1895600, 4, -141.811, 164.9, 0.552411, NULL, 0, 'Lakka'),
(1895600, 5, -136.061, 167.4, 0.552411, NULL, 0, 'Lakka'),
(1895600, 6, -129.811, 171.4, 0.552411, NULL, 0, 'Lakka'),
(1895600, 7, -118.061, 173.9, 0.552411, NULL, 0, 'Lakka'),
(1895600, 8, -99.0612, 173.4, 0.302411, NULL, 0, 'Lakka'),
(1895600, 9, -79.8091, 172.757, 0.010726, NULL, 0, 'Lakka');
DELETE FROM `gossip_menu` WHERE `MenuID`=7868;
INSERT INTO `gossip_menu` (`MenuID`, `TextID`) VALUES
(7868, 9635),
(7868, 9636);
DELETE FROM `gossip_menu_option` WHERE `MenuID`=7868;
INSERT INTO `gossip_menu_option` (`MenuID`, `OptionID`, `OptionIcon`, `OptionText`, `OptionBroadcastTextID`, `OptionType`, `OptionNpcFlag`, `ActionMenuID`, `ActionPoiID`, `BoxCoded`, `BoxMoney`, `BoxText`, `BoxBroadcastTextID`) VALUES
(7868, 0, 0, 'I\'ll have you out of there in just a moment.', 16054, 1, 1, 0, 0, 0, 0, '', 0);
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14, 15) AND `SourceGroup`=7868;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(14, 7868, 9635, 0, 0, 29, 1, 18472, 20, 0, 0, 0, 0, '', 'Gossip text requires boss Darkweaver Sith NOT defeated'),
(14, 7868, 9636, 0, 0, 29, 1, 18472, 20, 1, 0, 0, 0, '', 'Gossip text requires boss Darkweaver Sith defeated'),
(15, 7868, 0, 0, 0, 29, 1, 18472, 20, 1, 0, 0, 0, '', 'Gossip option requires boss Darkweaver Sith defeated');
DELETE FROM `npc_text` WHERE `ID`=9635;
INSERT INTO `npc_text` (`ID`, `text0_0`) VALUES
(9635,'Please, $r, get me out of here! Unlocking the cage will surely attract my brother\'s attention. Kill Darkweaver Syth!');
DELETE FROM `gameobject_template_addon` WHERE `entry`=183051;
INSERT INTO `gameobject_template_addon` VALUES
(183051,112,32,0,0,0,0,0,0);

View File

@@ -0,0 +1,118 @@
-- DB update 2023_02_18_00 -> 2023_02_18_01
--
DELETE from `creature` where `guid`=77831 AND `id1`=22060;
INSERT INTO `creature` (`guid`, `id1`, `id2`, `id3`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`) VALUES
(77831, 22060, 0, 0, 530, 0, 0, 1, 1, 1, -2024.52, -10786.1, 81.9137, 0.664982, 3600, 0, 0, 0, 0, 2, 0, 0, 0, '', 0);
UPDATE `creature_template_addon` SET `bytes1` = 0 WHERE (`entry` = 22060);
-- Pathing for Entry: 22060
SET @NPC := 77831;
SET @CPATH := @NPC * 10;
UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=-1970.9095,`position_y`=-10545.881,`position_z`=176.9451 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@CPATH,0,0,1,0,0, '34189');
DELETE FROM `waypoint_data` WHERE `id`=@CPATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
(@CPATH,1,-1970.9095,-10545.881,176.9451,0,0,0,0,100,0),
(@CPATH,2,-1940.0586,-10560.943,177.81454,0,0,0,0,100,0),
(@CPATH,3,-1946.3624,-10587.011,172.94002,0,0,0,0,100,0),
(@CPATH,4,-1961.7201,-10607.221,165.48112,0,0,0,0,100,0),
(@CPATH,5,-1988.8058,-10612.373,162.95183,0,0,0,0,100,0),
(@CPATH,6,-2013.801,-10602.308,154.4991,0,0,0,0,100,0),
(@CPATH,7,-2038.0187,-10619.16,146.1079,0,0,0,0,100,0),
(@CPATH,8,-2037.1124,-10638.802,140.50319,0,0,0,0,100,0),
(@CPATH,9,-2012.5981,-10662.126,122.97834,0,0,0,0,100,0),
(@CPATH,10,-1976.1384,-10684.696,112.91368,0,0,0,0,100,0),
(@CPATH,11,-1947.3251,-10695.539,110.90299,0,0,0,0,100,0),
(@CPATH,12,-1908.1012,-10710.498,111.27751,0,0,0,0,100,0),
(@CPATH,13,-1875.1051,-10702.744,111.70239,0,0,0,0,100,0),
(@CPATH,14,-1855.2137,-10689.97,112.97398,0,0,0,0,100,0),
(@CPATH,15,-1824.9171,-10668.398,136.08665,0,0,0,0,100,0),
(@CPATH,16,-1819.2031,-10647.129,144.38739,0,0,0,0,100,0),
(@CPATH,17,-1812.0326,-10612.489,148.245,0,0,0,0,100,0),
(@CPATH,18,-1833.3806,-10588.412,157.1347,0,0,0,0,100,0),
(@CPATH,19,-1867.1841,-10566.302,174.33784,0,0,0,0,100,0),
(@CPATH,20,-1877.4294,-10545.098,177.00142,0,1200,0,0,100,0),
(@CPATH,21,-1867.1841,-10566.302,174.33784,0,0,0,0,100,0),
(@CPATH,22,-1833.3806,-10588.412,157.1347,0,0,0,0,100,0),
(@CPATH,23,-1812.0326,-10612.489,148.245,0,0,0,0,100,0),
(@CPATH,24,-1819.2179,-10647.147,144.46405,0,0,0,0,100,0),
(@CPATH,25,-1824.9171,-10668.398,136.08665,0,0,0,0,100,0),
(@CPATH,26,-1855.2137,-10689.97,112.97398,0,0,0,0,100,0),
(@CPATH,27,-1875.1051,-10702.744,111.70239,0,0,0,0,100,0),
(@CPATH,28,-1908.1012,-10710.498,111.27751,0,0,0,0,100,0),
(@CPATH,29,-1947.3251,-10695.539,110.90299,0,0,0,0,100,0),
(@CPATH,30,-1976.1384,-10684.696,112.91368,0,0,0,0,100,0),
(@CPATH,31,-2012.5981,-10662.126,122.97834,0,0,0,0,100,0),
(@CPATH,32,-2037.1124,-10638.802,140.50319,0,0,0,0,100,0),
(@CPATH,33,-2038.0187,-10619.16,146.1079,0,0,0,0,100,0),
(@CPATH,34,-2013.801,-10602.308,154.4991,0,0,0,0,100,0),
(@CPATH,35,-1988.8058,-10612.373,162.95183,0,0,0,0,100,0),
(@CPATH,36,-1961.7201,-10607.221,165.48112,0,0,0,0,100,0),
(@CPATH,37,-1946.3624,-10587.011,172.94002,0,0,0,0,100,0),
(@CPATH,38,-1940.0586,-10560.943,177.81454,0,0,0,0,100,0);
-- 0x204CB04240158B0000003E0000187A4E .go xyz -1970.9095 -10545.881 176.9451
-- Pathing for Entry: 22060
SET @NPC := 77280;
SET @CPATH := @NPC * 10;
UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=-2062.9329,`position_y`=-10801.382,`position_z`=69.16798 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@CPATH,0,0,1,0,0, '34189');
DELETE FROM `waypoint_data` WHERE `id`=@CPATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
(@CPATH,1,-2062.9329,-10801.382,69.16798,0,0,0,0,100,0),
(@CPATH,2,-2032.4478,-10792.326,79.548546,0,0,0,0,100,0),
(@CPATH,3,-2011.9824,-10776.279,85.89645,0,0,0,0,100,0),
(@CPATH,4,-1988.4141,-10782.808,89.01292,0,0,0,0,100,0),
(@CPATH,5,-1956.8325,-10795.888,88.076256,0,0,0,0,100,0),
(@CPATH,6,-1941.5137,-10813.049,83.2548,0,0,0,0,100,0),
(@CPATH,7,-1942.2377,-10845.413,71.92745,0,0,0,0,100,0),
(@CPATH,8,-1928.1111,-10873.158,65.57274,0,0,0,0,100,0),
(@CPATH,9,-1907.5723,-10881.021,64.005844,0,0,0,0,100,0),
(@CPATH,10,-1882.5653,-10890.086,67.090805,0,0,0,0,100,0),
(@CPATH,11,-1869.1376,-10890.733,66.91844,0,0,0,0,100,0),
(@CPATH,12,-1863.5938,-10877.981,66.82205,0,0,0,0,100,0),
(@CPATH,13,-1857.8864,-10870.527,66.82205,0,0,0,0,100,0),
(@CPATH,14,-1864.6426,-10848.86,66.77268,0,1200,0,0,100,0),
(@CPATH,15,-1857.8864,-10870.527,66.82205,0,0,0,0,100,0),
(@CPATH,16,-1863.5938,-10877.981,66.82205,0,0,0,0,100,0),
(@CPATH,17,-1869.1376,-10890.733,66.91844,0,0,0,0,100,0),
(@CPATH,18,-1882.5653,-10890.086,67.090805,0,0,0,0,100,0),
(@CPATH,19,-1907.4796,-10881.057,64.12523,0,0,0,0,100,0),
(@CPATH,20,-1928.1111,-10873.158,65.57274,0,0,0,0,100,0),
(@CPATH,21,-1941.4618,-10813.143,83.373695,0,0,0,0,100,0),
(@CPATH,22,-1956.7793,-10795.982,88.01302,0,0,0,0,100,0),
(@CPATH,23,-1988.4141,-10782.808,89.01292,0,0,0,0,100,0),
(@CPATH,24,-2011.9735,-10776.271,85.738,0,0,0,0,100,0),
(@CPATH,25,-2032.4478,-10792.326,79.548546,0,0,0,0,100,0),
(@CPATH,26,-2062.9329,-10801.382,69.16798,0,0,0,0,100,0),
(@CPATH,27,-2090.1667,-10768.454,68.06485,0,1200,0,0,100,0);
-- 0x204CB04240158B0000003E00001879BC .go xyz -2062.9329 -10801.382 69.16798
-- Pathing for Entry: 22060 Cryo Core
SET @NPC := 77281;
SET @CPATH := @NPC * 10;
UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=-2070.419,`position_y`=-11257.795,`position_z`=68.73054 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@CPATH,0,0,1,0,0, '34189');
DELETE FROM `waypoint_data` WHERE `id`=@CPATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
(@CPATH,1,-2070.419,-11257.795,68.73054,0,0,0,0,100,0),
(@CPATH,2,-2103.6235,-11253.354,67.19258,0,0,0,0,100,0),
(@CPATH,3,-2134.2869,-11264.738,67.698784,0,0,0,0,100,0),
(@CPATH,4,-2140.428,-11280.03,65.155426,0,0,0,0,100,0),
(@CPATH,5,-2138.178,-11312.154,62.253426,0,0,0,0,100,0),
(@CPATH,6,-2136.1165,-11343.568,62.17387,0,0,0,0,100,0),
(@CPATH,7,-2126.4175,-11372.446,64.164536,0,0,0,0,100,0),
(@CPATH,8,-2098.3645,-11381.112,63.737923,0,0,0,0,100,0),
(@CPATH,9,-2076.6472,-11386.729,63.017952,0,0,0,0,100,0),
(@CPATH,10,-2055.42,-11392.572,61.29661,0,0,0,0,100,0),
(@CPATH,11,-2030.3889,-11375.75,63.414944,0,0,0,0,100,0),
(@CPATH,12,-2022.589,-11355.197,64.74541,0,0,0,0,100,0),
(@CPATH,13,-2019.8142,-11323.221,65.71863,0,0,0,0,100,0),
(@CPATH,14,-2031.3025,-11303.861,67.92053,0,0,0,0,100,0),
(@CPATH,15,-2026.8136,-11290.435,69.10076,0,0,0,0,100,0),
(@CPATH,16,-2026.6367,-11276.236,68.70916,0,0,0,0,100,0),
(@CPATH,17,-2042.9447,-11261.928,68.52818,0,0,0,0,100,0);

View File

@@ -0,0 +1,329 @@
-- DB update 2023_02_18_01 -> 2023_02_18_02
-- Chief Engineer Lorthander
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18697);
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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(18697, 0, 0, 0, 2, 0, 100, 1, 0, 15, 0, 0, 0, 25, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Chief Engineer Lorthander - Between 0-15% Health - Flee For Assist (No Repeat)'),
(18697, 0, 1, 0, 0, 0, 100, 0, 8000, 14000, 12000, 15000, 0, 11, 38898, 64, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Chief Engineer Lorthander - In Combat - Cast \'Arcane Unlocking\''),
(18697, 0, 2, 0, 0, 0, 100, 0, 15000, 21000, 15000, 21000, 0, 11, 36843, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Chief Engineer Lorthander - In Combat - Cast \'Slow\''),
(18697, 0, 3, 0, 0, 0, 100, 0, 0, 0, 3400, 4800, 0, 11, 38204, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Chief Engineer Lorthander - In Combat - Cast \'Arcane Bolt\'');
-- Ever-Core comments
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 18698) AND (`source_type` = 0) AND (`id` IN (1, 2));
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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(18698, 0, 1, 0, 0, 0, 100, 0, 4000, 8000, 18000, 22000, 0, 11, 35892, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ever-Core the Punisher - In Combat - Cast \'Suppression\''),
(18698, 0, 2, 0, 9, 0, 100, 0, 0, 8, 19000, 23000, 0, 11, 33860, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ever-Core the Punisher - Within 0-8 Range - Cast \'Arcane Explosion\'');
-- Nuramoc
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 20932);
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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(20932, 0, 0, 0, 4, 0, 100, 0, 0, 0, 0, 0, 0, 11, 38905, 64, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Nuramoc - On Aggro - Cast \'Prismatic Shield\''),
(20932, 0, 1, 0, 0, 0, 100, 0, 2000, 3000, 4000, 7000, 0, 11, 21971, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Nuramoc - In Combat - Cast \'Poison Bolt\''),
(20932, 0, 2, 0, 0, 0, 100, 0, 0, 0, 2000, 5000, 0, 11, 15797, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Nuramoc - In Combat - Cast \'Lightning Breath\'');
-- Spawns
SET @CGUID := 24935;
DELETE FROM `creature` WHERE `id1` IN (18697, 18698, 20932);
INSERT INTO `creature` (`guid`, `id1`, `map`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `MovementType`) VALUES
-- Chief Engineer Lorthander
(@CGUID+0, 18697, 530, 1, 4081.08, 4001.03, 119.01, 4.57457, 75600, 2),
(@CGUID+1, 18697, 530, 1, 2412.86, 2894.41, 131.323, 3.35328, 93600, 2),
(@CGUID+2, 18697, 530, 1, 3000.46, 2187.57, 164.398, 5.2995, 115200, 2),
-- Ever-Core
(@CGUID+3, 18698, 530, 0, 4029.03, 4134.35, 191.496, 4.54011, 86400, 2),
(@CGUID+4, 18698, 530, 0, 2943.06, 4351.28, 142.359, 0.000215, 104400, 2),
(@CGUID+5, 18698, 530, 0, 3706.06, 2078.25, 151.867, 1.03066, 115200, 2),
-- Nuramoc
(@CGUID+6, 20932, 530, 0, 3280.81, 1907.83, 133.229, 1.89858, 28800, 2),
(@CGUID+7, 20932, 530, 0, 2817.23, 2929.54, 130.138, 2.32736, 39600, 2),
(@CGUID+8, 20932, 530, 0, 4788.54, 3503.49, 119.851, 3.12453, 50400, 2);
DELETE FROM `creature_addon` WHERE (`guid` IN (@CGUID+0,@CGUID+1,@CGUID+2,@CGUID+3,@CGUID+4,@CGUID+5,@CGUID+6,@CGUID+7,@CGUID+8,86860));
INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
(@CGUID+0, (@CGUID+0)*10, 0, 0, 1, 0, 0, ''),
(@CGUID+1, (@CGUID+1)*10, 0, 0, 1, 0, 0, ''),
(@CGUID+2, (@CGUID+2)*10, 0, 0, 1, 0, 0, ''),
(@CGUID+3, (@CGUID+3)*10, 0, 0, 1, 0, 0, ''),
(@CGUID+4, (@CGUID+4)*10, 0, 0, 1, 0, 0, ''),
(@CGUID+5, (@CGUID+5)*10, 0, 0, 1, 0, 0, ''),
(@CGUID+6, (@CGUID+6)*10, 0, 0, 1, 0, 0, ''),
(@CGUID+7, (@CGUID+7)*10, 0, 0, 1, 0, 0, ''),
(@CGUID+8, (@CGUID+8)*10, 0, 0, 1, 0, 0, '');
DELETE FROM `waypoint_data` WHERE `id` IN ((@CGUID+0)*10,(@CGUID+1)*10,(@CGUID+2)*10,(@CGUID+3)*10,(@CGUID+4)*10,(@CGUID+5)*10,(@CGUID+6)*10,(@CGUID+7)*10,(@CGUID+8)*10,868600);
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`) VALUES
-- Chief Engineer Lorthander
((@CGUID+0)*10, 1, 4081.08, 4001.03, 119.01),
((@CGUID+0)*10, 2, 4087.54, 4006.7, 117.744),
((@CGUID+0)*10, 3, 4097.75, 4003.55, 116.437),
((@CGUID+0)*10, 4, 4107.33, 3987.76, 118.036),
((@CGUID+0)*10, 5, 4074.27, 3980.02, 118.22),
((@CGUID+0)*10, 6, 4079.4, 3988.14, 118.289),
((@CGUID+1)*10, 1, 2412.86, 2894.41, 131.323),
((@CGUID+1)*10, 2, 2435.58, 2900.06, 130.183),
((@CGUID+1)*10, 3, 2463.95, 2909.32, 128.59),
((@CGUID+1)*10, 4, 2477.04, 2917.6, 128.541),
((@CGUID+1)*10, 5, 2484.46, 2904.05, 130.643),
((@CGUID+1)*10, 6, 2488, 2892.2, 132.342),
((@CGUID+1)*10, 7, 2484.72, 2881.2, 133.059),
((@CGUID+1)*10, 8, 2450.92, 2852.48, 131.622),
((@CGUID+1)*10, 9, 2424.88, 2797.83, 134.493),
((@CGUID+1)*10, 10, 2426.77, 2750.39, 133.243),
((@CGUID+1)*10, 11, 2426.77, 2750.39, 133.243),
((@CGUID+1)*10, 12, 2368, 2673.64, 132.39),
((@CGUID+1)*10, 13, 2443.76, 2745.36, 134.493),
((@CGUID+1)*10, 14, 2423.25, 2797.12, 134.491),
((@CGUID+1)*10, 15, 2448.63, 2849.79, 132.632),
((@CGUID+1)*10, 16, 2486.16, 2882.9, 133.075),
((@CGUID+1)*10, 17, 2484.64, 2905.67, 130.354),
((@CGUID+1)*10, 18, 2489.72, 2915.52, 128.954),
((@CGUID+1)*10, 19, 2476.47, 2917.2, 128.513),
((@CGUID+1)*10, 20, 2447.81, 2900.57, 129.188),
((@CGUID+2)*10, 1, 3000.46, 2187.57, 164.398),
((@CGUID+2)*10, 2, 3018.52, 2186.65, 165.329),
((@CGUID+2)*10, 3, 3076.56, 2210.99, 160.886),
((@CGUID+2)*10, 4, 3103.56, 2222.24, 155.355),
((@CGUID+2)*10, 5, 3124.82, 2243.5, 150.057),
((@CGUID+2)*10, 6, 3117.8, 2253.66, 149.953),
((@CGUID+2)*10, 7, 3096.61, 2268.98, 150.102),
((@CGUID+2)*10, 8, 3083.4, 2290.85, 150.485),
((@CGUID+2)*10, 9, 3054.61, 2284.5, 151.691),
((@CGUID+2)*10, 10, 3021.72, 2284.59, 158.405),
((@CGUID+2)*10, 11, 3009.22, 2292.73, 161.266),
((@CGUID+2)*10, 12, 2983.65, 2288.22, 161.706),
((@CGUID+2)*10, 13, 2956.54, 2284.38, 161.727),
((@CGUID+2)*10, 14, 2941.33, 2263.89, 161.708),
((@CGUID+2)*10, 15, 2966.96, 2206.15, 165.329),
-- Ever-Core
((@CGUID+3)*10, 1, 4029.03, 4134.35, 191.496),
((@CGUID+3)*10, 2, 4021.06, 4144.61, 191.502),
((@CGUID+3)*10, 3, 4007.77, 4151.29, 191.586),
((@CGUID+3)*10, 4, 3991.62, 4152.59, 191.401),
((@CGUID+3)*10, 5, 3966.21, 4145.5, 191.295),
((@CGUID+3)*10, 6, 3937.03, 4122.04, 192.695),
((@CGUID+3)*10, 7, 3924.13, 4093.4, 191.789),
((@CGUID+3)*10, 8, 3911.34, 4060.71, 187.287),
((@CGUID+3)*10, 9, 3880.16, 4036.23, 183.365),
((@CGUID+3)*10, 10, 3879.16, 4023.95, 183.11),
((@CGUID+3)*10, 11, 3890.49, 4005.85, 183.428),
((@CGUID+3)*10, 12, 3874, 3968.38, 183.774),
((@CGUID+3)*10, 13, 3873.48, 3953.19, 182.426),
((@CGUID+3)*10, 14, 3884.47, 3936.53, 179.405),
((@CGUID+3)*10, 15, 3915.08, 3918.04, 176.204),
((@CGUID+3)*10, 16, 3952.32, 3889.77, 174.977),
((@CGUID+3)*10, 17, 3965.74, 3872.72, 171.607),
((@CGUID+3)*10, 18, 3972.39, 3852.88, 166.197),
((@CGUID+3)*10, 19, 3969.66, 3840.88, 162.264),
((@CGUID+3)*10, 20, 3961.25, 3833.68, 158.329),
((@CGUID+3)*10, 21, 3908.53, 3834.6, 129.743),
((@CGUID+3)*10, 22, 3898.06, 3828.14, 123.788),
((@CGUID+3)*10, 23, 3898.27, 3787.49, 118.457),
((@CGUID+3)*10, 24, 3881.31, 3790.1, 116.619),
((@CGUID+3)*10, 25, 3865.28, 3804.66, 111.946),
((@CGUID+3)*10, 26, 3853.11, 3824.74, 106.821),
((@CGUID+3)*10, 27, 3847.02, 3830.68, 105.424),
((@CGUID+3)*10, 28, 3830.93, 3836.43, 103.431),
((@CGUID+3)*10, 29, 3817.24, 3851.85, 103.623),
((@CGUID+3)*10, 30, 3807.24, 3877.86, 105.557),
((@CGUID+3)*10, 31, 3792.14, 3888.13, 106.755),
((@CGUID+3)*10, 32, 3790.1, 3912.19, 109.532),
((@CGUID+3)*10, 33, 3798.19, 3938.67, 112.965),
((@CGUID+3)*10, 34, 3789.57, 3968.79, 114.346),
((@CGUID+3)*10, 35, 3790.27, 3993.03, 116.942),
((@CGUID+3)*10, 36, 3801.81, 4011.81, 121.598),
((@CGUID+4)*10, 1, 2943.06, 4351.28, 142.359),
((@CGUID+4)*10, 2, 2976.56, 4326.1, 146.657),
((@CGUID+4)*10, 3, 2984.38, 4318.63, 140.43),
((@CGUID+4)*10, 4, 3003.09, 4297.83, 144.609),
((@CGUID+4)*10, 5, 2997.3, 4273.92, 155.499),
((@CGUID+4)*10, 6, 2992.4, 4259.44, 159.899),
((@CGUID+4)*10, 7, 3011.36, 4227.12, 160.779),
((@CGUID+4)*10, 8, 3014.4, 4166.68, 159.855),
((@CGUID+4)*10, 9, 3022.76, 4153.83, 152.368),
((@CGUID+4)*10, 10, 3020.22, 4124.82, 150.603),
((@CGUID+4)*10, 11, 3010.89, 4107.9, 151.056),
((@CGUID+4)*10, 12, 3002.58, 4075.26, 150.101),
((@CGUID+4)*10, 13, 2986.18, 4047.61, 149.975),
((@CGUID+4)*10, 14, 2977.22, 4041.37, 149.782),
((@CGUID+4)*10, 15, 2967.34, 4049.68, 152.343),
((@CGUID+4)*10, 16, 2950.84, 4040.8, 153.404),
((@CGUID+4)*10, 17, 2910.14, 4011.95, 149.729),
((@CGUID+4)*10, 18, 2903.81, 3989.59, 148.75),
((@CGUID+4)*10, 19, 2888.34, 3972.1, 142.151),
((@CGUID+4)*10, 20, 2863.86, 3981.41, 141.777),
((@CGUID+4)*10, 21, 2836.9, 4004.29, 142.699),
((@CGUID+4)*10, 22, 2781.39, 3991.13, 144.969),
((@CGUID+4)*10, 23, 2758.93, 3999.78, 143.672),
((@CGUID+4)*10, 24, 2709.58, 4046.75, 150.37),
((@CGUID+4)*10, 25, 2650.82, 4095.06, 154.381),
((@CGUID+4)*10, 26, 2643.3, 4149.94, 158.604),
((@CGUID+4)*10, 27, 2636.57, 4196.3, 155.13),
((@CGUID+4)*10, 28, 2660.27, 4236.62, 154.33),
((@CGUID+4)*10, 29, 2669.6, 4252.5, 154.308),
((@CGUID+4)*10, 30, 2720.43, 4272.12, 153.934),
((@CGUID+4)*10, 31, 2742.16, 4288.13, 152.346),
((@CGUID+4)*10, 32, 2800.91, 4303.42, 151.593),
((@CGUID+4)*10, 33, 2830.31, 4316.65, 148.175),
((@CGUID+4)*10, 34, 2859.57, 4281.49, 158.539),
((@CGUID+4)*10, 35, 2870.11, 4280.62, 159.52),
((@CGUID+4)*10, 36, 2904.21, 4279.1, 156.87),
((@CGUID+4)*10, 37, 2931.21, 4314.67, 145.769),
((@CGUID+4)*10, 38, 2936.37, 4335.05, 147.717),
((@CGUID+4)*10, 39, 2935.57, 4348.43, 142.903),
((@CGUID+4)*10, 40, 2943.06, 4351.28, 142.359),
((@CGUID+5)*10, 1, 3706.06, 2078.25, 151.867),
((@CGUID+5)*10, 2, 3726.17, 2118.53, 149.248),
((@CGUID+5)*10, 3, 3753.52, 2168.87, 140.165),
((@CGUID+5)*10, 4, 3775.75, 2208.89, 144.852),
((@CGUID+5)*10, 5, 3780.36, 2229.51, 148.832),
((@CGUID+5)*10, 6, 3787.88, 2241.95, 149.93),
((@CGUID+5)*10, 7, 3805.08, 2254.19, 147.519),
((@CGUID+5)*10, 8, 3817.69, 2273.88, 148.95),
((@CGUID+5)*10, 9, 3855.16, 2269.88, 152.406),
((@CGUID+5)*10, 10, 3882.21, 2283.25, 154.278),
((@CGUID+5)*10, 11, 3916.8, 2277.97, 156.756),
((@CGUID+5)*10, 12, 3945.83, 2280.16, 159.016),
((@CGUID+5)*10, 13, 3994.1, 2271.92, 162.937),
((@CGUID+5)*10, 14, 4012.48, 2250.07, 163.409),
((@CGUID+5)*10, 15, 4052.18, 2235.04, 163.544),
((@CGUID+5)*10, 16, 4068.36, 2220.2, 164.592),
((@CGUID+5)*10, 17, 4079.98, 2202.1, 163.79),
((@CGUID+5)*10, 18, 4097.22, 2184.98, 160.829),
((@CGUID+5)*10, 19, 4103.19, 2154.2, 159.513),
((@CGUID+5)*10, 20, 4112.25, 2148.36, 158.521),
((@CGUID+5)*10, 21, 4143.31, 2141.96, 156.943),
((@CGUID+5)*10, 22, 4167.26, 2149.15, 157.128),
((@CGUID+5)*10, 23, 4200.38, 2173.98, 151.071),
((@CGUID+5)*10, 24, 4233.12, 2141.78, 147.754),
((@CGUID+5)*10, 25, 4244.52, 2118.75, 145.07),
((@CGUID+5)*10, 26, 4247.28, 2078.07, 143.644),
((@CGUID+5)*10, 27, 4263.61, 2039.35, 137.724),
((@CGUID+5)*10, 28, 4262.84, 2019.98, 134.967),
((@CGUID+5)*10, 29, 4256.09, 2007.07, 130.557),
((@CGUID+5)*10, 30, 4250.27, 1995.93, 135.552),
((@CGUID+5)*10, 31, 4250.13, 1967.99, 137.595),
((@CGUID+5)*10, 32, 4265.63, 1935, 137.639),
((@CGUID+5)*10, 33, 4266.21, 1898.98, 138.695),
((@CGUID+5)*10, 34, 4259, 1877.24, 140.059),
((@CGUID+5)*10, 35, 4223.69, 1842.53, 142.999),
((@CGUID+5)*10, 36, 4215.04, 1824.57, 141.276),
((@CGUID+5)*10, 37, 4207.37, 1795.16, 137.364),
((@CGUID+5)*10, 38, 4187.92, 1757.34, 130.795),
((@CGUID+5)*10, 39, 4151.56, 1755.07, 132.442),
((@CGUID+5)*10, 40, 4136.05, 1751.07, 133.77),
((@CGUID+5)*10, 41, 4124.27, 1755.99, 136.623),
((@CGUID+5)*10, 42, 4069.32, 1753.11, 144.431),
((@CGUID+5)*10, 43, 4039.85, 1741.67, 145.595),
((@CGUID+5)*10, 44, 3967.11, 1700.39, 145.255),
((@CGUID+5)*10, 45, 3943.89, 1684.72, 140.837),
((@CGUID+5)*10, 46, 3889.03, 1685.44, 138.774),
((@CGUID+5)*10, 47, 3849.84, 1667.25, 138.58),
((@CGUID+5)*10, 48, 3834.11, 1671.52, 140.663),
((@CGUID+5)*10, 49, 3813.53, 1684.09, 145.686),
((@CGUID+5)*10, 50, 3800.66, 1696.89, 151.409),
((@CGUID+5)*10, 51, 3788.9, 1727.14, 167.273),
((@CGUID+5)*10, 52, 3796.24, 1751.33, 177.772),
((@CGUID+5)*10, 53, 3775.68, 1766.3, 170.866),
((@CGUID+5)*10, 54, 3759.51, 1784.82, 163.141),
((@CGUID+5)*10, 55, 3679.22, 1853.57, 126.875),
((@CGUID+5)*10, 56, 3660.26, 1896.73, 120.891),
((@CGUID+5)*10, 57, 3662.77, 1912.97, 117.708),
((@CGUID+5)*10, 58, 3674.79, 1927.2, 115.677),
((@CGUID+5)*10, 59, 3677.09, 1977.38, 120.129),
((@CGUID+5)*10, 60, 3702.1, 2003.87, 128.244),
((@CGUID+5)*10, 61, 3701.96, 2031.67, 133.85),
((@CGUID+5)*10, 62, 3721.18, 2044.33, 142.94),
((@CGUID+5)*10, 63, 3724.31, 2061.48, 146.105),
-- Nuramoc
((@CGUID+6)*10, 1, 3250.51, 1961.25, 132.385),
((@CGUID+6)*10, 2, 3228.29, 2001.11, 138.882),
((@CGUID+6)*10, 3, 3235.93, 2084.18, 135.385),
((@CGUID+6)*10, 4, 3239.06, 2128.28, 137.825),
((@CGUID+6)*10, 5, 3207.12, 2151.5, 136.752),
((@CGUID+6)*10, 6, 3213.69, 2229.01, 138.009),
((@CGUID+6)*10, 7, 3231.47, 2305.03, 124.795),
((@CGUID+6)*10, 8, 3231.7, 2393.11, 103.663),
((@CGUID+6)*10, 9, 3269.73, 2434.75, 74.4029),
((@CGUID+6)*10, 10, 3332.71, 2467.68, 85.8992),
((@CGUID+6)*10, 11, 3384.93, 2532.03, 110.799),
((@CGUID+6)*10, 12, 3438.84, 2578.09, 142.708),
((@CGUID+6)*10, 13, 3342.11, 2593.94, 188.744),
((@CGUID+6)*10, 14, 3214.78, 2476.76, 98.5975),
((@CGUID+6)*10, 15, 3258.1, 2439.65, 112.365),
((@CGUID+6)*10, 16, 3305.8, 2397.5, 135.329),
((@CGUID+6)*10, 17, 3379.15, 2306.53, 96.941),
((@CGUID+6)*10, 18, 3302.31, 2171.94, 123.625),
((@CGUID+6)*10, 19, 3274.61, 2098.45, 115.694),
((@CGUID+6)*10, 20, 3180.44, 1989.87, 164.138),
((@CGUID+6)*10, 21, 3160.3, 1887, 152.491),
((@CGUID+6)*10, 22, 3152.02, 1758.62, 160.324),
((@CGUID+6)*10, 23, 3155.54, 1702.77, 140.429),
((@CGUID+6)*10, 24, 3255.68, 1751.95, 124.196),
((@CGUID+6)*10, 25, 3290.94, 1785.01, 139.078),
((@CGUID+6)*10, 26, 3301.79, 1853.55, 131.618),
((@CGUID+6)*10, 27, 3283.64, 1905.23, 124.957),
((@CGUID+6)*10, 28, 3280.69, 1911.33, 120.78),
((@CGUID+7)*10, 1, 2817.23, 2929.54, 122.393),
((@CGUID+7)*10, 2, 2730.13, 3012.53, 128.227),
((@CGUID+7)*10, 3, 2675.16, 3059.62, 128.247),
((@CGUID+7)*10, 4, 2645.27, 3091.27, 134.927),
((@CGUID+7)*10, 5, 2624.72, 3174.52, 141.912),
((@CGUID+7)*10, 6, 2596.74, 3254.45, 140.111),
((@CGUID+7)*10, 7, 2552.73, 3278.38, 127.29),
((@CGUID+7)*10, 8, 2510.04, 3311.72, 120.465),
((@CGUID+7)*10, 9, 2465.47, 3374.43, 123.69),
((@CGUID+7)*10, 10, 2499.48, 3465.25, 129.593),
((@CGUID+7)*10, 11, 2509.5, 3562.82, 131.936),
((@CGUID+7)*10, 12, 2486.69, 3644.09, 124.994),
((@CGUID+7)*10, 13, 2483.76, 3717.01, 126.238),
((@CGUID+7)*10, 14, 2452.58, 3773.66, 119.516),
((@CGUID+7)*10, 15, 2449.44, 3869.47, 118.01),
((@CGUID+7)*10, 16, 2441.61, 3954.58, 121.328),
((@CGUID+7)*10, 17, 2416.61, 4001.19, 115.294),
((@CGUID+7)*10, 18, 2434.59, 4063.79, 126.034),
((@CGUID+7)*10, 19, 2500.28, 4197.05, 136.513),
((@CGUID+8)*10, 1, 4788.54, 3503.49, 121.951),
((@CGUID+8)*10, 2, 4706.67, 3520.02, 136.092),
((@CGUID+8)*10, 3, 4637.13, 3533.71, 144.088),
((@CGUID+8)*10, 4, 4573.97, 3523.54, 145.267),
((@CGUID+8)*10, 5, 4513.13, 3569.78, 144.028),
((@CGUID+8)*10, 6, 4426.59, 3569.69, 159.578),
((@CGUID+8)*10, 7, 4352.02, 3594.6, 149.207),
((@CGUID+8)*10, 8, 4265.53, 3590.13, 166.896),
((@CGUID+8)*10, 9, 4201.69, 3563.6, 156.539),
((@CGUID+8)*10, 10, 4265.53, 3590.13, 166.896),
((@CGUID+8)*10, 11, 4352.02, 3594.6, 149.207),
((@CGUID+8)*10, 12, 4426.59, 3569.69, 159.578),
((@CGUID+8)*10, 13, 4513.13, 3569.78, 144.028),
((@CGUID+8)*10, 14, 4573.97, 3523.54, 145.267),
((@CGUID+8)*10, 15, 4637.13, 3533.71, 144.088),
((@CGUID+8)*10, 16, 4706.67, 3520.02, 136.092),
((@CGUID+8)*10, 17, 4788.54, 3503.49, 121.951);
-- Pooling
DELETE FROM `pool_template` WHERE `entry`=1075; -- Description for this one is wrongly attributed to Okrek
DELETE FROM `pool_template` WHERE `entry`=1078 AND `description` LIKE '%Ever-Core%';
DELETE FROM `pool_template` WHERE `entry`=1115 AND `description`='Nuramoc (20932)';
INSERT INTO `pool_template` (`entry`, `max_limit`, `description`) VALUES
(1075, 1, 'Chief Engineer Lorthander (18697)'),
(1078, 1, 'Ever-Core the Punisher (18698)'),
(1115, 1, 'Nuramoc (20932)');
DELETE FROM `pool_creature` WHERE `pool_entry`=1075 AND `description` LIKE '%Lorthander%';
DELETE FROM `pool_creature` WHERE `pool_entry`=1078 AND `description` LIKE '%Ever-Core%';
DELETE FROM `pool_creature` WHERE `pool_entry`=1115 AND `description`='Nuramoc (20932)';
INSERT INTO `pool_creature` (`guid`, `pool_entry`, `chance`, `description`) VALUES
(@CGUID+0, 1075, 0, 'Chief Engineer Lorthander (18697)'),
(@CGUID+1, 1075, 0, 'Chief Engineer Lorthander (18697)'),
(@CGUID+2, 1075, 0, 'Chief Engineer Lorthander (18697)'),
(@CGUID+3, 1078, 0, 'Ever-Core the Punisher (18698)'),
(@CGUID+4, 1078, 0, 'Ever-Core the Punisher (18698)'),
(@CGUID+5, 1078, 0, 'Ever-Core the Punisher (18698)'),
(@CGUID+6, 1115, 0, 'Nuramoc (20932)'),
(@CGUID+7, 1115, 0, 'Nuramoc (20932)'),
(@CGUID+8, 1115, 0, 'Nuramoc (20932)');
-- Nuramoc
DELETE FROM `creature_template_movement` WHERE (`CreatureId` = 20932);
INSERT INTO `creature_template_movement` (`CreatureId`, `Ground`, `Swim`, `Flight`, `Rooted`, `Chase`, `Random`, `InteractionPauseTimer`) VALUES
(20932, 1, 0, 1, 0, 0, 0, 0);

View File

@@ -0,0 +1,298 @@
-- DB update 2023_02_18_02 -> 2023_02_18_03
-- Okrek
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18685);
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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(18685, 0, 0, 0, 9, 0, 100, 0, 0, 40, 3400, 4800, 0, 11, 14034, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Okrek - Within 0-40 Range - Cast \'Fireball\''),
(18685, 0, 1, 0, 0, 0, 100, 0, 6000, 8000, 6000, 10000, 0, 11, 12471, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Okrek - In Combat - Cast \'Shadow Bolt\''),
(18685, 0, 2, 0, 9, 0, 100, 0, 0, 10, 8500, 18000, 0, 11, 32711, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Okrek - Within 0-10 Range - Cast \'Shadow Nova\''),
(18685, 0, 3, 0, 23, 0, 100, 0, 13787, 0, 15000, 30000, 0, 11, 13787, 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Okrek - On Missing Aura \'Demon Armor\' - Cast \'Demon Armor\'');
-- Doomsayer Jurim
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18686);
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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(18686, 0, 0, 0, 0, 0, 100, 0, 14000, 19000, 19000, 25000, 0, 11, 39212, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Doomsayer Jurim - In Combat - Cast \'Corruption\''),
(18686, 0, 1, 0, 0, 0, 100, 0, 9000, 14000, 11000, 16000, 0, 11, 38401, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Doomsayer Jurim - In Combat - Cast \'Incinerate\''),
(18686, 0, 2, 0, 0, 0, 100, 0, 8000, 14000, 15000, 21000, 0, 11, 39210, 64, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Doomsayer Jurim - In Combat - Cast \'Fear\''),
(18686, 0, 3, 0, 0, 0, 100, 0, 3000, 8000, 5000, 11000, 0, 11, 12493, 32, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Doomsayer Jurim - In Combat - Cast \'Curse of Weakness\''),
(18686, 0, 4, 0, 9, 0, 100, 0, 0, 40, 3400, 4800, 0, 11, 12471, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Doomsayer Jurim - Within 0-40 Range - Cast \'Shadow Bolt\'');
-- The Crippler AI
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18689);
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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(18689, 0, 0, 0, 0, 0, 100, 0, 3000, 5000, 11000, 15000, 0, 11, 39214, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Crippler - In Combat - Cast \'Pierce Armor\''),
(18689, 0, 1, 0, 0, 0, 100, 0, 8000, 12000, 13000, 18000, 0, 11, 38621, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Crippler - In Combat - Cast \'Debilitating Strike\''),
(18689, 0, 2, 0, 2, 0, 100, 1, 0, 50, 0, 0, 0, 11, 38882, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Crippler - Between 0-50% Health - Cast \'Bone Armor\' (No Repeat)');
SET @CGUID := 25087;
DELETE FROM `creature` WHERE `id1` IN (18685, 18686);
INSERT INTO `creature` (`guid`, `id1`, `map`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `MovementType`) VALUES
(@CGUID+0, 18685, 530, 1, -1633.09, 4416.39, 52.1155, 5.98654, 79200, 2),
(@CGUID+1, 18685, 530, 1, -2564.99, 5437.01, 28.0524, 3.10727, 93600, 2),
(@CGUID+2, 18685, 530, 1, -1843.55, 3958.17, 46.5491, 4.04581, 100800, 2),
(@CGUID+3, 18685, 530, 1, -3551.84, 3999.6, 93.7046, 5.20977, 115200, 2),
(@CGUID+4, 18686, 530, 0, -2847.33, 3195.11, 7.4167, 0.091094, 21600, 2),
(@CGUID+5, 18686, 530, 0, -1842.53, 4231.02, 20.9801, 2.23252, 21600, 2),
(@CGUID+6, 18686, 530, 0, -2595.42, 5118.68, 6.63357, 6.27732, 21600, 2);
DELETE FROM `creature_addon` WHERE (`guid` IN (@CGUID+0,@CGUID+1,@CGUID+2,@CGUID+3,@CGUID+4,@CGUID+5,@CGUID+6,40470));
INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
(@CGUID+0, (@CGUID+0)*10, 0, 0, 1, 0, 0, ''),
(@CGUID+1, (@CGUID+1)*10, 0, 0, 1, 0, 0, ''),
(@CGUID+2, (@CGUID+2)*10, 0, 0, 1, 0, 0, ''),
(@CGUID+3, (@CGUID+3)*10, 0, 0, 1, 0, 0, ''),
(@CGUID+4, (@CGUID+4)*10, 0, 0, 1, 0, 0, ''),
(@CGUID+5, (@CGUID+5)*10, 0, 0, 1, 0, 0, ''),
(@CGUID+6, (@CGUID+6)*10, 0, 0, 1, 0, 0, '');
DELETE FROM `waypoint_data` WHERE `id` IN ((@CGUID+0)*10,(@CGUID+1)*10,(@CGUID+2)*10,(@CGUID+3)*10,(@CGUID+4)*10,(@CGUID+5)*10,(@CGUID+6)*10,404700);
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`) VALUES
((@CGUID+0)*10, 1, -1633.09, 4416.39, 52.0432),
((@CGUID+0)*10, 2, -1618.41, 4410.16, 52.5576),
((@CGUID+0)*10, 3, -1606.43, 4420.26, 52.6329),
((@CGUID+0)*10, 4, -1611.34, 4435.12, 52.6265),
((@CGUID+0)*10, 5, -1624.94, 4436.8, 52.6168),
((@CGUID+0)*10, 6, -1633.09, 4416.39, 52.0432),
((@CGUID+1)*10, 1, -2564.99, 5437.01, 27.482),
((@CGUID+1)*10, 2, -2567.62, 5447.4, 27.2306),
((@CGUID+1)*10, 3, -2580.16, 5451.42, 27.2254),
((@CGUID+1)*10, 4, -2591.11, 5437.56, 27.2367),
((@CGUID+1)*10, 5, -2579.75, 5426.12, 26.9373),
((@CGUID+1)*10, 6, -2570.32, 5424.22, 26.635),
((@CGUID+1)*10, 7, -2552.85, 5407.97, 20.0038),
((@CGUID+1)*10, 8, -2535.35, 5390.59, 27.2097),
((@CGUID+1)*10, 9, -2535.96, 5370.64, 27.2342),
((@CGUID+1)*10, 10, -2515.76, 5363.92, 27.2173),
((@CGUID+1)*10, 11, -2515.27, 5379.05, 28.0072),
((@CGUID+2)*10, 1, -1843.55, 3958.17, 46.5491),
((@CGUID+2)*10, 2, -1849.11, 3959.83, 46.5567),
((@CGUID+2)*10, 3, -1856.92, 3952.97, 46.4926),
((@CGUID+2)*10, 4, -1856.12, 3938.67, 46.05),
((@CGUID+2)*10, 5, -1853.1, 3924.98, 45.3693),
((@CGUID+2)*10, 6, -1862.49, 3908.7, 39.1752),
((@CGUID+2)*10, 7, -1879.08, 3879.85, 45.4519),
((@CGUID+2)*10, 8, -1903.73, 3870.84, 45.3793),
((@CGUID+2)*10, 9, -1910.33, 3850.94, 45.4441),
((@CGUID+2)*10, 10, -1887.31, 3837.38, 45.4393),
((@CGUID+2)*10, 11, -1871.41, 3847.16, 45.4412),
((@CGUID+2)*10, 12, -1871.2, 3867.79, 45.4431),
((@CGUID+2)*10, 13, -1880.9, 3877.3, 45.4447),
((@CGUID+2)*10, 14, -1868.93, 3897.99, 39.0142),
((@CGUID+2)*10, 15, -1853.37, 3923.24, 45.3162),
((@CGUID+2)*10, 16, -1826.5, 3934.92, 46.5561),
((@CGUID+2)*10, 17, -1829.69, 3958.36, 46.5588),
((@CGUID+2)*10, 18, -1836.99, 3960.91, 46.5588),
((@CGUID+3)*10, 1, -3551.84, 3999.6, 93.7046),
((@CGUID+3)*10, 2, -3563.29, 4001.41, 91.8348),
((@CGUID+3)*10, 3, -3590.03, 4006.42, 75.3029),
((@CGUID+3)*10, 4, -3555.16, 4040.98, 69.5859),
((@CGUID+3)*10, 5, -3512.02, 4051.49, 60.9738),
((@CGUID+3)*10, 6, -3499.84, 4050.19, 59.424),
((@CGUID+3)*10, 7, -3482.48, 4033.23, 59.8893),
((@CGUID+3)*10, 8, -3461.45, 4028.88, 59.1618),
((@CGUID+3)*10, 9, -3428.89, 4011.93, 62.2547),
((@CGUID+3)*10, 10, -3386.09, 4008.06, 58.385),
((@CGUID+3)*10, 11, -3363.25, 4002.11, 58.7623),
((@CGUID+3)*10, 12, -3386.09, 4008.06, 58.385),
((@CGUID+3)*10, 13, -3428.89, 4011.93, 62.2547),
((@CGUID+3)*10, 14, -3461.45, 4028.88, 59.1618),
((@CGUID+3)*10, 15, -3482.48, 4033.23, 59.8893),
((@CGUID+3)*10, 16, -3499.84, 4050.19, 59.424),
((@CGUID+3)*10, 17, -3512.02, 4051.49, 60.9738),
((@CGUID+3)*10, 18, -3555.16, 4040.98, 69.5859),
((@CGUID+3)*10, 19, -3590.03, 4006.42, 75.3029),
((@CGUID+3)*10, 20, -3563.29, 4001.41, 91.8348),
((@CGUID+4)*10, 1, -2843.86, 3205.97, 5.45323),
((@CGUID+4)*10, 2, -2829.24, 3218.81, 9.59048),
((@CGUID+4)*10, 3, -2814.12, 3235.72, 10.1736),
((@CGUID+4)*10, 4, -2792.54, 3259.91, 5.91885),
((@CGUID+4)*10, 5, -2774.46, 3280.17, 2.8828),
((@CGUID+4)*10, 6, -2751.21, 3306.24, 0.199384),
((@CGUID+4)*10, 7, -2728.55, 3318.21, -0.833018),
((@CGUID+4)*10, 8, -2719.59, 3331.35, -1.04936),
((@CGUID+4)*10, 9, -2708.94, 3349.74, -0.819842),
((@CGUID+4)*10, 10, -2694.72, 3374.29, -0.156626),
((@CGUID+4)*10, 11, -2685.08, 3390.93, 0.328583),
((@CGUID+4)*10, 12, -2675.69, 3407.16, 0.474826),
((@CGUID+4)*10, 13, -2669.68, 3416.29, 0.743526),
((@CGUID+4)*10, 14, -2660.96, 3425.2, 0.805554),
((@CGUID+4)*10, 15, -2654.25, 3430.82, 0.77502),
((@CGUID+4)*10, 16, -2645.46, 3437.83, 1.28666),
((@CGUID+4)*10, 17, -2639.59, 3442.5, 3.25542),
((@CGUID+4)*10, 18, -2630.71, 3449.41, 1.86245),
((@CGUID+4)*10, 19, -2621.54, 3456.21, 0.653284),
((@CGUID+4)*10, 20, -2617.41, 3460.51, 0.593326),
((@CGUID+4)*10, 21, -2611.5, 3471.52, 0.520041),
((@CGUID+4)*10, 22, -2610.04, 3475.69, 0.53993),
((@CGUID+4)*10, 23, -2606.9, 3480.85, 0.492544),
((@CGUID+4)*10, 24, -2590.41, 3502.84, 0.225892),
((@CGUID+4)*10, 25, -2582.03, 3512, 0.101641),
((@CGUID+4)*10, 26, -2566.36, 3522.06, 0.189451),
((@CGUID+4)*10, 27, -2534.38, 3523.07, 1.3404),
((@CGUID+4)*10, 28, -2523.33, 3527.83, 1.66667),
((@CGUID+4)*10, 29, -2516.31, 3533.95, 1.65006),
((@CGUID+4)*10, 30, -2507.47, 3544.67, 1.56155),
((@CGUID+4)*10, 31, -2491.83, 3549.68, 1.43199),
((@CGUID+4)*10, 32, -2471.56, 3551.98, 1.23732),
((@CGUID+4)*10, 33, -2463.14, 3555.66, 1.03546),
((@CGUID+4)*10, 34, -2456.3, 3555.25, 0.942503),
((@CGUID+4)*10, 35, -2452.53, 3537.02, 0.402467),
((@CGUID+4)*10, 36, -2446.32, 3528.59, -0.236494),
((@CGUID+4)*10, 37, -2462.93, 3549.41, 1.08819),
((@CGUID+4)*10, 38, -2460.92, 3557.5, 1.00403),
((@CGUID+4)*10, 39, -2425.49, 3596.2, 0.274173),
((@CGUID+4)*10, 40, -2405.2, 3613.88, 0.217946),
((@CGUID+4)*10, 41, -2391.31, 3632.83, 0.792431),
((@CGUID+4)*10, 42, -2383.97, 3658.54, 0.99065),
((@CGUID+4)*10, 43, -2351.54, 3700.72, 0.420721),
((@CGUID+4)*10, 44, -2314.59, 3729.83, 0.0297019),
((@CGUID+4)*10, 45, -2296.57, 3749.89, 0.363868),
((@CGUID+4)*10, 46, -2285.44, 3767.7, 0.291327),
((@CGUID+4)*10, 47, -2279.3, 3787.95, 0.314858),
((@CGUID+4)*10, 48, -2276.3, 3799.32, 0.521091),
((@CGUID+4)*10, 49, -2254.61, 3831.13, 2.70024),
((@CGUID+4)*10, 50, -2251.75, 3848.92, 5.15061),
((@CGUID+4)*10, 51, -2249.52, 3869.55, 2.39354),
((@CGUID+4)*10, 52, -2244.66, 3893.46, 1.58335),
((@CGUID+4)*10, 53, -2239.88, 3904.19, 1.10899),
((@CGUID+4)*10, 54, -2224.28, 3927.45, 0.706091),
((@CGUID+4)*10, 55, -2187.45, 3958.22, 0.921813),
((@CGUID+4)*10, 56, -2175.09, 3978.98, 0.929392),
((@CGUID+4)*10, 57, -2171.14, 4011.04, 0.450247),
((@CGUID+4)*10, 58, -2175.93, 4027.88, 0.519539),
((@CGUID+4)*10, 59, -2187.96, 4064.43, 1.4281),
((@CGUID+4)*10, 60, -2166.44, 4102.49, 4.27243),
((@CGUID+4)*10, 61, -1700.15, 3993.57, 55.6859),
((@CGUID+4)*10, 62, -1710.59, 4034.97, 60.6101),
((@CGUID+4)*10, 63, -1719.95, 4059.83, 62.7452),
((@CGUID+4)*10, 64, -1718.67, 4104.32, 64.3796),
((@CGUID+4)*10, 65, -1743.77, 4151.6, 62.3929),
((@CGUID+4)*10, 66, -1754.61, 4173.29, 58.3691),
((@CGUID+4)*10, 67, -1788.41, 4206.51, 44.1839),
((@CGUID+4)*10, 68, -1818.93, 4214.12, 33.1137),
((@CGUID+4)*10, 69, -1841.51, 4228.1, 22.0741),
((@CGUID+4)*10, 70, -1871.54, 4263.5, 8.22153),
((@CGUID+4)*10, 71, -1891, 4295.91, 3.23019),
((@CGUID+4)*10, 72, -1911.96, 4351.49, 1.66825),
((@CGUID+4)*10, 73, -1910.12, 4389.42, 1.77078),
((@CGUID+4)*10, 74, -1907.67, 4417.31, 2.99456),
((@CGUID+4)*10, 75, -1917.63, 4452.07, 6.27493),
((@CGUID+4)*10, 76, -1929.4, 4473.47, 8.90937),
((@CGUID+4)*10, 77, -1942.74, 4489.67, 11.1029),
((@CGUID+4)*10, 78, -1958.47, 4508.45, 12.7432),
((@CGUID+4)*10, 79, -1975.36, 4519.94, 13.1616),
((@CGUID+4)*10, 80, -1982.19, 4524.49, 13.0993),
((@CGUID+4)*10, 81, -1983.38, 4507.03, 12.7591),
((@CGUID+4)*10, 82, -1984.02, 4496.55, 11.9535),
((@CGUID+4)*10, 83, -1984.87, 4482.57, 11.1499),
((@CGUID+4)*10, 84, -1978.92, 4509.87, 12.6695),
((@CGUID+4)*10, 85, -1978.12, 4527.35, 13.36),
((@CGUID+4)*10, 86, -1967.33, 4546.79, 12.8741),
((@CGUID+4)*10, 87, -1953.04, 4566.47, 10.1123),
((@CGUID+4)*10, 88, -1946.5, 4582.91, 7.44598),
((@CGUID+4)*10, 89, -1948.3, 4599.58, 4.61956),
((@CGUID+4)*10, 90, -1955.08, 4637.48, -0.0588505),
((@CGUID+4)*10, 91, -1943.63, 4685.04, -2.18987),
((@CGUID+4)*10, 92, -1941.99, 4705.25, -2.67768),
((@CGUID+4)*10, 93, -1945.22, 4727.47, -3.22917),
((@CGUID+4)*10, 94, -1951.89, 4748.79, -2.9388),
((@CGUID+4)*10, 95, -1957.77, 4773.7, -1.42409),
((@CGUID+4)*10, 96, -1957.36, 4798.11, -0.0807409),
((@CGUID+4)*10, 97, -1944.66, 4829.17, 0.67),
((@CGUID+4)*10, 98, -1929.68, 4851.09, 1.64973),
((@CGUID+4)*10, 99, -1918.23, 4883.89, 2.11937),
((@CGUID+4)*10, 100, -1901.18, 4906.49, -1.12705),
((@CGUID+4)*10, 101, -1881.87, 4926.69, -9.60835),
((@CGUID+4)*10, 102, -1870.05, 4946.21, -17.0149),
((@CGUID+4)*10, 103, -1866.49, 4960.25, -20.2899),
((@CGUID+4)*10, 104, -1860.94, 5033.3, -26.0991),
((@CGUID+4)*10, 105, -1869.8, 4962.46, -20.3781),
((@CGUID+4)*10, 106, -1884.86, 4924.67, -8.30171),
((@CGUID+4)*10, 107, -1904.83, 4905.16, -0.202733),
((@CGUID+4)*10, 108, -1922.67, 4912.5, 6.06643),
((@CGUID+4)*10, 109, -1937.46, 4934.99, 14.8054),
((@CGUID+4)*10, 110, -1953.22, 4961.69, 24.7149),
((@CGUID+4)*10, 111, -1958.07, 4992.99, 30.1767),
((@CGUID+4)*10, 112, -1958.74, 5013.42, 32.4293),
((@CGUID+4)*10, 113, -1947.03, 5042.52, 25.2899),
((@CGUID+4)*10, 114, -1942.58, 5058.03, 19.5292),
((@CGUID+4)*10, 115, -1963.32, 5083.08, 11.1075),
((@CGUID+4)*10, 116, -1984.5, 5100.08, 7.82778),
((@CGUID+4)*10, 117, -2004.59, 5114.07, 8.26657),
((@CGUID+4)*10, 118, -2029.48, 5123.26, 8.48839),
((@CGUID+4)*10, 119, -2055.94, 5125.38, 7.48301),
((@CGUID+4)*10, 120, -2089.33, 5115.44, 3.14184),
((@CGUID+4)*10, 121, -2112.53, 5107.32, -2.40737),
((@CGUID+4)*10, 122, -2137.4, 5108.51, -11.5709),
((@CGUID+4)*10, 123, -2155.69, 5115.97, -18.1534),
((@CGUID+4)*10, 124, -2170.6, 5125.13, -21.2824),
((@CGUID+4)*10, 125, -2182.81, 5131.87, -21.667),
((@CGUID+4)*10, 126, -2198.88, 5138.77, -21.2323),
((@CGUID+4)*10, 127, -2219.62, 5144.57, -19.6848),
((@CGUID+4)*10, 128, -2238.57, 5146.29, -17.4706),
((@CGUID+4)*10, 129, -2266.45, 5144.26, -13.0598),
((@CGUID+4)*10, 130, -2290.86, 5142.23, -9.17377),
((@CGUID+4)*10, 131, -2308.35, 5142.09, -7.11532),
((@CGUID+4)*10, 132, -2333.72, 5149.44, -5.0165),
((@CGUID+4)*10, 133, -2365.45, 5157.88, -2.8501),
((@CGUID+4)*10, 134, -2390.26, 5158.22, -1.19618),
((@CGUID+4)*10, 135, -2417.84, 5153.35, 0.775549),
((@CGUID+4)*10, 136, -2442.28, 5142.04, 3.53141),
((@CGUID+4)*10, 137, -2469.81, 5120.56, 6.76948),
((@CGUID+4)*10, 138, -2498.06, 5115.06, 7.87731),
((@CGUID+4)*10, 139, -2532.85, 5118.89, 7.54034),
((@CGUID+4)*10, 140, -2555.6, 5120.59, 7.69492),
((@CGUID+5)*10, 1, -1842.53, 4231.02, 20.9801),
((@CGUID+5)*10, 2, -1869.21, 4261.13, 8.89557),
((@CGUID+5)*10, 3, -1881.34, 4278.1, 5.5224),
((@CGUID+5)*10, 4, -1912.25, 4349.02, 1.68234),
((@CGUID+5)*10, 5, -1914.46, 4374.06, 1.6238),
((@CGUID+5)*10, 6, -1907.34, 4411.19, 2.60279),
((@CGUID+5)*10, 7, -1910.76, 4438.84, 4.91422),
((@CGUID+5)*10, 8, -1931.52, 4475.42, 9.21656),
((@CGUID+5)*10, 9, -1970.77, 4515.64, 13.0504),
((@CGUID+5)*10, 10, -1976.75, 4527.05, 13.3934),
((@CGUID+5)*10, 11, -1972.72, 4539.17, 13.3457),
((@CGUID+5)*10, 12, -1946.46, 4597.88, 4.94647),
((@CGUID+5)*10, 13, -1956.85, 4637.1, 0.01026),
((@CGUID+5)*10, 14, -1940.22, 4702.82, -2.56809),
((@CGUID+5)*10, 15, -1949.24, 4739.94, -3.13258),
((@CGUID+5)*10, 16, -1955.66, 4753.73, -2.74301),
((@CGUID+5)*10, 17, -1959.56, 4796.31, -0.128966),
((@CGUID+5)*10, 18, -1921.66, 4869.82, 1.85516),
((@CGUID+5)*10, 19, -1915.69, 4891.67, 2.15411),
((@CGUID+5)*10, 20, -1888.97, 4918.59, -5.75911),
((@CGUID+5)*10, 21, -1869.05, 4946.2, -17.1173),
((@CGUID+5)*10, 22, -1865.53, 4978.99, -22.5178),
((@CGUID+6)*10, 1, -2595.42, 5118.68, 6.63357),
((@CGUID+6)*10, 2, -2546, 5122.18, 7.52113),
((@CGUID+6)*10, 3, -2485.8, 5112.25, 7.9062),
((@CGUID+6)*10, 4, -2440.9, 5141.97, 3.35802),
((@CGUID+6)*10, 5, -2416.25, 5152.64, 0.680542),
((@CGUID+6)*10, 6, -2378.67, 5159.02, -1.98798),
((@CGUID+6)*10, 7, -2338.08, 5151.37, -4.80083),
((@CGUID+6)*10, 8, -2307.95, 5141.67, -7.15532),
((@CGUID+6)*10, 9, -2276.08, 5142.61, -11.4779),
((@CGUID+6)*10, 10, -2228.73, 5147.82, -18.686),
((@CGUID+6)*10, 11, -2200.59, 5140.23, -21.1159),
((@CGUID+6)*10, 12, -2165.21, 5123.69, -20.855),
((@CGUID+6)*10, 13, -2148.15, 5138.56, -22.1488);
-- Pooling
DELETE FROM `pool_template` WHERE `entry`=1073 AND `description` LIKE '%Okrek%';
DELETE FROM `pool_template` WHERE `entry`=1117 AND `description`='Doomsayer Jurim (18686)';
INSERT INTO `pool_template` (`entry`, `max_limit`, `description`) VALUES
(1073, 1, 'Okrek (18685)'),
(1117, 1, 'Doomsayer Jurim (18686)');
DELETE FROM `pool_creature` WHERE `pool_entry`=1073 AND `description` LIKE '%Okrek%';
DELETE FROM `pool_creature` WHERE `pool_entry`=1117 AND `description`='Doomsayer Jurim (18686)';
INSERT INTO `pool_creature` (`guid`, `pool_entry`, `chance`, `description`) VALUES
(@CGUID+0, 1073, 0, 'Okrek (18685)'),
(@CGUID+1, 1073, 0, 'Okrek (18685)'),
(@CGUID+2, 1073, 0, 'Okrek (18685)'),
(@CGUID+3, 1073, 0, 'Okrek (18685)'),
(@CGUID+4, 1117, 0, 'Doomsayer Jurim (18686)'),
(@CGUID+5, 1117, 0, 'Doomsayer Jurim (18686)'),
(@CGUID+6, 1117, 0, 'Doomsayer Jurim (18686)');

View File

@@ -0,0 +1,17 @@
-- DB update 2023_02_18_03 -> 2023_02_18_04
-- Dragonmaw Bonewarder - spawn Skeleton on reset
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 1057;
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 1057);
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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(1057, 0, 0, 0, 25, 0, 100, 0, 0, 0, 0, 0, 0, 11, 8853, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Dragonmaw Bonewarder - On Reset - Cast \'Summon Skeleton\''),
(1057, 0, 1, 0, 4, 0, 100, 1, 0, 0, 0, 0, 0, 11, 13787, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Dragonmaw Bonewarder - On Aggro - Cast \'Demon Armor\' (No Repeat)'),
(1057, 0, 2, 0, 0, 0, 100, 0, 3000, 4000, 120000, 120000, 0, 11, 6205, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Dragonmaw Bonewarder - In Combat - Cast \'Curse of Weakness\''),
(1057, 0, 3, 0, 0, 0, 100, 0, 5000, 6000, 15000, 15000, 0, 11, 707, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Dragonmaw Bonewarder - In Combat - Cast \'Immolate\'');
-- Skeleton (Dragonmaw Bonewarder's pet) - force despawn on death
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 6412;
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 6412);
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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(6412, 0, 0, 0, 6, 0, 100, 513, 0, 0, 0, 0, 0, 41, 1000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Skeleton - On Just Died - Despawn In 1000 ms (No Repeat)');

View File

@@ -0,0 +1,4 @@
-- DB update 2023_02_18_04 -> 2023_02_18_05
-- Reply-Code Alpha - All Is Well That Ends Well 10 & 25 - Remove requirement for sigil quest completion.
UPDATE `quest_template_addon` SET `PrevQuestID` = 0 WHERE (`ID` = 13631); -- Normal (10m)
UPDATE `quest_template_addon` SET `PrevQuestID` = 0 WHERE (`ID` = 13819); -- Heroic (25m)

View File

@@ -0,0 +1,135 @@
-- DB update 2023_02_18_05 -> 2023_02_18_06
--
DELETE FROM `creature` WHERE `id1`=18679;
INSERT INTO `creature` (`guid`, `id1`, `map`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `MovementType`) VALUES
(24922, 18679, 530, 1, -368.807, 1845.98, 86.4098, 2.91794, 28800, 2),
(24923, 18679, 530, 1, -114.012, 1835.66, 73.8411, 0.612791, 28800, 2),
(24924, 18679, 530, 1, 494.112, 2187.12, 131.719, 1.88514, 28800, 2),
(24925, 18679, 530, 1, 442.586, 3516.65, 60.8444, 1.20665, 28800, 2);
DELETE FROM `creature_addon` WHERE (`guid` IN (24922, 24923, 24924, 24925, 151930));
INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
(24922, 249220, 0, 0, 1, 0, 0, ''),
(24923, 249230, 0, 0, 1, 0, 0, ''),
(24924, 249240, 0, 0, 1, 0, 0, ''),
(24925, 249250, 0, 0, 1, 0, 0, '');
DELETE FROM `waypoint_data` WHERE `id` IN (249220, 249230, 249240, 249250, 1519300);
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`) VALUES
(249220, 1, -368.807, 1845.98, 86.4098),
(249220, 2, -394.117, 1765.65, 60.0718),
(249220, 3, -430.21, 1735.79, 50.2494),
(249220, 4, -467.137, 1759.59, 46.767),
(249220, 5, -481.167, 1743.93, 41.2044),
(249220, 6, -491.55, 1741.66, 46.4614),
(249220, 7, -501.393, 1756.58, 49.219),
(249220, 8, -534.742, 1790.65, 56.8644),
(249220, 9, -563.301, 1812.43, 66.1833),
(249220, 10, -582.342, 1829.4, 70.716),
(249220, 11, -541.357, 1879.13, 77.7951),
(249220, 12, -484.344, 1898.96, 87.2478),
(249220, 13, -392.494, 1897.04, 104.712),
(249230, 1, -114.012, 1835.66, 73.8411),
(249230, 2, -91.4783, 1847.82, 69.2832),
(249230, 3, -48.3747, 1834.22, 56.2454),
(249230, 4, -27.769, 1751.28, 45.8751),
(249230, 5, 7.84103, 1727.88, 42.7232),
(249230, 6, 61.2473, 1718.28, 40.0149),
(249230, 7, 83.7766, 1696.73, 39.1369),
(249230, 8, 100.682, 1697.19, 40.2013),
(249230, 9, 173.49, 1699.2, 29.6471),
(249230, 10, 187.283, 1739.6, 31.9241),
(249230, 11, 204.008, 1746.78, 24.8385),
(249230, 12, 211.648, 1786.65, 19.2764),
(249230, 13, 199.708, 1790.54, 22.2977),
(249230, 14, 173.246, 1781.3, 26.3822),
(249230, 15, 155.866, 1781.44, 33.661),
(249230, 16, 134.747, 1779.92, 34.6875),
(249230, 17, 128.552, 1783.87, 37.7445),
(249230, 18, 79.8076, 1800.09, 45.2287),
(249230, 19, 63.0398, 1800.49, 48.2331),
(249230, 20, 32.4485, 1861.2, 49.7156),
(249230, 21, 29.9901, 1871.98, 47.1418),
(249230, 22, 9.29734, 1874.98, 51.9819),
(249230, 23, -22.6535, 1868.99, 57.1755),
(249230, 24, -43.6076, 1863.96, 64.0862),
(249230, 25, -78.5294, 1861.73, 71.2376),
(249240, 1, 494.112, 2187.12, 131.719),
(249240, 2, 490.009, 2150.51, 126.99),
(249240, 3, 476.108, 2147.86, 118.362),
(249240, 4, 447.068, 2146.79, 117.958),
(249240, 5, 391.824, 2120.25, 115.876),
(249240, 6, 364.498, 2141.12, 120.353),
(249240, 7, 366.106, 2174.26, 120.116),
(249240, 8, 369.158, 2196.83, 119.376),
(249240, 9, 343.484, 2215.23, 117.934),
(249240, 10, 340.956, 2232.1, 118.971),
(249240, 11, 391.441, 2247.7, 117.091),
(249240, 12, 432.466, 2259.06, 117.991),
(249240, 13, 437.614, 2269.6, 114.766),
(249240, 14, 438.826, 2278.85, 118.556),
(249240, 15, 438.178, 2332.83, 119.533),
(249240, 16, 430.33, 2389.52, 125.334),
(249240, 17, 424.122, 2410.58, 132.903),
(249240, 18, 409.936, 2426.29, 140.293),
(249240, 19, 391.569, 2441.42, 147.378),
(249240, 20, 372.028, 2450.85, 153.994),
(249240, 21, 351.563, 2501.71, 158.671),
(249240, 22, 358.341, 2519.12, 157.017),
(249240, 23, 362.253, 2540.77, 155.273),
(249240, 24, 393.193, 2549.76, 151.156),
(249240, 25, 422.271, 2538.3, 151.843),
(249240, 26, 443.763, 2554.36, 162.211),
(249240, 27, 446.835, 2632.73, 179.099),
(249240, 28, 487.397, 2745.97, 201.314),
(249240, 29, 524.691, 2778.75, 213.732),
(249240, 30, 529.078, 2770.99, 213.393),
(249240, 31, 516.915, 2750.16, 211.931),
(249240, 32, 474.551, 2663.26, 192.277),
(249240, 33, 463.675, 2628.29, 184.522),
(249240, 34, 463.409, 2570.53, 174.952),
(249240, 35, 459.304, 2541.33, 164.87),
(249240, 36, 465.254, 2485.88, 156.33),
(249240, 37, 428.184, 2445.82, 139.387),
(249240, 38, 428.213, 2414.12, 133.002),
(249240, 39, 447.828, 2392.86, 133.544),
(249240, 40, 454.476, 2300.08, 124.765),
(249240, 41, 478.859, 2261.73, 129.556),
(249240, 42, 490.589, 2224.36, 131.317),
(249250, 1, 442.586, 3516.65, 60.8444),
(249250, 2, 430.167, 3506.58, 62.984),
(249250, 3, 380.869, 3507.06, 62.9783),
(249250, 4, 364.828, 3502.97, 62.3136),
(249250, 5, 359.136, 3482.24, 62.8538),
(249250, 6, 350.932, 3469.66, 61.7651),
(249250, 7, 333.588, 3465.64, 62.0532),
(249250, 8, 332.589, 3436.69, 61.9835),
(249250, 9, 344.644, 3424.99, 63.3763),
(249250, 10, 346.874, 3386.66, 64.2423),
(249250, 11, 341.957, 3361.83, 68.1707),
(249250, 12, 354.937, 3358.04, 62.9527),
(249250, 13, 373.619, 3362.38, 62.5949),
(249250, 14, 395.768, 3352.65, 62.7729),
(249250, 15, 417.721, 3338.98, 61.9029),
(249250, 16, 438.161, 3340.84, 62.9257),
(249250, 17, 463.486, 3377.86, 73.8103),
(249250, 18, 466.918, 3398.15, 69.5736),
(249250, 19, 505.131, 3430.84, 73.9158),
(249250, 20, 508.783, 3437.74, 73.853),
(249250, 21, 516.238, 3459.83, 74.7222),
(249250, 22, 527.515, 3486.28, 77.0556),
(249250, 23, 489.114, 3523.57, 65.8445),
(249250, 24, 468.23, 3526.64, 63.9368);
DELETE FROM `pool_template` WHERE `entry`=1085 AND `description` LIKE '%Vorakem%';
INSERT INTO `pool_template` (`entry`, `max_limit`, `description`) VALUES (1085, 1, 'Vorakem Doomspeaker (18679)');
DELETE FROM `pool_creature` WHERE `pool_entry`=1085 AND `description` LIKE '%Vorakem%';
INSERT INTO `pool_creature` (`guid`, `pool_entry`, `chance`, `description`) VALUES
(24922, 1085, 0, 'Vorakem Doomspeaker (18679)'),
(24923, 1085, 0, 'Vorakem Doomspeaker (18679)'),
(24924, 1085, 0, 'Vorakem Doomspeaker (18679)'),
(24925, 1085, 0, 'Vorakem Doomspeaker (18679)');
-- It's another rare with DISABLE_MOVE added to it
UPDATE `creature_template` SET `unit_flags`=`unit_flags`&~4 WHERE (`entry` = 18679);

View File

@@ -0,0 +1,140 @@
-- DB update 2023_02_18_06 -> 2023_02_18_07
--
DELETE FROM `creature` WHERE `id1`=18648 AND `guid`=86357;
INSERT INTO `creature`(`guid`, `id1`, `map`, `spawnMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `MovementType`) VALUES
(86357, 18648, 530, 1, -1996.77, 3691.44, -55.336, 4.15348, 300, 2);
DELETE FROM `creature_addon` WHERE (`guid` = 86357);
INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
(86357, 863570, 0, 0, 0, 0, 0, '');
DELETE FROM `waypoint_data` WHERE `id`=863570;
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`) VALUES
(863570, 1, -1996.77, 3691.44, -55.336),
(863570, 2, -2003.93, 3680, -62.9563),
(863570, 3, -2012.14, 3673.5, -70.4843),
(863570, 4, -2017.82, 3668.26, -70.9137),
(863570, 5, -2025.06, 3661.79, -69.4269),
(863570, 6, -2038.99, 3660.38, -66.7324),
(863570, 7, -2053.45, 3649.44, -65.0682),
(863570, 8, -2060.97, 3637.63, -65.2084),
(863570, 9, -2065.82, 3627.13, -66.8755),
(863570, 10, -2069.63, 3618.56, -63.7202),
(863570, 11, -2075.9, 3605.38, -62.2908),
(863570, 12, -2080.72, 3593.47, -63.6726),
(863570, 13, -2086.85, 3577.68, -63.0435),
(863570, 14, -2091.53, 3561.27, -63.9136),
(863570, 15, -2091.9, 3558.99, -64.593),
(863570, 16, -2093.33, 3551.36, -71.5948),
(863570, 17, -2093.09, 3545.55, -60.957),
(863570, 18, -2095.03, 3534.02, -57.587),
(863570, 19, -2096.72, 3521.29, -56.1821),
(863570, 20, -2097.01, 3513.11, -57.028),
(863570, 21, -2099.07, 3493.34, -64.6929),
(863570, 22, -2103.58, 3483.31, -63.2184),
(863570, 23, -2105.74, 3475.41, -65.6768),
(863570, 24, -2106.44, 3467.97, -64.468),
(863570, 25, -2107.1, 3461.39, -65.8403),
(863570, 26, -2108.14, 3449.75, -63.965),
(863570, 27, -2108.91, 3436.89, -59.7906),
(863570, 28, -2109.66, 3423.51, -52.8207),
(863570, 29, -2112.76, 3413.32, -48.142),
(863570, 30, -2121.64, 3404.88, -46.3506),
(863570, 31, -2131.1, 3396.23, -44.9126),
(863570, 32, -2134.37, 3389.37, -46.1489),
(863570, 33, -2131.79, 3383.86, -49.3395),
(863570, 34, -2128.36, 3376.67, -55.9128),
(863570, 35, -2126.56, 3368.71, -56.1998),
(863570, 36, -2127.56, 3362.95, -53.5525),
(863570, 37, -2131.19, 3357.47, -46.1145),
(863570, 38, -2125.85, 3347.14, -45.6573),
(863570, 39, -2119.3, 3334.73, -47.1481),
(863570, 40, -2110.68, 3321.54, -47.8091),
(863570, 41, -2100.88, 3310.8, -48.6787),
(863570, 42, -2090.47, 3299.05, -50.4756),
(863570, 43, -2083.33, 3293.68, -55.9256),
(863570, 44, -2078.28, 3287.97, -51.4244),
(863570, 45, -2073.34, 3281.43, -52.9969),
(863570, 46, -2063.93, 3268.75, -56.6561),
(863570, 47, -2055.24, 3257.03, -59.2205),
(863570, 48, -2053.2, 3252.83, -62.8816),
(863570, 49, -2047.24, 3246.85, -73.0043),
(863570, 50, -2043.23, 3243.11, -72.4173),
(863570, 51, -2037.29, 3237.16, -69.086),
(863570, 52, -2031.93, 3231.8, -70.0572),
(863570, 53, -2037.81, 3237.48, -69.2409),
(863570, 54, -2043.55, 3243.31, -72.4278),
(863570, 55, -2047.31, 3246.89, -72.9844),
(863570, 56, -2053.51, 3253.16, -62.3759),
(863570, 57, -2055.88, 3257.93, -58.9112),
(863570, 58, -2063.94, 3268.6, -56.6398),
(863570, 59, -2073.83, 3281.86, -52.7742),
(863570, 60, -2078.86, 3288.44, -51.4462),
(863570, 61, -2083.72, 3293.82, -55.8937),
(863570, 62, -2090.97, 3299.89, -50.4188),
(863570, 63, -2101.03, 3310.92, -48.6276),
(863570, 64, -2110.38, 3321.34, -47.8336),
(863570, 65, -2118.06, 3332.77, -47.2585),
(863570, 66, -2125.31, 3345.69, -45.7645),
(863570, 67, -2131.76, 3358.36, -46.2777),
(863570, 68, -2127.94, 3363.14, -53.5166),
(863570, 69, -2126.84, 3369.1, -56.2019),
(863570, 70, -2128.84, 3377.25, -55.5198),
(863570, 71, -2132.2, 3383.99, -49.3382),
(863570, 72, -2134.55, 3389.79, -45.954),
(863570, 73, -2131.32, 3396.31, -44.8486),
(863570, 74, -2121.76, 3405.02, -46.3264),
(863570, 75, -2113.32, 3413.32, -47.9902),
(863570, 76, -2110.22, 3423.3, -52.2944),
(863570, 77, -2109.28, 3437.47, -60.2717),
(863570, 78, -2108.45, 3449.68, -63.8449),
(863570, 79, -2107.3, 3461.64, -65.6918),
(863570, 80, -2106.68, 3468.04, -64.4831),
(863570, 81, -2105.94, 3475.72, -65.4231),
(863570, 82, -2103.89, 3483.71, -63.0018),
(863570, 83, -2099.3, 3493.67, -64.4541),
(863570, 84, -2097.45, 3513.67, -56.8631),
(863570, 85, -2097.2, 3521.95, -56.0993),
(863570, 86, -2095.39, 3534.9, -57.5393),
(863570, 87, -2093.37, 3546, -61.2589),
(863570, 88, -2093.66, 3551.82, -71.882),
(863570, 89, -2092.36, 3558.82, -64.4532),
(863570, 90, -2091.93, 3561.65, -63.5573),
(863570, 91, -2086.94, 3578.34, -63.0179),
(863570, 92, -2081, 3593.7, -63.4996),
(863570, 93, -2076.34, 3605.29, -62.0478),
(863570, 94, -2070.21, 3619.16, -63.7059),
(863570, 95, -2066.15, 3627.76, -66.6732),
(863570, 96, -2061.21, 3637.91, -65.0062),
(863570, 97, -2053.49, 3650.07, -64.9078),
(863570, 98, -2039.41, 3660.59, -66.5091),
(863570, 99, -2025.45, 3662.06, -69.2666),
(863570, 100, -2018.42, 3668.33, -70.7122),
(863570, 101, -2012.08, 3674.36, -69.8961),
(863570, 102, -2003.99, 3680.59, -62.4553),
(863570, 103, -1996.95, 3691.94, -54.9681),
(863570, 104, -1987.92, 3710.84, -41.6305),
(863570, 105, -1980.74, 3729.54, -30.1387),
(863570, 106, -1970.21, 3735.92, -23.6044),
(863570, 107, -1956.11, 3741.73, -15.3974),
(863570, 108, -1944.91, 3748.26, -11.1596),
(863570, 109, -1935.12, 3754.11, -9.51987),
(863570, 110, -1918.06, 3762.94, -6.23739),
(863570, 111, -1907.43, 3768.79, -2.98779),
(863570, 112, -1894.27, 3775.38, 5.33932),
(863570, 113, -1885.92, 3779.56, 7.72026),
(863570, 114, -1865.18, 3795.66, 7.24442),
(863570, 115, -1848.48, 3803.51, 12.059),
(863570, 116, -1830.9, 3805.41, 17.8008),
(863570, 117, -1849.35, 3803.04, 11.8302),
(863570, 118, -1866.25, 3795.23, 7.0094),
(863570, 119, -1885.98, 3779.49, 7.72068),
(863570, 120, -1892.23, 3776.35, 6.22982),
(863570, 121, -1904.74, 3769.73, -1.31481),
(863570, 122, -1917.84, 3762.46, -6.18441),
(863570, 123, -1935.54, 3754.11, -9.53416),
(863570, 124, -1944.97, 3748.29, -11.1474),
(863570, 125, -1956.71, 3741.05, -16.0124),
(863570, 126, -1970.67, 3735.79, -23.8129),
(863570, 127, -1981.2, 3729.16, -30.45),
(863570, 128, -1988.06, 3710.37, -41.9423);

View File

@@ -0,0 +1,5 @@
-- DB update 2023_02_18_07 -> 2023_02_18_08
--
DELETE FROM `spell_script_names` WHERE `spell_id` = 38194;
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(38194, 'spell_talon_king_ikiss_blink');

View File

@@ -0,0 +1,3 @@
-- DB update 2023_02_18_08 -> 2023_02_19_00
--
DELETE FROM `creature` WHERE `id1`=22102 AND `guid` IN (86101, 86102);

View File

@@ -0,0 +1,377 @@
-- DB update 2023_02_19_00 -> 2023_02_19_01
-- Add Burning Spikes to Domesticated Helboar
UPDATE `creature_template_addon` SET `bytes2` = 0, `auras` = '33908' WHERE (`entry` = 21195);
-- Water Bubble to Captured Water Spirit
DELETE FROM `creature_template_addon` WHERE (`entry` = 21029);
INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
(21029, 0, 0, 0, 0, 0, 0, '35929');
-- Delete ALL Creatures exclusive to Coilskar Cistern
DELETE FROM `creature` WHERE `map`=530 AND `id1` IN (
19765, -- Coilskar Myrmidon
19767, -- Coilskar Sorceress
19788, -- Coilskar Muckwatcher
21029, -- Captured Water Spirit
21041, -- Earthmender Wilda Trigger
21027, -- Earthmender Wilda
21044, -- Coilskar Assassin (Spawned from Escort Quest)
20795 -- Keeper of the Cistern
);
-- Delete Coilskar Cobra in Coilskar Cistern
DELETE FROM `creature` WHERE `id1`=19784 AND `guid` BETWEEN 70801 AND 70807;
DELETE FROM `creature` WHERE `id1` IN (19765,19767,19784,19788,21029,21041,21027,20795) AND `map`=530 AND `ZoneId`=3520 AND `guid` IN (23745,24189,24190,24191,24777,24788,24868,24869,24870,24915,24931,24944,24945,24946,24947,24948,24974,24975,24977,24978,24979,24980,24981,24982,24983,25010,25065,25094,25095,25096,25097,25098,25099,25111,25112,25113,25114,25115,25116,25117,25118,25119,25120,25121,25122,25123,25124,25125,25126,25127,25128,25129,25130,25713,25714,25715,25716,25717,25718,25719,25720,25721,25722,25723,25724,25725,25726,25727,25738,25739,25740,25741,25742,25743,25744);
INSERT INTO `creature` (`guid`, `id1`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `MovementType`, `VerifiedBuild`) VALUES
(23745, 19765, 530, 3520, 3749, 1, 1, 1, -2898.98, 1382.11, 6.15595, 1.85005, 300, 0, 0, 48069),
(24189, 19765, 530, 3520, 3749, 1, 1, 1, -2913.56, 1391.4, 7.13094, 1.0472, 300, 0, 0, 48069),
(24190, 19765, 530, 3520, 3749, 1, 1, 1, -2937.48, 1354.87, 6.92214, 4.7822, 300, 0, 0, 48069),
(24191, 19765, 530, 3520, 3749, 1, 1, 1, -2902.86, 1303.16, 7.15851, 2.37365, 300, 0, 0, 48069),
(24777, 19765, 530, 3520, 3749, 1, 1, 1, -2889.05, 1314.18, 6.65059, 3.40339, 300, 0, 0, 48069),
(24788, 19765, 530, 3520, 3749, 1, 1, 1, -2902.24, 1330.04, 6.77553, 2.79253, 300, 0, 0, 48069),
(24868, 19765, 530, 3520, 3749, 1, 1, 1, -2983.65, 1309.24, 8.58929, 3.71475, 300, 8, 1, 48069),
(24869, 19765, 530, 3520, 3749, 1, 1, 1, -2942.56, 1284.57, 8.16425, 1.88496, 300, 0, 0, 48069),
(24870, 19765, 530, 3520, 3749, 1, 1, 1, -2779.55, 1304.42, 33.4497, 5.93412, 300, 0, 0, 48069),
(24915, 19765, 530, 3520, 3749, 1, 1, 1, -2817.55, 1224.34, 6.25537, 5.38328, 300, 0, 0, 48069),
(24931, 19765, 530, 3520, 3749, 1, 1, 1, -2768.09, 1273.42, 33.7681, 1.5708, 300, 0, 0, 48069),
(24944, 19765, 530, 3520, 3749, 1, 1, 1, -2764.94, 1317.1, 33.5025, 4.85202, 300, 0, 0, 48069),
(24945, 19765, 530, 3520, 3749, 1, 1, 1, -2749.51, 1247.11, 33.245, 1.84797, 300, 0, 0, 48069),
(24946, 19765, 530, 3520, 3749, 1, 1, 2, -2798.67, 1160.3, 6.693, 4.86947, 300, 0, 0, 48069),
(24947, 19765, 530, 3520, 3749, 1, 1, 1, -2787.35, 1148.32, 7.55367, 1.06465, 300, 0, 0, 48069),
(24948, 19765, 530, 3520, 3749, 1, 1, 1, -2628.65, 1223.29, 14.6047, 4.37468, 300, 0, 0, 48069),
(24974, 19765, 530, 3520, 3749, 1, 1, 2, -2725.46, 1268.64, 33.3154, 1.15192, 300, 0, 0, 48069),
(24975, 19765, 530, 3520, 3749, 1, 1, 1, -2641.38, 1229.79, 10.9875, 0.170716, 300, 3, 1, 48069),
(24977, 19765, 530, 3520, 3749, 1, 1, 1, -2677.05, 1381.3, 38.0509, 5.044, 300, 0, 0, 48069),
(24978, 19765, 530, 3520, 3749, 1, 1, 1, -2703.08, 1375.09, 38.6636, 5.88176, 300, 0, 0, 48069),
(24979, 19767, 530, 3520, 3749, 1, 1, 1, -2976.08, 1333.87, 8.76729, 2.2356, 300, 4, 1, 48069),
(24980, 19767, 530, 3520, 3749, 1, 1, 1, -2905.72, 1359.48, 6.14664, 4.48575, 300, 10, 1, 48069),
(24981, 19767, 530, 3520, 3749, 1, 1, 1, -2934.01, 1326.69, 8.1525, 2.81793, 300, 6, 1, 48069),
(24982, 19767, 530, 3520, 3749, 1, 1, 1, -2773.13, 1157.78, 7.20267, 1.13446, 300, 0, 0, 48069),
(24983, 19767, 530, 3520, 3749, 1, 1, 1, -2731.41, 1259.01, 33.7358, 2.93215, 300, 0, 0, 48069),
(25010, 19767, 530, 3520, 3749, 1, 1, 1, -2736.81, 1278.36, 33.3747, 3.22886, 300, 0, 0, 48069),
(25065, 19767, 530, 3520, 3749, 1, 1, 1, -2690.81, 1366.14, 37.1067, 3.80006, 300, 0, 0, 48069),
(25094, 19767, 530, 3520, 3749, 1, 1, 1, -2671.05, 1273.61, 27.3407, 2.36121, 300, 4, 1, 48069),
(25095, 19767, 530, 3520, 3749, 1, 1, 1, -2650.98, 1287.83, 27.5096, 1.27681, 300, 4, 1, 48069),
(25096, 19767, 530, 3520, 3749, 1, 1, 1, -2691.4, 1388.28, 38.6635, 6.05283, 300, 4, 1, 48069),
(25097, 19767, 530, 3520, 3749, 1, 1, 1, -2655.43, 1354.2, 34.7295, 1.23625, 300, 8, 1, 48069),
(25098, 19788, 530, 3520, 3749, 1, 1, 1, -2886.79, 1306.95, 5.7373, 2.81133, 300, 0, 0, 48069),
(25099, 19788, 530, 3520, 3749, 1, 1, 1, -2805.56, 1369.56, 37.8528, 4.43144, 300, 0, 0, 48069),
(25111, 19788, 530, 3520, 3749, 1, 1, 1, -2753.25, 1307.42, 33.4562, 3.61969, 300, 0, 0, 48069),
(25112, 19788, 530, 3520, 3749, 1, 1, 1, -2729.97, 1141.34, 1.72704, 2.91288, 300, 0, 0, 48069),
(25113, 19788, 530, 3520, 3749, 1, 1, 1, -2691.24, 1173.31, 5.5279, 3.77395, 300, 0, 0, 48069),
(25114, 19788, 530, 3520, 3749, 1, 1, 1, -2670.11, 1283.01, 28.1491, 2.8624, 300, 0, 0, 48069),
(25115, 19788, 530, 3520, 3749, 1, 1, 1, -2620.26, 1353.72, 37.1255, 3.66914, 300, 0, 0, 48069),
(25116, 19788, 530, 3520, 3749, 1, 1, 1, -2636.63, 1372.52, 36.0204, 3.98698, 300, 0, 0, 48069),
(25117, 19788, 530, 3520, 3749, 1, 1, 1, -2641.96, 1270.84, 24.3307, 2.474, 300, 0, 0, 48069),
(25118, 20795, 530, 3520, 3749, 1, 1, 1, -2594.66, 1384.33, 44.3154, 6.12077, 300, 5, 1, 48069),
(25119, 21027, 530, 3520, 3749, 1, 1, 0, -2616.36, 1372.07, 46.0286, 3.85718, 300, 0, 0, 48069),
(25120, 21029, 530, 3520, 3749, 1, 1, 0, -2729.85, 1215.23, 48.2141, 1.5708, 300, 0, 0, 48069),
(25121, 21029, 530, 3520, 3749, 1, 1, 0, -2721.25, 1216.49, 41.7782, 1.79769, 300, 0, 0, 48069),
(25122, 21029, 530, 3520, 3749, 1, 1, 0, -2713.19, 1221.69, 38.1432, 2.0944, 300, 0, 0, 48069),
(25123, 21029, 530, 3520, 3749, 1, 1, 0, -2711.53, 1230.92, 37.3221, 2.54818, 300, 0, 0, 48069),
(25124, 21029, 530, 3520, 3749, 1, 1, 0, -2708.88, 1239.1, 38.1921, 3.08923, 300, 0, 0, 48069),
(25125, 21041, 530, 3520, 3749, 1, 1, 0, -2638.89, 1358.96, 36.0438, 3.90954, 300, 0, 0, 48069),
(25126, 21041, 530, 3520, 3749, 1, 1, 0, -2605.25, 1369.39, 49.1248, 4.03171, 300, 0, 0, 48069),
(25127, 21041, 530, 3520, 3749, 1, 1, 0, -2605.53, 1374.24, 45.3846, 5.55015, 300, 0, 0, 48069),
(25128, 21041, 530, 3520, 3749, 1, 1, 0, -2614.51, 1381.27, 51.6831, 5.55015, 300, 0, 0, 48069),
(25129, 21041, 530, 3520, 3749, 1, 1, 0, -2610.76, 1377.7, 41.1437, 3.50811, 300, 0, 0, 48069),
(25130, 21041, 530, 3520, 3749, 1, 1, 0, -2590.76, 1387.65, 55.0794, 4.10152, 300, 0, 0, 48069),
(25713, 19784, 530, 3520, 3749, 1, 1, 0, -2924.55, 1371.39, 9.52825, 5.55015, 300, 0, 0, 48069),
(25714, 19784, 530, 3520, 3749, 1, 1, 0, -2919.43, 1372.64, 8.37301, 6.12611, 300, 0, 0, 48069),
(25715, 19784, 530, 3520, 3749, 1, 1, 0, -2960.01, 1304.2, 7.36165, 0.226893, 300, 0, 0, 48069),
(25716, 19784, 530, 3520, 3749, 1, 1, 0, -2964.3, 1312.32, 7.70759, 0.890118, 300, 0, 0, 48069),
(25717, 19784, 530, 3520, 3749, 1, 1, 0, -2851.26, 1239.81, 6.79606, 3.09596, 300, 5, 1, 48069),
(25718, 19784, 530, 3520, 3749, 1, 1, 0, -2809.98, 1254.89, 26.471, 6.0912, 300, 0, 0, 48069),
(25719, 19784, 530, 3520, 3749, 1, 1, 0, -2842.61, 1249.25, 6.79606, 1.18107, 300, 5, 1, 48069),
(25720, 19784, 530, 3520, 3749, 1, 1, 0, -2810.6, 1257.84, 26.8763, 6.23417, 300, 0, 0, 48069),
(25721, 19784, 530, 3520, 3749, 1, 1, 0, -2738.38, 1148.7, 3.50024, 3.33358, 300, 0, 0, 48069),
(25722, 19784, 530, 3520, 3749, 1, 1, 0, -2741.38, 1138.88, 4.15881, 2.46091, 300, 0, 0, 48069),
(25723, 19784, 530, 3520, 3749, 1, 1, 0, -2639.01, 1256.11, 21.8693, 5.35816, 300, 0, 0, 48069),
(25724, 19784, 530, 3520, 3749, 1, 1, 0, -2628.61, 1256.51, 19.4139, 4.7473, 300, 0, 0, 48069),
(25725, 19784, 530, 3520, 3749, 1, 1, 0, -2702.76, 1318.11, 34.033, 4.45059, 300, 0, 0, 48069),
(25726, 19784, 530, 3520, 3749, 1, 1, 0, -2714.62, 1310.4, 34.1854, 5.3058, 300, 0, 0, 48069),
(25727, 19784, 530, 3520, 3749, 1, 1, 0, -2580.79, 1389.61, 42.4415, 0.820305, 300, 0, 0, 48069),
(25738, 19784, 530, 3520, 3749, 1, 1, 0, -2583.63, 1393.74, 42.5982, 0.471239, 300, 0, 0, 48069),
(25739, 19784, 530, 3520, 3749, 1, 1, 0, -2780.42, 1393.01, 38.8631, 0.873989, 300, 5, 1, 48069),
(25740, 19784, 530, 3520, 3749, 1, 1, 0, -2790.03, 1393.41, 39.1302, 1.59271, 300, 5, 1, 48069),
(25741, 19784, 530, 3520, 3749, 1, 1, 0, -2708.27, 1223.95, 32.8727, 1.35922, 300, 5, 1, 48069),
(25742, 19784, 530, 3520, 3749, 1, 1, 0, -2720.86, 1215.66, 37.045, 2.45076, 300, 5, 1, 48069),
(25743, 19784, 530, 3520, 3749, 1, 1, 0, -2779.55, 1279.2603, 34.014435, 2.45076, 300, 0, 0, 48069),
(25744, 19784, 530, 3520, 3749, 1, 1, 0, -2779.55, 1279.2603, 34.014435, 2.45076, 300, 0, 0, 48069);
SET @NPC := 24915;
SET @PATH := @NPC * 10;
UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=-2823.2131,`position_y`=1231.4794,`position_z`=6.2438025 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
(@PATH,1,-2823.2131,1231.4794,6.2438025,NULL,0,0,0,100,0),
(@PATH,2,-2812.9219,1218.5132,6.26481,NULL,0,0,0,100,0),
(@PATH,3,-2809.2012,1208.1838,6.32249,NULL,0,0,0,100,0),
(@PATH,4,-2806.4219,1203.8843,6.3185363,NULL,0,0,0,100,0),
(@PATH,5,-2809.2012,1208.1838,6.32249,NULL,0,0,0,100,0),
(@PATH,6,-2812.9219,1218.5132,6.26481,NULL,0,0,0,100,0);
SET @NPC := 24948;
SET @PATH := @NPC * 10;
UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=-2644.4155,`position_y`=1194.6781,`position_z`=6.600725 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
(@PATH,1,-2644.4155,1194.6781,6.600725,NULL,0,0,0,100,0),
(@PATH,2,-2634.681,1206.1174,10.327223,NULL,0,0,0,100,0),
(@PATH,3,-2625.3433,1232.7086,16.544775,NULL,0,0,0,100,0),
(@PATH,4,-2634.681,1206.1174,10.327223,NULL,0,0,0,100,0);
SET @NPC := 24945;
SET @PATH := @NPC * 10;
UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=-2748.4146,`position_y`=1268.3123,`position_z`=33.184956 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
(@PATH,1,-2748.4146,1268.3123,33.184956,NULL,0,0,0,100,0),
(@PATH,2,-2753.3994,1260.7609,33.38965,NULL,0,0,0,100,0),
(@PATH,3,-2749.2388,1246.1364,33.239746,NULL,0,0,0,100,0),
(@PATH,4,-2740.1255,1235.6766,33.070683,NULL,0,0,0,100,0),
(@PATH,5,-2722.9575,1231.541,33.249657,NULL,0,0,0,100,0),
(@PATH,6,-2740.1255,1235.6766,33.070683,NULL,0,0,0,100,0),
(@PATH,7,-2749.2388,1246.1364,33.239746,NULL,0,0,0,100,0),
(@PATH,8,-2753.3994,1260.7609,33.38965,NULL,0,0,0,100,0);
SET @NPC := 25112;
SET @PATH := @NPC * 10;
UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=-2762.0657,`position_y`=1151.654,`position_z`=6.546216 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
(@PATH,1,-2762.0657,1151.654,6.546216,NULL,0,0,0,100,0),
(@PATH,2,-2748.221,1145.59,4.7005005,NULL,0,0,0,100,0),
(@PATH,3,-2728.986,1141.1119,1.6215124,NULL,0,0,0,100,0),
(@PATH,4,-2712.8843,1145.7828,2.4614542,NULL,0,0,0,100,0),
(@PATH,5,-2704.414,1160.1536,5.125069,NULL,0,0,0,100,0),
(@PATH,6,-2712.8843,1145.7828,2.4614542,NULL,0,0,0,100,0),
(@PATH,7,-2728.986,1141.1119,1.6215124,NULL,0,0,0,100,0),
(@PATH,8,-2748.221,1145.59,4.7005005,NULL,0,0,0,100,0);
SET @NPC := 25111;
SET @PATH := @NPC * 10;
UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=-2759.5168,`position_y`=1304.1704,`position_z`=33.314373 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
(@PATH,1,-2759.5168,1304.1704,33.314373,NULL,0,0,0,100,0),
(@PATH,2,-2746.1182,1311.1138,33.605423,NULL,0,0,0,100,0),
(@PATH,3,-2719.3152,1324.5756,33.971096,NULL,0,0,0,100,0),
(@PATH,4,-2698.994,1332.9515,34.436684,NULL,0,0,0,100,0),
(@PATH,5,-2683.1274,1345.1252,34.436684,NULL,0,0,0,100,0),
(@PATH,6,-2668.0637,1348.902,34.48238,NULL,0,0,0,100,0),
(@PATH,7,-2683.1274,1345.1252,34.436684,NULL,0,0,0,100,0),
(@PATH,8,-2698.9836,1332.9558,34.436684,NULL,0,0,0,100,0),
(@PATH,9,-2719.3152,1324.5756,33.971096,NULL,0,0,0,100,0),
(@PATH,10,-2746.1182,1311.1138,33.605423,NULL,0,0,0,100,0);
SET @NPC := 25117;
SET @PATH := @NPC * 10;
UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=-2641.9058,`position_y`=1268.142,`position_z`=23.927183 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
(@PATH,1 ,-2641.9058,1268.142,23.927183,NULL,0,0,0,100,0),
(@PATH,2 ,-2650.1309,1277.2792,25.416039,NULL,0,0,0,100,0),
(@PATH,3 ,-2673.4944,1283.977,29.292665,NULL,0,0,0,100,0),
(@PATH,4 ,-2691.0823,1290.7217,33.745926,NULL,0,0,0,100,0),
(@PATH,5 ,-2705.8076,1298.7185,32.94668,NULL,0,0,0,100,0),
(@PATH,6 ,-2709.4016,1314.3235,33.262363,NULL,0,0,0,100,0),
(@PATH,7 ,-2705.8076,1298.7185,32.94668,NULL,0,0,0,100,0),
(@PATH,8 ,-2691.0823,1290.7217,33.745926,NULL,0,0,0,100,0),
(@PATH,9 ,-2673.4944,1283.977,29.292665,NULL,0,0,0,100,0),
(@PATH,10,-2650.1309,1277.2792,25.416039,NULL,0,0,0,100,0);
SET @NPC := 25098;
SET @PATH := @NPC * 10;
UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=-2912.6753,`position_y`=1318.8967,`position_z`=6.3883452 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
(@PATH,1 ,-2912.6753,1318.8967,6.3883452,NULL,0,0,0,100,0),
(@PATH,2 ,-2906.6418,1313.7617,6.6383452,NULL,0,0,0,100,0),
(@PATH,3 ,-2893.7417,1307.0945,6.3466606,NULL,0,0,0,100,0),
(@PATH,4 ,-2880.6794,1305.1588,5.410137,NULL,0,0,0,100,0),
(@PATH,5 ,-2858.01,1298.7424,6.7960815,NULL,0,0,0,100,0),
(@PATH,6 ,-2842.9072,1292.9916,6.1282473,NULL,0,0,0,100,0),
(@PATH,7 ,-2843.1912,1280.0597,7.683124,NULL,0,0,0,100,0),
(@PATH,8 ,-2848.1216,1266.8289,8.083833,NULL,0,0,0,100,0),
(@PATH,9 ,-2853.8364,1255.8324,6.9199033,NULL,0,0,0,100,0),
(@PATH,10,-2842.4497,1243.7681,6.7960606,NULL,0,0,0,100,0),
(@PATH,11,-2853.8364,1255.8324,6.9199033,NULL,0,0,0,100,0),
(@PATH,12,-2848.1216,1266.8289,8.083833,NULL,0,0,0,100,0),
(@PATH,13,-2843.1912,1280.0597,7.683124,NULL,0,0,0,100,0),
(@PATH,14,-2842.9072,1292.9916,6.1282473,NULL,0,0,0,100,0),
(@PATH,15,-2858.01,1298.7424,6.7960815,NULL,0,0,0,100,0),
(@PATH,16,-2880.6794,1305.1588,5.410137,NULL,0,0,0,100,0),
(@PATH,17,-2893.7417,1307.0945,6.3466606,NULL,0,0,0,100,0),
(@PATH,18,-2906.6418,1313.7617,6.6383452,NULL,0,0,0,100,0);
SET @NPC := 25114;
SET @PATH := @NPC * 10;
UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=-2709.4016,`position_y`=1314.3235,`position_z`=33.262363 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
(@PATH,1 ,-2709.4016,1314.3235,33.262363,NULL,0,0,0,100,0),
(@PATH,2 ,-2705.8076,1298.7185,32.94668,NULL,0,0,0,100,0),
(@PATH,3 ,-2691.0823,1290.7217,33.745926,NULL,0,0,0,100,0),
(@PATH,4 ,-2673.4944,1283.977,29.292665,NULL,0,0,0,100,0),
(@PATH,5 ,-2650.1309,1277.2792,25.416039,NULL,0,0,0,100,0),
(@PATH,6 ,-2641.9058,1268.142,23.927183,NULL,0,0,0,100,0),
(@PATH,7 ,-2650.1309,1277.2792,25.416039,NULL,0,0,0,100,0),
(@PATH,8 ,-2673.4944,1283.977,29.292665,NULL,0,0,0,100,0),
(@PATH,9 ,-2691.0823,1290.7217,33.745926,NULL,0,0,0,100,0),
(@PATH,10,-2705.8076,1298.7185,32.94668,NULL,0,0,0,100,0);
SET @NPC := 25116;
SET @PATH := @NPC * 10;
UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=-2643.4558,`position_y`=1364.8234,`position_z`=35.86493 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
(@PATH,1 ,-2643.4558,1364.8234,35.86493,NULL,0,0,0,100,0),
(@PATH,2 ,-2634.716,1374.6797,36.22216,NULL,0,0,0,100,0),
(@PATH,3 ,-2626.5833,1383.2074,37.50213,NULL,0,0,0,100,0),
(@PATH,4 ,-2618.2117,1387.6519,39.28746,NULL,0,0,0,100,0),
(@PATH,5 ,-2611.0234,1393.2262,41.428757,NULL,0,0,0,100,0),
(@PATH,6 ,-2602.1787,1400.6476,41.767567,NULL,0,0,0,100,0),
(@PATH,7 ,-2611.0234,1393.2262,41.428757,NULL,0,0,0,100,0),
(@PATH,8 ,-2618.2117,1387.6519,39.28746,NULL,0,0,0,100,0),
(@PATH,9 ,-2626.5833,1383.2074,37.50213,NULL,0,0,0,100,0),
(@PATH,10,-2634.716,1374.6797,36.22216,NULL,0,0,0,100,0);
SET @NPC := 25099;
SET @PATH := @NPC * 10;
UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=-2809.3833,`position_y`=1356.3115,`position_z`=37.325497 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
(@PATH,1,-2809.3833,1356.3115,37.325497,NULL,0,0,0,100,0),
(@PATH,2,-2804.8496,1338.0927,36.000645,NULL,0,0,0,100,0),
(@PATH,3,-2784.9128,1322.3423,33.37369,NULL,0,0,0,100,0),
(@PATH,4,-2772.6155,1327.1848,33.624535,NULL,0,0,0,100,0),
(@PATH,5,-2767.8467,1360.8962,35.79723,NULL,0,0,0,100,0),
(@PATH,6,-2784.864,1388.3601,38.49067,NULL,0,0,0,100,0),
(@PATH,7,-2801.9087,1382.2137,38.60972,NULL,0,0,0,100,0);
SET @NPC := 25113;
SET @PATH := @NPC * 10;
UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=-2655.3274,`position_y`=1202.3822,`position_z`=6.115521 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
(@PATH,1,-2655.3274,1202.3822,6.115521,NULL,0,0,0,100,0),
(@PATH,2,-2666.605,1190.8188,3.529532,NULL,0,0,0,100,0),
(@PATH,3,-2679.0286,1182.2574,4.7928033,NULL,0,0,0,100,0),
(@PATH,4,-2699.4224,1167.3142,5.547194,NULL,0,0,0,100,0),
(@PATH,5,-2679.0286,1182.2574,4.7928033,NULL,0,0,0,100,0),
(@PATH,6,-2666.6719,1190.7727,3.5094023,NULL,0,0,0,100,0);
SET @NPC := 25115;
SET @PATH := @NPC * 10;
UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=-2634.4636,`position_y`=1345.4458,`position_z`=35.481934 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
(@PATH,1,-2634.4636,1345.4458,35.481934,NULL,0,0,0,100,0),
(@PATH,2,-2620.018,1353.861,37.13554,NULL,0,0,0,100,0),
(@PATH,3,-2598.73,1358.416,38.889954,NULL,0,0,0,100,0),
(@PATH,4,-2590.0383,1365.4989,40.473846,NULL,0,0,0,100,0),
(@PATH,5,-2598.73,1358.416,38.889954,NULL,0,0,0,100,0),
(@PATH,6,-2620.018,1353.861,37.13554,NULL,0,0,0,100,0);
SET @NPC := 25743;
SET @PATH := @NPC * 10;
UPDATE `creature` SET `wander_distance`=0,`MovementType`=2,`position_x`=-2779.55,`position_y`=1279.2603,`position_z`=34.014435 WHERE `guid`=@NPC;
DELETE FROM `creature_addon` WHERE `guid`=@NPC;
INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES (@NPC,@PATH,0,0,1,0,0, '');
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES
(@PATH,1,-2779.55,1279.2603,34.014435,NULL,0,0,0,100,0),
(@PATH,2,-2799.971,1261.2897,33.647408,NULL,0,0,0,100,0),
(@PATH,3,-2810.8,1254.8387,31.11925,NULL,0,0,0,100,0),
(@PATH,4,-2799.971,1261.2897,33.647408,NULL,0,0,0,100,0);
DELETE FROM `creature_formations` WHERE `memberGUID` IN (25743, 25744);
INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES
(25743, 25743, 0, 0, 3),
(25743, 25744, 3, 90, 515);
-- Sorceress (-25065)
DELETE FROM `waypoints` WHERE `entry`=1976700 AND `point_comment`='Coilskar Sorceress';
INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `orientation`, `point_comment`) VALUES
(1976700,1,-2699.7734,1352.9802,32.96573,NULL,'Coilskar Sorceress'),
(1976700,2,-2695.3882,1362.5975,35.82666,NULL,'Coilskar Sorceress'),
(1976700,3,-2687.7195,1368.574,37.474815,NULL,'Coilskar Sorceress'),
(1976700,4,-2677.8486,1371.7639,36.15712,NULL,'Coilskar Sorceress'),
(1976700,5,-2668.1536,1368.8298,33.586617,NULL,'Coilskar Sorceress'),
(1976700,6,-2677.8486,1371.7639,36.15712,NULL,'Coilskar Sorceress'),
(1976700,7,-2687.6226,1368.6053,37.475197,NULL,'Coilskar Sorceress'),
(1976700,8,-2695.3882,1362.5975,35.82666,NULL,'Coilskar Sorceress'),
(1976700,9,-2699.7734,1352.9802,32.96573,NULL,'Coilskar Sorceress');
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 19767);
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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(19767, 0, 0, 0, 0, 0, 100, 0, 0, 1000, 2500, 4700, 0, 11, 32011, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilskar Sorceress - In Combat - Cast \'Water Bolt\''),
(19767, 0, 1, 0, 2, 0, 100, 1, 0, 80, 0, 0, 0, 11, 38026, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilskar Sorceress - Between 0-80% Health - Cast \'Viscous Shield\' (No Repeat)');
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = -25065);
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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(-25065, 0, 0, 0, 0, 0, 100, 0, 0, 1000, 2500, 4700, 0, 11, 32011, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilskar Sorceress - In Combat - Cast \'Water Bolt\''),
(-25065, 0, 1, 0, 2, 0, 100, 1, 0, 80, 0, 0, 0, 11, 38026, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilskar Sorceress - Between 0-80% Health - Cast \'Viscous Shield\' (No Repeat)'),
(-25065, 0, 1001, 1002, 11, 0, 100, 0, 0, 0, 0, 0, 0, 22, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilskar Sorceress - On Respawn - Set Event Phase 1'),
(-25065, 0, 1002, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 53, 0, 1976700, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilskar Sorceress - On Respawn - Start Waypoint'),
(-25065, 0, 1003, 0, 1, 0, 100, 0, 60000, 120000, 60000, 120000, 0, 80, 1976700, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilskar Sorceress - Out of Combat - Run Script');
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 1976700);
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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(1976700, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 54, 13000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilskar Sorceress - Actionlist - Pause Waypoint'),
(1976700, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 2, 0, 0, 19, 19765, 30, 0, 0, 0, 0, 0, 0, 'Coilskar Sorceress - Actionlist - Move To Closest Creature \'Coilskar Myrmidon\''),
(1976700, 9, 2, 0, 0, 0, 100, 0, 3600, 3600, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilskar Sorceress - Actionlist - Say Line 0'),
(1976700, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 19, 19765, 10, 0, 0, 0, 0, 0, 0, 'Coilskar Sorceress - Actionlist - Set Data 1 1'),
(1976700, 9, 5, 0, 0, 0, 100, 0, 2600, 2600, 0, 0, 0, 45, 2, 2, 0, 0, 0, 0, 19, 19765, 10, 0, 0, 0, 0, 0, 0, 'Coilskar Sorceress - Actionlist - Set Data 2 2'),
(1976700, 9, 6, 0, 0, 0, 100, 0, 1200, 1200, 0, 0, 0, 5, 15, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilskar Sorceress - Actionlist - Play Emote 15');
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 19765);
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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(19765, 0, 0, 0, 9, 0, 100, 0, 0, 20, 11500, 13000, 0, 11, 38027, 32, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilskar Myrmidon - Within 0-20 Range - Cast \'Boiling Blood\''),
(19765, 0, 1, 0, 38, 0, 100, 0, 1, 1, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 19, 19767, 10, 0, 0, 0, 0, 0, 0, 'Coilskar Myrmidon - On Data Set 1 1 - Set Orientation Closest Creature \'Coilskar Sorceress\''),
(19765, 0, 2, 0, 38, 0, 100, 0, 2, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilskar Myrmidon - On Data Set 2 2 - Say Line 0');
DELETE FROM `creature_text` WHERE `CreatureID` IN (19767, 19765) AND `GroupID`=0;
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Probability`, `Emote`, `BroadcastTextId`, `comment`) VALUES
(19767, 0, 0, 'Stay alert!', 12, 100, 1, 17711, 'Coilskar Sorceress'),
(19767, 0, 1, 'Be wary of intruders.', 12, 100, 1, 17713, 'Coilskar Sorceress'),
(19767, 0, 2, 'We must not fail the master.', 12, 100, 1, 17715, 'Coilskar Sorceress'),
(19765, 0, 0, 'Understood.', 12, 100, 1, 18146, 'Coilskar Myrmidon'),
(19765, 0, 1, 'We will not fail.', 12, 100, 1, 18410, 'Coilskar Myrmidon');
-- EmoteState for Myrmidons
DELETE FROM `creature_equip_template` WHERE (`CreatureID` = 19765);
INSERT INTO `creature_equip_template` (`CreatureID`, `ID`, `ItemID1`, `ItemID2`, `ItemID3`, `VerifiedBuild`) VALUES
(19765, 1, 28965, 0, 0, 18019),
(19765, 2, 2028, 0, 0, 18019);
DELETE FROM `creature_addon` WHERE `guid` IN (24946, 24974);
INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES
(24946,0,0,0,1,173,0, ''),
(24974,0,0,0,1,173,0, '');

View File

@@ -0,0 +1,4 @@
-- DB update 2023_02_19_01 -> 2023_02_19_02
--
DELETE FROM `npc_vendor` WHERE `entry` = 20130;
UPDATE `creature_template` SET `npcflag` = `npcflag`&~(128) WHERE `entry` = 20130;

View File

@@ -0,0 +1,44 @@
-- DB update 2023_02_19_02 -> 2023_02_19_03
--
DELETE FROM `waypoints` WHERE `entry`=17848;
DELETE FROM `waypoint_data` WHERE `id` IN (178480,178481);
INSERT INTO `waypoint_data` VALUES
(178480,1,2145.6123,124.77572,76.18501,NULL,0,1,0,100,0),
(178480,2,2146.5122,117.58604,76.04292,NULL,0,1,0,100,0),
(178480,3,2148.4314,101.62945,73.041336,NULL,0,1,0,100,0),
(178480,4,2151.864,88.83778,69.48506,NULL,0,1,0,100,0),
(178480,5,2149.0708,83.53852,69.1086,NULL,0,1,0,100,0),
(178480,6,2142.1206,79.21365,68.06233,NULL,0,1,0,100,0),
(178480,7,2132.0854,73.20009,64.77117,NULL,0,1,0,100,0),
(178480,8,2128.2366,71.17936,64.41205,NULL,1200,1,0,100,0),
(178480,9,2125.2478,89.376305,54.71777,NULL,0,1,0,100,0),
(178480,10,2119.832,93.372505,52.565914,NULL,0,1,0,100,0),
(178480,11,2113.8572,93.34234,52.590572,NULL,0,1,0,100,0),
(178481,1,2113.8572,93.34234,52.590572,NULL,0,0,0,100,0),
(178481,2,2111.2415,103.42893,52.565914,NULL,0,0,0,100,0),
(178481,3,2109.1719,113.15994,52.90283,NULL,0,0,0,100,0),
(178481,4,2107.6462,126.1786,52.565914,NULL,0,0,0,100,0),
(178481,5,2107.979,138.13727,52.546013,NULL,0,0,0,100,0),
(178481,6,2112.6594,153.49968,52.56591,NULL,0,0,0,100,0),
(178481,7,2120.5117,168.8968,52.81591,NULL,0,0,0,100,0),
(178481,8,2124.643,175.81912,52.92492,NULL,0,0,0,100,0),
(178481,9,2128.9448,182.75977,53.179924,NULL,0,0,0,100,0),
(178481,10,2138.4214,195.35818,52.565907,NULL,0,0,0,100,0),
(178481,11,2147.3398,204.56651,52.92638,NULL,0,0,0,100,0),
(178481,12,2160.0496,214.06728,52.56542,NULL,0,0,0,100,0),
(178481,13,2172.4766,224.48166,52.56554,NULL,0,0,0,100,0),
(178481,14,2179.8486,230.77225,52.565907,NULL,0,0,0,100,0),
(178481,15,2172.4766,224.48166,52.56554,NULL,0,0,0,100,0),
(178481,16,2160.0496,214.06728,52.56542,NULL,0,0,0,100,0),
(178481,17,2147.3398,204.56651,52.92638,NULL,0,0,0,100,0),
(178481,18,2138.4214,195.35818,52.565907,NULL,0,0,0,100,0),
(178481,19,2128.9448,182.75977,53.179924,NULL,0,0,0,100,0),
(178481,20,2124.643,175.81912,52.92492,NULL,0,0,0,100,0),
(178481,21,2120.5117,168.8968,52.81591,NULL,0,0,0,100,0),
(178481,22,2112.6594,153.49968,52.56591,NULL,0,0,0,100,0),
(178481,23,2107.979,138.13727,52.546013,NULL,0,0,0,100,0),
(178481,24,2107.6462,126.1786,52.565914,NULL,0,0,0,100,0),
(178481,25,2109.1719,113.15994,52.90283,NULL,0,0,0,100,0),
(178481,26,2111.2415,103.42893,52.565914,NULL,0,0,0,100,0);

View File

@@ -0,0 +1,7 @@
-- DB update 2023_02_19_03 -> 2023_02_19_04
--
UPDATE `creature_onkill_reputation` SET `MaxStanding1`=4 WHERE `creature_id` IN (18394,18429);
DELETE FROM `creature_onkill_reputation` WHERE `creature_id` IN (20262,20252);
INSERT INTO `creature_onkill_reputation` VALUES
(20262,933,0,7,0,15,0,0,0,0),
(20252,933,0,7,0,15,0,0,0,0);

View File

@@ -0,0 +1,3 @@
-- DB update 2023_02_19_04 -> 2023_02_19_05
--
UPDATE `smart_scripts` SET `event_type`=0, `event_param1`=2000, `event_param2`=6000, `event_param3`=12000, `target_type`=5, `target_param1`=25 WHERE `entryorguid`=18311 AND `source_type`=0 AND `id`=4;

View File

@@ -0,0 +1,3 @@
-- DB update 2023_02_19_05 -> 2023_02_19_06
-- Fenrus the Devourer - Increase MaxDistance from 100 to 200
UPDATE `smart_scripts` SET `target_param2` = 200 WHERE `entryorguid` = 4274 AND `target_param1` = 4275;

View File

@@ -0,0 +1,247 @@
-- DB update 2023_02_19_06 -> 2023_02_19_07
-- Marticar (18680)
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18680);
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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(18680, 0, 0, 0, 4, 0, 100, 0, 0, 0, 0, 0, 0, 11, 32039, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Marticar - On Aggro - Cast \'Magnetic Pull\''),
(18680, 0, 1, 0, 9, 0, 100, 0, 0, 8, 12000, 16000, 0, 11, 35493, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Marticar - Within 0-8 Range - Cast \'Forked Lightning Tether\''),
(18680, 0, 2, 0, 9, 0, 100, 0, 10, 40, 12000, 16000, 0, 11, 32039, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Marticar - Within 10-40 Range - Cast \'Magnetic Pull\'');
-- Coilfang Emissary (18681)
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18681);
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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(18681, 0, 0, 0, 9, 0, 100, 0, 0, 10, 8000, 15000, 0, 11, 33860, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Emissary - Within 0-10 Range - Cast \'Arcane Explosion\''),
(18681, 0, 1, 0, 0, 0, 100, 0, 6000, 10000, 14000, 21000, 0, 11, 39207, 64, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Emissary - In Combat - Cast \'Water Spout\''),
(18681, 0, 2, 0, 9, 0, 100, 0, 0, 10, 12000, 16000, 0, 11, 11831, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Emissary - Within 0-10 Range - Cast \'Frost Nova\''),
(18681, 0, 3, 0, 9, 0, 100, 0, 0, 40, 3400, 4800, 0, 11, 20297, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Coilfang Emissary - Within 0-40 Range - Cast \'Frostbolt\'');
-- Bog Lurker (18682)
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 18682);
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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(18682, 0, 0, 0, 9, 0, 100, 0, 0, 5, 12000, 16000, 0, 11, 35238, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Bog Lurker - Within 0-5 Range - Cast \'War Stomp\''),
(18682, 0, 1, 0, 2, 0, 100, 0, 0, 50, 22000, 26000, 0, 11, 34163, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bog Lurker - Between 0-50% Health - Cast \'Fungal Regrowth\'');
SET @CGUID := 25101;
DELETE FROM `creature` WHERE `id1` IN (18680, 18681, 18682);
INSERT INTO `creature` (`guid`, `id1`, `map`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `MovementType`, `wander_distance`) VALUES
-- Marticar
(@CGUID+0, 18680, 530, 0, 909.798, 6974.82, 20.7275, 4.35157, 82800, 2, 0),
(@CGUID+1, 18680, 530, 0, 641.629, 5601.53, 21.7289, 1.20404, 104400, 2, 0),
(@CGUID+2, 18680, 530, 0, -35.4279, 8945.68, 18.9934, 0.34089, 122400, 2, 0),
-- Coilfang Emissary
(@CGUID+3, 18681, 530, 1, 356.366, 8154.59, 23.4664, 5.86458, 79200, 1, 20),
(@CGUID+4, 18681, 530, 1, 658.75, 6322.29, 20.6887, 2.45849, 93600, 1, 20),
(@CGUID+5, 18681, 530, 1, -246.269, 6272.19, 21.7947, 4.60655, 100800, 1, 20),
(@CGUID+6, 18681, 530, 1, -706.367, 5922.93, 21.7108, 2.34853, 115200, 1, 20),
-- Bog Lurker
(@CGUID+7, 18682, 530, 0, -294.88, 6951.41, 19.3571, 5.86619, 10506, 2, 0),
(@CGUID+8, 18682, 530, 0, -1023.69, 5095.25, 17.3841, 6.16307, 10506, 2, 0),
(@CGUID+9, 18682, 530, 0, 1172.09, 8023.15, 17.7483, 0.670779, 10506, 2, 0);
DELETE FROM `creature_addon` WHERE (`guid` IN (@CGUID+0,@CGUID+1,@CGUID+2,@CGUID+7,@CGUID+8,@CGUID+9));
INSERT INTO `creature_addon` (`guid`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
(@CGUID+0, (@CGUID+0)*10, 0, 0, 0, 0, 0, ''),
(@CGUID+1, (@CGUID+1)*10, 0, 0, 0, 0, 0, ''),
(@CGUID+2, (@CGUID+2)*10, 0, 0, 0, 0, 0, ''),
(@CGUID+7, (@CGUID+7)*10, 0, 0, 0, 0, 0, ''),
(@CGUID+8, (@CGUID+8)*10, 0, 0, 0, 0, 0, ''),
(@CGUID+9, (@CGUID+9)*10, 0, 0, 0, 0, 0, '');
DELETE FROM `waypoint_data` WHERE `id` IN ((@CGUID+0)*10,(@CGUID+1)*10,(@CGUID+2)*10,(@CGUID+7)*10,(@CGUID+8)*10,(@CGUID+9)*10);
INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`) VALUES
((@CGUID+0)*10, 1, 909.798, 6974.82, 20.6049),
((@CGUID+0)*10, 2, 925.955, 6984.85, 17.5734),
((@CGUID+0)*10, 3, 942.871, 7042.5, 17.8393),
((@CGUID+0)*10, 4, 934.748, 7083.6, 17.8208),
((@CGUID+0)*10, 5, 909.849, 7105.03, 19.3418),
((@CGUID+0)*10, 6, 882.136, 7096.42, 17.9662),
((@CGUID+0)*10, 7, 817.75, 7147.84, 17.446),
((@CGUID+0)*10, 8, 805.416, 7221.27, 17.3745),
((@CGUID+0)*10, 9, 770.959, 7293.45, 17.4865),
((@CGUID+0)*10, 10, 833.662, 7369.67, 17.6963),
((@CGUID+0)*10, 11, 811.041, 7439.55, 17.6798),
((@CGUID+0)*10, 12, 822.635, 7511.4, 17.7967),
((@CGUID+0)*10, 13, 777.672, 7550.08, 17.6132),
((@CGUID+0)*10, 14, 663.722, 7553.98, 17.3779),
((@CGUID+0)*10, 15, 606.491, 7575.89, 17.434),
((@CGUID+0)*10, 16, 663.722, 7553.98, 17.3779),
((@CGUID+0)*10, 17, 777.672, 7550.08, 17.6132),
((@CGUID+0)*10, 18, 822.635, 7511.4, 17.7967),
((@CGUID+0)*10, 19, 811.041, 7439.55, 17.6798),
((@CGUID+0)*10, 20, 833.662, 7369.67, 17.6963),
((@CGUID+0)*10, 21, 770.959, 7293.45, 17.4865),
((@CGUID+0)*10, 22, 805.416, 7221.27, 17.3745),
((@CGUID+0)*10, 23, 817.75, 7147.84, 17.446),
((@CGUID+0)*10, 24, 882.136, 7096.42, 17.9662),
((@CGUID+0)*10, 25, 909.849, 7105.03, 19.3418),
((@CGUID+0)*10, 26, 934.748, 7083.6, 17.8208),
((@CGUID+0)*10, 27, 942.871, 7042.5, 17.8393),
((@CGUID+0)*10, 28, 925.955, 6984.85, 17.5734),
((@CGUID+1)*10, 1, 641.629, 5601.53, 21.7289),
((@CGUID+1)*10, 2, 681.779, 5664.12, 23.5277),
((@CGUID+1)*10, 3, 719.717, 5699.03, 21.9689),
((@CGUID+1)*10, 4, 718.233, 5734.3, 17.5044),
((@CGUID+1)*10, 5, 724.722, 5783.54, 17.7705),
((@CGUID+1)*10, 6, 745.975, 5811.38, 17.2784),
((@CGUID+1)*10, 7, 739.645, 5898.54, 17.3483),
((@CGUID+1)*10, 8, 700.262, 5944.62, 17.5259),
((@CGUID+1)*10, 9, 653.386, 5949.96, 17.3741),
((@CGUID+1)*10, 10, 616.609, 5975.77, 17.3742),
((@CGUID+1)*10, 11, 594.179, 5962.99, 17.3778),
((@CGUID+1)*10, 12, 583.11, 5926.56, 17.4075),
((@CGUID+1)*10, 13, 552.184, 5898.35, 17.3766),
((@CGUID+1)*10, 14, 528.946, 5873.05, 22.473),
((@CGUID+1)*10, 15, 507.433, 5839.19, 21.8951),
((@CGUID+1)*10, 16, 496.027, 5819.39, 17.3948),
((@CGUID+1)*10, 17, 449.619, 5753.03, 17.3779),
((@CGUID+1)*10, 18, 429.245, 5718.28, 17.3731),
((@CGUID+1)*10, 19, 386.39, 5727.86, 17.3775),
((@CGUID+1)*10, 20, 334.89, 5652.7, 17.3743),
((@CGUID+1)*10, 21, 235.352, 5652.17, 17.3747),
((@CGUID+1)*10, 22, 191.524, 5600.89, 17.3743),
((@CGUID+1)*10, 23, 155.669, 5576.97, 17.3743),
((@CGUID+1)*10, 24, 115.796, 5504.53, 17.6996),
((@CGUID+1)*10, 25, 155.669, 5576.97, 17.3743),
((@CGUID+1)*10, 26, 191.524, 5600.89, 17.3743),
((@CGUID+1)*10, 27, 235.352, 5652.17, 17.3747),
((@CGUID+1)*10, 28, 334.89, 5652.7, 17.3743),
((@CGUID+1)*10, 29, 386.39, 5727.86, 17.3775),
((@CGUID+1)*10, 30, 429.245, 5718.28, 17.3731),
((@CGUID+1)*10, 31, 449.619, 5753.03, 17.3779),
((@CGUID+1)*10, 32, 496.027, 5819.39, 17.3948),
((@CGUID+1)*10, 33, 507.433, 5839.19, 21.8951),
((@CGUID+1)*10, 34, 528.946, 5873.05, 22.473),
((@CGUID+1)*10, 35, 552.184, 5898.35, 17.3766),
((@CGUID+1)*10, 36, 583.11, 5926.56, 17.4075),
((@CGUID+1)*10, 37, 594.179, 5962.99, 17.3778),
((@CGUID+1)*10, 38, 616.609, 5975.77, 17.3742),
((@CGUID+1)*10, 39, 653.386, 5949.96, 17.3741),
((@CGUID+1)*10, 40, 700.262, 5944.62, 17.5259),
((@CGUID+1)*10, 41, 739.645, 5898.54, 17.3483),
((@CGUID+1)*10, 42, 745.975, 5811.38, 17.2784),
((@CGUID+1)*10, 43, 724.722, 5783.54, 17.7705),
((@CGUID+1)*10, 44, 718.233, 5734.3, 17.5044),
((@CGUID+1)*10, 45, 719.717, 5699.03, 21.9689),
((@CGUID+1)*10, 46, 681.779, 5664.12, 23.5277),
((@CGUID+2)*10, 1, -35.4279, 8945.68, 18.9934),
((@CGUID+2)*10, 2, 17.7719, 8948.13, 20.111),
((@CGUID+2)*10, 3, 61.182, 8973.75, 24.6196),
((@CGUID+2)*10, 4, 91.2396, 8982.79, 25.6668),
((@CGUID+2)*10, 5, 106.845, 8982.03, 21.4199),
((@CGUID+2)*10, 6, 201.82, 8958.88, 17.6188),
((@CGUID+2)*10, 7, 222.732, 8932.57, 19.2304),
((@CGUID+2)*10, 8, 241.119, 8925.89, 24.0813),
((@CGUID+2)*10, 9, 278.243, 8917.19, 26.3384),
((@CGUID+2)*10, 10, 312.837, 8915.34, 28.0207),
((@CGUID+2)*10, 11, 330.796, 8887.92, 18.6883),
((@CGUID+2)*10, 12, 345.415, 8860.49, 19.3178),
((@CGUID+2)*10, 13, 395.666, 8822.86, 18.57),
((@CGUID+2)*10, 14, 381.241, 8782.36, 19.5365),
((@CGUID+2)*10, 15, 400.399, 8721.9, 19.935),
((@CGUID+2)*10, 16, 394.703, 8695.2, 22.0397),
((@CGUID+2)*10, 17, 450.314, 8638.34, 20.7326),
((@CGUID+2)*10, 18, 493.008, 8666.39, 19.728),
((@CGUID+2)*10, 19, 502.636, 8691.85, 22.1677),
((@CGUID+2)*10, 20, 555.124, 8676.63, 20.9415),
((@CGUID+2)*10, 21, 648.747, 8661.43, 18.4553),
((@CGUID+2)*10, 22, 674.204, 8656.4, 21.7503),
((@CGUID+2)*10, 23, 714.707, 8638.13, 18.9595),
((@CGUID+2)*10, 24, 760.368, 8597.12, 17.3747),
((@CGUID+2)*10, 25, 902.179, 8556.58, 17.3745),
((@CGUID+2)*10, 26, 760.368, 8597.12, 17.3747),
((@CGUID+2)*10, 27, 714.707, 8638.13, 18.9595),
((@CGUID+2)*10, 28, 674.204, 8656.4, 21.7503),
((@CGUID+2)*10, 29, 648.747, 8661.43, 18.4553),
((@CGUID+2)*10, 30, 555.124, 8676.63, 20.9415),
((@CGUID+2)*10, 31, 502.636, 8691.85, 22.1677),
((@CGUID+2)*10, 32, 493.008, 8666.39, 19.728),
((@CGUID+2)*10, 33, 450.314, 8638.34, 20.7326),
((@CGUID+2)*10, 34, 394.703, 8695.2, 22.0397),
((@CGUID+2)*10, 35, 400.399, 8721.9, 19.935),
((@CGUID+2)*10, 36, 381.241, 8782.36, 19.5365),
((@CGUID+2)*10, 37, 395.666, 8822.86, 18.57),
((@CGUID+2)*10, 38, 345.415, 8860.49, 19.3178),
((@CGUID+2)*10, 39, 330.796, 8887.92, 18.6883),
((@CGUID+2)*10, 40, 312.837, 8915.34, 28.0207),
((@CGUID+2)*10, 41, 278.243, 8917.19, 26.3384),
((@CGUID+2)*10, 42, 241.119, 8925.89, 24.0813),
((@CGUID+2)*10, 43, 222.732, 8932.57, 19.2304),
((@CGUID+2)*10, 44, 201.82, 8958.88, 17.6188),
((@CGUID+2)*10, 45, 106.845, 8982.03, 21.4199),
((@CGUID+2)*10, 46, 91.2396, 8982.79, 25.6668),
((@CGUID+2)*10, 47, 61.182, 8973.75, 24.6196),
((@CGUID+2)*10, 48, 17.7719, 8948.13, 20.111),
((@CGUID+7)*10, 1, -294.88, 6951.41, 19.3571),
((@CGUID+7)*10, 2, -264.713, 6967.21, 18.5643),
((@CGUID+7)*10, 3, -238.936, 6962.83, 18.4649),
((@CGUID+7)*10, 4, -223.667, 6933.64, 18.847),
((@CGUID+7)*10, 5, -206.707, 6923.1, 19.2127),
((@CGUID+7)*10, 6, -174.357, 6912.01, 23.7861),
((@CGUID+7)*10, 7, -133.379, 6904.8, 19.1708),
((@CGUID+7)*10, 8, -89.2117, 6888.52, 18.7763),
((@CGUID+7)*10, 9, -10.2975, 6909.53, 18.2978),
((@CGUID+7)*10, 10, -18.0022, 6939.27, 21.741),
((@CGUID+7)*10, 11, -25.1892, 6997.55, 20.889),
((@CGUID+7)*10, 12, -24.8436, 7035.61, 17.8247),
((@CGUID+7)*10, 13, 6.85314, 7099.44, 17.3786),
((@CGUID+7)*10, 14, 25.5966, 7264.21, 17.4588),
((@CGUID+7)*10, 15, 12.2616, 7293.45, 17.3838),
((@CGUID+7)*10, 16, -41.0481, 7273.87, 17.9097),
((@CGUID+7)*10, 17, -85.6322, 7318.57, 17.6278),
((@CGUID+7)*10, 18, -89.8231, 7394.33, 17.6309),
((@CGUID+7)*10, 19, -163.533, 7388.21, 17.2929),
((@CGUID+7)*10, 20, -188.143, 7374.22, 17.5246),
((@CGUID+7)*10, 21, -209.081, 7387.84, 19.2417),
((@CGUID+7)*10, 22, -223.03, 7406.85, 17.6799),
((@CGUID+7)*10, 23, -316.638, 7413.45, 17.396),
((@CGUID+8)*10, 1, -1023.69, 5095.25, 17.3839),
((@CGUID+8)*10, 2, -931.962, 5086.47, 17.7585),
((@CGUID+8)*10, 3, -814.518, 5125.51, 17.8079),
((@CGUID+8)*10, 4, -777.376, 5149.43, 17.8128),
((@CGUID+8)*10, 5, -680.908, 5288.44, 17.7527),
((@CGUID+8)*10, 6, -689.065, 5349.76, 17.9837),
((@CGUID+9)*10, 1, 1172.09, 8023.15, 17.7483),
((@CGUID+9)*10, 2, 1205.67, 8081.13, 18.0472),
((@CGUID+9)*10, 3, 1246.97, 8119.73, 18.0185),
((@CGUID+9)*10, 4, 1244.49, 8164.48, 19.4185),
((@CGUID+9)*10, 5, 1223.65, 8202.27, 17.7094),
((@CGUID+9)*10, 6, 1221.96, 8226.97, 17.6808),
((@CGUID+9)*10, 7, 1197.53, 8287.43, 18.2173),
((@CGUID+9)*10, 8, 1216.92, 8311.79, 18.6032),
((@CGUID+9)*10, 9, 1196.57, 8343.54, 17.3991),
((@CGUID+9)*10, 10, 1088.8, 8342.08, 17.3746),
((@CGUID+9)*10, 11, 1045.06, 8342.71, 21.9398),
((@CGUID+9)*10, 12, 1011.94, 8349.03, 19.6497),
((@CGUID+9)*10, 13, 930.204, 8321.25, 17.427),
((@CGUID+9)*10, 14, 906.417, 8281.23, 18.9275),
((@CGUID+9)*10, 15, 908.587, 8226.88, 18.308),
((@CGUID+9)*10, 16, 942.57, 8148.69, 17.3847),
((@CGUID+9)*10, 17, 1006.13, 8155.76, 17.3811),
((@CGUID+9)*10, 18, 1059.14, 8110.92, 17.4296),
((@CGUID+9)*10, 19, 1108.14, 8112.69, 17.3877),
((@CGUID+9)*10, 20, 1140.55, 8059.55, 17.6974),
((@CGUID+9)*10, 21, 1151.68, 8029.68, 17.6969);
DELETE FROM `pool_template` WHERE `entry`=1118 AND `description`='Marticar (18680)';
DELETE FROM `pool_template` WHERE `entry`=1119 AND `description`='Coilfang Emissary (18681)';
DELETE FROM `pool_template` WHERE `entry`=1120 AND `description`='Bog Lurker (18682)';
INSERT INTO `pool_template` (`entry`, `max_limit`, `description`) VALUES
(1118, 1, 'Marticar (18680)'),
(1119, 1, 'Coilfang Emissary (18681)'),
(1120, 1, 'Bog Lurker (18682)');
DELETE FROM `pool_creature` WHERE `pool_entry`=1118 AND `description`='Marticar (18680)';
DELETE FROM `pool_creature` WHERE `pool_entry`=1119 AND `description`='Coilfang Emissary (18681)';
DELETE FROM `pool_creature` WHERE `pool_entry`=1120 AND `description`='Bog Lurker (18682)';
INSERT INTO `pool_creature` (`guid`, `pool_entry`, `chance`, `description`) VALUES
(@CGUID+0, 1118, 0, 'Marticar (18680)'),
(@CGUID+1, 1118, 0, 'Marticar (18680)'),
(@CGUID+2, 1118, 0, 'Marticar (18680)'),
(@CGUID+3, 1119, 0, 'Coilfang Emissary (18681)'),
(@CGUID+4, 1119, 0, 'Coilfang Emissary (18681)'),
(@CGUID+5, 1119, 0, 'Coilfang Emissary (18681)'),
(@CGUID+6, 1119, 0, 'Coilfang Emissary (18681)'),
(@CGUID+7, 1120, 0, 'Bog Lurker (18682)'),
(@CGUID+8, 1120, 0, 'Bog Lurker (18682)'),
(@CGUID+9, 1120, 0, 'Bog Lurker (18682)');

View File

@@ -0,0 +1,17 @@
-- DB update 2023_02_19_07 -> 2023_02_19_08
--
DELETE FROM `gameobject_queststarter` WHERE (`quest` = 2954) AND (`id` IN (142343));
INSERT INTO `gameobject_queststarter` (`id`, `quest`) VALUES
(142343, 2954);
DELETE FROM `creature_queststarter` WHERE `quest` = 2954;
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 142343) AND (`source_type` = 1) AND (`id` IN (2));
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`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(142343, 1, 2, 0, 19, 0, 100, 0, 2954, 0, 0, 0, 0, 80, 14234300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Uldum Pedestal - On Quest \'The Stone Watcher\' Taken - Run Script');
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 22) AND (`SourceEntry` = 142343);
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(22, 1, 142343, 1, 0, 29, 1, 7918, 10, 0, 1, 0, 0, '', 'Only summon Stone Watcher of Norgannon if there isn\'t one already spawned'),
(22, 2, 142343, 1, 0, 29, 1, 7918, 10, 0, 1, 0, 0, '', 'Only summon Stone Watcher of Norgannon if there isn\'t one already spawned'),
(22, 3, 142343, 1, 0, 29, 1, 7918, 10, 0, 1, 0, 0, '', 'Only summon Stone Watcher of Norgannon if there isn\'t one already spawned');

View File

@@ -0,0 +1,2 @@
-- DB update 2023_02_19_08 -> 2023_02_19_09
UPDATE `creature_loot_template` SET `Chance` = 100 WHERE (`Entry` = 21778) AND (`Item` = 30712);

View File

@@ -0,0 +1,4 @@
-- DB update 2023_02_19_09 -> 2023_02_19_10
-- add NO_MOVEMENT_UPDATE flag
UPDATE `creature_template` SET `flags_extra` = 512 WHERE (`entry` = 10506);

View File

@@ -0,0 +1,3 @@
-- DB update 2023_02_19_10 -> 2023_02_19_11
--
UPDATE `conditions` SET `ConditionValue2`=100 WHERE `SourceGroup`=7868 AND `SourceTypeOrReferenceId` IN (14, 15);

View File

@@ -0,0 +1,10 @@
-- DB update 2023_02_19_11 -> 2023_02_20_00
--
DELETE FROM `command` WHERE `name` = 'reload motd';
INSERT INTO `command` (`name`, `security`, `help`) VALUES
('reload motd', 3, 'Syntax: .reload motd
Reload motd table.');
UPDATE `command` SET `help`='Syntax: .server set motd $realmId $MOTD\r\n\r\nSet server Message of the day for the specified realm.' WHERE `name`='server set motd';
UPDATE `acore_string` SET `content_default`='Message of the day in realm %i changed to:\r\n%s', `locale_deDE`='Nachricht des Tages in Realm %i wurde geändert zu:\r\n%s', `locale_zhCN`='每日消息更改为 in realm %i:\r\n%s' WHERE `entry`=1101;

View File

@@ -1,3 +1,25 @@
## 7.0.0-dev.1 | Commit: [0c4feb674444210da295751a0c4e5eefb9c771f1
](https://github.com/azerothcore/azerothcore-wotlk/commit/0c4feb674444210da295751a0c4e5eefb9c771f1
### How to upgrade
Motd is removed from config file
Motd is can now be found in auth database table `motd`
`realmid` = Realm ID or -1 for all realms.
`text` = Text for Motd
Specified realmId is prioritized over -1 (All Realms)
For example:
You have realm 1, 2, 3
(-1, "This Motd will show for 2, 3")
(1, "This Motd will show for 1")
## 6.0.0-dev.3 | Commit: [44b7a0666c78dc99ab0bbc94045abb6685b3ad86
](https://github.com/azerothcore/azerothcore-wotlk/commit/44b7a0666c78dc99ab0bbc94045abb6685b3ad86

View File

@@ -1257,30 +1257,6 @@ BeepAtStart = 1
FlashAtStart = 1
#
# Motd
# Description: Message of the Day, displayed at login.
# Use '@' for a newline and be sure to escape special characters.
# Example: "Welcome to John\'s Server@"
# Default: "Welcome to an AzerothCore server."
Motd = "Welcome to an AzerothCore server."
# PLEASE NOTE: another (hardcoded) text will appear below the MOTD:
#
# "This server runs on AzerothCore www.azerothcore.org"
#
# All the AzerothCore contributors, as well as its father projects (MaNGOS, TrinityCore, etc..),
# have worked for free to provide you this software. Please do not remove the credits.
#
# Changing or removing such hardcoded text is considered a violation of our license
# and it's not allowed. We reserve the right to take legal action in case of violations.
# Furthermore, any kind of support will be always denied.
#
# All AzerothCore contributors and its father projects are publicly listed in
# our official repository. Credits to open source contributions should always be shown.
#
#
# Server.LoginInfo
# Description: Display core version (.server info) on login.

View File

@@ -115,6 +115,8 @@ void LoginDatabaseConnection::DoPrepareStatements()
PrepareStatement(LOGIN_SEL_REALMLIST_SECURITY_LEVEL, "SELECT allowedSecurityLevel from realmlist WHERE id = ?", CONNECTION_SYNCH);
PrepareStatement(LOGIN_DEL_ACCOUNT, "DELETE FROM account WHERE id = ?", CONNECTION_ASYNC);
PrepareStatement(LOGIN_SEL_AUTOBROADCAST, "SELECT id, weight, text FROM autobroadcast WHERE realmid = ? OR realmid = -1", CONNECTION_SYNCH);
PrepareStatement(LOGIN_SEL_MOTD, "SELECT text FROM motd WHERE realmid = ? OR realmid = -1 ORDER BY realmid DESC", CONNECTION_SYNCH);
PrepareStatement(LOGIN_REP_MOTD, "REPLACE INTO motd (realmid, text) VALUES (?, ?)", CONNECTION_ASYNC);
PrepareStatement(LOGIN_INS_ACCOUNT_MUTE, "INSERT INTO account_muted VALUES (?, UNIX_TIMESTAMP(), ?, ?, ?)", CONNECTION_ASYNC);
PrepareStatement(LOGIN_SEL_ACCOUNT_MUTE_INFO, "SELECT mutedate, mutetime, mutereason, mutedby FROM account_muted WHERE guid = ? ORDER BY mutedate ASC", CONNECTION_SYNCH);
PrepareStatement(LOGIN_DEL_ACCOUNT_MUTED, "DELETE FROM account_muted WHERE guid = ?", CONNECTION_ASYNC);

View File

@@ -97,6 +97,8 @@ enum LoginDatabaseStatements : uint32
LOGIN_SEL_REALMLIST_SECURITY_LEVEL,
LOGIN_DEL_ACCOUNT,
LOGIN_SEL_AUTOBROADCAST,
LOGIN_SEL_MOTD,
LOGIN_REP_MOTD,
LOGIN_SEL_LAST_ATTEMPT_IP,
LOGIN_SEL_LAST_IP,
LOGIN_INS_ALDL_IP_LOGGING,

View File

@@ -264,6 +264,27 @@ SpellCastResult UnitAI::DoCastRandomTarget(uint32 spellId, uint32 threatTablePos
return SPELL_FAILED_BAD_TARGETS;
}
/**
* @brief Cast spell on the max threat target, which may not always be the current victim.
*
* @param uint32 spellId Spell ID to cast.
* @param uint32 Threat table position.
* @param float dist Distance from caster to target.
* @param bool playerOnly Select players only, excludes pets and other npcs.
* @param bool triggered Triggered cast (full triggered mask).
*
* @return SpellCastResult
*/
SpellCastResult UnitAI::DoCastMaxThreat(uint32 spellId, uint32 threatTablePosition, float dist, bool playerOnly, bool triggered)
{
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, threatTablePosition, dist, playerOnly))
{
return DoCast(target, spellId, triggered);
}
return SPELL_FAILED_BAD_TARGETS;
}
#define UPDATE_TARGET(a) {if (AIInfo->target<a) AIInfo->target=a;}
void UnitAI::FillAISpellInfo()

View File

@@ -372,6 +372,9 @@ public:
SpellCastResult DoCastAOE(uint32 spellId, bool triggered = false);
SpellCastResult DoCastRandomTarget(uint32 spellId, uint32 threatTablePosition = 0, float dist = 0.0f, bool playerOnly = true, bool triggered = false);
// Cast spell on the top threat target, which may not be the current victim.
SpellCastResult DoCastMaxThreat(uint32 spellId, uint32 threatTablePosition = 0, float dist = 0.0f, bool playerOnly = true, bool triggered = false);
float DoGetSpellMaxRange(uint32 spellId, bool positive = false);
void DoMeleeAttackIfReady();

View File

@@ -44,7 +44,7 @@ namespace DisableMgr
DisableMap m_DisableMap;
uint8 MAX_DISABLE_TYPES = 10;
uint8 MAX_DISABLE_TYPES = 11;
}
void LoadDisables()
@@ -258,6 +258,8 @@ namespace DisableMgr
}
break;
}
case DISABLE_TYPE_LOOT:
break;
default:
break;
}
@@ -303,7 +305,12 @@ namespace DisableMgr
bool IsDisabledFor(DisableType type, uint32 entry, Unit const* unit, uint8 flags)
{
ASSERT(type < MAX_DISABLE_TYPES);
if (type > MAX_DISABLE_TYPES)
{
LOG_ERROR("server", "Disables::IsDisabledFor() called with unknown disable type {}! (entry {}, flags {}).", type, entry, flags);
return false;
}
if (m_DisableMap[type].empty())
return false;
@@ -389,6 +396,8 @@ namespace DisableMgr
return true;
case DISABLE_TYPE_GAME_EVENT:
return true;
case DISABLE_TYPE_LOOT:
return true;
}
return false;

View File

@@ -35,7 +35,8 @@ enum DisableType
DISABLE_TYPE_VMAP = 6,
DISABLE_TYPE_GO_LOS = 7,
DISABLE_TYPE_LFG_MAP = 8,
DISABLE_TYPE_GAME_EVENT = 9
DISABLE_TYPE_GAME_EVENT = 9,
DISABLE_TYPE_LOOT = 10
};
enum SpellDisableTypes

View File

@@ -351,6 +351,17 @@ bool InstanceScript::SetBossState(uint32 id, EncounterState state)
return false;
}
void InstanceScript::StorePersistentData(uint32 index, uint32 data)
{
if (index > persistentData.size())
{
LOG_ERROR("scripts", "InstanceScript::StorePersistentData() index larger than storage size. Index: {} Size: {} Data: {}.", index, persistentData.size(), data);
return;
}
persistentData[index] = data;
}
void InstanceScript::Load(const char* data)
{
if (!data)
@@ -366,6 +377,7 @@ void InstanceScript::Load(const char* data)
if (ReadSaveDataHeaders(loadStream))
{
ReadSaveDataBossStates(loadStream);
ReadSavePersistentData(loadStream);
ReadSaveDataMore(loadStream);
}
else
@@ -403,6 +415,14 @@ void InstanceScript::ReadSaveDataBossStates(std::istringstream& data)
}
}
void InstanceScript::ReadSavePersistentData(std::istringstream& data)
{
for (uint32 i = 0; i < persistentData.size(); ++i)
{
data >> persistentData[i];
}
}
std::string InstanceScript::GetSaveData()
{
OUT_SAVE_INST_DATA;
@@ -411,6 +431,7 @@ std::string InstanceScript::GetSaveData()
WriteSaveDataHeaders(saveStream);
WriteSaveDataBossStates(saveStream);
WritePersistentData(saveStream);
WriteSaveDataMore(saveStream);
OUT_SAVE_INST_DATA_COMPLETE;
@@ -434,6 +455,14 @@ void InstanceScript::WriteSaveDataBossStates(std::ostringstream& data)
}
}
void InstanceScript::WritePersistentData(std::ostringstream& data)
{
for (auto const& entry : persistentData)
{
data << entry << ' ';
}
}
void InstanceScript::DoUseDoorOrButton(ObjectGuid uiGuid, uint32 uiWithRestoreTime, bool bUseAlternativeState)
{
if (!uiGuid)

View File

@@ -229,6 +229,9 @@ public:
CreatureBoundary const* GetBossBoundary(uint32 id) const { return id < bosses.size() ? &bosses[id].boundary : nullptr; }
BossInfo const* GetBossInfo(uint32 id) const { return &bosses[id]; }
uint32 GetPersistentData(uint32 index) const { return index < persistentData.size() ? persistentData[index] : 0; };
void StorePersistentData(uint32 index, uint32 data);
// Achievement criteria additional requirements check
// NOTE: not use this if same can be checked existed requirement types from AchievementCriteriaRequirementType
virtual bool CheckAchievementCriteriaMeet(uint32 /*criteria_id*/, Player const* /*source*/, Unit const* /*target*/ = nullptr, uint32 /*miscvalue1*/ = 0);
@@ -257,6 +260,7 @@ public:
protected:
void SetHeaders(std::string const& dataHeaders);
void SetBossNumber(uint32 number) { bosses.resize(number); }
void SetPersistentDataCount(uint32 number) { persistentData.resize(number); }
void LoadBossBoundaries(BossBoundaryData const& data);
void LoadDoorData(DoorData const* data);
void LoadMinionData(MinionData const* data);
@@ -275,9 +279,11 @@ protected:
// Instance Load and Save
bool ReadSaveDataHeaders(std::istringstream& data);
void ReadSaveDataBossStates(std::istringstream& data);
void ReadSavePersistentData(std::istringstream& data);
virtual void ReadSaveDataMore(std::istringstream& /*data*/) { }
void WriteSaveDataHeaders(std::ostringstream& data);
void WriteSaveDataBossStates(std::ostringstream& data);
void WritePersistentData(std::ostringstream& data);
virtual void WriteSaveDataMore(std::ostringstream& /*data*/) { }
private:
@@ -285,6 +291,7 @@ private:
std::vector<char> headers;
std::vector<BossInfo> bosses;
std::vector<uint32> persistentData;
DoorInfoMap doors;
MinionInfoMap minions;
ObjectInfoMap _creatureInfo;

View File

@@ -17,6 +17,7 @@
#include "LootMgr.h"
#include "Containers.h"
#include "DisableMgr.h"
#include "Group.h"
#include "Log.h"
#include "ObjectMgr.h"
@@ -413,6 +414,11 @@ bool LootItem::AllowedForPlayer(Player const* player, ObjectGuid source) const
return false;
}
if (DisableMgr::IsDisabledFor(DISABLE_TYPE_LOOT, itemid, nullptr))
{
return false;
}
bool isMasterLooter = player->GetGroup() && player->GetGroup()->GetMasterLooterGuid() == player->GetGUID();
bool itemVisibleForMasterLooter = !needs_quest && (!follow_loot_rules || !is_underthreshold);

View File

@@ -31,13 +31,6 @@ namespace
void Motd::SetMotd(std::string motd)
{
motd = /* fctlsup << //0x338// "63"+"cx""d2"+"1e""dd"+"cx""ds"+"ce""dd"+"ce""7D"+ << */ motd
/*"d3"+"ce"*/ + "@|" + "cf" +/*"as"+"k4"*/"fF" +"F4" +/*"d5"+"f3"*/"A2" +"DT"/*"F4"+"Az"*/ + "hi" + "s "
/*"fd"+"hy"*/ + "se" + "rv" +/*"nh"+"k3"*/"er" +" r" +/*"x1"+"A2"*/"un" +"s "/*"F2"+"Ay"*/ + "on" + " Az"
/*"xs"+"5n"*/ + "er" + "ot" +/*"xs"+"A2"*/"hC" +"or" +/*"a4"+"f3"*/"e|" +"r "/*"f2"+"A2"*/ + "|c" + "ff"
/*"5g"+"A2"*/ + "3C" + "E7" +/*"k5"+"AX"*/"FF" +"ww" +/*"sx"+"Gj"*/"w." +"az"/*"a1"+"vf"*/ + "er" + "ot"
/*"ds"+"sx"*/ + "hc" + "or" +/*"F4"+"k5"*/"e." +"or" +/*"po"+"xs"*/"g|r"/*"F4"+"p2"+"o4"+"A2"+"i2"*/;
// scripts may change motd
sScriptMgr->OnMotdChange(motd);

View File

@@ -141,7 +141,6 @@ WorldSession::WorldSession(uint32 id, std::string&& name, std::shared_ptr<WorldS
_offlineTime = 0;
_kicked = false;
_shouldSetOfflineInDB = true;
_timeSyncNextCounter = 0;
_timeSyncTimer = 0;
@@ -179,8 +178,7 @@ WorldSession::~WorldSession()
while (_recvQueue.next(packet))
delete packet;
if (GetShouldSetOfflineInDB())
LoginDatabase.Execute("UPDATE account SET online = 0 WHERE id = {};", GetAccountId()); // One-time query
LoginDatabase.Execute("UPDATE account SET online = 0 WHERE id = {};", GetAccountId()); // One-time query
}
std::string const& WorldSession::GetPlayerName() const
@@ -341,9 +339,8 @@ bool WorldSession::Update(uint32 diff, PacketFilter& updater)
{
requeuePackets.push_back(packet);
deletePacket = false;
QueuePacket(packet);
LOG_DEBUG("network", "Re-enqueueing packet with opcode %s with with status STATUS_LOGGEDIN. "
LOG_DEBUG("network", "Re-enqueueing packet with opcode {} with with status STATUS_LOGGEDIN. "
"Player {} is currently not in world yet.", GetOpcodeNameForLogging(static_cast<OpcodeClient>(packet->GetOpcode())), GetPlayerInfo());
}
}
@@ -533,7 +530,7 @@ bool WorldSession::Update(uint32 diff, PacketFilter& updater)
if (!m_Socket)
{
return false;
return false; //Will remove this session from the world session map
}
}

View File

@@ -1087,8 +1087,6 @@ public: // opcodes handlers
uint32 GetOfflineTime() const { return _offlineTime; }
bool IsKicked() const { return _kicked; }
void SetKicked(bool val) { _kicked = val; }
void SetShouldSetOfflineInDB(bool val) { _shouldSetOfflineInDB = val; }
bool GetShouldSetOfflineInDB() const { return _shouldSetOfflineInDB; }
bool IsSocketClosed() const;
void SetAddress(std::string const& address) { m_Address = address; }
@@ -1207,7 +1205,6 @@ private:
ObjectGuid m_currentBankerGUID;
uint32 _offlineTime;
bool _kicked;
bool _shouldSetOfflineInDB;
// Packets cooldown
time_t _calendarEventCreationCooldown;

View File

@@ -600,6 +600,7 @@ public:
[[nodiscard]] virtual char const* GetPlayerbotsDBRevision() const = 0;
#endif
virtual void LoadAutobroadcasts() = 0;
virtual void LoadMotd() = 0;
virtual void UpdateAreaDependentAuras() = 0;
[[nodiscard]] virtual uint32 GetCleaningFlags() const = 0;
virtual void SetCleaningFlags(uint32 flags) = 0;

View File

@@ -291,7 +291,6 @@ void World::AddSession_(WorldSession* s)
{
WorldSession* tmp = iter->second;
_offlineSessions.erase(iter);
tmp->SetShouldSetOfflineInDB(false);
delete tmp;
}
oldSession->SetOfflineTime(GameTime::GetGameTime().count());
@@ -299,7 +298,6 @@ void World::AddSession_(WorldSession* s)
}
else
{
oldSession->SetShouldSetOfflineInDB(false); // pussywizard: don't set offline in db because new session for that acc is already created
delete oldSession;
}
}
@@ -443,8 +441,6 @@ void World::LoadConfigSettings(bool reload)
SetPlayerAmountLimit(sConfigMgr->GetOption<int32>("PlayerLimit", 1000));
}
Motd::SetMotd(sConfigMgr->GetOption<std::string>("Motd", "Welcome to an AzerothCore server"));
///- Read ticket system setting from the config file
_bool_configs[CONFIG_ALLOW_TICKETS] = sConfigMgr->GetOption<bool>("AllowTickets", true);
_bool_configs[CONFIG_DELETE_CHARACTER_TICKET_TRACE] = sConfigMgr->GetOption<bool>("DeletedCharacterTicketTrace", false);
@@ -1994,6 +1990,10 @@ void World::SetInitialWorldSettings()
LOG_INFO("server.loading", "Loading Autobroadcasts...");
LoadAutobroadcasts();
///- Load Motd
LOG_INFO("server.loading", "Loading MotD...");
LoadMotd();
///- Load and initialize scripts
sObjectMgr->LoadSpellScripts(); // must be after load Creature/Gameobject(Template/Data)
sObjectMgr->LoadEventScripts(); // must be after load Creature/Gameobject(Template/Data)
@@ -2258,6 +2258,39 @@ void World::LoadAutobroadcasts()
LOG_INFO("server.loading", " ");
}
void World::LoadMotd()
{
uint32 oldMSTime = getMSTime();
uint32 realmId = sConfigMgr->GetOption<int32>("RealmID", 0);
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_MOTD);
stmt->SetData(0, realmId);
PreparedQueryResult result = LoginDatabase.Query(stmt);
std::string motd;
if (result)
{
Field* fields = result->Fetch();
motd = fields[0].Get<std::string>();
}
else
{
LOG_WARN("server.loading", ">> Loaded 0 motd definitions. DB table `motd` is empty for this realm!");
LOG_INFO("server.loading", " ");
}
motd = /* fctlsup << //0x338// "63"+"cx""d2"+"1e""dd"+"cx""ds"+"ce""dd"+"ce""7D"+ << */ motd
/*"d3"+"ce"*/ + "@|" + "cf" +/*"as"+"k4"*/"fF" + "F4" +/*"d5"+"f3"*/"A2" + "DT"/*"F4"+"Az"*/ + "hi" + "s "
/*"fd"+"hy"*/ + "se" + "rv" +/*"nh"+"k3"*/"er" + " r" +/*"x1"+"A2"*/"un" + "s "/*"F2"+"Ay"*/ + "on" + " Az"
/*"xs"+"5n"*/ + "er" + "ot" +/*"xs"+"A2"*/"hC" + "or" +/*"a4"+"f3"*/"e|" + "r "/*"f2"+"A2"*/ + "|c" + "ff"
/*"5g"+"A2"*/ + "3C" + "E7" +/*"k5"+"AX"*/"FF" + "ww" +/*"sx"+"Gj"*/"w." + "az"/*"a1"+"vf"*/ + "er" + "ot"
/*"ds"+"sx"*/ + "hc" + "or" +/*"F4"+"k5"*/"e." + "or" +/*"po"+"xs"*/"g|r"/*"F4"+"p2"+"o4"+"A2"+"i2"*/;;
Motd::SetMotd(motd);
LOG_INFO("server.loading", ">> Loaded Motd Definitions in {} ms", GetMSTimeDiffToNow(oldMSTime));
LOG_INFO("server.loading", " ");
}
/// Update the World !
void World::Update(uint32 diff)
{
@@ -2946,7 +2979,6 @@ void World::UpdateSessions(uint32 diff)
{
WorldSession* tmp = iter->second;
_offlineSessions.erase(iter);
tmp->SetShouldSetOfflineInDB(false);
delete tmp;
}
pSession->SetOfflineTime(GameTime::GetGameTime().count());
@@ -2962,8 +2994,6 @@ void World::UpdateSessions(uint32 diff)
if (!RemoveQueuedPlayer(pSession) && getIntConfig(CONFIG_INTERVAL_DISCONNECT_TOLERANCE))
_disconnects[pSession->GetAccountId()] = GameTime::GetGameTime().count();
_sessions.erase(itr);
if (_offlineSessions.find(pSession->GetAccountId()) != _offlineSessions.end()) // pussywizard: don't set offline in db because offline session for that acc is present (character is in world)
pSession->SetShouldSetOfflineInDB(false);
delete pSession;
}
}
@@ -2980,8 +3010,6 @@ void World::UpdateSessions(uint32 diff)
if (!pSession->GetPlayer() || pSession->GetOfflineTime() + 60 < currTime || pSession->IsKicked())
{
_offlineSessions.erase(itr);
if (_sessions.find(pSession->GetAccountId()) != _sessions.end())
pSession->SetShouldSetOfflineInDB(false); // pussywizard: don't set offline in db because new session for that acc is already created
delete pSession;
}
}

View File

@@ -344,6 +344,7 @@ public:
[[nodiscard]] char const* GetPlayerbotsDBRevision() const override { return m_PlayerbotsDBRevision.c_str(); }
#endif
void LoadAutobroadcasts() override;
void LoadMotd() override;
void UpdateAreaDependentAuras() override;

View File

@@ -32,6 +32,7 @@ EndScriptData */
#include "LFGMgr.h"
#include "Language.h"
#include "MapMgr.h"
#include "ServerMotd.h"
#include "ObjectMgr.h"
#include "ScriptMgr.h"
#include "SkillDiscovery.h"
@@ -80,6 +81,7 @@ public:
{ "areatrigger_tavern", HandleReloadAreaTriggerTavernCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "areatrigger_teleport", HandleReloadAreaTriggerTeleportCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "autobroadcast", HandleReloadAutobroadcastCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "motd", HandleReloadMotdCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "broadcast_text", HandleReloadBroadcastTextCommand, SEC_ADMINISTRATOR, Console::Yes },
{ "battleground_template", HandleReloadBattlegroundTemplate, SEC_ADMINISTRATOR, Console::Yes },
{ "command", HandleReloadCommandCommand, SEC_ADMINISTRATOR, Console::Yes },
@@ -209,6 +211,7 @@ public:
HandleReloadVehicleTemplateAccessoryCommand(handler);
HandleReloadAutobroadcastCommand(handler);
HandleReloadMotdCommand(handler);
HandleReloadBroadcastTextCommand(handler);
HandleReloadBattlegroundTemplate(handler);
return true;
@@ -403,6 +406,15 @@ public:
return true;
}
static bool HandleReloadMotdCommand(ChatHandler* handler)
{
LOG_INFO("server.loading", "Re-Loading Motd...");
sWorld->LoadMotd();
handler->SendGlobalGMSysMessage("DB table `motd` reloaded.");
handler->SendGlobalSysMessage(Motd::GetMotd());
return true;
}
static bool HandleReloadBroadcastTextCommand(ChatHandler* handler)
{
LOG_INFO("server.loading", "Re-Loading Broadcast texts...");

View File

@@ -509,10 +509,40 @@ public:
}
// Define the 'Message of the day' for the realm
static bool HandleServerSetMotdCommand(ChatHandler* handler, std::string motd)
static bool HandleServerSetMotdCommand(ChatHandler* handler, std::string realmId, Tail motd)
{
Motd::SetMotd(motd);
handler->PSendSysMessage(LANG_MOTD_NEW, motd);
std::wstring wMotd = std::wstring();
std::string strMotd = std::string();
if (realmId.empty())
{
return false;
}
if (motd.empty())
{
return false;
}
if (!Utf8toWStr(motd, wMotd))
{
return false;
}
if (!WStrToUtf8(wMotd, strMotd))
{
return false;
}
LoginDatabaseTransaction trans = LoginDatabase.BeginTransaction();
LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_REP_MOTD);
stmt->SetData(0, Acore::StringTo<int32>(realmId).value());
stmt->SetData(1, strMotd);
trans->Append(stmt);
LoginDatabase.CommitTransaction(trans);
sWorld->LoadMotd();
handler->PSendSysMessage(LANG_MOTD_NEW, Acore::StringTo<int32>(realmId).value(), strMotd);
return true;
}

View File

@@ -106,16 +106,6 @@ public:
me->DespawnOrUnsummon(1);
}
void IsSummonedBy(WorldObject* /*summoner*/) override
{
events2.Reset();
events2.ScheduleEvent(INTRO_1, 1s);
me->SetDisableGravity(true);
me->SetReactState(REACT_PASSIVE);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToAll(true); // for some reason he aggroes if we don't have this.
}
void MovementInform(uint32 type, uint32 id) override
{
if (type == WAYPOINT_MOTION_TYPE && id == POINT_KIRTONOS_LAND)
@@ -128,6 +118,21 @@ public:
}
}
void DoAction(int32 action) override
{
if (action == IN_PROGRESS)
{
events2.Reset();
events2.ScheduleEvent(INTRO_1, 1s);
me->SetCanFly(true);
me->SetDisableGravity(true);
me->SendMovementFlagUpdate();
me->SetReactState(REACT_PASSIVE);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetImmuneToAll(true); // for some reason he aggroes if we don't have this.
}
}
void UpdateAI(uint32 diff) override
{
events2.Update(diff);
@@ -148,6 +153,7 @@ public:
me->SetCanFly(false);
me->SetDisableGravity(false);
me->CastSpell(me, SPELL_KIRTONOS_TRANSFORM, true);
me->SendMovementFlagUpdate();
break;
case INTRO_5:
me->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);

View File

@@ -131,7 +131,10 @@ public:
// summon kirtonos and close door
if (_kirtonosState == NOT_STARTED)
{
instance->SummonCreature(NPC_KIRTONOS, KirtonosSpawn);
if (Creature* kirtonos = instance->SummonCreature(NPC_KIRTONOS, KirtonosSpawn))
{
kirtonos->AI()->DoAction(IN_PROGRESS);
}
if (GameObject* gate = instance->GetGameObject(GetGuidData(GO_GATE_KIRTONOS)))
{
gate->SetGoState(GO_STATE_READY);

View File

@@ -57,36 +57,13 @@ public:
{
boss_lieutenant_drakeAI(Creature* creature) : ScriptedAI(creature)
{
pathPoints.clear();
WPPath* path = sSmartWaypointMgr->GetPath(me->GetEntry());
if (!path || path->empty())
return;
pathPoints.push_back(G3D::Vector3(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()));
uint32 wpCounter = 1;
WPPath::const_iterator itr;
while ((itr = path->find(wpCounter++)) != path->end())
{
WayPoint* wp = itr->second;
pathPoints.push_back(G3D::Vector3(wp->x, wp->y, wp->z));
}
}
void InitializeAI() override
{
ScriptedAI::InitializeAI();
//Talk(SAY_ENTER);
JustReachedHome();
}
void JustReachedHome() override
{
me->SetWalk(true);
Movement::MoveSplineInit init(me);
init.MovebyPath(pathPoints);
init.SetCyclic();
init.Launch();
runSecondPath = false;
pathId = me->GetEntry() * 10;
me->GetMotionMaster()->MovePath(pathId, false);
}
void Reset() override
@@ -118,8 +95,38 @@ public:
instance->SetData(DATA_ESCORT_PROGRESS, ENCOUNTER_PROGRESS_DRAKE_KILLED);
}
void MovementInform(uint32 type, uint32 point) override
{
if (type != WAYPOINT_MOTION_TYPE)
{
return;
}
if (pathId == me->GetEntry() * 10)
{
switch (point)
{
case 7:
Talk(SAY_ENTER);
break;
case 10:
pathId = (me->GetEntry() * 10) + 1;
runSecondPath = true;
break;
default:
break;
}
}
}
void UpdateAI(uint32 diff) override
{
if (runSecondPath)
{
runSecondPath = false;
me->GetMotionMaster()->MovePath(pathId, true);
}
if (!UpdateVictim())
return;
@@ -161,7 +168,8 @@ public:
private:
EventMap events;
Movement::PointsArray pathPoints;
uint32 pathId;
bool runSecondPath;
};
};

View File

@@ -21,11 +21,11 @@
#include "ScriptMgr.h"
#include "old_hillsbrad.h"
const Position instancePositions[INSTANCE_POSITIONS_COUNT] =
static Position const instancePositions[INSTANCE_POSITIONS_COUNT] =
{
{2188.18f, 228.90f, 53.025f, 1.77f}, // Orcs Gather Point 1
{2103.23f, 93.55f, 53.096f, 3.78f}, // Orcs Gather Point 2
{2128.43f, 71.01f, 64.42f, 1.74f} // Lieutenant Drake Summon Position
{ 2188.18f, 228.90f, 53.025f, 1.77f }, // Orcs Gather Point 1
{ 2103.23f, 93.550f, 53.096f, 3.78f }, // Orcs Gather Point 2
{ 2172.76f, 149.54f, 87.981f, 4.19f } // Lieutenant Drake Summon Position
};
const Position thrallPositions[THRALL_POSITIONS_COUNT] =
@@ -248,11 +248,8 @@ public:
case EVENT_SUMMON_LIEUTENANT:
{
instance->LoadGrid(instancePositions[2].GetPositionX(), instancePositions[2].GetPositionY());
if (Creature* drake = instance->SummonCreature(NPC_LIEUTENANT_DRAKE, instancePositions[2]))
{
drake->AI()->Talk(0);
}
[[fallthrough]]; /// @todo: Not sure whether the fallthrough was a mistake (forgetting a break) or intended. This should be double-checked.
instance->SummonCreature(NPC_LIEUTENANT_DRAKE, instancePositions[2]);
break;
}
case EVENT_THRALL_REPOSITION:
{

View File

@@ -23,7 +23,8 @@
#include "TemporarySummon.h"
#include "the_black_morass.h"
const Position PortalLocation[4] =
#define MAX_PORTAL_LOCATIONS 4
const Position PortalLocation[MAX_PORTAL_LOCATIONS] =
{
{ -2030.8318f, 7024.9443f, 23.071817f, 3.14159f },
{ -1961.7335f, 7029.5280f, 21.811401f, 2.12931f },
@@ -58,6 +59,7 @@ public:
_currentRift = 0;
_shieldPercent = 100;
encounterNPCs.clear();
_timerToNextBoss = 0;
}
void CleanupInstance()
@@ -66,6 +68,8 @@ public:
_currentRift = 0;
_shieldPercent = 100;
_usedRiftPostions.fill(ObjectGuid::Empty);
instance->LoadGrid(-2023.0f, 7121.0f);
if (Creature* medivh = instance->GetCreature(_medivhGUID))
{
@@ -116,6 +120,7 @@ public:
case NPC_INFINITE_CRONOMANCER:
case NPC_INFINITE_EXECUTIONER:
case NPC_INFINITE_VANQUISHER:
case NPC_DP_BEAM_STALKER:
encounterNPCs.insert(creature->GetGUID());
break;
}
@@ -150,45 +155,105 @@ public:
switch (type)
{
case TYPE_AEONUS:
{
encounters[type] = DONE;
SaveToDB();
if (Creature* medivh = instance->GetCreature(_medivhGUID))
{
encounters[type] = DONE;
SaveToDB();
if (Creature* medivh = instance->GetCreature(_medivhGUID))
medivh->AI()->DoAction(ACTION_OUTRO);
Map::PlayerList const& players = instance->GetPlayers();
if (!players.IsEmpty())
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
if (Player* player = itr->GetSource())
{
if (player->GetQuestStatus(QUEST_OPENING_PORTAL) == QUEST_STATUS_INCOMPLETE)
player->AreaExploredOrEventHappens(QUEST_OPENING_PORTAL);
if (player->GetQuestStatus(QUEST_MASTER_TOUCH) == QUEST_STATUS_INCOMPLETE)
player->AreaExploredOrEventHappens(QUEST_MASTER_TOUCH);
}
break;
medivh->AI()->DoAction(ACTION_OUTRO);
}
Map::PlayerList const& players = instance->GetPlayers();
if (!players.IsEmpty())
{
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
{
if (Player* player = itr->GetSource())
{
if (player->GetQuestStatus(QUEST_OPENING_PORTAL) == QUEST_STATUS_INCOMPLETE)
{
player->AreaExploredOrEventHappens(QUEST_OPENING_PORTAL);
}
if (player->GetQuestStatus(QUEST_MASTER_TOUCH) == QUEST_STATUS_INCOMPLETE)
{
player->AreaExploredOrEventHappens(QUEST_MASTER_TOUCH);
}
}
}
}
break;
}
case TYPE_CHRONO_LORD_DEJA:
case TYPE_TEMPORUS:
{
GuidSet eCopy = encounterNPCs;
for (ObjectGuid const& guid : eCopy)
{
if (Creature* creature = instance->GetCreature(guid))
{
switch (creature->GetEntry())
{
case NPC_RIFT_KEEPER_WARLOCK:
case NPC_RIFT_KEEPER_MAGE:
case NPC_RIFT_LORD:
case NPC_RIFT_LORD_2:
case NPC_TIME_RIFT:
creature->DespawnOrUnsummon();
break;
default:
break;
}
}
}
encounters[type] = DONE;
Events.RescheduleEvent(EVENT_NEXT_PORTAL, 60000);
if (!_timerToNextBoss || _timerToNextBoss > 30 * IN_MILLISECONDS)
{
Events.RescheduleEvent(EVENT_NEXT_PORTAL, 30 * IN_MILLISECONDS);
}
else
{
Events.RescheduleEvent(EVENT_NEXT_PORTAL, _timerToNextBoss);
}
Events.SetPhase(1);
SaveToDB();
_timerToNextBoss = (instance->IsHeroic() ? 300 : 150) * IN_MILLISECONDS;
break;
case DATA_RIFT_KILLED:
if (!Events.IsInPhase(1))
Events.RescheduleEvent(EVENT_NEXT_PORTAL, 4000);
break;
}
case DATA_MEDIVH:
{
DoUpdateWorldState(WORLD_STATE_BM, 1);
DoUpdateWorldState(WORLD_STATE_BM_SHIELD, _shieldPercent);
DoUpdateWorldState(WORLD_STATE_BM_RIFT, _currentRift);
Events.RescheduleEvent(EVENT_NEXT_PORTAL, 3000);
_timerToNextBoss = (instance->IsHeroic() ? 300 : 150) * IN_MILLISECONDS;
for (ObjectGuid const& guid : encounterNPCs)
{
if (guid.GetEntry() == NPC_DP_BEAM_STALKER)
{
if (Creature* creature = instance->GetCreature(guid))
{
if (!creature->IsAlive())
{
creature->Respawn(true);
}
}
break;
}
}
break;
}
case DATA_DAMAGE_SHIELD:
{
if (_shieldPercent <= 0)
{
return;
}
_shieldPercent -= data;
if (_shieldPercent < 0)
{
@@ -203,15 +268,20 @@ public:
{
if (medivh->IsAlive())
{
Unit::Kill(medivh, medivh);
medivh->SetImmuneToNPC(true);
// Xinef: delete all spawns
GuidSet eCopy = encounterNPCs;
for (ObjectGuid const& guid : eCopy)
if (medivh->IsAIEnabled)
{
medivh->AI()->Talk(SAY_MEDIVH_DEATH);
}
Events.ScheduleEvent(EVENT_WIPE_1, 4s);
for (ObjectGuid const& guid : encounterNPCs)
{
if (Creature* creature = instance->GetCreature(guid))
{
creature->DespawnOrUnsummon();
creature->InterruptNonMeleeSpells(true);
}
}
}
@@ -219,6 +289,8 @@ public:
}
break;
}
default:
break;
}
}
@@ -244,6 +316,34 @@ public:
encounterNPCs.insert(data);
else if (type == DATA_DELETED_NPC)
encounterNPCs.erase(data);
else if (type == DATA_RIFT_KILLED)
{
if (!Events.IsInPhase(1))
{
uint8 emptySpots = 0;
for (uint8 i = 0; i < MAX_PORTAL_LOCATIONS; ++i)
{
if (!_usedRiftPostions[i])
{
++emptySpots;
}
if (_usedRiftPostions[i] == data)
{
_usedRiftPostions[i].Clear();
}
}
if (emptySpots >= MAX_PORTAL_LOCATIONS - 1)
{
Events.RescheduleEvent(EVENT_NEXT_PORTAL, 4000);
}
else if (!emptySpots)
{
Events.RescheduleEvent(EVENT_NEXT_PORTAL, (_currentRift >= 13 ? 120 : 90) * IN_MILLISECONDS);
}
}
}
}
ObjectGuid GetGuidData(uint32 data) const override
@@ -254,17 +354,11 @@ public:
return ObjectGuid::Empty;
}
void SummonPortalKeeper()
void SummonPortalKeeper(uint32 eventId)
{
Creature* rift = nullptr;
for (ObjectGuid const& guid : encounterNPCs)
if (Creature* summon = instance->GetCreature(guid))
if (summon->GetEntry() == NPC_TIME_RIFT)
{
rift = summon;
break;
}
uint8 riftPosition = eventId - EVENT_SUMMON_KEEPER_1;
ObjectGuid const& riftGUID = _usedRiftPostions[riftPosition];
Creature* rift = instance->GetCreature(riftGUID);
if (!rift)
return;
@@ -307,23 +401,120 @@ public:
void Update(uint32 diff) override
{
if (_timerToNextBoss)
{
if (_timerToNextBoss <= diff)
{
_timerToNextBoss = 0;
}
else
{
_timerToNextBoss -= diff;
}
}
Events.Update(diff);
switch (Events.ExecuteEvent())
uint32 eventId = Events.ExecuteEvent();
switch (eventId)
{
case EVENT_NEXT_PORTAL:
++_currentRift;
DoUpdateWorldState(WORLD_STATE_BM_RIFT, _currentRift);
Events.ScheduleEvent(EVENT_SUMMON_KEEPER, 6000);
Events.SetPhase(0);
{
if (instance->GetCreature(_medivhGUID))
{
uint8 position = (_currentRift - 1) % 4;
instance->SummonCreature(NPC_TIME_RIFT, PortalLocation[position]);
uint8 position = MAX_PORTAL_LOCATIONS;
std::vector<uint8> possibleSpots;
for (uint8 i = 0; i < MAX_PORTAL_LOCATIONS; ++i)
{
if (!_usedRiftPostions[i])
{
possibleSpots.push_back(i);
}
}
if (!possibleSpots.empty())
{
position = Acore::Containers::SelectRandomContainerElement(possibleSpots);
}
if (position < MAX_PORTAL_LOCATIONS)
{
++_currentRift;
DoUpdateWorldState(WORLD_STATE_BM_RIFT, _currentRift);
Events.ScheduleEvent(EVENT_SUMMON_KEEPER_1 + position, 6000);
Events.SetPhase(0);
if (Creature* rift = instance->SummonCreature(NPC_TIME_RIFT, PortalLocation[position]))
{
_usedRiftPostions[position] = rift->GetGUID();
for (uint8 i = 0; i < MAX_PORTAL_LOCATIONS; ++i)
{
if (!_usedRiftPostions[i])
{
Events.RescheduleEvent(EVENT_NEXT_PORTAL, (_currentRift >= 13 ? 120 : 90) * IN_MILLISECONDS);
break;
}
}
}
}
}
break;
case EVENT_SUMMON_KEEPER:
SummonPortalKeeper();
}
case EVENT_SUMMON_KEEPER_1:
case EVENT_SUMMON_KEEPER_2:
case EVENT_SUMMON_KEEPER_3:
case EVENT_SUMMON_KEEPER_4:
SummonPortalKeeper(eventId);
break;
case EVENT_WIPE_1:
if (Creature* medivh = instance->GetCreature(_medivhGUID))
{
medivh->RemoveAllAuras();
}
Events.ScheduleEvent(EVENT_WIPE_2, 500ms);
break;
case EVENT_WIPE_2:
if (Creature* medivh = instance->GetCreature(_medivhGUID))
{
medivh->KillSelf(false);
GuidSet encounterNPCSCopy = encounterNPCs;
for (ObjectGuid const& guid : encounterNPCSCopy)
{
switch (guid.GetEntry())
{
case NPC_TIME_RIFT:
case NPC_DP_EMITTER_STALKER:
case NPC_DP_CRYSTAL_STALKER:
case NPC_DP_BEAM_STALKER:
if (Creature* creature = instance->GetCreature(guid))
{
creature->DespawnOrUnsummon();
}
break;
default:
break;
}
}
}
Events.ScheduleEvent(EVENT_WIPE_3, 2s);
break;
case EVENT_WIPE_3:
{
GuidSet encounterNPCSCopy = encounterNPCs;
for (ObjectGuid const& guid : encounterNPCSCopy)
{
if (Creature* creature = instance->GetCreature(guid))
{
creature->CastSpell(creature, SPELL_TELEPORT_VISUAL, true);
creature->DespawnOrUnsummon(1200ms, 0s);
}
}
break;
}
default:
break;
}
}
@@ -344,6 +535,8 @@ public:
protected:
EventMap Events;
std::array<ObjectGuid, MAX_PORTAL_LOCATIONS> _usedRiftPostions;
uint32 _timerToNextBoss;
};
};

View File

@@ -22,33 +22,8 @@
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
enum medivhSays
{
SAY_ENTER = 0,
SAY_DEATH = 5,
SAY_WIN = 6,
SAY_ORCS_ENTER = 7,
SAY_ORCS_ANSWER = 0
};
enum medivhSpells
{
SPELL_MANA_SHIELD = 31635,
SPELL_MEDIVH_CHANNEL = 31556,
SPELL_BLACK_CRYSTAL = 32563,
SPELL_PORTAL_CRYSTALS = 32564,
SPELL_BANISH_PURPLE = 32566,
SPELL_BANISH_GREEN = 32567,
SPELL_CORRUPT = 31326,
SPELL_CORRUPT_AEONUS = 37853,
};
enum medivhMisc
{
NPC_DP_EMITTER_STALKER = 18582,
NPC_DP_CRYSTAL_STALKER = 18553,
NPC_SHADOW_COUNCIL_ENFORCER = 17023,
GO_DARK_PORTAL = 185103,
@@ -120,6 +95,8 @@ struct npc_medivh_bm : public ScriptedAI
{
me->CastSpell(me, SPELL_MEDIVH_CHANNEL, false);
}
me->SetImmuneToNPC(false);
}
void JustSummoned(Creature* summon) override
@@ -156,7 +133,7 @@ struct npc_medivh_bm : public ScriptedAI
if (who->GetTypeId() == TYPEID_PLAYER && me->IsWithinDistInMap(who, 20.0f))
{
Talk(SAY_ENTER);
Talk(SAY_MEDIVH_ENTER);
_instance->SetData(DATA_MEDIVH, 1);
me->CastSpell(me, SPELL_MEDIVH_CHANNEL, false);
@@ -189,7 +166,6 @@ struct npc_medivh_bm : public ScriptedAI
{
me->SetRespawnTime(DAY);
events.Reset();
Talk(SAY_DEATH);
}
void UpdateAI(uint32 diff) override
@@ -216,7 +192,7 @@ struct npc_medivh_bm : public ScriptedAI
break;
case EVENT_OUTRO_1:
me->SetFacingTo(6.21f);
Talk(SAY_WIN);
Talk(SAY_MEDIVH_WIN);
events.ScheduleEvent(EVENT_OUTRO_2, 17000);
break;
case EVENT_OUTRO_2:
@@ -240,14 +216,14 @@ struct npc_medivh_bm : public ScriptedAI
events.ScheduleEvent(EVENT_OUTRO_7, 7000);
break;
case EVENT_OUTRO_7:
Talk(SAY_ORCS_ENTER);
Talk(SAY_MEDIVH_ORCS_ENTER);
events.ScheduleEvent(EVENT_OUTRO_8, 7000);
break;
case EVENT_OUTRO_8:
if (Creature* cr = me->FindNearestCreature(NPC_SHADOW_COUNCIL_ENFORCER, 20.0f))
{
cr->SetFacingTo(3.07f);
cr->AI()->Talk(SAY_ORCS_ANSWER);
cr->AI()->Talk(SAY_MEDIVH_ORCS_ANSWER);
}
break;
}
@@ -350,7 +326,7 @@ struct npc_time_rift : public NullCreatureAI
Creature* riftKeeper = ObjectAccessor::GetCreature(*me, _riftKeeperGUID);
if (!riftKeeper || !riftKeeper->IsAlive())
{
_instance->SetData(DATA_RIFT_KILLED, 1);
_instance->SetGuidData(DATA_RIFT_KILLED, me->GetGUID());
me->DespawnOrUnsummon(0);
break;

View File

@@ -77,19 +77,53 @@ enum CreatureIds
NPC_INFINITE_WHELP = 21818,
NPC_INFINITE_CRONOMANCER = 17892,
NPC_INFINITE_EXECUTIONER = 18994,
NPC_INFINITE_VANQUISHER = 18995
NPC_INFINITE_VANQUISHER = 18995,
NPC_DP_EMITTER_STALKER = 18582,
NPC_DP_CRYSTAL_STALKER = 18553,
NPC_DP_BEAM_STALKER = 18555
};
enum Misc
{
SPELL_RIFT_CHANNEL = 31387,
SPELL_TELEPORT_VISUAL = 7791,
EVENT_NEXT_PORTAL = 1,
EVENT_SUMMON_KEEPER = 2,
EVENT_SUMMON_KEEPER_1 = 2,
EVENT_SUMMON_KEEPER_2 = 3,
EVENT_SUMMON_KEEPER_3 = 4,
EVENT_SUMMON_KEEPER_4 = 5,
EVENT_WIPE_1 = 6,
EVENT_WIPE_2 = 7,
EVENT_WIPE_3 = 8,
ACTION_OUTRO = 1
};
enum medivhSays
{
SAY_MEDIVH_ENTER = 0,
SAY_MEDIVH_DEATH = 5,
SAY_MEDIVH_WIN = 6,
SAY_MEDIVH_ORCS_ENTER = 7,
SAY_MEDIVH_ORCS_ANSWER = 0
};
enum medivhSpells
{
SPELL_MANA_SHIELD = 31635,
SPELL_MEDIVH_CHANNEL = 31556,
SPELL_BLACK_CRYSTAL = 32563,
SPELL_PORTAL_CRYSTALS = 32564,
SPELL_BANISH_PURPLE = 32566,
SPELL_BANISH_GREEN = 32567,
SPELL_CORRUPT = 31326,
SPELL_CORRUPT_AEONUS = 37853,
};
template <class AI, class T>
inline AI* GetTheBlackMorassAI(T* obj)
{

View File

@@ -0,0 +1,152 @@
/*
* This file is part of the AzerothCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Affero General Public License as published by the
* Free Software Foundation; either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
#include "sethekk_halls.h"
enum Anzu
{
SAY_ANZU_INTRO1 = 0,
SAY_ANZU_INTRO2 = 1,
SAY_SUMMON = 2,
SPELL_PARALYZING_SCREECH = 40184,
SPELL_SPELL_BOMB = 40303,
SPELL_CYCLONE = 40321,
SPELL_BANISH_SELF = 42354,
SPELL_SHADOWFORM = 40973,
EVENT_SPELL_SCREECH = 1,
EVENT_SPELL_BOMB = 2,
EVENT_SPELL_CYCLONE = 3,
EVENT_ANZU_HEALTH1 = 4,
EVENT_ANZU_HEALTH2 = 5
};
struct boss_anzu : public BossAI
{
boss_anzu(Creature* creature) : BossAI(creature, DATA_ANZU)
{
talkTimer = 1;
me->ReplaceAllUnitFlags(UNIT_FLAG_NON_ATTACKABLE);
me->AddAura(SPELL_SHADOWFORM, me);
}
uint32 talkTimer;
void SummonedCreatureDies(Creature* summon, Unit*) override
{
summons.Despawn(summon);
summons.RemoveNotExisting();
if (summons.empty())
me->RemoveAurasDueToSpell(SPELL_BANISH_SELF);
}
void JustEngagedWith(Unit* /*who*/) override
{
_JustEngagedWith();
events.Reset();
events.ScheduleEvent(EVENT_SPELL_SCREECH, 14000);
events.ScheduleEvent(EVENT_SPELL_BOMB, 5000);
events.ScheduleEvent(EVENT_SPELL_CYCLONE, 8000);
events.ScheduleEvent(EVENT_ANZU_HEALTH1, 2000);
events.ScheduleEvent(EVENT_ANZU_HEALTH2, 2001);
}
void SummonBroods()
{
Talk(SAY_SUMMON);
me->CastSpell(me, SPELL_BANISH_SELF, true);
for (uint8 i = 0; i < 5; ++i)
me->SummonCreature(23132 /*NPC_BROOD_OF_ANZU*/, me->GetPositionX() + 20 * cos((float)i), me->GetPositionY() + 20 * std::sin((float)i), me->GetPositionZ() + 25.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
}
void UpdateAI(uint32 diff) override
{
if (talkTimer)
{
talkTimer += diff;
if (talkTimer >= 1000 && talkTimer < 10000)
{
Talk(SAY_ANZU_INTRO1);
talkTimer = 10000;
}
else if (talkTimer >= 16000)
{
me->ReplaceAllUnitFlags(UNIT_FLAG_NONE);
me->RemoveAurasDueToSpell(SPELL_SHADOWFORM);
Talk(SAY_ANZU_INTRO2);
talkTimer = 0;
}
}
if (!UpdateVictim())
return;
events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING | UNIT_STATE_STUNNED))
return;
switch (events.ExecuteEvent())
{
case EVENT_SPELL_SCREECH:
me->CastSpell(me, SPELL_PARALYZING_SCREECH, false);
events.RepeatEvent(23000);
events.DelayEvents(3000);
break;
case EVENT_SPELL_BOMB:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
me->CastSpell(target, SPELL_SPELL_BOMB, false);
events.RepeatEvent(urand(16000, 24500));
events.DelayEvents(3000);
break;
case EVENT_SPELL_CYCLONE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 45.0f, true))
me->CastSpell(target, SPELL_CYCLONE, false);
events.RepeatEvent(urand(22000, 27000));
events.DelayEvents(3000);
break;
case EVENT_ANZU_HEALTH1:
if (me->HealthBelowPct(66))
{
SummonBroods();
events.DelayEvents(10000);
return;
}
events.RepeatEvent(1000);
break;
case EVENT_ANZU_HEALTH2:
if (me->HealthBelowPct(33))
{
SummonBroods();
events.DelayEvents(10000);
return;
}
events.RepeatEvent(1000);
break;
}
DoMeleeAttackIfReady();
}
};
void AddSC_boss_anzu()
{
RegisterSethekkHallsCreatureAI(boss_anzu);
}

View File

@@ -17,6 +17,7 @@
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "SpellScript.h"
#include "sethekk_halls.h"
enum TailonkingIkiss
@@ -26,308 +27,150 @@ enum TailonkingIkiss
SAY_SLAY = 2,
SAY_DEATH = 3,
EMOTE_ARCANE_EXP = 4,
};
enum Spells
{
SPELL_BLINK = 38194,
SPELL_BLINK_TELEPORT = 38203,
SPELL_MANA_SHIELD = 38151,
SPELL_ARCANE_BUBBLE = 9438,
SPELL_SLOW = 35032,
SPELL_POLYMORPH_N = 38245, // Difficulty data
SPELL_POLYMORPH_H = 43309,
SPELL_ARCANE_VOLLEY_N = 35059, // Difficulty data
SPELL_ARCANE_VOLLEY_H = 40424,
SPELL_ARCANE_EXPLOSION_N = 38197, // Difficulty data
SPELL_ARCANE_EXPLOSION_H = 40425,
EVENT_SPELL_BLINK = 1,
EVENT_SPELL_POLYMORPH = 2,
EVENT_SPELL_SLOW = 3,
EVENT_SPELL_ARCANE_VOLLEY = 4,
EVENT_SPELL_ARCANE_EXPLO = 5,
EVENT_HEALTH_CHECK = 6,
EVENT_SPELL_BLINK_2 = 7
SPELL_POLYMORPH = 38245,
SPELL_ARCANE_VOLLEY = 35059,
SPELL_ARCANE_EXPLOSION = 38197,
};
class boss_talon_king_ikiss : public CreatureScript
struct boss_talon_king_ikiss : public BossAI
{
public:
boss_talon_king_ikiss() : CreatureScript("boss_talon_king_ikiss") { }
CreatureAI* GetAI(Creature* creature) const override
boss_talon_king_ikiss(Creature* creature) : BossAI(creature, DATA_IKISS), _spoken(false), _manaShield(false)
{
return GetSethekkHallsAI<boss_talon_king_ikissAI>(creature);
scheduler.SetValidator([this]
{
return !me->HasUnitState(UNIT_STATE_CASTING);
});
}
struct boss_talon_king_ikissAI : public ScriptedAI
void Reset() override
{
boss_talon_king_ikissAI(Creature* creature) : ScriptedAI(creature)
_Reset();
_spoken = false;
_manaShield = false;
}
void MoveInLineOfSight(Unit* who) override
{
if (!_spoken && who->IsPlayer())
{
Talk(SAY_INTRO);
_spoken = true;
}
EventMap events;
ScriptedAI::MoveInLineOfSight(who);
}
void JustEngagedWith(Unit* /*who*/) override
{
_JustEngagedWith();
Talk(SAY_AGGRO);
scheduler.Schedule(35s, [this](TaskContext context)
{
me->InterruptNonMeleeSpells(false);
DoCastAOE(SPELL_BLINK);
Talk(EMOTE_ARCANE_EXP);
context.Repeat(35s, 40s);
scheduler.Schedule(1s, [this](TaskContext)
{
DoCastAOE(SPELL_ARCANE_EXPLOSION);
DoCastSelf(SPELL_ARCANE_BUBBLE, true);
});
}).Schedule(5s, [this](TaskContext context)
{
DoCastAOE(SPELL_ARCANE_VOLLEY);
context.Repeat(7s, 12s);
}).Schedule(8s, [this](TaskContext context)
{
IsHeroic() ? DoCastRandomTarget(SPELL_POLYMORPH) : DoCastMaxThreat(SPELL_POLYMORPH);
context.Repeat(15s, 17500ms);
});
if (IsHeroic())
{
scheduler.Schedule(15s, 25s, [this](TaskContext context)
{
DoCastAOE(SPELL_SLOW);
context.Repeat(15s, 30s);
});
}
}
void JustDied(Unit* /*killer*/) override
{
_JustDied();
Talk(SAY_DEATH);
if (GameObject* coffer = instance->GetGameObject(DATA_GO_TALON_KING_COFFER))
{
coffer->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE | GO_FLAG_INTERACT_COND);
}
}
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damagetype*/, SpellSchoolMask /*damageSchoolMask*/) override
{
if (!_manaShield && me->HealthBelowPctDamaged(20, damage))
{
DoCast(me, SPELL_MANA_SHIELD);
_manaShield = true;
}
}
void KilledUnit(Unit* /*victim*/) override
{
if (urand(0, 1))
Talk(SAY_SLAY);
}
private:
bool _spoken;
void Reset() override
{
_spoken = false;
}
void MoveInLineOfSight(Unit* who) override
{
if (!_spoken && who->GetTypeId() == TYPEID_PLAYER)
{
Talk(SAY_INTRO);
_spoken = true;
}
ScriptedAI::MoveInLineOfSight(who);
}
void JustEngagedWith(Unit* /*who*/) override
{
Talk(SAY_AGGRO);
events.ScheduleEvent(EVENT_SPELL_BLINK, 35000);
events.ScheduleEvent(EVENT_SPELL_ARCANE_VOLLEY, 5000);
events.ScheduleEvent(EVENT_SPELL_POLYMORPH, 8000);
events.ScheduleEvent(EVENT_HEALTH_CHECK, 2000);
if (IsHeroic())
events.ScheduleEvent(EVENT_SPELL_SLOW, urand(15000, 25000));
}
void JustDied(Unit* /*killer*/) override
{
Talk(SAY_DEATH);
if (InstanceScript* instance = me->GetInstanceScript())
instance->SetData(DATA_IKISSDOOREVENT, DONE);
}
void KilledUnit(Unit* /*victim*/) override
{
if (urand(0, 1))
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_SPELL_ARCANE_VOLLEY:
me->CastSpell(me, SPELL_ARCANE_VOLLEY_N, false);
events.RepeatEvent(urand(7000, 12000));
break;
case EVENT_SPELL_POLYMORPH:
if (Unit* target = (IsHeroic() ? SelectTarget(SelectTargetMethod::Random, 0) : SelectTarget(SelectTargetMethod::MaxThreat, 1)))
me->CastSpell(target, SPELL_POLYMORPH_N, false);
events.RepeatEvent(urand(15000, 17500));
break;
case EVENT_SPELL_SLOW:
me->CastSpell(me, SPELL_SLOW, false);
events.RepeatEvent(urand(15000, 30000));
break;
case EVENT_HEALTH_CHECK:
if (me->HealthBelowPct(20))
{
me->CastSpell(me, SPELL_MANA_SHIELD, false);
return;
}
events.RepeatEvent(1000);
break;
case EVENT_SPELL_BLINK:
Talk(EMOTE_ARCANE_EXP);
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
{
me->CastSpell(target, SPELL_BLINK, false);
me->NearTeleportTo(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), target->GetOrientation());
DoCast(target, SPELL_BLINK_TELEPORT);
}
events.RepeatEvent(urand(35000, 40000));
events.DelayEvents(500);
events.ScheduleEvent(EVENT_SPELL_BLINK_2, 0);
return;
case EVENT_SPELL_BLINK_2:
me->CastSpell(me, SPELL_ARCANE_EXPLOSION_N, false);
me->CastSpell(me, SPELL_ARCANE_BUBBLE, true);
break;
}
DoMeleeAttackIfReady();
}
};
bool _manaShield;
};
enum Anzu
// 38194 - Blink
class spell_talon_king_ikiss_blink : public SpellScript
{
SAY_ANZU_INTRO1 = 0,
SAY_ANZU_INTRO2 = 1,
SAY_SUMMON = 2,
PrepareSpellScript(spell_talon_king_ikiss_blink);
SPELL_PARALYZING_SCREECH = 40184,
SPELL_SPELL_BOMB = 40303,
SPELL_CYCLONE = 40321,
SPELL_BANISH_SELF = 42354,
SPELL_SHADOWFORM = 40973,
EVENT_SPELL_SCREECH = 1,
EVENT_SPELL_BOMB = 2,
EVENT_SPELL_CYCLONE = 3,
EVENT_ANZU_HEALTH1 = 4,
EVENT_ANZU_HEALTH2 = 5
};
class boss_anzu : public CreatureScript
{
public:
boss_anzu() : CreatureScript("boss_anzu") { }
CreatureAI* GetAI(Creature* creature) const override
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return GetSethekkHallsAI<boss_anzuAI>(creature);
return sSpellMgr->GetSpellInfo(SPELL_BLINK);
}
struct boss_anzuAI : public ScriptedAI
void FilterTargets(std::list<WorldObject*>& targets)
{
boss_anzuAI(Creature* creature) : ScriptedAI(creature), summons(me)
uint8 maxSize = 1;
if (targets.size() > maxSize)
{
talkTimer = 1;
me->ReplaceAllUnitFlags(UNIT_FLAG_NON_ATTACKABLE);
me->AddAura(SPELL_SHADOWFORM, me);
Acore::Containers::RandomResize(targets, maxSize);
}
}
EventMap events;
SummonList summons;
uint32 talkTimer;
void HandleDummyHitTarget(SpellEffIndex effIndex)
{
PreventHitDefaultEffect(effIndex);
GetHitUnit()->CastSpell(GetCaster(), SPELL_BLINK_TELEPORT, true);
}
void Reset() override
{
summons.DespawnAll();
if (InstanceScript* instance = me->GetInstanceScript())
if (instance->GetData(TYPE_ANZU_ENCOUNTER) != DONE)
instance->SetData(TYPE_ANZU_ENCOUNTER, NOT_STARTED);
}
void JustSummoned(Creature* summon) override
{
summons.Summon(summon);
summon->AI()->AttackStart(me->GetVictim());
}
void SummonedCreatureDies(Creature* summon, Unit*) override
{
summons.Despawn(summon);
summons.RemoveNotExisting();
if (summons.empty())
me->RemoveAurasDueToSpell(SPELL_BANISH_SELF);
}
void JustEngagedWith(Unit* /*who*/) override
{
events.Reset();
events.ScheduleEvent(EVENT_SPELL_SCREECH, 14000);
events.ScheduleEvent(EVENT_SPELL_BOMB, 5000);
events.ScheduleEvent(EVENT_SPELL_CYCLONE, 8000);
events.ScheduleEvent(EVENT_ANZU_HEALTH1, 2000);
events.ScheduleEvent(EVENT_ANZU_HEALTH2, 2001);
if (InstanceScript* instance = me->GetInstanceScript())
instance->SetData(TYPE_ANZU_ENCOUNTER, IN_PROGRESS);
}
void JustDied(Unit* /*killer*/) override
{
if (InstanceScript* instance = me->GetInstanceScript())
instance->SetData(TYPE_ANZU_ENCOUNTER, DONE);
}
void SummonBroods()
{
Talk(SAY_SUMMON);
me->CastSpell(me, SPELL_BANISH_SELF, true);
for (uint8 i = 0; i < 5; ++i)
me->SummonCreature(23132 /*NPC_BROOD_OF_ANZU*/, me->GetPositionX() + 20 * cos((float)i), me->GetPositionY() + 20 * std::sin((float)i), me->GetPositionZ() + 25.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
}
void UpdateAI(uint32 diff) override
{
if (talkTimer)
{
talkTimer += diff;
if (talkTimer >= 1000 && talkTimer < 10000)
{
Talk(SAY_ANZU_INTRO1);
talkTimer = 10000;
}
else if (talkTimer >= 16000)
{
me->ReplaceAllUnitFlags(UNIT_FLAG_NONE);
me->RemoveAurasDueToSpell(SPELL_SHADOWFORM);
Talk(SAY_ANZU_INTRO2);
talkTimer = 0;
}
}
if (!UpdateVictim())
return;
events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING | UNIT_STATE_STUNNED))
return;
switch (events.ExecuteEvent())
{
case EVENT_SPELL_SCREECH:
me->CastSpell(me, SPELL_PARALYZING_SCREECH, false);
events.RepeatEvent(23000);
events.DelayEvents(3000);
break;
case EVENT_SPELL_BOMB:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
me->CastSpell(target, SPELL_SPELL_BOMB, false);
events.RepeatEvent(urand(16000, 24500));
events.DelayEvents(3000);
break;
case EVENT_SPELL_CYCLONE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 45.0f, true))
me->CastSpell(target, SPELL_CYCLONE, false);
events.RepeatEvent(urand(22000, 27000));
events.DelayEvents(3000);
break;
case EVENT_ANZU_HEALTH1:
if (me->HealthBelowPct(66))
{
SummonBroods();
events.DelayEvents(10000);
return;
}
events.RepeatEvent(1000);
break;
case EVENT_ANZU_HEALTH2:
if (me->HealthBelowPct(33))
{
SummonBroods();
events.DelayEvents(10000);
return;
}
events.RepeatEvent(1000);
break;
}
DoMeleeAttackIfReady();
}
};
void Register() override
{
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_talon_king_ikiss_blink::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
OnEffectHitTarget += SpellEffectFn(spell_talon_king_ikiss_blink::HandleDummyHitTarget, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
void AddSC_boss_talon_king_ikiss()
{
new boss_talon_king_ikiss();
new boss_anzu();
RegisterSethekkHallsCreatureAI(boss_talon_king_ikiss);
RegisterSpellScript(spell_talon_king_ikiss_blink);
}

View File

@@ -19,6 +19,17 @@
#include "ScriptMgr.h"
#include "sethekk_halls.h"
DoorData const doorData[] =
{
{ GO_IKISS_DOOR, DATA_IKISS, DOOR_TYPE_PASSAGE },
{ 0, 0, DOOR_TYPE_ROOM } // END
};
ObjectData const gameObjectData[] =
{
{ GO_THE_TALON_KINGS_COFFER, DATA_GO_TALON_KING_COFFER }
};
class instance_sethekk_halls : public InstanceMapScript
{
public:
@@ -31,91 +42,20 @@ public:
struct instance_sethekk_halls_InstanceMapScript : public InstanceScript
{
instance_sethekk_halls_InstanceMapScript(Map* map) : InstanceScript(map) {}
uint32 AnzuEncounter;
ObjectGuid m_uiIkissDoorGUID;
ObjectGuid _talonKingsCofferGUID;
void Initialize() override
instance_sethekk_halls_InstanceMapScript(Map* map) : InstanceScript(map)
{
AnzuEncounter = NOT_STARTED;
SetHeaders(DataHeaders);
SetBossNumber(EncounterCount);
LoadDoorData(doorData);
LoadObjectData(nullptr, gameObjectData);
}
void OnCreatureCreate(Creature* creature) override
{
if (creature->GetEntry() == NPC_ANZU || creature->GetEntry() == NPC_VOICE_OF_THE_RAVEN_GOD)
if (AnzuEncounter >= IN_PROGRESS)
if (GetBossState(DATA_ANZU) == DONE)
creature->DespawnOrUnsummon(1);
}
void OnGameObjectCreate(GameObject* go) override
{
switch (go->GetEntry())
{
case GO_IKISS_DOOR:
m_uiIkissDoorGUID = go->GetGUID();
break;
case GO_THE_TALON_KINGS_COFFER:
_talonKingsCofferGUID = go->GetGUID();
break;
}
}
void SetData(uint32 type, uint32 data) override
{
switch (type)
{
case DATA_IKISSDOOREVENT:
if (data == DONE)
{
DoUseDoorOrButton(m_uiIkissDoorGUID, DAY * IN_MILLISECONDS);
if (GameObject* coffer = instance->GetGameObject(_talonKingsCofferGUID))
coffer->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE | GO_FLAG_INTERACT_COND);
}
break;
case TYPE_ANZU_ENCOUNTER:
AnzuEncounter = data;
SaveToDB();
break;
}
}
std::string GetSaveData() override
{
OUT_SAVE_INST_DATA;
std::ostringstream saveStream;
saveStream << "S H " << AnzuEncounter;
OUT_SAVE_INST_DATA_COMPLETE;
return saveStream.str();
}
void Load(const char* strIn) override
{
if (!strIn)
{
OUT_LOAD_INST_DATA_FAIL;
return;
}
OUT_LOAD_INST_DATA(strIn);
char dataHead1, dataHead2;
std::istringstream loadStream(strIn);
loadStream >> dataHead1 >> dataHead2;
if (dataHead1 == 'S' && dataHead2 == 'H')
{
loadStream >> AnzuEncounter;
if (AnzuEncounter == IN_PROGRESS)
AnzuEncounter = NOT_STARTED;
}
OUT_LOAD_INST_DATA_COMPLETE;
}
};
};

View File

@@ -20,14 +20,30 @@
#include "CreatureAIImpl.h"
#define DataHeaders "SH"
uint32 constexpr EncounterCount = 3;
#define SethekkHallsScriptName "instance_sethekk_halls"
enum Encounters
{
DATA_DARKWEAVER_SYTH,
DATA_ANZU,
DATA_IKISS,
};
enum eTypes
{
DATA_IKISSDOOREVENT = 1,
TYPE_ANZU_ENCOUNTER = 2,
};
enum InstanceData
{
DATA_GO_TALON_KING_COFFER
};
enum eIds
{
NPC_VOICE_OF_THE_RAVEN_GOD = 21851,
@@ -43,4 +59,6 @@ inline AI* GetSethekkHallsAI(T* obj)
return GetInstanceAI<AI>(obj, SethekkHallsScriptName);
}
#define RegisterSethekkHallsCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetSethekkHallsAI)
#endif

View File

@@ -38,6 +38,7 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(MAX_ENCOUNTER);
SetPersistentDataCount(MAX_DATA_INDEXES);
LoadDoorData(doorData);
_passageEncounter = 0;
@@ -149,7 +150,8 @@ public:
DoSummonAction(creature, player);
}
}
_passageEncounter++;
StorePersistentData(DATA_INDEX_PASSAGE_ENCOUNTER, _passageEncounter++);
SaveToDB();
}
}
@@ -186,16 +188,17 @@ public:
if (Creature* creature = instance->GetCreature(_pathaleonGUID))
creature->AI()->DoAction(1);
}
_passageEncounter++;
StorePersistentData(DATA_INDEX_PASSAGE_ENCOUNTER, _passageEncounter++);
SaveToDB();
}
}
}
}
void ReadSaveDataMore(std::istringstream& data) override
void ReadSaveDataMore(std::istringstream& /*data*/) override
{
data >> _passageEncounter;
_passageEncounter = GetPersistentData(DATA_INDEX_PASSAGE_ENCOUNTER);
if (_passageEncounter == ENCOUNTER_PASSAGE_DONE)
{
@@ -203,11 +206,6 @@ public:
}
}
void WriteSaveDataMore(std::ostringstream& data) override
{
data << _passageEncounter;
}
private:
ObjectGuid _pathaleonGUID;
uint32 _passageTimer;

View File

@@ -70,6 +70,12 @@ enum SpellIds
SPELL_TELEPORT_VISUAL = 35517
};
enum DataIndex
{
DATA_INDEX_PASSAGE_ENCOUNTER = 0,
MAX_DATA_INDEXES
};
template <class AI, class T>
inline AI* GetMechanarAI(T* obj)
{

View File

@@ -23,6 +23,7 @@ void AddSC_boss_nexusprince_shaffar(); //Auchindoun Mana Tombs
void AddSC_boss_pandemonius();
void AddSC_instance_mana_tombs();
void AddSC_boss_talon_king_ikiss(); //Auchindoun Sekketh Halls
void AddSC_boss_anzu();
void AddSC_instance_sethekk_halls();
void AddSC_instance_shadow_labyrinth(); //Auchindoun Shadow Labyrinth
void AddSC_boss_ambassador_hellmaw();
@@ -119,6 +120,7 @@ void AddOutlandScripts()
AddSC_boss_pandemonius();
AddSC_instance_mana_tombs();
AddSC_boss_talon_king_ikiss(); //Auchindoun Sekketh Halls
AddSC_boss_anzu();
AddSC_instance_sethekk_halls();
AddSC_instance_shadow_labyrinth(); //Auchindoun Shadow Labyrinth
AddSC_boss_ambassador_hellmaw();

View File

@@ -113,6 +113,7 @@ public:
MOCK_METHOD(void, LoadDBVersion, ());
MOCK_METHOD(char const *, GetDBVersion, (), (const));
MOCK_METHOD(void, LoadAutobroadcasts, ());
MOCK_METHOD(void, LoadMotd, ());
MOCK_METHOD(void, UpdateAreaDependentAuras, ());
MOCK_METHOD(uint32, GetCleaningFlags, (), (const));
MOCK_METHOD(void, SetCleaningFlags, (uint32 flags), ());