diff --git a/data/sql/updates/db_world/2022_03_27_00.sql b/data/sql/updates/db_world/2022_03_27_00.sql new file mode 100644 index 000000000..6d0043321 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_00.sql @@ -0,0 +1,51 @@ +-- DB update 2022_03_25_00 -> 2022_03_27_00 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_25_00'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_25_00 2022_03_27_00 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1648306734434273023'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648306734434273023'); + +DELETE FROM `creature_loot_template` WHERE (`Entry` = 12459) AND (`Item` IN (19362, 19434, 19435)); +INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES +(12459, 19362, 0, 2, 0, 1, 0, 1, 1, 'Blackwing Warlock - Doom\'s Edge'), +(12459, 19434, 0, 2, 0, 1, 0, 1, 1, 'Blackwing Warlock - Band of Dark Dominion'), +(12459, 19435, 0, 2, 0, 1, 0, 1, 1, 'Blackwing Warlock - Essence Gatherer'); + +DELETE FROM `creature_loot_template` WHERE (`Entry` = 12457) AND (`Item` IN (19362, 19434, 19435)); +INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES +(12457, 19362, 0, 2, 0, 1, 0, 1, 1, 'Blackwing Spellbinder - Doom\'s Edge'), +(12457, 19434, 0, 2, 0, 1, 0, 1, 1, 'Blackwing Spellbinder - Band of Dark Dominion'), +(12457, 19435, 0, 2, 0, 1, 0, 1, 1, 'Blackwing Spellbinder - Essence Gatherer'); + +DELETE FROM `creature_loot_template` WHERE (`Entry` = 12461) AND (`Item` IN (19362, 19434, 19435)); +INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES +(12461, 19362, 0, 2, 0, 1, 0, 1, 1, 'Death Talon Overseer - Doom\'s Edge'), +(12461, 19434, 0, 2, 0, 1, 0, 1, 1, 'Death Talon Overseer - Band of Dark Dominion'), +(12461, 19435, 0, 2, 0, 1, 0, 1, 1, 'Death Talon Overseer - Essence Gatherer'); + +DELETE FROM `creature_loot_template` WHERE (`Entry` = 12460) AND (`Item` IN (19354, 19438, 19439)); +INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES +(12460, 19354, 0, 5, 0, 1, 0, 1, 1, 'Death Talon Wyrmguard - Draconic Avenger'), +(12460, 19438, 0, 5, 0, 1, 0, 1, 1, 'Death Talon Wyrmguard - Ringo\'s Blizzard Boots'), +(12460, 19439, 0, 5, 0, 1, 0, 1, 1, 'Death Talon Wyrmguard - Interlaced Shadow Jerkin'); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_00' WHERE sql_rev = '1648306734434273023'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_01.sql b/data/sql/updates/db_world/2022_03_27_01.sql new file mode 100644 index 000000000..e2272f80f --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_01.sql @@ -0,0 +1,34 @@ +-- DB update 2022_03_27_00 -> 2022_03_27_01 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_00'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_00 2022_03_27_01 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647566741929769300'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647566741929769300'); + +SET @LEADERGUID := 84648; +DELETE FROM `creature_formations` WHERE `memberGUID` IN (@LEADERGUID, 84639, 84650); +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES +(@LEADERGUID, @LEADERGUID, 0, 0, 3), +(@LEADERGUID, 84639, 0, 0, 3), +(@LEADERGUID, 84650, 0, 0, 3); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_01' WHERE sql_rev = '1647566741929769300'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_02.sql b/data/sql/updates/db_world/2022_03_27_02.sql new file mode 100644 index 000000000..f46542f39 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_02.sql @@ -0,0 +1,31 @@ +-- DB update 2022_03_27_01 -> 2022_03_27_02 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_01'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_01 2022_03_27_02 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647788061160494500'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647788061160494500'); + +DELETE FROM `smart_scripts` WHERE `entryorguid`=12459 AND `source_type`=0 AND `id`=3; +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 +(12459,0,3,0,6,0,100,0,0,0,0,0,0,41,0,0,0,0,0,0,11,14081,10,0,0,0,0,0,0,'Blackwing Warlock - On Death - Despawn nearest Demon Portals'); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_02' WHERE sql_rev = '1647788061160494500'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_03.sql b/data/sql/updates/db_world/2022_03_27_03.sql new file mode 100644 index 000000000..c087a959e --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_03.sql @@ -0,0 +1,551 @@ +-- DB update 2022_03_27_02 -> 2022_03_27_03 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_02'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_02 2022_03_27_03 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647450466526877000'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647450466526877000'); + +/* Unliving Resident - GUID 4025 */ + + +SET @NPC := 4025; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -11095.1, `position_y` = -1910.74, `position_z` = 3.21322, `orientation` = 3.9274 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -11095.1, -1910.74, 3.21322, 100.0, 0), +(@PATH, 2, -11094.6, -1892.78, 2.01981, 100.0, 0), +(@PATH, 3, -11082.4, -1891.29, 1.17905, 100.0, 0), +(@PATH, 4, -11051.7, -1898.53, -3.986, 100.0, 0), +(@PATH, 5, -11038.2, -1906.65, -3.48946, 100.0, 0), +(@PATH, 6, -11038.9, -1923.58, -4.59355, 100.0, 0), +(@PATH, 7, -11052.0, -1932.28, -5.27407, 100.0, 0), +(@PATH, 8, -11073.3, -1936.16, -7.25148, 100.0, 0), +(@PATH, 9, -11104.5, -1945.88, -10.9586, 100.0, 0), +(@PATH, 10, -11121.1, -1928.71, -12.5844, 100.0, 0), +(@PATH, 11, -11133.4, -1888.57, -12.6572, 100.0, 0), +(@PATH, 12, -11133.1, -1869.91, -11.7546, 100.0, 0), +(@PATH, 13, -11120.5, -1848.14, -11.2241, 100.0, 0), +(@PATH, 14, -11137.5, -1870.44, -13.1619, 100.0, 0), +(@PATH, 15, -11134.2, -1905.88, -13.3185, 100.0, 0), +(@PATH, 16, -11122.8, -1929.82, -12.7888, 100.0, 0), +(@PATH, 17, -11097.8, -1944.76, -9.9939, 100.0, 0), +(@PATH, 18, -11071.5, -1936.73, -6.91792, 100.0, 0), +(@PATH, 19, -11049.2, -1932.39, -5.29754, 100.0, 0), +(@PATH, 20, -11036.9, -1919.96, -4.30209, 100.0, 0), +(@PATH, 21, -11037.8, -1906.61, -3.45571, 100.0, 0), +(@PATH, 22, -11053.3, -1896.37, -3.74098, 100.0, 0), +(@PATH, 23, -11071.2, -1893.61, -0.715124, 100.0, 0), +(@PATH, 24, -11093.8, -1892.31, 2.02048, 100.0, 0); + + +/* Unliving Resident - GUID 4030 */ + + +SET @NPC := 4030; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -11106.1, `position_y` = -1917.02, `position_z` = 1.84265, `orientation` = 5.27257 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -11106.1, -1917.02, 1.84265, 100.0, 0), +(@PATH, 2, -11095.6, -1932.36, 4.8592, 100.0, 0), +(@PATH, 3, -11101.0, -1976.97, 6.75665, 100.0, 0), +(@PATH, 4, -11106.2, -1996.71, 12.7172, 100.0, 0), +(@PATH, 5, -11126.0, -2005.13, 14.4021, 100.0, 0), +(@PATH, 6, -11134.7, -1991.49, 16.7522, 100.0, 0), +(@PATH, 7, -11145.5, -1971.53, 22.9096, 100.0, 0), +(@PATH, 8, -11151.0, -1961.27, 22.8555, 100.0, 0), +(@PATH, 9, -11158.0, -1961.54, 22.797, 100.0, 0), +(@PATH, 10, -11170.1, -1968.57, 22.7836, 100.0, 0), +(@PATH, 11, -11182.9, -1982.89, 22.7616, 100.0, 0), +(@PATH, 12, -11181.5, -1994.34, 22.7571, 100.0, 0), +(@PATH, 13, -11177.3, -2001.36, 22.7926, 100.0, 0), +(@PATH, 14, -11183.6, -1990.17, 22.7412, 100.0, 0), +(@PATH, 15, -11178.9, -1975.15, 22.7914, 100.0, 0), +(@PATH, 16, -11154.5, -1961.37, 22.8387, 100.0, 0), +(@PATH, 17, -11144.7, -1969.68, 22.8894, 100.0, 0), +(@PATH, 18, -11134.0, -1996.18, 15.7482, 100.0, 0), +(@PATH, 19, -11121.0, -2006.04, 13.8847, 100.0, 0), +(@PATH, 20, -11107.6, -2001.98, 13.1692, 100.0, 0), +(@PATH, 21, -11100.6, -1966.46, 2.36667, 100.0, 0), +(@PATH, 22, -11096.0, -1933.57, 4.96026, 100.0, 0); + + +/* Wailing Spectre - GUID 4051 */ + + +SET @NPC := 4051; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -11210.8, `position_y` = -2191.99, `position_z` = 22.7419, `orientation` = 2.71175 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -11210.8, -2191.99, 22.7419, 100.0, 1000), +(@PATH, 2, -11241.0, -2198.84, 22.7022, 100.0, 0), +(@PATH, 3, -11256.9, -2199.0, 22.7027, 100.0, 0), +(@PATH, 4, -11282.8, -2194.2, 22.7064, 100.0, 0), +(@PATH, 5, -11326.2, -2189.52, 22.7064, 100.0, 0), +(@PATH, 6, -11366.9, -2185.51, 22.9566, 100.0, 1000), +(@PATH, 7, -11326.3, -2189.22, 22.7074, 100.0, 0), +(@PATH, 8, -11286.8, -2193.12, 22.7074, 100.0, 0), +(@PATH, 9, -11246.0, -2200.46, 22.7043, 100.0, 0); + + +/* Wailing Spectre - GUID 4055 */ + + +SET @NPC := 4055; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -11183.7, `position_y` = -2076.16, `position_z` = 35.5059, `orientation` = 1.53675 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -11183.7, -2076.16, 35.5059, 100.0, 0), +(@PATH, 2, -11172.0, -2076.4, 35.5059, 100.0, 0), +(@PATH, 3, -11193.6, -2074.82, 35.5059, 100.0, 0), +(@PATH, 4, -11183.5, -2075.88, 35.5059, 100.0, 0), +(@PATH, 5, -11185.9, -2102.24, 31.2394, 100.0, 0), +(@PATH, 6, -11173.0, -2103.66, 31.2394, 100.0, 0), +(@PATH, 7, -11195.6, -2101.73, 31.2394, 100.0, 0), +(@PATH, 8, -11185.6, -2103.02, 31.2394, 100.0, 0), +(@PATH, 9, -11188.0, -2129.38, 26.9742, 100.0, 0), +(@PATH, 10, -11176.8, -2130.71, 26.9742, 100.0, 0), +(@PATH, 11, -11197.1, -2129.47, 26.9742, 100.0, 0), +(@PATH, 12, -11188.2, -2129.57, 26.9742, 100.0, 0), +(@PATH, 13, -11190.6, -2161.87, 22.7, 100.0, 0), +(@PATH, 14, -11188.1, -2130.17, 26.9744, 100.0, 0), +(@PATH, 15, -11180.1, -2130.91, 26.9744, 100.0, 0), +(@PATH, 16, -11198.9, -2128.94, 26.9728, 100.0, 0), +(@PATH, 17, -11188.1, -2130.19, 26.9728, 100.0, 0), +(@PATH, 18, -11185.8, -2102.4, 31.2392, 100.0, 0), +(@PATH, 19, -11175.0, -2103.68, 31.2392, 100.0, 0), +(@PATH, 20, -11194.7, -2101.89, 31.2392, 100.0, 0), +(@PATH, 21, -11185.3, -2103.35, 31.2392, 100.0, 0), +(@PATH, 22, -11183.6, -2075.87, 35.5054, 100.0, 0), +(@PATH, 23, -11173.6, -2076.92, 35.5054, 100.0, 0), +(@PATH, 24, -11192.5, -2075.51, 35.5054, 100.0, 0); + + + +/* Green Recluse - GUID 4241 */ + + +SET @NPC := 4241; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -10963.0, `position_y` = 472.957, `position_z` = 41.2228, `orientation` = 3.66559 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -10963.0, 472.957, 41.2228, 100.0, 0), +(@PATH, 2, -10982.5, 454.528, 39.7546, 100.0, 0), +(@PATH, 3, -10994.2, 429.068, 38.7282, 100.0, 0), +(@PATH, 4, -11027.2, 412.812, 33.6053, 100.0, 0), +(@PATH, 5, -11033.6, 389.422, 34.703, 100.0, 0), +(@PATH, 6, -11050.3, 372.899, 31.9925, 100.0, 0), +(@PATH, 7, -11062.5, 352.555, 29.4821, 100.0, 0), +(@PATH, 8, -11051.4, 336.537, 32.0397, 100.0, 0), +(@PATH, 9, -11029.6, 327.061, 27.7174, 100.0, 0), +(@PATH, 10, -11007.0, 325.887, 34.4693, 100.0, 0), +(@PATH, 11, -10988.5, 353.52, 34.1904, 100.0, 0), +(@PATH, 12, -10975.6, 363.202, 35.3692, 100.0, 0), +(@PATH, 13, -10915.2, 396.127, 44.635, 100.0, 0), +(@PATH, 14, -10902.3, 439.368, 45.3285, 100.0, 0), +(@PATH, 15, -10907.2, 454.818, 44.8949, 100.0, 0), +(@PATH, 16, -10934.8, 471.136, 42.0589, 100.0, 0); + + +/* Bone Chewer - GUID 4401 */ + + +SET @NPC := 4401; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -10228.7, `position_y` = 351.048, `position_z` = 9.63406, `orientation` = 0.107699 WHERE `guid` = @NPC; + +UPDATE `creature_addon` set `path_id` = @PATH WHERE `guid` = @NPC; +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -10228.7, 351.048, 9.63406, 100.0, 0), +(@PATH, 2, -10220.9, 343.408, 8.31477, 100.0, 0), +(@PATH, 3, -10208.7, 343.188, 8.91591, 100.0, 0), +(@PATH, 4, -10196.6, 351.738, 8.76319, 100.0, 0), +(@PATH, 5, -10185.2, 352.423, 10.7034, 100.0, 0), +(@PATH, 6, -10176.9, 348.391, 9.77995, 100.0, 0), +(@PATH, 7, -10168.9, 339.213, 8.52578, 100.0, 0), +(@PATH, 8, -10165.7, 330.467, 7.31532, 100.0, 0), +(@PATH, 9, -10169.3, 322.305, 6.54894, 100.0, 0), +(@PATH, 10, -10180.0, 318.602, 6.77051, 100.0, 0), +(@PATH, 11, -10191.2, 314.034, 7.17364, 100.0, 0), +(@PATH, 12, -10198.5, 308.553, 5.12256, 100.0, 0), +(@PATH, 13, -10197.0, 294.262, 2.72569, 100.0, 0), +(@PATH, 14, -10194.3, 283.135, 2.02693, 100.0, 0), +(@PATH, 15, -10196.5, 292.286, 2.58085, 100.0, 0), +(@PATH, 16, -10199.8, 304.583, 3.86606, 100.0, 0), +(@PATH, 17, -10197.7, 309.325, 5.48173, 100.0, 0), +(@PATH, 18, -10187.4, 316.383, 7.23757, 100.0, 0), +(@PATH, 19, -10175.7, 318.966, 6.44419, 100.0, 0), +(@PATH, 20, -10166.8, 326.153, 6.87309, 100.0, 0), +(@PATH, 21, -10167.0, 334.818, 7.94311, 100.0, 0), +(@PATH, 22, -10171.3, 343.1, 9.22542, 100.0, 0), +(@PATH, 23, -10180.8, 350.711, 10.2878, 100.0, 0), +(@PATH, 24, -10192.7, 353.604, 9.31527, 100.0, 0), +(@PATH, 25, -10202.0, 346.365, 7.84645, 100.0, 0), +(@PATH, 26, -10216.3, 342.358, 8.45914, 100.0, 0), +(@PATH, 27, -10225.1, 345.221, 8.72192, 100.0, 0), +(@PATH, 28, -10229.0, 354.197, 9.80023, 100.0, 0); + + +/* Skeletal Warder - GUID 4402 */ + + +SET @NPC := 4402; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -10414.1, `position_y` = 403.54, `position_z` = 47.7959, `orientation` = 3.0298 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -10414.1, 403.54, 47.7959, 100.0, 0), +(@PATH, 2, -10411.0, 415.171, 40.1772, 100.0, 0), +(@PATH, 3, -10392.9, 416.29, 29.1068, 100.0, 0), +(@PATH, 4, -10379.0, 412.91, 29.0842, 100.0, 0), +(@PATH, 5, -10348.1, 405.259, 15.9644, 100.0, 0), +(@PATH, 6, -10320.1, 398.071, 15.8847, 100.0, 0), +(@PATH, 7, -10285.7, 389.61, 15.6853, 100.0, 0), +(@PATH, 8, -10313.8, 396.488, 15.7496, 100.0, 0), +(@PATH, 9, -10345.2, 404.513, 16.0038, 100.0, 0), +(@PATH, 10, -10371.0, 410.878, 27.9095, 100.0, 0), +(@PATH, 11, -10384.4, 414.328, 29.0818, 100.0, 0), +(@PATH, 12, -10406.5, 418.847, 38.4252, 100.0, 0); + + +/* Skeletal Raider - GUID 4889 */ + + +SET @NPC := 4889; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -10317.6, `position_y` = 464.207, `position_z` = 15.8576, `orientation` = 3.84139 WHERE `guid` = @NPC; + +UPDATE `creature_addon` set `path_id` = @PATH WHERE `guid` = @NPC; +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -10317.6, 464.207, 15.8576, 100.0, 0), +(@PATH, 2, -10319.5, 457.095, 15.8678, 100.0, 0), +(@PATH, 3, -10322.1, 450.572, 15.8676, 100.0, 0), +(@PATH, 4, -10334.2, 443.355, 15.8676, 100.0, 0), +(@PATH, 5, -10336.5, 434.0, 15.8676, 100.0, 0), +(@PATH, 6, -10332.8, 424.144, 15.8676, 100.0, 0), +(@PATH, 7, -10333.8, 410.908, 16.0555, 100.0, 0), +(@PATH, 8, -10329.5, 401.654, 15.9962, 100.0, 0), +(@PATH, 9, -10306.3, 394.629, 15.6852, 100.0, 0), +(@PATH, 10, -10292.3, 395.424, 15.6853, 100.0, 0), +(@PATH, 11, -10278.6, 399.561, 15.6853, 100.0, 0), +(@PATH, 12, -10262.0, 397.602, 11.9738, 100.0, 0), +(@PATH, 13, -10256.8, 393.674, 10.4135, 100.0, 0), +(@PATH, 14, -10251.9, 389.152, 10.4135, 100.0, 0), +(@PATH, 15, -10250.8, 381.205, 10.4135, 100.0, 0), +(@PATH, 16, -10248.4, 376.254, 10.4135, 100.0, 0), +(@PATH, 17, -10239.5, 379.492, 10.4135, 100.0, 0), +(@PATH, 18, -10230.3, 378.412, 10.4135, 100.0, 0), +(@PATH, 19, -10218.9, 364.708, 10.4135, 100.0, 0), +(@PATH, 20, -10224.9, 373.694, 10.4135, 100.0, 0), +(@PATH, 21, -10233.3, 379.872, 10.4135, 100.0, 0), +(@PATH, 22, -10242.3, 377.349, 10.4135, 100.0, 0), +(@PATH, 23, -10248.3, 376.22, 10.4135, 100.0, 0), +(@PATH, 24, -10249.8, 384.505, 10.4135, 100.0, 0), +(@PATH, 25, -10251.7, 389.067, 10.4135, 100.0, 0), +(@PATH, 26, -10256.7, 393.442, 10.4135, 100.0, 0), +(@PATH, 27, -10270.8, 400.448, 15.6855, 100.0, 0), +(@PATH, 28, -10284.4, 397.469, 15.6853, 100.0, 0), +(@PATH, 29, -10299.2, 394.302, 15.6853, 100.0, 0), +(@PATH, 30, -10324.0, 397.968, 15.9209, 100.0, 0), +(@PATH, 31, -10333.4, 407.719, 16.0532, 100.0, 0), +(@PATH, 32, -10331.2, 417.762, 15.898, 100.0, 0), +(@PATH, 33, -10334.3, 427.185, 15.8676, 100.0, 0), +(@PATH, 34, -10336.4, 437.439, 15.8676, 100.0, 0), +(@PATH, 35, -10327.6, 446.085, 15.8676, 100.0, 0), +(@PATH, 36, -10322.2, 450.505, 15.8676, 100.0, 0); + + +/* Black Widow Hatchling - GUID 4902 */ + + +SET @NPC := 4902; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -10301.6, `position_y` = 0.194063, `position_z` = 46.3445, `orientation` = 2.2823 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -10301.6, 0.194063, 46.3445, 100.0, 0), +(@PATH, 2, -10308.1, 26.6428, 47.8693, 100.0, 0), +(@PATH, 3, -10331.9, 39.0091, 47.9571, 100.0, 0), +(@PATH, 4, -10360.0, 41.4104, 50.7178, 100.0, 0), +(@PATH, 5, -10365.2, 36.9746, 51.8405, 100.0, 0), +(@PATH, 6, -10359.5, 23.8917, 51.019, 100.0, 0), +(@PATH, 7, -10332.1, -75.3978, 42.2366, 100.0, 0), +(@PATH, 8, -10299.8, -99.7262, 42.2065, 100.0, 0), +(@PATH, 9, -10303.5, -55.9479, 42.5999, 100.0, 0), +(@PATH, 10, -10308.6, -36.9398, 41.8928, 100.0, 0), +(@PATH, 11, -10308.8, -20.8141, 42.7561, 100.0, 0); + + +/* Splinter Fist Warrior - GUID 5073 */ + + +SET @NPC := 5073; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -11110.0, `position_y` = -155.95, `position_z` = 11.7778, `orientation` = 0.459474 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -11110.0, -155.95, 11.7778, 100.0, 0), +(@PATH, 2, -11108.8, -148.036, 13.2968, 100.0, 0), +(@PATH, 3, -11118.4, -131.875, 12.0047, 100.0, 0), +(@PATH, 4, -11121.8, -106.117, 11.5575, 100.0, 0), +(@PATH, 5, -11121.7, -122.171, 12.0564, 100.0, 0), +(@PATH, 6, -11109.8, -141.866, 12.9087, 100.0, 0); + + +/* Skeletal Warder - GUID 5094 */ + + +SET @NPC := 5094; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -10355.1, `position_y` = 352.33, `position_z` = 15.9736, `orientation` = 6.04304 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -10355.1, 352.33, 15.9736, 100.0, 0), +(@PATH, 2, -10347.7, 352.817, 15.9736, 100.0, 0), +(@PATH, 3, -10345.5, 354.638, 15.9736, 100.0, 0), +(@PATH, 4, -10344.5, 361.763, 15.9736, 100.0, 0), +(@PATH, 5, -10348.3, 366.464, 15.9736, 100.0, 0), +(@PATH, 6, -10351.5, 375.142, 15.9736, 100.0, 0), +(@PATH, 7, -10344.1, 382.128, 15.9736, 100.0, 0), +(@PATH, 8, -10344.5, 392.092, 15.9908, 100.0, 0), +(@PATH, 9, -10345.4, 402.749, 16.0175, 100.0, 0), +(@PATH, 10, -10369.4, 410.928, 26.8698, 100.0, 0), +(@PATH, 11, -10378.6, 414.903, 29.0807, 100.0, 0), +(@PATH, 12, -10379.9, 424.817, 29.0795, 100.0, 0), +(@PATH, 13, -10386.0, 432.277, 29.0795, 100.0, 0), +(@PATH, 14, -10387.2, 440.174, 24.8359, 100.0, 0), +(@PATH, 15, -10380.7, 448.117, 24.834, 100.0, 0), +(@PATH, 16, -10371.5, 455.446, 25.0028, 100.0, 0), +(@PATH, 17, -10367.0, 467.777, 25.0028, 100.0, 0), +(@PATH, 18, -10371.6, 481.233, 24.834, 100.0, 0), +(@PATH, 19, -10363.2, 481.035, 24.8734, 100.0, 0), +(@PATH, 20, -10367.5, 449.085, 24.834, 100.0, 0), +(@PATH, 21, -10367.7, 437.808, 24.834, 100.0, 0), +(@PATH, 22, -10368.1, 431.91, 27.4331, 100.0, 0), +(@PATH, 23, -10374.8, 425.168, 29.0795, 100.0, 0), +(@PATH, 24, -10381.9, 417.368, 29.0795, 100.0, 0), +(@PATH, 25, -10385.8, 406.396, 29.0795, 100.0, 0), +(@PATH, 26, -10379.2, 396.033, 29.0795, 100.0, 0), +(@PATH, 27, -10377.8, 390.704, 27.058, 100.0, 0), +(@PATH, 28, -10386.2, 381.035, 24.3922, 100.0, 0), +(@PATH, 29, -10398.7, 368.109, 24.3969, 100.0, 0), +(@PATH, 30, -10406.9, 352.263, 24.8339, 100.0, 0), +(@PATH, 31, -10394.3, 343.694, 24.8339, 100.0, 0), +(@PATH, 32, -10386.3, 368.522, 24.506, 100.0, 0), +(@PATH, 33, -10395.6, 381.512, 24.3923, 100.0, 0), +(@PATH, 34, -10397.7, 394.416, 25.9037, 100.0, 0), +(@PATH, 35, -10389.8, 402.244, 29.0795, 100.0, 0), +(@PATH, 36, -10393.0, 400.646, 29.0795, 100.0, 0), +(@PATH, 37, -10398.1, 387.175, 24.8339, 100.0, 0), +(@PATH, 38, -10389.0, 376.263, 24.3921, 100.0, 0), +(@PATH, 39, -10391.3, 347.907, 24.5479, 100.0, 0), +(@PATH, 40, -10404.2, 347.843, 24.442, 100.0, 0), +(@PATH, 41, -10392.0, 375.448, 24.3937, 100.0, 0), +(@PATH, 42, -10381.3, 385.024, 24.8339, 100.0, 0), +(@PATH, 43, -10377.9, 390.278, 26.6428, 100.0, 0), +(@PATH, 44, -10384.3, 400.086, 29.0795, 100.0, 0), +(@PATH, 45, -10384.3, 412.797, 29.0795, 100.0, 0), +(@PATH, 46, -10378.7, 421.913, 29.0795, 100.0, 0), +(@PATH, 47, -10373.1, 426.184, 29.0795, 100.0, 0), +(@PATH, 48, -10368.5, 430.843, 28.5664, 100.0, 0), +(@PATH, 49, -10368.2, 443.341, 24.834, 100.0, 0), +(@PATH, 50, -10379.0, 449.525, 24.8433, 100.0, 0), +(@PATH, 51, -10384.5, 444.873, 24.834, 100.0, 0), +(@PATH, 52, -10387.8, 436.284, 27.8481, 100.0, 0), +(@PATH, 53, -10382.0, 429.461, 29.0795, 100.0, 0), +(@PATH, 54, -10380.0, 419.797, 29.0795, 100.0, 0), +(@PATH, 55, -10377.4, 414.224, 29.0795, 100.0, 0), +(@PATH, 56, -10347.2, 405.139, 15.9772, 100.0, 0), +(@PATH, 57, -10345.5, 399.519, 16.0451, 100.0, 0), +(@PATH, 58, -10343.1, 385.361, 15.9725, 100.0, 0), +(@PATH, 59, -10349.5, 378.241, 15.9736, 100.0, 0), +(@PATH, 60, -10351.6, 372.054, 15.9736, 100.0, 0), +(@PATH, 61, -10348.9, 366.719, 15.9736, 100.0, 0), +(@PATH, 62, -10344.5, 362.374, 15.9736, 100.0, 0), +(@PATH, 63, -10345.4, 355.239, 15.9736, 100.0, 0); + + +/* Rabid Dire Wolf - GUID 5150 */ + + +SET @NPC := 5150; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -10177.6, `position_y` = 222.201, `position_z` = 23.1674, `orientation` = 2.62509 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -10177.6, 222.201, 23.1674, 100.0, 0), +(@PATH, 2, -10168.8, 240.326, 22.6847, 100.0, 0), +(@PATH, 3, -10166.9, 276.071, 23.1022, 100.0, 0), +(@PATH, 4, -10178.8, 282.327, 23.6412, 100.0, 0), +(@PATH, 5, -10202.2, 288.041, 26.1563, 100.0, 0), +(@PATH, 6, -10219.9, 283.841, 32.6592, 100.0, 0), +(@PATH, 7, -10232.2, 264.566, 33.3733, 100.0, 0), +(@PATH, 8, -10232.0, 240.734, 31.767, 100.0, 0), +(@PATH, 9, -10249.2, 236.713, 31.0763, 100.0, 0), +(@PATH, 10, -10260.4, 213.571, 29.0039, 100.0, 0), +(@PATH, 11, -10257.2, 190.051, 32.6815, 100.0, 0), +(@PATH, 12, -10242.9, 161.452, 32.9415, 100.0, 0), +(@PATH, 13, -10227.4, 148.997, 31.5172, 100.0, 0), +(@PATH, 14, -10213.1, 134.704, 30.9467, 100.0, 0), +(@PATH, 15, -10197.6, 139.533, 29.8189, 100.0, 0), +(@PATH, 16, -10185.2, 154.721, 26.5017, 100.0, 0), +(@PATH, 17, -10176.7, 177.115, 24.2734, 100.0, 0), +(@PATH, 18, -10241.7, 159.204, 32.9059, 100.0, 0); + + +/* Plague Spreader - GUID 5969 */ + + +SET @NPC := 5969; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -10342.1, `position_y` = 173.163, `position_z` = 16.1488, `orientation` = 4.31581 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -10342.1, 173.163, 16.1488, 100.0, 0), +(@PATH, 2, -10344.3, 191.582, 25.7489, 100.0, 0), +(@PATH, 3, -10342.7, 178.137, 18.1823, 100.0, 0), +(@PATH, 4, -10338.8, 147.441, 3.48252, 100.0, 0), +(@PATH, 5, -10340.9, 138.639, 4.90493, 100.0, 0), +(@PATH, 6, -10360.4, 134.447, 2.25113, 100.0, 0), +(@PATH, 7, -10342.9, 133.15, 5.46266, 100.0, 0), +(@PATH, 8, -10335.7, 128.401, 3.961, 100.0, 0), +(@PATH, 9, -10331.1, 107.815, 1.7015, 100.0, 0), +(@PATH, 10, -10333.2, 137.227, 3.82124, 100.0, 0), +(@PATH, 11, -10286.2, 147.016, 2.79024, 100.0, 0), +(@PATH, 12, -10329.6, 139.619, 2.96308, 100.0, 0); + + +/* Nightbane Worgen - GUID 6063 */ + + +SET @NPC := 6063; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -10288.3, `position_y` = -785.67, `position_z` = 48.9806, `orientation` = 1.26872 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -10288.3, -785.67, 48.9806, 100.0, 0), +(@PATH, 2, -10328.0, -811.732, 45.3941, 100.0, 0), +(@PATH, 3, -10339.0, -811.817, 46.3963, 100.0, 0), +(@PATH, 4, -10351.8, -803.15, 49.1603, 100.0, 0), +(@PATH, 5, -10369.9, -799.214, 53.3723, 100.0, 0), +(@PATH, 6, -10379.8, -803.096, 50.8648, 100.0, 0), +(@PATH, 7, -10399.0, -822.987, 47.6148, 100.0, 0), +(@PATH, 8, -10400.4, -838.233, 49.7322, 100.0, 0), +(@PATH, 9, -10384.2, -854.297, 45.8654, 100.0, 0), +(@PATH, 10, -10358.5, -879.575, 42.8552, 100.0, 0), +(@PATH, 11, -10339.7, -905.276, 38.3699, 100.0, 0), +(@PATH, 12, -10321.3, -910.707, 38.4765, 100.0, 0), +(@PATH, 13, -10305.2, -895.979, 39.7254, 100.0, 0), +(@PATH, 14, -10290.0, -867.965, 40.6098, 100.0, 0), +(@PATH, 15, -10266.6, -848.708, 41.6361, 100.0, 0), +(@PATH, 16, -10252.6, -829.123, 42.5013, 100.0, 0), +(@PATH, 17, -10242.0, -811.97, 41.2834, 100.0, 0), +(@PATH, 18, -10257.8, -798.468, 44.4208, 100.0, 0), +(@PATH, 19, -10275.7, -782.271, 46.6242, 100.0, 0), +(@PATH, 20, -10278.7, -771.588, 47.5163, 100.0, 0), +(@PATH, 21, -10288.4, -785.682, 48.9411, 100.0, 0); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_03' WHERE sql_rev = '1647450466526877000'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_04.sql b/data/sql/updates/db_world/2022_03_27_04.sql new file mode 100644 index 000000000..4895d51ad --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_04.sql @@ -0,0 +1,71 @@ +-- DB update 2022_03_27_03 -> 2022_03_27_04 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_03'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_03 2022_03_27_04 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1648294393927803100'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648294393927803100'); + +DELETE FROM `linked_respawn` WHERE `guid` BETWEEN 2000009 AND 2000049; +INSERT INTO `linked_respawn` (`guid`, `linkedGuid`, `linkType`) VALUES +(2000009,84387,0), +(2000010,84387,0), +(2000011,84387,0), +(2000012,84387,0), +(2000013,84387,0), +(2000014,84387,0), +(2000015,84387,0), +(2000016,84387,0), +(2000017,84387,0), +(2000018,84387,0), +(2000019,84387,0), +(2000020,84387,0), +(2000021,84387,0), +(2000022,84387,0), +(2000023,84387,0), +(2000024,84387,0), +(2000025,84387,0), +(2000026,84387,0), +(2000027,84387,0), +(2000028,84387,0), +(2000029,84387,0), +(2000030,84387,0), +(2000031,84387,0), +(2000032,84387,0), +(2000033,84387,0), +(2000034,84387,0), +(2000035,84387,0), +(2000036,84387,0), +(2000037,84387,0), +(2000038,84387,0), +(2000039,84387,0), +(2000040,84387,0), +(2000041,84387,0), +(2000042,84387,0), +(2000043,84387,0), +(2000044,84387,0), +(2000045,84387,0), +(2000046,84387,0), +(2000047,84387,0), +(2000048,84387,0), +(2000049,84387,0); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_04' WHERE sql_rev = '1648294393927803100'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_05.sql b/data/sql/updates/db_world/2022_03_27_05.sql new file mode 100644 index 000000000..61dcfe679 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_05.sql @@ -0,0 +1,29 @@ +-- DB update 2022_03_27_04 -> 2022_03_27_05 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_04'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_04 2022_03_27_05 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647104625347732100'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647104625347732100'); + +UPDATE `creature_template` SET `ScriptName`='npc_salvaged_siege_engine' WHERE `entry`=33060; + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_05' WHERE sql_rev = '1647104625347732100'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_06.sql b/data/sql/updates/db_world/2022_03_27_06.sql new file mode 100644 index 000000000..bbc009e28 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_06.sql @@ -0,0 +1,39 @@ +-- DB update 2022_03_27_05 -> 2022_03_27_06 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_05'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_05 2022_03_27_06 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647097838805578400'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647097838805578400'); + +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (23751, 23752, 23753); +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 +(23751, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 15, 182817, 30, 0, 0, 0, 0, 0, 0, 'North Tent - On Spellhit - Despawn Flames'), +(23751, 0, 0, 1, 8, 0, 100, 0, 42356, 0, 0, 0, 0, 33, 23751, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'North Tent - On Spellhit - Kill Credit'), +(23751, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 50, 182817, 60, 0, 0, 0, 0, 20, 186310, 40, 0, 0, 0, 0, 5, 0, 'North Tent - On Spellhit - Summon GameObject'), +(23752, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 15, 182817, 30, 0, 0, 0, 0, 0, 0, 'Northeast Tent - On Spellhit - Despawn Flames'), +(23752, 0, 0, 1, 8, 0, 100, 0, 42356, 0, 0, 0, 0, 33, 23752, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Northeast Tent - On Spellhit - Kill Credit'), +(23752, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 50, 182817, 60, 0, 0, 0, 0, 20, 186310, 40, 0, 0, 0, 0, 5, 0, 'Northeast Tent - On Spellhit - Summon GameObject'), +(23753, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 15, 182817, 30, 0, 0, 0, 0, 0, 0, 'East Tent - On Spellhit - Despawn Flames'), +(23753, 0, 0, 1, 8, 0, 100, 0, 42356, 0, 0, 0, 0, 33, 23753, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'East Tent - On Spellhit - Kill Credit'), +(23753, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 50, 182817, 60, 0, 0, 0, 0, 20, 186310, 40, 0, 0, 0, 0, 5, 0, 'East Tent - On Spellhit - Summon GameObject'); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_06' WHERE sql_rev = '1647097838805578400'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_07.sql b/data/sql/updates/db_world/2022_03_27_07.sql new file mode 100644 index 000000000..792f78e49 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_07.sql @@ -0,0 +1,29 @@ +-- DB update 2022_03_27_06 -> 2022_03_27_07 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_06'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_06 2022_03_27_07 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647426130709105800'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647426130709105800'); + +UPDATE `spell_proc_event` SET `ppmRate` = 1 WHERE `entry` = 27787; + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_07' WHERE sql_rev = '1647426130709105800'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_08.sql b/data/sql/updates/db_world/2022_03_27_08.sql new file mode 100644 index 000000000..9857301ce --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_08.sql @@ -0,0 +1,32 @@ +-- DB update 2022_03_27_07 -> 2022_03_27_08 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_07'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_07 2022_03_27_08 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647644720221305200'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647644720221305200'); + +DELETE FROM `npc_text` WHERE `ID` IN (1675,1676); +INSERT INTO `npc_text` (`ID`, `text0_0`, `text0_1`, `BroadcastTextID0`, `lang0`, `Probability0`, `em0_0`, `em0_1`, `em0_2`, `em0_3`, `em0_4`, `em0_5`, `text1_0`, `text1_1`, `BroadcastTextID1`, `lang1`, `Probability1`, `em1_0`, `em1_1`, `em1_2`, `em1_3`, `em1_4`, `em1_5`, `text2_0`, `text2_1`, `BroadcastTextID2`, `lang2`, `Probability2`, `em2_0`, `em2_1`, `em2_2`, `em2_3`, `em2_4`, `em2_5`, `text3_0`, `text3_1`, `BroadcastTextID3`, `lang3`, `Probability3`, `em3_0`, `em3_1`, `em3_2`, `em3_3`, `em3_4`, `em3_5`, `text4_0`, `text4_1`, `BroadcastTextID4`, `lang4`, `Probability4`, `em4_0`, `em4_1`, `em4_2`, `em4_3`, `em4_4`, `em4_5`, `text5_0`, `text5_1`, `BroadcastTextID5`, `lang5`, `Probability5`, `em5_0`, `em5_1`, `em5_2`, `em5_3`, `em5_4`, `em5_5`, `text6_0`, `text6_1`, `BroadcastTextID6`, `lang6`, `Probability6`, `em6_0`, `em6_1`, `em6_2`, `em6_3`, `em6_4`, `em6_5`, `text7_0`, `text7_1`, `BroadcastTextID7`, `lang7`, `Probability7`, `em7_0`, `em7_1`, `em7_2`, `em7_3`, `em7_4`, `em7_5`, `VerifiedBuild`) VALUES +(1676, 'The Plates of Uldum are discs synthesized by the Creators that allow access into the Uldum compound. These discs house and store specific data related to the Creators\' activities here.$B$BPhysically, they are nearly identical in circumference to the disc set you currently possess. Their markings, however, are directly related to information on Uldum as opposed to the Uldaman complex.', '', 4061, 0, 1, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 11723), +(1675, 'My purpose is to regulate access to the Uldum complex for the Creators. I allow entry into the compound only when the solicitor exhibits for access the proper sequencing discs.$B$BYour disc set currently does not contain the Plates of Uldum, the primary prerequisite for entry. Access is not granted unless the Plates of Uldum are present.', '', 4055, 0, 1, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 11723); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_08' WHERE sql_rev = '1647644720221305200'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_09.sql b/data/sql/updates/db_world/2022_03_27_09.sql new file mode 100644 index 000000000..179617415 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_09.sql @@ -0,0 +1,312 @@ +-- DB update 2022_03_27_08 -> 2022_03_27_09 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_08'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_08 2022_03_27_09 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647998826935283089'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647998826935283089'); + +REPLACE INTO `item_template_locale` (`ID`, `locale`, `Name`, `Description`, `VerifiedBuild`) VALUES +(886, 'ruRU', 'Черный металлический короткий меч', '', 0), +(997, 'ruRU', 'Огненный меч Увечья', '', 0), +(1029, 'ruRU', 'Табличка Тотема змея', '', 0), +(1057, 'ruRU', 'Табличка Восстановления III', '', 0), +(1133, 'ruRU', 'Рог снежного волка', '', 0), +(1134, 'ruRU', 'Рог Серого волка', '', 0), +(1146, 'ruRU', 'Манускрипт: Воскрешение', '', 0), +(1254, 'ruRU', 'Малый камень огня', '', 0), +(1623, 'ruRU', 'Мешочек из кожи ящера', '', 0), +(1977, 'ruRU', 'Сумка на 20 ячеек', '', 0), +(2021, 'ruRU', 'Зеленый панцирный щит', '', 0), +(2410, 'ruRU', 'Дымный факел', '', 0), +(2413, 'ruRU', 'Игреневая лошадь', '', 0), +(2415, 'ruRU', 'Белый жеребец', '', 0), +(2556, 'ruRU', 'Рецепт: эликсир наречий', '', 0), +(2719, 'ruRU', 'Маленький латунный ключ', '', 0), +(2920, 'ruRU', 'Священная реликвия', '', 0), +(2921, 'ruRU', 'Благословенная реликвия', '', 0), +(2922, 'ruRU', 'Реликвия духа', '', 0), +(2929, 'ruRU', 'Могильная гниль', 'Используется разбойниками при изготовлении яда.', 0), +(2932, 'ruRU', 'Лоза Мучений', 'Используется разбойниками при изготовлении яда.', 0), +(3003, 'ruRU', 'Реликвия Ока', '', 0), +(3004, 'ruRU', 'Реликвия Мертвых', '', 0), +(3005, 'ruRU', 'Реликвия Истины', '', 0), +(3144, 'ruRU', 'Гримуар пылающего духа II', '', 0), +(3227, 'ruRU', 'Посох Ночной Погибели', '', 0), +(3467, 'ruRU', 'Матовый железный ключ', '', 0), +(3499, 'ruRU', 'Отполированный золотой ключ', '', 0), +(3675, 'ruRU', 'Догоревший факел', '', 0), +(3704, 'ruRU', 'Ржавый железный ключ', '', 0), +(3762, 'ruRU', 'Сумка библиотекаря', '', 0), +(4143, 'ruRU', 'Фолиант сотворения пищи II', '', 0), +(4273, 'ruRU', 'Кодекс Исцеления', '', 0), +(4882, 'ruRU', 'Ключ Бенедикта', '', 0), +(4930, 'ruRU', 'Кожаная сумка ручной работы', '', 0), +(4959, 'ruRU', 'Сломанный метательный томагавк', '', 0), +(4981, 'ruRU', 'Поясной мешочек Агмонда', '', 0), +(4988, 'ruRU', 'Горящее обсидиановое кольцо', '', 0), +(5004, 'ruRU', 'Знак Кирин-Тора', '', 0), +(5005, 'ruRU', 'Подвеска Неостывших углей', '', 0), +(5008, 'ruRU', 'Кольцо Ртути', '', 0), +(5013, 'ruRU', 'Свежая луковица', '', 0), +(5105, 'ruRU', 'Разрывной патрон', '', 0), +(5150, 'ruRU', 'Книга Целительного прикосновения III', '', 0), +(5229, 'ruRU', 'Пустой усиленный кровавый камень', '', 0), +(5330, 'ruRU', 'Реликтовая эльфийская чаша', '', 0), +(5396, 'ruRU', 'Ключ от Тлеющего ущелья', '', 0), +(5397, 'ruRU', 'Порох Братства Справедливости', '', 0), +(5517, 'ruRU', 'Крошечный бронзовый ключ', 'Реактив для заклинаний магов', 0), +(5518, 'ruRU', 'Крошечный железный ключ', 'Реактив для заклинаний магов', 0), +(5522, 'ruRU', 'Камень чар', '', 0), +(5603, 'ruRU', 'Джутовый мешок Визбанга', '', 0), +(5657, 'ruRU', 'Рецепт: быстродействующая отрава', '', 0), +(5660, 'ruRU', 'Манускрипт печати праведности', '', 0), +(5663, 'ruRU', 'Рог Красного Волка', '', 0), +(5823, 'ruRU', 'Ядовитый гриб', '', 0), +(5858, 'ruRU', 'Призовой сундучок гоблинов', 'Открой и получишь приз!', 0), +(5874, 'ruRU', 'Сбруя: черный баран', '', 0), +(5875, 'ruRU', 'Сбруя: синий баран', '', 0), +(6130, 'ruRU', 'Рубашка зверолова', '', 0), +(6182, 'ruRU', 'Тусклый факел', '', 0), +(6183, 'ruRU', 'Незажженный плохой факел', '', 0), +(6216, 'ruRU', 'Таинственный порошок', 'Используется зачаровывателями для наложения некоторых чар.', 0), +(6276, 'ruRU', 'Заплесневелая записка', '', 0), +(6277, 'ruRU', 'Заплесневелый пергамент', '', 0), +(6278, 'ruRU', 'Заплесневелый свиток', '', 0), +(6279, 'ruRU', 'Заплесневелое письмо', '', 0), +(6280, 'ruRU', 'Заплесневелое послание', '', 0), +(6295, 'ruRU', '15-фунтовый илистый луциан', '', 0), +(6345, 'ruRU', 'Формула: укрепить плащ - охрана', 'Обучает применению к плащу постоянных чар, усиливающих броню на 10.', 0), +(6374, 'ruRU', 'Зачарованный порошок', 'Используется зачаровывателями для наложения некоторых чар.', 0), +(6376, 'ruRU', 'Формула чар для обуви: выносливость I', 'Обучает применению к обуви постоянных чар, повышающих выносливость на 1.', 0), +(6490, 'ruRU', 'Темный пергамент', '', 0), +(6491, 'ruRU', 'Тяжелый пергамент', '', 0), +(6492, 'ruRU', 'Закопченый пергамент', '', 0), +(6495, 'ruRU', 'Потрепанный пергамент', '', 0), +(6496, 'ruRU', 'Подробный пергамент', '', 0), +(6497, 'ruRU', 'Записка на пергаменте', '', 0), +(6544, 'ruRU', 'Свиток призыва демона Бездны', '', 0), +(6589, 'ruRU', 'Иридиевое кольцо', '', 0), +(6619, 'ruRU', 'Учебник: путь защиты', '', 0), +(6623, 'ruRU', 'Свиток призыва суккуба', '', 0), +(6648, 'ruRU', 'Свиток тотема каменной кожи', '', 0), +(6649, 'ruRU', 'Свиток опаляющего тотема', '', 0), +(6754, 'ruRU', 'Большой кошель', '', 0), +(6891, 'ruRU', 'Рецепт: яйцо с травами', 'Обучает приготовлению яйца с травами.', 0), +(6988, 'ruRU', 'Свиток призыва охотника Скверны', '', 0), +(7192, 'ruRU', 'Чертеж: гоблинские реактивные сапоги', 'Обучает изготовлению гоблинских реактивных сапог.', 0), +(7426, 'ruRU', 'Небесно-голубое кольцо', '', 0), +(7427, 'ruRU', 'Лазурный талисман', '', 0), +(7466, 'ruRU', 'Киноварное кольцо', '', 0), +(7467, 'ruRU', 'Киноварное ожерелье', '', 0), +(7497, 'ruRU', 'Кольцо из слоновой кости', '', 0), +(7547, 'ruRU', 'Ониксовое кольцо', '', 0), +(7548, 'ruRU', 'Ониксовое колье', '', 0), +(7550, 'ruRU', 'Честь Воителя', '', 0), +(7681, 'ruRU', 'Осколок обсидианового голема', '', 0), +(7716, 'ruRU', 'Поврежденное ожерелье', '', 0), +(7923, 'ruRU', 'Ключ от Башни Братства Справедливости', '', 0), +(7986, 'ruRU', 'Чертеж: изысканная мифриловая кираса', '', 0), +(7987, 'ruRU', 'Чертеж: изысканный мифриловый шлем', '', 0), +(7988, 'ruRU', 'Чертеж: изысканные мифриловые сапоги', '', 0), +(7994, 'ruRU', 'Чертеж: орочьи боевые поножи', '', 0), +(8072, 'ruRU', 'Ключ башни Силиксиза', '', 0), +(8147, 'ruRU', 'Крошечный медный ключ', 'Реактив для заклинаний магов', 0), +(8546, 'ruRU', 'Мощные ароматические соли', '', 0), +(8583, 'ruRU', 'Рог ездового коня-скелета', '', 0), +(8589, 'ruRU', 'Старый свисток бежевого ящера', '', 0), +(8590, 'ruRU', 'Старый свисток обсидианового ящера', '', 0), +(8628, 'ruRU', 'Поводья пятнистого ночного саблезуба', '', 0), +(8630, 'ruRU', 'Поводья бенгальского тигра', '', 0), +(8633, 'ruRU', 'Поводья леопарда', '', 0), +(8840, 'ruRU', 'Фолиант Сотворения самоцвета маны II', '', 0), +(8964, 'ruRU', 'Кодекс быстрого исцеления', '', 0), +(9299, 'ruRU', 'Код от сейфа Термоштепселя', '', 0), +(9311, 'ruRU', 'Обычные письменные принадлежности', '', 0), +(9417, 'ruRU', 'Архиаэдский осколок', '', 0), +(9443, 'ruRU', 'Использованный препарат тканей монстра', '', 0), +(9489, 'ruRU', 'Гироматический генератор льда', '', 0), +(10460, 'ruRU', 'Кровь Хаккари', '', 0), +(10580, 'ruRU', 'Гоблинская "коробка с сюрпризом"', '', 0), +(10683, 'ruRU', 'Ранец исследователя', '', 0), +(10719, 'ruRU', 'Передвижная сирена', '', 0), +(10723, 'ruRU', 'Любительское радио гномов', '', 0), +(10757, 'ruRU', 'Оберег Осквернителя', 'Полный амулет Рак\'лиха', 0), +(11079, 'ruRU', 'Отрубленная голова Гор\'теша', 'Отрубленная голова Гор\'теша насажена на пику.', 0), +(12144, 'ruRU', 'Яйцехладоскоп', '', 0), +(12947, 'ruRU', 'Кольцо отваги Алекса', '', 0), +(13065, 'ruRU', 'Жезл Аллистария', '', 0), +(13302, 'ruRU', 'Ключ от почтового ящика в торговом ряду', '', 0), +(13303, 'ruRU', 'Ключ от почтового ящика на Площади рыцарей', '', 0), +(13304, 'ruRU', 'Ключ от почтового ящика на Праздничной улице', '', 0), +(13305, 'ruRU', 'Ключ от почтового ящика на Площади старейшины', '', 0), +(13306, 'ruRU', 'Ключ от почтового ящика на Королевской площали', '', 0), +(13307, 'ruRU', 'Ключ от почтового ящика Эзры Гримма', '', 0), +(13602, 'ruRU', 'Большой камень чар', '', 0), +(13603, 'ruRU', 'Крупный камень чар', '', 0), +(13699, 'ruRU', 'Камень огня', '', 0), +(13700, 'ruRU', 'Большой камень огня', '', 0), +(13701, 'ruRU', 'Крупный камень огня', '', 0), +(13812, 'ruRU', 'Кольцо Рассвета', '', 0), +(13873, 'ruRU', 'Ключ от смотровой', '', 0), +(14062, 'ruRU', 'Верховой кодо', '', 0), +(14100, 'ruRU', 'Одеяние из яркой ткани', '', 0), +(14104, 'ruRU', 'Штаны из яркой ткани', '', 0), +(15054, 'ruRU', 'Вулканические поножи', '', 0), +(15068, 'ruRU', 'Мундир из кожи ледопарда', '', 0), +(15069, 'ruRU', 'Поножи из кожи ледопарда', '', 0), +(15070, 'ruRU', 'Перчатки из кожи ледопарда', '', 0), +(15071, 'ruRU', 'Сапоги из кожи ледопарда', '', 0), +(15072, 'ruRU', 'Химерические поножи', '', 0), +(15074, 'ruRU', 'Химерические перчатки', '', 0), +(15075, 'ruRU', 'Химерический жилет', '', 0), +(16057, 'ruRU', 'Ранец исследователя', '', 0), +(16085, 'ruRU', 'Искусник первой помощи: исцели себя сам', '', 0), +(16315, 'ruRU', 'Накидка старшины', '', 0), +(16336, 'ruRU', 'Накидка старшины', '', 0), +(16337, 'ruRU', 'Накидка старшины', '', 0), +(16339, 'ruRU', 'Скакун командора', '', 0), +(17242, 'ruRU', 'Ключ от сундука Салема', 'Открывает сундук темного священника Салема.', 0), +(17262, 'ruRU', 'Ключ Джеймса', 'Открывает сундук, украденный из Собора Света.', 0), +(17323, 'ruRU', 'Маяк Малверика', '', 0), +(17325, 'ruRU', 'Маяк Джезтора', '', 0), +(17362, 'ruRU', 'Маяк Рисона', '', 0), +(17363, 'ruRU', 'Маяк Рисона', '', 0), +(17384, 'ruRU', 'Портативный резак Зинфиззлекса', '', 0), +(17410, 'ruRU', 'Портативный резак Зинфиззлекса', '', 0), +(17505, 'ruRU', 'Маяк Ичмена', '', 0), +(17506, 'ruRU', 'Маяк Змейера', '', 0), +(17782, 'ruRU', 'Талисман Соединения Осколков', '', 0), +(17967, 'ruRU', 'Очищенная чешуя ониксии', '', 0), +(18154, 'ruRU', 'Письменные принадлежности Близзарда', '', 0), +(18266, 'ruRU', 'Ключ от внутреннего двора клана Гордок', '', 0), +(18268, 'ruRU', 'Ключ от внутренней двери клана Гордок', '', 0), +(18964, 'ruRU', 'Черепашье яйцо (головастая морская черепаха)', 'Призыв и освобождение хрустогрыза по щелчку правой кнопкой мыши.', 0), +(19322, 'ruRU', 'Почетный знак Песни Войны', 'Знак за победу в Ущелье Песни Войны.', 0), +(20364, 'ruRU', 'Тестовый снарядный ящик', '', 0), +(20591, 'ruRU', 'Прочная мужская маска дворфа', '', 0), +(20596, 'ruRU', 'Прочная мужская маска таурена', '', 0), +(20819, 'ruRU', 'Ограненный малахит', '', 0), +(20822, 'ruRU', 'Ограненный тигровый глаз', '', 0), +(20825, 'ruRU', 'Ограненный камень теней', '', 0), +(20829, 'ruRU', 'Ограненный лунный камень', '', 0), +(20952, 'ruRU', 'Ограненный агат', '', 0), +(20953, 'ruRU', 'Ограненный нефрит', '', 0), +(20956, 'ruRU', 'Подвеска серебряной розы', '', 0), +(20962, 'ruRU', 'Ограненный аквамарин', '', 0), +(20965, 'ruRU', 'Ограненный рубин', '', 0), +(21691, 'ruRU', 'Испорченные грязью рукавицы', '', 0), +(21761, 'ruRU', 'Ключ от сундука Скарабея', '', 0), +(21762, 'ruRU', 'Ключ от большого сундука Скарабея', '', 0), +(21772, 'ruRU', 'Ограненный сапфир', '', 0), +(21773, 'ruRU', 'Ограненный опал', '', 0), +(21785, 'ruRU', 'Ограненный изумруд', '', 0), +(21786, 'ruRU', 'Ограненный азеротский алмаз', '', 0), +(21793, 'ruRU', 'Подвеска из арканитового меча', '', 0), +(22058, 'ruRU', 'Портрет ко дню Святого Валентина', '', 0), +(22095, 'ruRU', 'Наручники Пяти Громов', '', 0), +(22096, 'ruRU', 'Сапоги Пяти Громов', '', 0), +(22097, 'ruRU', 'Капюшон Пяти Громов', '', 0), +(22098, 'ruRU', 'Шнурованный ремень Пяти Громов', '', 0), +(22099, 'ruRU', 'Рукавицы Пяти Громов', '', 0), +(22100, 'ruRU', 'Килт Пяти Громов', '', 0), +(22101, 'ruRU', 'Наплечье Пяти Громов', '', 0), +(22102, 'ruRU', 'Жилет Пяти Громов', '', 0), +(22128, 'ruRU', 'Великий камень огня', '', 0), +(22646, 'ruRU', 'Мастерский камень чар', '', 0), +(22736, 'ruRU', 'Адонис, Жнец душ', 'Это пространственный клинок. Иногда он выпадает с этого уровня реальности.', 0), +(22896, 'ruRU', 'Исцеляющий кристалл', '', 0), +(23233, 'ruRU', 'Красный брианит Силы - материал', '', 0), +(23234, 'ruRU', 'Синий брианит Ловкости', '', 0), +(23235, 'ruRU', 'Желтый брианит выносливости', '', 0), +(23462, 'ruRU', 'Фолиант верховного вождя: Разрушение', '', 0), +(23578, 'ruRU', 'Диетическое зелье Максоуса', 'Пища для Ума', 0), +(23579, 'ruRU', 'Классическое зелье Максоуса', 'Оригинал.', 0), +(23683, 'ruRU', 'Пастилка от кашля из кристальных пластинок', '', 0), +(23684, 'ruRU', 'Бинты Хрустального дара', '', 0), +(23754, 'ruRU', 'Шкура щетинистого копытня', '', 0), +(23831, 'ruRU', 'Гоблинский пульт управления танком', '', 0), +(23832, 'ruRU', 'Гномский пульт управления танком', '', 0), +(23840, 'ruRU', 'Удаленный почтовый терминал', '', 0), +(23855, 'ruRU', 'Огненная чароткань', '', 0), +(24269, 'ruRU', 'Тяжелая сеть из ткани Пустоты', '', 0), +(25580, 'ruRU', 'QR 9867 Поножи воина', '', 0), +(25581, 'ruRU', 'QR 9867 Охотничьи перчатки', '', 0), +(25582, 'ruRU', 'QR 9867 Друидический пояс лунного совуха', '', 0), +(25627, 'ruRU', 'QR 9922 Щит', '', 0), +(25684, 'ruRU', 'Талисман Кокорека', '', 0), +(25706, 'ruRU', 'Приказы Луанги', '', 0), +(25747, 'ruRU', '(Испорчено) Чертеж мана-бомбы, стр. 1', '', 0), +(25748, 'ruRU', '(Испорчено) Чертеж мана-бомбы, стр. 2', '', 0), +(25749, 'ruRU', '(Испорчено) Чертеж мана-бомбы, стр. 3', '', 0), +(25750, 'ruRU', '(Испорчено) Чертеж мана-бомбы, стр. 4', '', 0), +(25840, 'ruRU', 'Экстракт посмертия', '', 0), +(25884, 'ruRU', 'Изначальная каменная статуя', '', 0), +(28043, 'ruRU', 'Подвеска ловчего демонов', '', 0), +(28044, 'ruRU', 'Кольцо ловчего демонов', '', 0), +(28046, 'ruRU', 'Послание Легиона', 'Запечатано печатью Араззиуса.', 0), +(28107, 'ruRU', 'Послание Легиона', 'Запечатано печатью Араззиуса.', 0), +(28110, 'ruRU', 'Толстый гном и Тощий эльф', '', 0), +(28131, 'ruRU', 'Разбойничий гранатомет', '', 0), +(28598, 'ruRU', 'Инструкция по созданию сквернобота', '', 0), +(29311, 'ruRU', 'Инструкция по созданию сквернобота', '', 0), +(29790, 'ruRU', 'Разрушительные заряды', '', 0), +(29887, 'ruRU', 'Коробка для боеприпасов "Охотник-150"', '', 0), +(30438, 'ruRU', 'Ключ от склада Легиона', '', 0), +(30630, 'ruRU', 'Энергетическая матрица сквернобота', '', 0), +(30717, 'ruRU', 'Подвеска Вестника', '', 0), +(30805, 'ruRU', 'Утолщенные перчатки незапятнанности', '', 0), +(30845, 'ruRU', 'Знак Всемагической Защиты', '', 0), +(31665, 'ruRU', 'Игрушечный ДУ танк-миномет', 'Заметка: Безопасно для детей. Не стреляет.', 0), +(31704, 'ruRU', 'Ключ Урагана', 'Прозрачный ключ, который будто бы связан лучами света.', 0), +(32595, 'ruRU', 'Реагент - пыль Оргелы', '', 0), +(32642, 'ruRU', 'Изначальная темная руна', 'Энергия Скверны заполняет пространство вокруг руны.', 0), +(32972, 'ruRU', 'Пивные очки', '', 0), +(33063, 'ruRU', 'Очень черствый хлеб', 'Несъедобно, но сойдет, чтобы отстоять вашу выпивку.', 0), +(35517, 'ruRU', 'Выкройка: наручники молниеносной реакции', '', 0), +(35518, 'ruRU', 'Выкройка: наручи сообразительности', '', 0), +(35519, 'ruRU', 'Выкройка: наручи обновленной жизни', '', 0), +(35520, 'ruRU', 'Выкройка: наручники живой земли', '', 0), +(35521, 'ruRU', 'Выкройка: наплечники живой земли', '', 0), +(35522, 'ruRU', 'Выкройка: мантия сообразительности', '', 0), +(35523, 'ruRU', 'Выкройка: наплечные пластины обновленной жизни', '', 0), +(35524, 'ruRU', 'Выкройка: наплечники молниеносной реакции', '', 0), +(35525, 'ruRU', 'Выкройка: мантия быстрого исцеления', '', 0), +(35526, 'ruRU', 'Выкройка: повязки быстрого исцеления', '', 0), +(35527, 'ruRU', 'Выкройка: наручи молниеносного удара', '', 0), +(35529, 'ruRU', 'Чертеж: наручи рассветной стали', '', 0), +(35531, 'ruRU', 'Чертеж: наручи из быстростали', '', 0), +(35533, 'ruRU', 'Эскиз: амулет бьющего ключа', 'Обучает изготовлению амулета бьющего ключа.', 0), +(35535, 'ruRU', 'Эскиз: колье из закаленного кория', '', 0), +(35537, 'ruRU', 'Эскиз: подвеска солнечного огня', '', 0), +(35538, 'ruRU', 'Эскиз: кольцо бьющего ключа', '', 0), +(35539, 'ruRU', 'Выкройка: панцирь Солнца и Тени', '', 0), +(35541, 'ruRU', 'Выкройка: стрелецкие перчатки Феникса', '', 0), +(35544, 'ruRU', 'Выкройка: перчатки вечного света', '', 0), +(35545, 'ruRU', 'Выкройка: кожаный нагрудный доспех солнца', '', 0), +(35546, 'ruRU', 'Выкройка: кожаные рукавицы Солнца', '', 0), +(35548, 'ruRU', 'Выкройка: одеяние вечного света', '', 0), +(35549, 'ruRU', 'Выкройка: пронизанный солнцем нагрудный доспех', '', 0), +(35550, 'ruRU', 'Выкройка: пронизанные солнцем чешуйчатые перчатки', '', 0), +(35551, 'ruRU', 'Выкройка: повязки солнечного огня', '', 0), +(35553, 'ruRU', 'Чертеж: кулачные перчатки из закаленного кория', '', 0); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_09' WHERE sql_rev = '1647998826935283089'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_10.sql b/data/sql/updates/db_world/2022_03_27_10.sql new file mode 100644 index 000000000..c0170189e --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_10.sql @@ -0,0 +1,319 @@ +-- DB update 2022_03_27_09 -> 2022_03_27_10 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_09'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_09 2022_03_27_10 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647999537361228262'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647999537361228262'); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(176005, 'ruRU', 'Скамейка подземки', '', 0), +(176006, 'ruRU', 'Скамейка подземки', '', 0), +(176007, 'ruRU', 'Скамейка подземки', '', 0), +(176008, 'ruRU', 'Скамейка подземки', '', 0), +(176009, 'ruRU', 'Скамейка подземки', '', 0), +(176010, 'ruRU', 'Скамейка подземки', '', 0), +(176011, 'ruRU', 'Скамейка подземки', '', 0), +(176012, 'ruRU', 'Скамейка подземки', '', 0), +(176013, 'ruRU', 'Скамейка подземки', '', 0), +(176014, 'ruRU', 'Скамейка подземки', '', 0), +(176015, 'ruRU', 'Скамейка подземки', '', 0), +(176016, 'ruRU', 'Скамейка подземки', '', 0), +(176017, 'ruRU', 'Скамейка подземки', '', 0), +(176018, 'ruRU', 'Скамейка подземки', '', 0), +(176019, 'ruRU', 'Скамейка подземки', '', 0), +(176020, 'ruRU', 'Скамейка подземки', '', 0), +(176021, 'ruRU', 'Скамейка подземки', '', 0), +(176022, 'ruRU', 'Скамейка подземки', '', 0), +(176023, 'ruRU', 'Скамейка подземки', '', 0), +(176024, 'ruRU', 'Скамейка подземки', '', 0), +(176025, 'ruRU', 'Скамейка подземки', '', 0), +(176026, 'ruRU', 'Скамейка подземки', '', 0), +(176027, 'ruRU', 'Скамейка подземки', '', 0), +(176028, 'ruRU', 'Скамейка подземки', '', 0), +(176029, 'ruRU', 'Скамейка подземки', '', 0), +(176030, 'ruRU', 'Скамейка подземки', '', 0), +(176031, 'ruRU', 'Скамейка подземки', '', 0), +(176032, 'ruRU', 'Скамейка подземки', '', 0), +(176033, 'ruRU', 'Скамейка подземки', '', 0), +(176034, 'ruRU', 'Скамейка подземки', '', 0), +(176035, 'ruRU', 'Скамейка подземки', '', 0), +(176036, 'ruRU', 'Скамейка подземки', '', 0), +(176037, 'ruRU', 'Скамейка подземки', '', 0), +(176038, 'ruRU', 'Скамейка подземки', '', 0), +(176039, 'ruRU', 'Скамейка подземки', '', 0), +(176040, 'ruRU', 'Скамейка подземки', '', 0), +(176041, 'ruRU', 'Скамейка подземки', '', 0), +(176042, 'ruRU', 'Скамейка подземки', '', 0), +(176043, 'ruRU', 'Скамейка подземки', '', 0), +(176044, 'ruRU', 'Скамейка подземки', '', 0), +(176045, 'ruRU', 'Скамейка подземки', '', 0), +(176046, 'ruRU', 'Скамейка подземки', '', 0), +(176047, 'ruRU', 'Скамейка подземки', '', 0), +(176048, 'ruRU', 'Скамейка подземки', '', 0), +(176049, 'ruRU', 'Скамейка подземки', '', 0), +(176050, 'ruRU', 'Скамейка подземки', '', 0), +(176051, 'ruRU', 'Скамейка подземки', '', 0), +(176052, 'ruRU', 'Скамейка подземки', '', 0), +(176053, 'ruRU', 'Скамейка подземки', '', 0), +(176054, 'ruRU', 'Скамейка подземки', '', 0), +(176055, 'ruRU', 'Скамейка подземки', '', 0), +(176056, 'ruRU', 'Скамейка подземки', '', 0), +(176057, 'ruRU', 'Скамейка подземки', '', 0), +(176058, 'ruRU', 'Скамейка подземки', '', 0), +(176059, 'ruRU', 'Скамейка подземки', '', 0), +(176060, 'ruRU', 'Скамейка подземки', '', 0), +(176061, 'ruRU', 'Скамейка подземки', '', 0), +(176062, 'ruRU', 'Скамейка подземки', '', 0), +(176063, 'ruRU', 'Скамейка подземки', '', 0), +(176064, 'ruRU', 'Скамейка подземки', '', 0), +(176065, 'ruRU', 'Скамейка подземки', '', 0), +(176066, 'ruRU', 'Скамейка подземки', '', 0), +(176067, 'ruRU', 'Скамейка подземки', '', 0), +(176068, 'ruRU', 'Скамейка подземки', '', 0), +(176069, 'ruRU', 'Скамейка подземки', '', 0), +(176070, 'ruRU', 'Скамейка подземки', '', 0), +(176071, 'ruRU', 'Скамейка подземки', '', 0), +(176072, 'ruRU', 'Скамейка подземки', '', 0), +(176073, 'ruRU', 'Скамейка подземки', '', 0), +(176074, 'ruRU', 'Скамейка подземки', '', 0), +(176075, 'ruRU', 'Скамейка подземки', '', 0), +(176076, 'ruRU', 'Скамейка подземки', '', 0), +(176077, 'ruRU', 'Скамейка подземки', '', 0), +(176078, 'ruRU', 'Скамейка подземки', '', 0), +(176079, 'ruRU', 'Скамейка подземки', '', 0), +(176098, 'ruRU', 'Скамейка подземки', '', 0), +(176099, 'ruRU', 'Скамейка подземки', '', 0), +(176100, 'ruRU', 'Скамейка подземки', '', 0), +(176101, 'ruRU', 'Скамейка подземки', '', 0), +(176102, 'ruRU', 'Скамейка подземки', '', 0), +(176103, 'ruRU', 'Скамейка подземки', '', 0), +(176104, 'ruRU', 'Скамейка подземки', '', 0), +(176105, 'ruRU', 'Скамейка подземки', '', 0), +(176106, 'ruRU', 'Скамейка подземки', '', 0), +(176107, 'ruRU', 'Скамейка подземки', '', 0), +(176108, 'ruRU', 'Скамейка подземки', '', 0), +(176109, 'ruRU', 'Скамейка подземки', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(57748, 'ruRU', 'Фонарный столб', '', 0), +(82139, 'ruRU', 'Фонарный столб', '', 0), +(82140, 'ruRU', 'Фонарный столб', '', 0), +(57709, 'ruRU', 'Фонарный столб', '', 0), +(57710, 'ruRU', 'Фонарный столб', '', 0), +(57725, 'ruRU', 'Фонарный столб', '', 0), +(57726, 'ruRU', 'Фонарный столб', '', 0), +(57727, 'ruRU', 'Фонарный столб', '', 0), +(57749, 'ruRU', 'Фонарный столб', '', 0), +(57750, 'ruRU', 'Фонарный столб', '', 0), +(57751, 'ruRU', 'Фонарный столб', '', 0), +(57752, 'ruRU', 'Фонарный столб', '', 0), +(57753, 'ruRU', 'Фонарный столб', '', 0), +(70518, 'ruRU', 'Фонарный столб', '', 0), +(70519, 'ruRU', 'Фонарный столб', '', 0), +(70520, 'ruRU', 'Фонарный столб', '', 0), +(70521, 'ruRU', 'Фонарный столб', '', 0), +(70522, 'ruRU', 'Фонарный столб', '', 0), +(70523, 'ruRU', 'Фонарный столб', '', 0), +(70524, 'ruRU', 'Фонарный столб', '', 0), +(70525, 'ruRU', 'Фонарный столб', '', 0), +(70526, 'ruRU', 'Фонарный столб', '', 0), +(70527, 'ruRU', 'Фонарный столб', '', 0), +(70528, 'ruRU', 'Фонарный столб', '', 0), +(70530, 'ruRU', 'Фонарный столб', '', 0), +(70531, 'ruRU', 'Фонарный столб', '', 0), +(70532, 'ruRU', 'Фонарный столб', '', 0), +(70533, 'ruRU', 'Фонарный столб', '', 0), +(70534, 'ruRU', 'Фонарный столб', '', 0), +(70535, 'ruRU', 'Фонарный столб', '', 0), +(70536, 'ruRU', 'Фонарный столб', '', 0), +(70537, 'ruRU', 'Фонарный столб', '', 0), +(70538, 'ruRU', 'Фонарный столб', '', 0), +(70539, 'ruRU', 'Фонарный столб', '', 0), +(70540, 'ruRU', 'Фонарный столб', '', 0), +(70541, 'ruRU', 'Фонарный столб', '', 0), +(70542, 'ruRU', 'Фонарный столб', '', 0), +(70543, 'ruRU', 'Фонарный столб', '', 0), +(70544, 'ruRU', 'Фонарный столб', '', 0), +(70545, 'ruRU', 'Фонарный столб', '', 0), +(70546, 'ruRU', 'Фонарный столб', '', 0), +(70547, 'ruRU', 'Фонарный столб', '', 0), +(70548, 'ruRU', 'Фонарный столб', '', 0), +(70549, 'ruRU', 'Фонарный столб', '', 0), +(70551, 'ruRU', 'Фонарный столб', '', 0), +(70552, 'ruRU', 'Фонарный столб', '', 0), +(70553, 'ruRU', 'Фонарный столб', '', 0), +(70554, 'ruRU', 'Фонарный столб', '', 0), +(70555, 'ruRU', 'Фонарный столб', '', 0), +(70556, 'ruRU', 'Фонарный столб', '', 0), +(70557, 'ruRU', 'Фонарный столб', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(142111, 'ruRU', 'Почтовый ящик', '', 0), +(143987, 'ruRU', 'Почтовый ящик', '', 0), +(143988, 'ruRU', 'Почтовый ящик', '', 0), +(143989, 'ruRU', 'Почтовый ящик', '', 0), +(143990, 'ruRU', 'Почтовый ящик', '', 0), +(144570, 'ruRU', 'Почтовый ящик', '', 0), +(153578, 'ruRU', 'Почтовый ящик', '', 0), +(163313, 'ruRU', 'Почтовый ящик', '', 0), +(185471, 'ruRU', 'Почтовый ящик', '', 0), +(142119, 'ruRU', 'Почтовый ящик', '', 0), +(175864, 'ruRU', 'Почтовый ящик', '', 0), +(181639, 'ruRU', 'Почтовый ящик', '', 0), +(187260, 'ruRU', 'Почтовый ящик', '', 0), +(195629, 'ruRU', 'Почтовый ящик', '', 0), +(195624, 'ruRU', 'Почтовый ящик', '', 0), +(195625, 'ruRU', 'Почтовый ящик', '', 0), +(195626, 'ruRU', 'Почтовый ящик', '', 0), +(195628, 'ruRU', 'Почтовый ящик', '', 0), +(195627, 'ruRU', 'Почтовый ящик', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(28611, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(28612, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(171648, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(171649, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(35577, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(35578, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(35580, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(35581, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(35588, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(35589, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(37474, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(37475, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(37480, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(37481, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(37483, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(37484, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(37492, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(37493, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(38024, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(38025, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(172943, 'ruRU', 'Могучее пламя', '', 0), +(172998, 'ruRU', 'Могучее пламя', '', 0), +(173000, 'ruRU', 'Могучее пламя', '', 0), +(173124, 'ruRU', 'Могучее пламя', '', 0), +(173201, 'ruRU', 'Могучее пламя', '', 0), +(172999, 'ruRU', 'Могучее пламя', '', 0), +(173001, 'ruRU', 'Могучее пламя', '', 0), +(173002, 'ruRU', 'Могучее пламя', '', 0), +(173003, 'ruRU', 'Могучее пламя', '', 0), +(173004, 'ruRU', 'Могучее пламя', '', 0), +(173126, 'ruRU', 'Могучее пламя', '', 0), +(173228, 'ruRU', 'Могучее пламя', '', 0), +(173229, 'ruRU', 'Могучее пламя', '', 0), +(173230, 'ruRU', 'Могучее пламя', '', 0), +(173231, 'ruRU', 'Могучее пламя', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(32367, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32370, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32396, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32397, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32398, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32399, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32402, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32405, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32410, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32411, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32430, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32440, 'ruRU', 'Главные ворота Стальгорна', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(142947, 'ruRU', 'Каменный стул', '', 0), +(171674, 'ruRU', 'Каменный стул', '', 0), +(142948, 'ruRU', 'Каменный стул', '', 0), +(171567, 'ruRU', 'Каменный стул', '', 0), +(171568, 'ruRU', 'Каменный стул', '', 0), +(171675, 'ruRU', 'Каменный стул', '', 0), +(171676, 'ruRU', 'Каменный стул', '', 0), +(171677, 'ruRU', 'Каменный стул', '', 0), +(171718, 'ruRU', 'Каменный стул', '', 0), +(171719, 'ruRU', 'Каменный стул', '', 0), +(171720, 'ruRU', 'Каменный стул', '', 0), +(171721, 'ruRU', 'Каменный стул', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(32356, 'ruRU', 'Зал Исследователей', '', 0), +(32360, 'ruRU', 'Зал Исследователей', '', 0), +(32363, 'ruRU', 'Зал Исследователей', '', 0), +(32371, 'ruRU', 'Зал Исследователей', '', 0), +(32408, 'ruRU', 'Зал Исследователей', '', 0), +(32413, 'ruRU', 'Зал Исследователей', '', 0), +(32418, 'ruRU', 'Зал Исследователей', '', 0), +(32421, 'ruRU', 'Зал Исследователей', '', 0), +(32423, 'ruRU', 'Зал Исследователей', '', 0), +(32786, 'ruRU', 'Зал Исследователей', '', 0), +(32788, 'ruRU', 'Зал Исследователей', '', 0), +(32793, 'ruRU', 'Зал Исследователей', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(32372, 'ruRU', 'Великая Кузня', '', 0), +(32373, 'ruRU', 'Великая Кузня', '', 0), +(32374, 'ruRU', 'Великая Кузня', '', 0), +(32375, 'ruRU', 'Великая Кузня', '', 0), +(32378, 'ruRU', 'Великая Кузня', '', 0), +(32379, 'ruRU', 'Великая Кузня', '', 0), +(32392, 'ruRU', 'Великая Кузня', '', 0), +(32395, 'ruRU', 'Великая Кузня', '', 0), +(32436, 'ruRU', 'Великая Кузня', '', 0), +(32789, 'ruRU', 'Великая Кузня', '', 0), +(32790, 'ruRU', 'Великая Кузня', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(19522, 'ruRU', 'Котел', '', 0), +(59529, 'ruRU', 'Котел', '', 0), +(59530, 'ruRU', 'Котел', '', 0), +(177244, 'ruRU', 'Котел', '', 0), +(20878, 'ruRU', 'Котел', '', 0), +(74077, 'ruRU', 'Котел', '', 0), +(141845, 'ruRU', 'Котел', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(188130, 'ruRU', 'Камень Льда', '', 0), +(188134, 'ruRU', 'Камень Льда', '', 0), +(188135, 'ruRU', 'Камень Льда', '', 0), +(188139, 'ruRU', 'Камень Льда', '', 0), +(188145, 'ruRU', 'Камень Льда', '', 0), +(188146, 'ruRU', 'Камень Льда', '', 0), +(188147, 'ruRU', 'Камень Льда', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(9847, 'ruRU', 'Очаг для приготовления пищи', '', 0), +(10388, 'ruRU', 'Очаг для приготовления пищи', '', 0), +(175592, 'ruRU', 'Очаг для приготовления пищи', '', 0), +(175600, 'ruRU', 'Очаг для приготовления пищи', '', 0), +(175604, 'ruRU', 'Очаг для приготовления пищи', '', 0), +(175605, 'ruRU', 'Очаг для приготовления пищи', '', 0), +(184618, 'ruRU', 'Очаг для приготовления пищи', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(176080, 'ruRU', 'Подземка', '', 0), +(176081, 'ruRU', 'Подземка', '', 0), +(176082, 'ruRU', 'Подземка', '', 0), +(176083, 'ruRU', 'Подземка', '', 0), +(176084, 'ruRU', 'Подземка', '', 0), +(176085, 'ruRU', 'Подземка', '', 0); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_10' WHERE sql_rev = '1647999537361228262'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_11.sql b/data/sql/updates/db_world/2022_03_27_11.sql new file mode 100644 index 000000000..59ce132f5 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_11.sql @@ -0,0 +1,31 @@ +-- DB update 2022_03_27_10 -> 2022_03_27_11 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_10'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_10 2022_03_27_11 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647761424947662456'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647761424947662456'); + +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_item_runic_healing_injector'; +INSERT INTO `spell_script_names` VALUES +(67489,'spell_item_runic_healing_injector'); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_11' WHERE sql_rev = '1647761424947662456'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_12.sql b/data/sql/updates/db_world/2022_03_27_12.sql new file mode 100644 index 000000000..f523b8046 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_12.sql @@ -0,0 +1,31 @@ +-- DB update 2022_03_27_11 -> 2022_03_27_12 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_11'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_11 2022_03_27_12 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647762029984921289'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647762029984921289'); + +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_pri_lightwell'); +INSERT INTO `spell_script_names` VALUES +(60123,'spell_pri_lightwell'); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_12' WHERE sql_rev = '1647762029984921289'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_13.sql b/data/sql/updates/db_world/2022_03_27_13.sql new file mode 100644 index 000000000..f9b965cf6 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_13.sql @@ -0,0 +1,30 @@ +-- DB update 2022_03_27_12 -> 2022_03_27_13 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_12'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_12 2022_03_27_13 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647861814144531389'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647861814144531389'); + +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_item_dimensional_ripper_area52'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES (36890,'spell_item_dimensional_ripper_area52'); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_13' WHERE sql_rev = '1647861814144531389'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_14.sql b/data/sql/updates/db_world/2022_03_27_14.sql new file mode 100644 index 000000000..3b47b446d --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_14.sql @@ -0,0 +1,31 @@ +-- DB update 2022_03_27_13 -> 2022_03_27_14 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_13'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_13 2022_03_27_14 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647924729405978168'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647924729405978168'); + +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_death_knight_initiate_visual'); +INSERT INTO `spell_script_names` VALUES +(51519, 'spell_death_knight_initiate_visual'); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_14' WHERE sql_rev = '1647924729405978168'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_15.sql b/data/sql/updates/db_world/2022_03_27_15.sql new file mode 100644 index 000000000..c9ab8ac2b --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_15.sql @@ -0,0 +1,31 @@ +-- DB update 2022_03_27_14 -> 2022_03_27_15 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_14'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_14 2022_03_27_15 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647923874715608181'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647923874715608181'); + +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_q1846_bending_shinbone'); +INSERT INTO `spell_script_names` VALUES +(8856, 'spell_q1846_bending_shinbone'); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_15' WHERE sql_rev = '1647923874715608181'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_16.sql b/data/sql/updates/db_world/2022_03_27_16.sql new file mode 100644 index 000000000..01220df54 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_16.sql @@ -0,0 +1,34 @@ +-- DB update 2022_03_27_15 -> 2022_03_27_16 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_15'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_15 2022_03_27_16 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1648289846118024900'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648289846118024900'); + +-- Fix selectable doors +UPDATE `gameobject_template_addon` SET `faction` = 114, `flags` = `flags`|32 WHERE `entry` IN (176964, 179117, 179365); +UPDATE `gameobject_template_addon` SET `flags` = `flags`|4 WHERE `entry` = 179115; + +-- Fix Blackwing technicians spawn time +UPDATE `creature` SET `spawntimesecs` = 604800 WHERE `id1` = 13996; + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_16' WHERE sql_rev = '1648289846118024900'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_17.sql b/data/sql/updates/db_world/2022_03_27_17.sql new file mode 100644 index 000000000..1b602702e --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_17.sql @@ -0,0 +1,29 @@ +-- DB update 2022_03_27_16 -> 2022_03_27_17 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_16'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_16 2022_03_27_17 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1648255016918528600'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648255016918528600'); + +DELETE FROM `creature_loot_template` WHERE `Entry` = 11502 AND `Item` = 17982; + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_17' WHERE sql_rev = '1648255016918528600'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_18.sql b/data/sql/updates/db_world/2022_03_27_18.sql new file mode 100644 index 000000000..955a60bbc --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_18.sql @@ -0,0 +1,149 @@ +-- DB update 2022_03_27_17 -> 2022_03_27_18 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_17'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_17 2022_03_27_18 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1648309713111396700'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648309713111396700'); + +SET @CGUID := 2000060; +DELETE FROM `creature_addon` WHERE `guid` BETWEEN 84556 AND 84566; +DELETE FROM `linked_respawn` WHERE `guid` BETWEEN 84556 AND 84566; +DELETE FROM `linked_respawn` WHERE `guid` IN (85788,85793,85797,85798,85799,85802,85805); +DELETE FROM `creature` WHERE `id1`=12468; +INSERT INTO `creature` (`guid`, `id1`, `map`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`) VALUES +(@CGUID,12468,469,1,1,1,-7655.51,-1100.16,449.243,3.54007,600,0,0,1,0,2,0,0,0,''), +(@CGUID+1,12468,469,1,1,1,-7592.86,-1075.23,449.246,2.65568,600,0,0,1,0,2,0,0,0,''), +(@CGUID+2,12468,469,1,1,1,-7673.25,-1039.96,440.28,2.46326,600,0,0,1,0,2,0,0,0,''), +(@CGUID+3,12468,469,1,1,1,-7649.78,-1057.55,449.247,5.57555,600,0,0,1,0,2,0,0,0,''), +(@CGUID+4,12468,469,1,1,1,-7668.59,-986.566,440.329,5.74399,600,0,0,1,0,2,0,0,0,''), +(@CGUID+5,12468,469,1,1,1,-7624.29,-1035.04,449.244,4.62018,600,0,0,1,0,2,0,0,0,''), +(@CGUID+6,12468,469,1,1,1,-7639.27,-968.392,440.092,5.84041,600,0,0,1,0,2,0,0,0,''), +(@CGUID+7,12468,469,1,1,1,-7620.51,-998.365,440.319,2.62407,600,0,0,1,0,2,0,0,0,''), +(@CGUID+8,12468,469,1,1,1,-7695.27,-1005.48,440.297,5.80156,600,0,0,1,0,2,0,0,0,''), +(@CGUID+9,12468,469,1,1,1,-7630.35,-1101.33,449.246,1.63947,600,0,0,1,0,2,0,0,0,''), +(@CGUID+10,12468,469,1,1,1,-7649.74,-1019.88,440.318,2.38942,600,0,0,1,0,2,0,0,0,''); + +DELETE FROM `creature_addon` WHERE `guid` BETWEEN @CGUID AND @CGUID+10; +INSERT INTO `creature_addon` (`guid`, `path_id`, `bytes2`) VALUES +(@CGUID,@CGUID*10,1), +(@CGUID+1,(@CGUID+1)*10,1), +(@CGUID+2,(@CGUID+2)*10,1), +(@CGUID+3,(@CGUID+3)*10,1), +(@CGUID+4,(@CGUID+4)*10,1), +(@CGUID+5,(@CGUID+5)*10,1), +(@CGUID+6,(@CGUID+6)*10,1), +(@CGUID+7,(@CGUID+7)*10,1), +(@CGUID+8,(@CGUID+8)*10,1), +(@CGUID+9,(@CGUID+9)*10,1), +(@CGUID+10,(@CGUID+10)*10,1); + +SET @PATH_ID := @CGUID*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7680.62,-1110.73,449.126,100,0,0,0,100,0), +(@PATH_ID,2,-7648.96,-1087.89,449.164,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+1)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7633.58,-1053.72,449.164,100,0,0,0,100,0), +(@PATH_ID,2,-7591.82,-1076.51,449.164,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+2)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7705.59,-1013.9,440.401,100,0,0,0,100,0), +(@PATH_ID,2,-7670.4,-1038.78,440.197,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+3)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7624.98,-1078.78,449.164,100,0,0,0,100,0), +(@PATH_ID,2,-7609.39,-1084.48,449.164,100,0,0,0,100,0), +(@PATH_ID,3,-7624.98,-1078.78,449.164,100,0,0,0,100,0), +(@PATH_ID,4,-7651.04,-1056.83,449.172,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+4)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7633.23,-1007.72,440.262,100,0,0,0,100,0), +(@PATH_ID,2,-7667.67,-987.11,439.986,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+5)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7625.61,-1049.31,449.164,100,0,0,0,100,0), +(@PATH_ID,2,-7608.66,-1082.75,449.164,100,0,0,0,100,0), +(@PATH_ID,3,-7625.61,-1049.31,449.164,100,0,0,0,100,0), +(@PATH_ID,4,-7624.89,-1036.41,449.164,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+6)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7605.95,-984.189,440.111,100,0,0,0,100,0), +(@PATH_ID,2,-7640.56,-967.494,440.29,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+7)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7653.81,-979.409,440.263,100,0,0,0,100,0), +(@PATH_ID,2,-7619.22,-999.321,440.287,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+8)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7676.08,-1015.52,439.983,100,0,0,0,100,0), +(@PATH_ID,2,-7668.89,-1020.34,440.279,100,0,0,0,100,0), +(@PATH_ID,3,-7676.08,-1015.52,439.983,100,0,0,0,100,0), +(@PATH_ID,4,-7696.82,-1004.11,440.216,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+9)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7631.94,-1078.19,449.164,100,0,0,0,100,0), +(@PATH_ID,2,-7642.19,-1059.9,449.165,100,0,0,0,100,0), +(@PATH_ID,3,-7631.94,-1078.19,449.164,100,0,0,0,100,0), +(@PATH_ID,4,-7629.75,-1102.86,449.164,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+10)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7664.98,-1005.61,440.254,100,0,0,0,100,0), +(@PATH_ID,2,-7684.11,-996.917,440.204,100,0,0,0,100,0), +(@PATH_ID,3,-7664.98,-1005.61,440.254,100,0,0,0,100,0), +(@PATH_ID,4,-7647.92,-1020.32,440.232,100,0,0,0,100,0); + +DELETE FROM `linked_respawn` WHERE `guid` BETWEEN @CGUID AND @CGUID+10; +INSERT INTO `linked_respawn` (`guid`, `linkedGuid`, `linkType`) VALUES +(@CGUID,84387,0), +(@CGUID+1,84387,0), +(@CGUID+2,84387,0), +(@CGUID+3,84387,0), +(@CGUID+4,84387,0), +(@CGUID+5,84387,0), +(@CGUID+6,84387,0), +(@CGUID+7,84387,0), +(@CGUID+8,84387,0), +(@CGUID+9,84387,0), +(@CGUID+10,84387,0); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_18' WHERE sql_rev = '1648309713111396700'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_19.sql b/data/sql/updates/db_world/2022_03_27_19.sql new file mode 100644 index 000000000..a13753a21 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_19.sql @@ -0,0 +1,30 @@ +-- DB update 2022_03_27_18 -> 2022_03_27_19 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_18'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_18 2022_03_27_19 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1642567672467945212'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1642567672467945212'); + +UPDATE `smart_scripts` SET `event_param2`=0 WHERE `entryorguid`=17215 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param2`=0 WHERE `entryorguid`=17214 AND `source_type`=0 AND `id`=0 AND `link`=0; + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_19' WHERE sql_rev = '1642567672467945212'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_20.sql b/data/sql/updates/db_world/2022_03_27_20.sql new file mode 100644 index 000000000..aad8952f3 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_20.sql @@ -0,0 +1,1220 @@ +-- DB update 2022_03_27_19 -> 2022_03_27_20 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_19'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_19 2022_03_27_20 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1648089119541675100'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648089119541675100'); + +/* Fixes/Changes: Reginald Windosr/Adam and Billy/Extra Guard/Justin Brandon and Roman/Miss Danna/Donna and William/Janey Suzanne and Lisan/ +Orphanage/Karlee Chaddis, Paige, Gil, and Fizzles/Lil' Timmy/Sewer Beast/Underwater Construction Worker/Defias Prisoner */ + +-- ----------------------------------------Reginald Windsor---------------------------------------------------------------------- + +-- Reginald is dead in WOTLK +DELETE FROM `creature` WHERE `guid` = 86900; +DELETE FROM `creature_addon` WHERE `guid` = 86900; +DELETE FROM `waypoint_data` WHERE `id` = 869000; + +-- Refurbished Steam Tank Fix -- Removing Reginald's creature table entry breaks model 25289 for the tank +UPDATE `creature_template` SET `modelid1` = 25341, `modelid2` = 0 WHERE `entry` = 29144; + +-- ----------------------------------------End Reginald Windsor------------------------------------------------------------------ +-- ----------------------------------------Adam and Billy------------------------------------------------------------------------ + +DELETE FROM `creature` WHERE `guid` in (120700,120702); -- Remove duplicate Adam and Billy creatures + +DELETE FROM `creature_addon` WHERE `guid` in (79700,79702,120700,120702); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES +(79700,0,0,0,1,0,0,NULL), +(79702,0,0,0,1,0,0,NULL); + +UPDATE `creature_template` SET `AIName` = "SmartAI" WHERE `entry` in (1366,1367); + +DELETE FROM `smart_scripts` WHERE `entryorguid` in (1366,1367,136600,136601,136602,136700,136701); +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 +(1366,0,0,1,1,0,100,1,15000,15000,0,0,0,53,0,1366,1,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - OOC (No Repeat) - Start Waypoint'), +(1366,0,1,0,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - Linked - Set Data 1 0 \'Billy\''), +(1366,0,2,0,40,0,100,0,1,1366,0,0,0,80,136600,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Waypoint 1 Reached - Run Script'), +(1366,0,3,0,40,0,100,0,20,1366,0,0,0,45,1,10,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Waypoint 20 Reached - Set Data 1 10 \'Billy\''), +(1366,0,4,0,40,0,100,0,22,1366,0,0,0,80,136601,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Waypoint 22 Reached - Run Script'), +(1366,0,5,0,40,0,100,0,37,1366,0,0,0,45,1,10,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Waypoint 37 Reached - Set Data 1 10 \'Billy\''), +(1366,0,6,0,40,0,100,0,39,1366,0,0,0,80,136602,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Waypoint 39 Reached - Run Script'), +(1366,0,7,0,40,0,100,0,113,1366,0,0,0,45,1,10,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Waypoint 113 Reached - Set Data 1 10 \'Billy\''), +(1366,0,8,0,38,0,100,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Data Set 1 1 - Say Random 0'), + +(1367,0,0,0,38,0,100,0,1,0,0,0,0,29,0,330,0,0,0,0,10,79702,1366,0,0,0,0,0,0,'Billy - On Data Set 1 0 - Set Follow'), +(1367,0,1,0,38,0,100,0,1,2,0,0,0,69,0,0,0,0,0,0,1,0,0,0,0,-8746.148,534.447,96.338,0.942478,'Billy - On Data Set 1 2 - Move to POS'), +(1367,0,2,0,38,0,100,0,1,4,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0.942478,'Billy - On Data Set 1 4 - Set Orientation'), +(1367,0,3,0,38,0,100,0,1,3,0,0,0,69,0,0,0,0,0,0,1,0,0,0,0,-8793.934,771.825,96.338,1.6493,'Billy - On Data Set 1 3 - Move to POS'), +(1367,0,4,0,38,0,100,0,1,5,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1.6493,'Billy - On Data Set 1 5 - Set Orientation'), +(1367,0,5,0,38,0,100,0,1,6,0,0,0,69,0,0,0,0,0,0,1,0,0,0,0,-8842.04,956.97,96.338,5.40947,'Billy - On Data Set 1 6 - Move to POS'), +(1367,0,6,0,38,0,100,0,1,7,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,5.40947,'Billy - On Data Set 1 7 - Set Orientation'), +(1367,0,7,0,38,0,100,0,1,8,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Billy - On Data Set 1 8 - Set Phase 1'), +(1367,0,8,0,38,0,100,0,1,9,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Billy - On Data Set 1 9 - Set Phase 0'), +(1367,0,9,0,38,0,100,0,1,10,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Billy - On Data Set 1 10 - Say Line 1'), +(1367,0,10,0,1,0,100,0,30000,30000,90000,160000,0,80,136700,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Billy - OOC - Run Script'), +(1367,0,11,0,1,1,20,0,8000,8000,90000,150000,0,80,136701,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Billy - OOC - Run Script (Phase 1)'), + +-- Billy talk without the boot story and are there any fish dialogue +(136700,9,0,0,0,0,100,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Billy - On Script - Say Random 0'), +(136700,9,1,0,0,0,100,0,8000,12000,0,0,0,45,1,1,0,0,0,0,10,79702,1366,0,0,0,0,0,0,'Billy - On Script - Set Data 1 1 \'Adam\''), +(136700,9,2,0,0,0,100,0,8000,8000,0,0,0,59,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Billy - On Script - Set Run Off (Pause)'), + +-- Billy talk about him catching an old boot can say it only when he is at a dock +(136701,9,0,0,0,0,100,0,0,0,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Billy - On Script - Say Line 2'), +(136701,9,1,0,0,0,100,0,11000,11000,0,0,0,45,1,1,0,0,0,0,10,79702,1366,0,0,0,0,0,0,'Billy - On Script - Set Data 1 1 \'Adam\''), +(136701,9,2,0,0,0,100,0,8000,8000,0,0,0,59,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Billy - On Script - Set Run Off (Pause)'), + +-- Starting Dock +(136600,9,0,0,0,0,100,0,0,0,0,0,0,54,2300000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Script - Pause Waypoint'), +(136600,9,1,0,0,0,100,0,0,0,0,0,0,45,1,8,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 8 \'Billy\''), +(136600,9,2,0,0,0,100,0,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1.01889,'Adam - On Script - Set Orientation'), +(136600,9,3,0,0,0,100,0,0,0,0,0,0,45,1,2,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 2 \'Billy\''), +(136600,9,4,0,0,0,100,0,3000,3000,0,0,0,45,1,4,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 4 \'Billy\''), +(136600,9,5,0,0,0,100,0,1800000,2280000,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Script - Say Line 1'), +(136600,9,6,0,0,0,100,0,2000,2000,0,0,0,65,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Script - Resume Waypoint'), +(136600,9,7,0,0,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 0 \'Billy\''), +(136600,9,8,0,0,0,100,0,0,0,0,0,0,45,1,9,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 9 \'Billy\''), + +-- Second Dock +(136601,9,0,0,0,0,100,0,0,0,0,0,0,54,2300000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Script - Pause Waypoint'), +(136601,9,1,0,0,0,100,0,0,0,0,0,0,45,1,8,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 8 \'Billy\''), +(136601,9,2,0,0,0,100,0,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1.68,'Adam - On Script - Set Orientation'), +(136601,9,3,0,0,0,100,0,0,0,0,0,0,45,1,3,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 3 \'Billy\''), +(136601,9,4,0,0,0,100,0,3000,3000,0,0,0,45,1,5,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 5 \'Billy\''), +(136601,9,5,0,0,0,100,0,1800000,2280000,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Script - Say Line 1'), +(136601,9,6,0,0,0,100,0,2000,2000,0,0,0,65,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Script - Resume Waypoint'), +(136601,9,7,0,0,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 0 \'Billy\''), +(136601,9,8,0,0,0,100,0,0,0,0,0,0,45,1,9,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 9 \'Billy\''), + +-- Third Dock +(136602,9,0,0,0,0,100,0,0,0,0,0,0,54,2300000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Script - Pause Waypoint'), +(136602,9,1,0,0,0,100,0,0,0,0,0,0,45,1,8,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 8 \'Billy\''), +(136602,9,2,0,0,0,100,0,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,5.4067,'Adam - On Script - Set Orientation'), +(136602,9,3,0,0,0,100,0,0,0,0,0,0,45,1,6,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 6 \'Billy\''), +(136602,9,4,0,0,0,100,0,3000,3000,0,0,0,45,1,7,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 7 \'Billy\''), +(136602,9,5,0,0,0,100,0,1800000,2280000,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Script - Say Line 1'), +(136602,9,6,0,0,0,100,0,2000,2000,0,0,0,65,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Script - Resume Waypoint'), +(136602,9,7,0,0,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 0 \'Billy\''), +(136602,9,8,0,0,0,100,0,0,0,0,0,0,45,1,9,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 9 \'Billy\''); + +DELETE FROM `creature_text` WHERE `CreatureID` in (1367,1366); +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(1367,0,0,'I heard that there are these huge fish that can walk on land to hunt, and eat people!',12,7,100,1,0,0,139,0,'Billy - Talk'), +(1367,0,1,'My daddy says that in the ocean, there are fish so big they could swallow a whole ship.',12,7,100,1,0,0,133,0,'Billy - Talk'), +(1367,0,2,'I heard a story about this golden fish, and if you caught it you would get three wishes!',12,7,100,1,0,0,141,0,'Billy - Talk'), +(1367,0,3,'And one time, at camp, I caught a fish that was bigger than I am!!',12,7,100,1,0,0,140,0,'Billy - Talk'), +(1367,0,4,'I caught a big one last week, it had three eyes!',12,7,100,1,0,0,132,0,'Billy - Talk'), +(1367,0,5,'My daddy can catch more fish than your daddy!',12,7,100,1,0,0,134,0,'Billy - Talk'), +(1367,1,0,'Think there are any fish in here?',12,7,100,1,0,0,131,0,'Billy - Talk'), +(1367,2,0,'Look! Look! I caught something! Aww....it\'s just a stinky ol\' boot.',12,7,100,1,0,0,135,0,'Billy - Talk'), + +(1366,0,0,'You\'re making that up.',12,7,100,1,0,0,144,0,'Adam - Talk'), +(1366,0,1,'Shhh! You\'re scaring the fish away.',12,7,100,1,0,0,143,0,'Adam - Talk'), +(1366,0,2,'Really?',12,7,100,1,0,0,147,0,'Adam - Talk'), +(1366,0,3,'Nuh uh.',12,7,100,1,0,0,136,0,'Adam - Talk'), +(1366,0,4,'Maybe we should go to the bridge and fish.',12,7,100,1,0,0,146,0,'Adam - Talk'), +(1366,0,5,'Liar!',12,7,100,1,0,0,138,0,'Adam - Talk'), +(1366,0,6,'If you fished as well as you talked the ocean wouldn\'t have any fish left.',12,7,100,1,0,0,142,0,'Adam - Talk'), +(1366,0,7,'If you could catch a fish big enough for your mouth we\'d never be hungry again.',12,7,100,1,0,0,145,0,'Adam - Talk'), +(1366,1,0,'C\'mon, let\'s try somewhere else.',12,7,100,1,0,0,1086,0,'Adam - Talk'); + +DELETE FROM `waypoints` WHERE `entry` = 1366; +INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`point_comment`) VALUES +(1366,1,-8747.28,535.483,96.338,0,0,'Adam'), +(1366,2,-8753.812,529.035,96.339,0,0,'Adam'), +(1366,3,-8763.095,535.144,97.396,0,0,'Adam'), +(1366,4,-8762.947,547.032,97.396,0,0,'Adam'), +(1366,5,-8752.085,560.404,97.398,0,0,'Adam'), +(1366,6,-8746.01,564.915,97.4001,0,0,'Adam'), +(1366,7,-8729.92,581.294,97.6775,0,0,'Adam'), +(1366,8,-8719.58,591.033,98.4713,0,0,'Adam'), +(1366,9,-8712.04,594.001,98.6079,0,0,'Adam'), +(1366,10,-8707.26,600.676,98.9982,0,0,'Adam'), +(1366,11,-8704.46,616.407,100.215,0,0,'Adam'), +(1366,12,-8705.6,629.078,100.477,0,0,'Adam'), +(1366,13,-8708.67,645.787,99.9994,0,0,'Adam'), +(1366,14,-8716.46,666.585,98.8681,0,0,'Adam'), +(1366,15,-8724.09,676.482,98.6317,0,0,'Adam'), +(1366,16,-8728.54,684.167,98.7324,0,0,'Adam'), +(1366,17,-8733.47,695.151,98.723,0,0,'Adam'), +(1366,18,-8743.6,709.876,98.2678,0,0,'Adam'), +(1366,19,-8762.525,732.975,98.74,0,0,'Adam'), +(1366,20,-8781.188,743.14,99.253,0,0,'Adam'), +(1366,21,-8794.655,752.188,97.432,0,0,'Adam'), +(1366,22,-8795.867,771.807,96.338,0,0,'Adam'), +(1366,23,-8794.655,752.188,97.432,0,0,'Adam'), +(1366,24,-8798.565,744.748,97.620,0,0,'Adam'), +(1366,25,-8845.016,722.505,97.193,0,0,'Adam'), +(1366,26,-8851.771,733.43,99.925,0,0,'Adam'), +(1366,27,-8860.571,747.201,99.95,0,0,'Adam'), +(1366,28,-8869.517,760.847,96.742,0,0,'Adam'), +(1366,29,-8863.425,769.865,96.77,0,0,'Adam'), +(1366,30,-8829.957,794.505,96.72,0,0,'Adam'), +(1366,31,-8820.471,843.081,98.95,0,0,'Adam'), +(1366,32,-8829.243,895.12,98.128,0,0,'Adam'), +(1366,33,-8850.94,928.807,102.017,0,0,'Adam'), +(1366,34,-8843.91,933.491,104.097,0,0,'Adam'), +(1366,35,-8816.65,953.442,100.743,0,0,'Adam'), +(1366,36,-8828.869,972.542,98.555,0,0,'Adam'), +(1366,37,-8838.333,972.233,97.846,0,0,'Adam'), +(1366,38,-8846.433,965.744,96.338,0,0,'Adam'), +(1366,39,-8840.67,958.553,96.338,0,0,'Adam'), +(1366,40,-8846.433,965.744,96.338,0,0,'Adam'), +(1366,41,-8838.333,972.233,97.846,0,0,'Adam'), +(1366,42,-8828.869,972.542,98.555,0,0,'Adam'), +(1366,43,-8816.65,953.442,100.743,0,0,'Adam'), +(1366,44,-8767.52,895.508,101.256,0,0,'Adam'), +(1366,45,-8753.45,892,101.896,0,0,'Adam'), +(1366,46,-8740.3,893.588,101.375,0,0,'Adam'), +(1366,47,-8726.64,877.216,102.712,0,0,'Adam'), +(1366,48,-8711.78,859.391,96.9622,0,0,'Adam'), +(1366,49,-8709.601,858.748,96.993,0,0,'Adam'), +(1366,50,-8712.475,853.661,96.86,0,0,'Adam'), +(1366,51,-8718.147,846.137,96.43,0,0,'Adam'), +(1366,52,-8727.39,831.585,96.2625,0,0,'Adam'), +(1366,53,-8726.35,812.836,97.0629,0,0,'Adam'), +(1366,54,-8717.01,798.201,97.1855,0,0,'Adam'), +(1366,55,-8717.02,792.913,97.1566,0,0,'Adam'), +(1366,56,-8728.06,775.333,98.0319,0,0,'Adam'), +(1366,57,-8733.64,764.22,97.9501,0,0,'Adam'), +(1366,58,-8722.22,747.857,98.0333,0,0,'Adam'), +(1366,59,-8711.9,732.893,97.8112,0,0,'Adam'), +(1366,60,-8698.59,714.268,97.0168,0,0,'Adam'), +(1366,61,-8691.63,704.794,97.1053,0,0,'Adam'), +(1366,62,-8683.28,695.683,97.8567,0,0,'Adam'), +(1366,63,-8671.771,683.623,98.876,0,0,'Adam'), +(1366,64,-8669.76,678.045,99.3877,0,0,'Adam'), +(1366,65,-8662.717,666.586,100.377,0,0,'Adam'), +(1366,66,-8654.11,660.351,100.865,0,0,'Adam'), +(1366,67,-8639.43,656.589,101.082,0,0,'Adam'), +(1366,68,-8631.83,655.639,100.63,0,0,'Adam'), +(1366,69,-8620.59,654.378,99.1946,0,0,'Adam'), +(1366,70,-8597.947,657.882,98.377,0,0,'Adam'), +(1366,71,-8593.052,656.774,98.221,0,0,'Adam'), +(1366,72,-8578.838,662.088,97.607,0,0,'Adam'), +(1366,73,-8561.86,674.735,97.0168,0,0,'Adam'), +(1366,74,-8556.46,676.784,97.0168,0,0,'Adam'), +(1366,75,-8542.79,686.774,97.6239,0,0,'Adam'), +(1366,76,-8532.769,688.506,97.661,0,0,'Adam'), +(1366,77,-8528.005,682.699,99.567,0,0,'Adam'), +(1366,78,-8522.24,670.618,102.794,0,0,'Adam'), +(1366,79,-8519.8,666.4,102.615,0,0,'Adam'), +(1366,80,-8512.94,656.648,100.901,0,0,'Adam'), +(1366,81,-8513.15,648.714,100.292,0,0,'Adam'), +(1366,82,-8518.18,642.361,100.092,0,0,'Adam'), +(1366,83,-8538.04,630.723,100.404,0,0,'Adam'), +(1366,84,-8554.03,617.81,102.053,0,0,'Adam'), +(1366,85,-8564.5,613.48,102.435,0,0,'Adam'), +(1366,86,-8576.12,601.799,103.26,0,0,'Adam'), +(1366,87,-8582.44,589.572,103.691,0,0,'Adam'), +(1366,88,-8586.68,575.605,102.985,0,0,'Adam'), +(1366,89,-8585.96,565.941,102.26,0,0,'Adam'), +(1366,90,-8578.9,545.988,101.779,0,0,'Adam'), +(1366,91,-8581.73,541.012,102.09,0,0,'Adam'), +(1366,92,-8590.09,533.912,104.76,0,0,'Adam'), +(1366,93,-8598.32,527.164,106.399,0,0,'Adam'), +(1366,94,-8605.67,520.882,105.748,0,0,'Adam'), +(1366,95,-8610.26,515.735,103.79,0,0,'Adam'), +(1366,96,-8613.43,514.684,103.401,0,0,'Adam'), +(1366,97,-8618.8,518.794,103.068,0,0,'Adam'), +(1366,98,-8635.17,535.152,99.9833,0,0,'Adam'), +(1366,99,-8647.39,546.721,97.8568,0,0,'Adam'), +(1366,100,-8655.78,552.938,96.9435,0,0,'Adam'), +(1366,101,-8671.86,552.874,97.2037,0,0,'Adam'), +(1366,102,-8679.66,549.654,97.5031,0,0,'Adam'), +(1366,103,-8689.63,540.268,97.828,0,0,'Adam'), +(1366,104,-8698.98,530.295,97.7173,0,0,'Adam'), +(1366,105,-8712.64,520.242,97.2398,0,0,'Adam'), +(1366,106,-8715.24,521.571,97.4039,0,0,'Adam'), +(1366,107,-8720.77,528.729,99.1496,0,0,'Adam'), +(1366,108,-8729.84,539.87,101.105,0,0,'Adam'), +(1366,109,-8735.95,547.101,100.845,0,0,'Adam'), +(1366,110,-8745.79,557.737,97.7107,0,0,'Adam'), +(1366,111,-8755.938,556.376,97.396,0,0,'Adam'), +(1366,112,-8762.947,547.032,97.396,0,0,'Adam'), +(1366,113,-8763.095,535.144,97.396,0,0,'Adam'), +(1366,114,-8753.812,529.035,96.339,0,0,'Adam'); + +-- ---------------------------------------------End Adam and Billy---------------------------------------------------------- +-- -----------------------------------------Canals Extra Guard Cleanup------------------------------------------------------ + +-- Duplicate Solidier just randomly moving around another stationary guard +DELETE FROM `creature` WHERE `guid` = 120682; +DELETE FROM `creature_addon` WHERE `guid` = 120682; + +-- -----------------------------------------End Canals Extra Guard Cleanup--------------------------------------------------- +-- -------------------------------------------Justin, Brandon, and Roman----------------------------------------------------- + +UPDATE `creature` SET `MovementType` = 0 WHERE `guid` in (79815,79816,79817); +UPDATE `creature_addon` SET `path_id` = 0,`bytes2` = 1 WHERE `guid` in (79815,79816,79817); +UPDATE `creature_template` SET `AIName` = "SmartAI" WHERE `entry` in (1368,1370,1371); + +DELETE FROM `smart_scripts` WHERE `entryorguid` in (1368,1370,1371,136800,137000,137001); +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 +(1368,0,0,0,38,0,100,0,1,0,0,0,0,29,0,75,0,0,0,0,10,79817,1370,0,0,0,0,0,0,'Justin - On Data Set 1 0 - Set Follow'), +(1368,0,1,0,38,0,100,0,1,2,0,0,0,69,0,0,0,0,0,0,1,0,0,0,0,-8582.03,633.634,96.3386,5.0381,'Justin - On Data Set 1 2 - Move to POS'), +(1368,0,2,0,38,0,100,0,1,4,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,5.0381,'Justin - On Data Set 1 4 - Set Orientation'), +(1368,0,3,0,38,0,100,0,1,3,0,0,0,69,0,0,0,0,0,0,1,0,0,0,0,-8675.673,909.057,96.338,3.768,'Justin - On Data Set 1 3 - Move to POS'), +(1368,0,4,0,38,0,100,0,1,5,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3.768,'Justin - On Data Set 1 5 - Set Orientation'), +(1368,0,5,0,1,0,100,0,30000,30000,80000,160000,0,80,136800,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Justin - OOC - Run Script'), + +(1371,0,0,0,38,0,100,0,1,0,0,0,0,29,0,285,0,0,0,0,10,79817,1370,0,0,0,0,0,0,'Roman - On Data Set 1 0 - Set Follow'), +(1371,0,1,0,38,0,100,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Roman - On Data Set 1 1 - Say Random 0'), +(1371,0,2,0,38,0,100,0,1,2,0,0,0,69,0,0,0,0,0,0,1,0,0,0,0,-8583.88,633.127,96.3386,5.0381,'Roman - On Data Set 1 2 - Move to POS'), +(1371,0,3,0,38,0,100,0,1,4,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,5.0381,'Roman - On Data Set 1 4 - Set Orientation'), +(1371,0,4,0,38,0,100,0,1,3,0,0,0,69,0,0,0,0,0,0,1,0,0,0,0,-8673.55,912.143,96.338,2.282,'Roman - On Data Set 1 3 - Move to POS'), +(1371,0,5,0,38,0,100,0,1,5,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2.282,'Roman - On Data Set 1 5 - Set Orientation'), + +(1370,0,0,1,1,0,100,1,25000,25000,0,0,0,53,0,1370,1,0,0,0,1,0,0,0,0,0,0,0,0,'Brandon - OOC (No Repeat) - Start Waypoint'), +(1370,0,1,2,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79815,1368,0,0,0,0,0,0,'Brandon - Linked - Set Data 1 0 \'Justin\''), +(1370,0,2,0,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79816,1371,0,0,0,0,0,0,'Brandon - Linked - Set Data 1 0 \'Roman\''), +(1370,0,3,0,40,0,100,0,1,1370,0,0,0,80,137000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Brandon - On Waypoint 1 Reached - Run Script'), +(1370,0,4,0,40,0,100,0,32,1370,0,0,0,80,137001,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Brandon - On Waypoint 32 Reached - Run Script'), +(1370,0,5,0,38,0,100,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Brandon - On Data Set 1 1 - Say Random 0'), + +(136800,9,0,0,0,0,100,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Justin - On Script - Say Random 0'), +(136800,9,1,0,0,0,100,0,4000,8000,0,0,0,45,1,1,0,0,0,0,10,79817,1370,0,0,0,0,0,0,'Justin - On Script - Set Data 1 1 \'Brandon\''), +(136800,9,2,0,0,0,100,0,6000,9000,0,0,0,45,1,1,0,0,0,0,10,79816,1371,0,0,0,0,0,0,'Justin - On Script - Set Data 1 1 \'Roman\''), + +-- Starting Dock +(137000,9,0,0,0,0,100,0,0,0,0,0,0,54,4520000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Brandon - On Script - Pause Waypoint'), +(137000,9,1,0,0,0,100,0,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0.2961,'Brandon - On Script - Set Orientation'), +(137000,9,2,0,0,0,100,0,0,0,0,0,0,45,1,2,0,0,0,0,10,79816,1371,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 2 \'Roman\''), +(137000,9,3,0,0,0,100,0,0,0,0,0,0,45,1,2,0,0,0,0,10,79815,1368,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 2 \'Justin\''), +(137000,9,4,0,0,0,100,0,3000,3000,0,0,0,45,1,4,0,0,0,0,10,79816,1371,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 4 \'Roman\''), +(137000,9,5,0,0,0,100,0,0,0,0,0,0,45,1,4,0,0,0,0,10,79815,1368,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 4 \'Justin\''), +(137000,9,6,0,0,0,100,0,3600000,4500000,0,0,0,65,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Brandon - On Script - Resume Waypoint'), +(137000,9,7,0,0,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79815,1368,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 0 \'Justin\''), +(137000,9,8,0,0,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79816,1371,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 0 \'Roman\''), + +-- Second Dock +(137001,9,0,0,0,0,100,0,0,0,0,0,0,54,4520000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Brandon - On Script - Pause Waypoint'), +(137001,9,1,0,0,0,100,0,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2.282,'Brandon - On Script - Set Orientation'), +(137001,9,2,0,0,0,100,0,0,0,0,0,0,45,1,3,0,0,0,0,10,79816,1371,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 3 \'Roman\''), +(137001,9,3,0,0,0,100,0,0,0,0,0,0,45,1,3,0,0,0,0,10,79815,1368,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 3 \'Justin\''), +(137001,9,4,0,0,0,100,0,3000,3000,0,0,0,45,1,5,0,0,0,0,10,79816,1371,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 5 \'Roman\''), +(137001,9,5,0,0,0,100,0,0,0,0,0,0,45,1,5,0,0,0,0,10,79815,1368,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 5 \'Justin\''), +(137001,9,6,0,0,0,100,0,3600000,4500000,0,0,0,65,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Brandon - On Script - Resume Waypoint'), +(137001,9,7,0,0,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79815,1368,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 0 \'Justin\''), +(137001,9,8,0,0,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79816,1371,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 0 \'Roman\''); + +DELETE FROM `creature_text` WHERE `CreatureID` in (1368,1370,1371); +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(1368,0,0,'And so the knights stood before the charging Horde and held their ground as a thousand berserk orcs came through the valley.',12,7,100,1,0,0,150,0,'Justin - Talk'), +(1368,0,1,'And that\'s how Lothar killed thirty six orcs with his bare hands!',12,7,100,1,0,0,149,0,'Justin - Talk'), +(1368,0,2,'And then the rabbit just bit his head off... I swear.',12,7,100,1,0,0,155,0,'Justin - Talk'), +(1368,0,3,'They say he can turn into a raven sometimes.',12,7,100,1,0,0,151,0,'Justin - Talk'), +(1368,0,4,'You know there are crocolisks in the Canals. They were brought from the swamp as pets, but got thrown in the canals.',12,7,100,1,0,0,156,0,'Justin - Talk'), +(1368,0,5,'You know why orc eyes glow red? It\'s because they drink blood!',12,7,100,1,0,0,152,0,'Justin - Talk'), +(1368,0,6,'I swear, people have actually seen them. Pandaren really do exist!',12,7,100,1,0,0,154,0,'Justin - Talk'), +(1368,0,7,'There is no spoon.',12,7,100,1,0,0,153,0,'Justin - Talk'), + +(1370,0,0,'My father says that\'s just a story.',12,7,100,1,0,0,168,0,'Brandon - Talk'), +(1370,0,1,'Can you imagine?',12,7,100,1,0,0,169,0,'Brandon - Talk'), +(1370,0,2,'Oh c\'mon, that\'s not true.',12,7,100,1,0,0,166,0,'Brandon - Talk'), +(1370,0,3,'Oh yeah, I heard about that.',12,7,100,1,0,0,158,0,'Brandon - Talk'), +(1370,0,4,'Really?',12,7,100,1,0,0,147,0,'Brandon - Talk'), +(1370,0,5,'Sounds kinda like one of Billy\'s fish stories to me.',12,7,100,1,0,0,170,0,'Brandon - Talk'), +(1370,0,6,'That\'s neat.',12,7,100,1,0,0,167,0,'Brandon - Talk'), +(1370,0,7,'Wow.',12,7,100,1,0,0,157,0,'Brandon - Talk'), + +(1371,0,0,'Eww... that\'s not a fish!',12,7,100,1,0,0,173,0,'Roman - Talk'), +(1371,0,1,'I don\'t think there\'s any fish in these canals.',12,7,100,1,0,0,177,0,'Roman - Talk'), +(1371,0,2,'I got worm guts on my shoes.',12,7,100,1,0,0,174,0,'Roman - Talk'), +(1371,0,3,'I hope that was a fish!',12,7,100,1,0,0,176,0,'Roman - Talk'), +(1371,0,4,'I think I see something.',12,7,100,1,0,0,172,0,'Roman - Talk'), +(1371,0,5,'Something smells funny.',12,7,100,1,0,0,175,0,'Roman - Talk'), +(1371,0,6,'Worm goes on the hook, hook goes in the water. Fish is in the water, our fish.',12,7,100,1,0,0,178,0,'Roman - Talk'), +(1371,0,7,'I thought I heard something.',12,7,100,1,0,0,171,0,'Roman - Talk'); + +DELETE FROM `waypoint_scripts` WHERE `id` >= 285 and `id` <= 307; +DELETE FROM `waypoint_data` WHERE `id` in (798150,798160,798170); + +DELETE FROM `waypoints` WHERE `entry` = 1370; +INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`point_comment`) VALUES +(1370,1,-8580.51,635.108,96.3386,0,0,'Brandon'), +(1370,2,-8582.773,635.572,96.338,0,0,'Brandon'), +(1370,3,-8593.052,656.774,98.221,0,0,'Brandon'), +(1370,4,-8597.947,657.882,98.377,0,0,'Brandon'), +(1370,5,-8620.59,654.378,99.1946,0,0,'Brandon'), +(1370,6,-8631.83,655.639,100.63,0,0,'Brandon'), +(1370,7,-8639.43,656.589,101.082,0,0,'Brandon'), +(1370,8,-8654.11,660.351,100.865,0,0,'Brandon'), +(1370,9,-8662.717,666.586,100.377,0,0,'Brandon'), +(1370,10,-8669.76,678.045,99.3877,0,0,'Brandon'), +(1370,11,-8671.771,683.623,98.876,0,0,'Brandon'), +(1370,12,-8683.28,695.683,97.8567,0,0,'Brandon'), +(1370,13,-8691.63,704.794,97.1053,0,0,'Brandon'), +(1370,14,-8698.59,714.268,97.0168,0,0,'Brandon'), +(1370,15,-8711.9,732.893,97.8112,0,0,'Brandon'), +(1370,16,-8722.22,747.857,98.0333,0,0,'Brandon'), +(1370,17,-8733.64,764.22,97.9501,0,0,'Brandon'), +(1370,18,-8728.06,775.333,98.0319,0,0,'Brandon'), +(1370,19,-8717.02,792.913,97.1566,0,0,'Brandon'), +(1370,20,-8717.01,798.201,97.1855,0,0,'Brandon'), +(1370,21,-8726.35,812.836,97.0629,0,0,'Brandon'), +(1370,22,-8727.39,831.585,96.2625,0,0,'Brandon'), +(1370,23,-8718.147,846.137,96.43,0,0,'Brandon'), +(1370,24,-8712.475,853.661,96.86,0,0,'Brandon'), +(1370,25,-8709.601,858.748,96.993,0,0,'Brandon'), +(1370,26,-8705.86,860.48,97.0867,0,0,'Brandon'), +(1370,27,-8692.29,871.475,97.0226,0,0,'Brandon'), +(1370,28,-8682.01,878.208,97.0173,0,0,'Brandon'), +(1370,29,-8658.599,900.099,97.549,0,0,'Brandon'), +(1370,30,-8663.312,909.099,96.958,0,0,'Brandon'), +(1370,31,-8667.227,911.786,96.338,0,0,'Brandon'), +(1370,32,-8674.834,911.015,96.338,0,0,'Brandon'), +(1370,33,-8667.227,911.786,96.338,0,0,'Brandon'), +(1370,34,-8663.312,909.099,96.958,0,0,'Brandon'), +(1370,35,-8658.599,900.099,97.549,0,0,'Brandon'), +(1370,36,-8682.01,878.208,97.0173,0,0,'Brandon'), +(1370,37,-8692.29,871.475,97.0226,0,0,'Brandon'), +(1370,38,-8705.86,860.48,97.0867,0,0,'Brandon'), +(1370,39,-8709.601,858.748,96.993,0,0,'Brandon'), +(1370,40,-8712.475,853.661,96.86,0,0,'Brandon'), +(1370,41,-8718.147,846.137,96.43,0,0,'Brandon'), +(1370,42,-8727.39,831.585,96.2625,0,0,'Brandon'), +(1370,43,-8726.35,812.836,97.0629,0,0,'Brandon'), +(1370,44,-8717.01,798.201,97.1855,0,0,'Brandon'), +(1370,45,-8717.02,792.913,97.1566,0,0,'Brandon'), +(1370,46,-8728.06,775.333,98.0319,0,0,'Brandon'), +(1370,47,-8733.64,764.22,97.9501,0,0,'Brandon'), +(1370,48,-8722.22,747.857,98.0333,0,0,'Brandon'), +(1370,49,-8711.9,732.893,97.8112,0,0,'Brandon'), +(1370,50,-8698.59,714.268,97.0168,0,0,'Brandon'), +(1370,51,-8691.63,704.794,97.1053,0,0,'Brandon'), +(1370,52,-8683.28,695.683,97.8567,0,0,'Brandon'), +(1370,53,-8671.771,683.623,98.876,0,0,'Brandon'), +(1370,54,-8669.76,678.045,99.3877,0,0,'Brandon'), +(1370,55,-8662.717,666.586,100.377,0,0,'Brandon'), +(1370,56,-8654.11,660.351,100.865,0,0,'Brandon'), +(1370,57,-8639.43,656.589,101.082,0,0,'Brandon'), +(1370,58,-8631.83,655.639,100.63,0,0,'Brandon'), +(1370,59,-8620.59,654.378,99.1946,0,0,'Brandon'), +(1370,60,-8597.947,657.882,98.377,0,0,'Brandon'), +(1370,61,-8593.052,656.774,98.221,0,0,'Brandon'), +(1370,62,-8582.773,635.572,96.338,0,0,'Brandon'); + +-- --------------------------------------------------End Justin, Brandon, and Roman------------------------------------------------ +-- ---------------------------------------------------Miss Danna and students------------------------------------------------------ + +DELETE FROM `creature` WHERE `guid` = 87023; +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 +(87023,3509,0,0,0,0,0,1,1,0,-8838.52,670.28,98.0987,0.553153,300,0,0,1,0,0,0,0,0,'',0); + +UPDATE `creature` SET `MovementType` = 0 WHERE `guid` in (87092,87088,87090,87089,87082,87091,84028); +UPDATE `creature_addon` SET `path_id` = 0 WHERE `guid` in (87092,87088,87090,87089,87082,87091,84028); + +DELETE FROM `waypoint_data` WHERE `id` in (870920,870880,870900,870890,870820,870910,840280); +DELETE FROM `waypoint_scripts` WHERE `id` >= 315 and `id` <= 328 or `id` in (413,414,415); + +UPDATE `creature_template` SET `AIName` = "SmartAI" WHERE `entry` in (3505,3507,3508,3509,3510,3511,3512,3513); + +DELETE FROM `creature_text` WHERE `CreatureID` in (3511,3512,3513); +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(3511,0,0,'Why do we have to learn this stuff anyway?',12,7,100,1,0,0,1130,0,'Steven - Talk'), +(3511,0,1,'It\'s better than the drawings in the history tomes.',12,7,100,1,0,0,1131,0,'Steven - Talk'), +(3511,0,2,'Teacher, when are we gonna see the sparkly Mage Tower?',12,7,100,1,0,0,1133,0,'Steven - Talk'), +(3511,0,3,'Teacher, I have to pee!',12,7,100,1,0,0,1136,0,'Steven - Talk'), +(3511,0,4,'Teacher are there night elves in Stormwind? I\'ve never seen a night elf before.',12,7,100,1,0,0,1138,0,'Steven - Talk'), +(3511,0,5,'Teacher, he keeps poking me!',12,7,100,1,0,0,1139,0,'Steven - Talk'), +(3511,0,6,'I heard there are still orcs buried underneath it.',12,7,100,1,0,0,1134,0,'Steven - Talk'), +(3511,0,7,'I wanna see the dragon skeleton in the great library.',12,7,100,1,0,0,1132,0,'Steven - Talk'), +(3512,0,0,'Is it true that the paladins train here?',12,7,100,1,0,0,1153,0,'Jimmy - Talk'), +(3513,0,0,'Here we have the Cathedral of Light, the center of spiritual enlightenment here in Stormwind.',12,7,100,1,0,0,1129,0,'Miss Danna - Talk'), +(3513,1,0,'Here we have Stormwind Keep. Built upon the ruins of Stormwind Castle, which was destroyed by the Horde in the first Great War.',12,7,100,1,0,0,1140,0,'Miss Danna - Talk'), +(3513,2,0,'Yes, that is true. Paladins and priests alike train their skills and research great truths behind the walls of the Cathedral.',12,7,100,1,0,0,1154,0,'Miss Danna - Talk'), +(3513,3,0,'Children if you would please follow me, we will now be going to see the keep where King Varian Wrynn himself sits on his throne.',12,7,100,1,0,0,1155,0,'Miss Danna - Talk'), +(3513,4,0,'When the Horde was shattered, men returned here and began to rebuild the once great city as a testament to our own survival.',12,7,100,1,0,0,1161,0,'Miss Danna - Talk'), +(3513,5,0,'Yes, well...let\'s head on to the monument dedicated to the heroes of the two Great Wars, the Valley of Heroes. Follow me.',12,7,100,1,0,0,1162,0,'Miss Danna - Talk'), +(3513,6,0,'Isn\'t it amazing, children? All who enter the city must walk beneath the watchful eyes of the greatest heroes of our lands.',12,7,100,1,0,0,1163,0,'Miss Danna - Talk'), +(3513,7,0,'Breathtaking. Children, when we return to the school, you will each give an oral report on one of these legendary people.',12,7,100,1,0,0,1165,0,'Miss Danna - Talk'), +(3513,8,0,'Now, take another long look before we make our way to the Holy District and the great Cathedral of Light.',12,7,100,1,0,0,1166,0,'Miss Danna - Talk'); + +DELETE FROM `smart_scripts` WHERE `entryorguid` in (3505,3507,3508,3509,3510,3511,3512,3513,351300,351301,351302); +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 +(3505,0,0,0,38,0,100,0,1,0,0,0,0,29,1,240,0,0,0,0,10,84028,3513,0,0,0,0,0,0,'Pat - On Data Set 1 0 - Set Follow'), +(3507,0,0,0,38,0,100,0,1,0,0,0,0,29,1,220,0,0,0,0,10,84028,3513,0,0,0,0,0,0,'Andi - On Data Set 1 0 - Set Follow'), +(3508,0,0,0,38,0,100,0,1,0,0,0,0,29,1,160,0,0,0,0,10,84028,3513,0,0,0,0,0,0,'Mikey - On Data Set 1 0 - Set Follow'), +(3509,0,0,0,38,0,100,0,1,0,0,0,0,29,1,120,0,0,0,0,10,84028,3513,0,0,0,0,0,0,'Geoff - On Data Set 1 0 - Set Follow'), +(3510,0,0,0,38,0,100,0,1,0,0,0,0,29,1,200,0,0,0,0,10,84028,3513,0,0,0,0,0,0,'Twain - On Data Set 1 0 - Set Follow'), +(3511,0,0,0,38,0,100,0,1,0,0,0,0,29,1,180,0,0,0,0,10,84028,3513,0,0,0,0,0,0,'Steven - On Data Set 1 0 - Set Follow'), +(3511,0,1,0,38,0,100,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Steven - On Data Set 1 1 - Say 0 0'), +(3512,0,0,0,38,0,100,0,1,0,0,0,0,29,1,140,0,0,0,0,10,84028,3513,0,0,0,0,0,0,'Jimmy - On Data Set 1 0 - Set Follow'), +(3512,0,1,0,38,0,100,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Jimmy - On Data Set 1 1 - Say 0 0'), +(3513,0,0,0,40,0,100,0,21,3513,0,0,0,80,351300,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Waypoint 21 Reached - Run Script'), +(3513,0,1,0,40,0,100,0,37,3513,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Waypoint 37 Reached - Say 1 0'), +(3513,0,2,0,40,0,100,0,38,3513,0,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Waypoint 38 Reached - Say 4 0'), +(3513,0,3,0,40,0,100,0,39,3513,0,0,0,80,351301,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Waypoint 39 Reached - Run Script'), +(3513,0,4,0,40,0,100,0,53,3513,0,0,0,1,6,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Waypoint 53 Reached - Say 6 0'), +(3513,0,5,0,40,0,100,0,54,3513,0,0,0,1,7,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Waypoint 54 Reached - Say 7 0'), +(3513,0,6,0,40,0,100,0,55,3513,0,0,0,80,351302,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Waypoint 55 Reached - Run Script'), +(3513,0,7,8,1,0,100,1,25000,25000,0,0,0,53,0,3513,1,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - OOC (No Repeat) - Start Waypoint'), +(3513,0,8,9,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,87082,3512,0,0,0,0,0,0,'Miss Danna - Linked - Set Data 1 0 \'Jimmy\''), +(3513,0,9,10,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,87089,3511,0,0,0,0,0,0,'Miss Danna - Linked - Set Data 1 0 \'Steven\''), +(3513,0,10,11,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,87090,3510,0,0,0,0,0,0,'Miss Danna - Linked - Set Data 1 0 \'Twain\''), +(3513,0,11,12,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,87023,3509,0,0,0,0,0,0,'Miss Danna - Linked - Set Data 1 0 \'Geoff\''), +(3513,0,12,13,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,87088,3508,0,0,0,0,0,0,'Miss Danna - Linked - Set Data 1 0 \'Mikey\''), +(3513,0,13,14,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,87091,3507,0,0,0,0,0,0,'Miss Danna - Linked - Set Data 1 0 \'Andi\''), +(3513,0,14,0,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,87092,3505,0,0,0,0,0,0,'Miss Danna - Linked - Set Data 1 0 \'Pat\''), +(3513,0,15,0,40,0,100,0,11,3513,0,0,0,54,1500,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Waypoint 11 Reached - Pause Waypoint'), + +(351300,9,0,0,0,0,100,0,0,0,0,0,0,54,44000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Pause Waypoint'), +(351300,9,1,0,0,0,100,0,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0.663,'Miss Danna - On Script - Set Orientation'), +(351300,9,2,0,0,0,100,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Say 0 0'), +(351300,9,3,0,0,0,100,0,11000,11000,0,0,0,5,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Emote Talk'), +(351300,9,4,0,0,0,100,0,10000,10000,0,0,0,45,1,1,0,0,0,0,10,87082,3512,0,0,0,0,0,0,'Miss Danna - On Script - Set Data 1 1 \'Jimmy\''), +(351300,9,5,0,0,0,100,0,8000,8000,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Say 2 0'), +(351300,9,6,0,0,0,100,0,11000,11000,0,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Say 3 0'), + +(351301,9,0,0,0,0,100,0,0,0,0,0,0,54,45000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Pause Waypoint'), +(351301,9,1,0,0,0,100,0,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,5.433,'Miss Danna - On Script - Set Orientation'), +(351301,9,2,0,0,0,100,0,0,0,0,0,0,5,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Emote Talk'), +(351301,9,3,0,0,0,100,0,16000,16000,0,0,0,45,1,1,0,0,0,0,10,87089,3511,0,0,0,0,0,0,'Miss Danna - On Script - Set Data 1 1 \'Steven\''), +(351301,9,4,0,0,0,100,0,10000,10000,0,0,0,1,5,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Say 5 0'), +(351301,9,5,0,0,0,100,0,18000,18000,0,0,0,5,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Emote Talk'), + +(351302,9,0,0,0,0,100,0,0,0,0,0,0,54,19000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Pause Waypoint'), +(351302,9,1,0,0,0,100,0,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3.589,'Miss Danna - On Script - Set Orientation'), +(351302,9,2,0,0,0,100,0,0,0,0,0,0,1,8,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Say 8 0'), +(351302,9,3,0,0,0,100,0,9000,9000,0,0,0,5,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Emote Talk'), +(351302,9,4,0,0,0,100,0,8000,8000,0,0,0,5,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Emote Talk'); + +-- Miss Danna Waypoints +DELETE FROM `waypoints` WHERE `entry` = 3513; +INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`point_comment`) VALUES +(3513,1,-8824.65,677.359,97.6724,0,0,'Miss Danna'), +(3513,2,-8844.06,721.315,97.3127,0,0,'Miss Danna'), +(3513,3,-8794.66,745.738,97.8358,0,0,'Miss Danna'), +(3513,4,-8765.71,737.339,98.9571,0,0,'Miss Danna'), +(3513,5,-8744.1,711.742,98.1589,0,0,'Miss Danna'), +(3513,6,-8736.13,717.57,101.035,0,0,'Miss Danna'), +(3513,7,-8714.09,735.726,97.8129,0,0,'Miss Danna'), +(3513,8,-8698.83,714.642,97.0168,0,0,'Miss Danna'), +(3513,9,-8657.55,748.029,96.6892,0,0,'Miss Danna'), +(3513,10,-8658.68,767.899,96.6925,0,0,'Miss Danna'), +(3513,11,-8634.49,787.411,96.6512,0,0,'Miss Danna'), +(3513,12,-8662.17,821.239,96.6386,0,0,'Miss Danna'), +(3513,13,-8653.53,826.735,96.5285,0,0,'Miss Danna'), +(3513,14,-8608.62,861.791,96.6798,0,0,'Miss Danna'), +(3513,15,-8600.32,850.058,96.6911,0,0,'Miss Danna'), +(3513,16,-8616.11,837.915,96.7385,0,0,'Miss Danna'), +(3513,17,-8637.49,816.942,96.6393,0,0,'Miss Danna'), +(3513,18,-8629.56,781.904,96.6514,0,0,'Miss Danna'), +(3513,19,-8623.89,774.974,96.6518,0,0,'Miss Danna'), +(3513,20,-8623.29,775.529,96.6512,0,0,'Miss Danna'), +(3513,21,-8621.904,776.592,96.6512,0,0,'Miss Danna'), +(3513,22,-8594.06,757.656,96.6537,0,0,'Miss Danna'), +(3513,23,-8578.89,737.947,96.6719,0,0,'Miss Danna'), +(3513,24,-8596.77,717.424,96.6572,0,0,'Miss Danna'), +(3513,25,-8562.25,673.301,97.0168,0,0,'Miss Danna'), +(3513,26,-8536.52,690.402,97.6668,0,0,'Miss Danna'), +(3513,27,-8532.456,688.688,97.657,0,0,'Miss Danna'), +(3513,28,-8528.005,682.699,99.567,0,0,'Miss Danna'), +(3513,29,-8522.24,670.618,102.794,0,0,'Miss Danna'), +(3513,30,-8508.77,650.151,100.292,0,0,'Miss Danna'), +(3513,31,-8557.68,615.023,102.352,0,0,'Miss Danna'), +(3513,32,-8568.14,613.353,102.382,0,0,'Miss Danna'), +(3513,33,-8581.15,593.053,103.562,0,0,'Miss Danna'), +(3513,34,-8585.6,562.85,101.927,0,0,'Miss Danna'), +(3513,35,-8573.45,540.833,101.757,0,0,'Miss Danna'), +(3513,36,-8535.68,488.072,101.081,0,0,'Miss Danna'), +(3513,37,-8538.69,479.398,102.572,0,0,'Miss Danna'), +(3513,38,-8548.29,467.484,104.514,0,0,'Miss Danna'), +(3513,39,-8544.94,464.148,104.414,0,0,'Miss Danna'), +(3513,40,-8564.17,466.02,104.524,0,0,'Miss Danna'), +(3513,41,-8583.28,480.99,104.214,0,0,'Miss Danna'), +(3513,42,-8606.08,504.922,103.722,0,0,'Miss Danna'), +(3513,43,-8633.15,534.792,100.272,0,0,'Miss Danna'), +(3513,44,-8655.92,552.797,96.9437,0,0,'Miss Danna'), +(3513,45,-8671.53,554.116,97.1805,0,0,'Miss Danna'), +(3513,46,-8713.5,519.816,97.1699,0,0,'Miss Danna'), +(3513,47,-8731.17,541.957,101.124,0,0,'Miss Danna'), +(3513,48,-8749.98,561.766,97.3988,0,0,'Miss Danna'), +(3513,49,-8736.87,574.559,97.3823,0,0,'Miss Danna'), +(3513,50,-8770.53,609.421,97.2463,0,0,'Miss Danna'), +(3513,51,-8795.9,587.923,97.3792,0,0,'Miss Danna'), +(3513,52,-8827.8,624.687,93.8494,0,0,'Miss Danna'), +(3513,53,-8928.94,540.519,94.3157,0,0,'Miss Danna'), +(3513,54,-8907.67,509.135,93.8416,0,0,'Miss Danna'), +(3513,55,-8933.21,488.088,93.8429,0,0,'Miss Danna'), +(3513,56,-8911.65,505.615,93.8585,0,0,'Miss Danna'), +(3513,57,-8925.24,543.334,94.268,0,0,'Miss Danna'), +(3513,58,-8833.34,620.843,93.4683,0,0,'Miss Danna'), +(3513,59,-8854.67,660.036,96.8874,0,0,'Miss Danna'), +(3513,60,-8838.52,670.28,98.0987,0,0,'Miss Danna'); + +-- ---------------------------------------End Miss Danna and students------------------------------------------------------ +-- ---------------------------------------Donna and William---------------------------------------------------------------- + +DELETE FROM `creature_formations` WHERE `leaderGUID` = 79720; +INSERT INTO `creature_formations` (`leaderGUID`,`memberGUID`,`dist`,`angle`,`groupAI`,`point_1`,`point_2`) VALUES +(79720,79721,3,180,515,0,0), +(79720,79720,0,0,515,0,0); + +DELETE FROM `waypoint_data` WHERE `id` = 797200; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(797200,1,-8731.58,541.932,101.111,0,0,1,0,100,0), +(797200,2,-8720.52,529.999,99.3708,0,0,1,0,100,0), +(797200,3,-8716.57,522.528,97.612,0,0,1,0,100,0), +(797200,4,-8710.38,522.662,97.4771,0,0,1,0,100,0), +(797200,5,-8703.03,528.912,97.669,0,0,1,0,100,0), +(797200,6,-8685.83,539.951,97.7841,0,0,1,0,100,0), +(797200,7,-8679.19,551.407,97.4845,0,0,1,0,100,0), +(797200,8,-8663.87,554.612,96.8751,0,0,1,0,100,0), +(797200,9,-8651.75,548.373,96.9836,0,0,1,0,100,0), +(797200,10,-8638.92,537.941,99.4104,0,0,1,0,100,0), +(797200,11,-8629.57,534.889,100.717,0,0,1,0,100,0), +(797200,12,-8616.79,517.027,103.246,0,0,1,0,100,0), +(797200,13,-8610.89,516.332,103.775,0,0,1,0,100,0), +(797200,14,-8600.68,525.372,106.517,0,0,1,0,100,0), +(797200,15,-8582.68,540.197,102.279,0,0,1,0,100,0), +(797200,16,-8582.6,557.728,101.851,0,0,1,0,100,0), +(797200,17,-8588.54,571.377,102.515,0,0,1,0,100,0), +(797200,18,-8582.75,582.445,103.492,0,0,1,0,100,0), +(797200,19,-8581.09,596.986,103.326,0,0,1,0,100,0), +(797200,20,-8572.61,609.681,102.628,0,0,1,0,100,0), +(797200,21,-8554.31,617.579,102.079,0,0,1,0,100,0), +(797200,22,-8547.34,628.095,100.969,0,0,1,0,100,0), +(797200,23,-8524.76,636.519,99.995,0,0,1,0,100,0), +(797200,24,-8514.57,643.758,100.198,0,0,1,0,100,0), +(797200,25,-8512.06,652.878,100.291,0,0,1,0,100,0), +(797200,26,-8521.83,666.528,102.661,0,0,1,0,100,0), +(797200,27,-8527.96,675.59,101.776,0,0,1,0,100,0), +(797200,28,-8544.53,685.475,97.5076,0,0,1,0,100,0), +(797200,29,-8564.66,672.461,97.0156,0,0,1,0,100,0), +(797200,30,-8573.9,661.108,97.5108,0,0,1,0,100,0), +(797200,31,-8592.18,657.221,98.1965,0,0,1,0,100,0), +(797200,32,-8604.52,656.575,98.7059,0,0,1,0,100,0), +(797200,33,-8620.36,652.313,99.1877,0,0,1,0,100,0), +(797200,34,-8644.6,658.89,101.207,0,0,1,0,100,0), +(797200,35,-8655.94,660.699,100.858,0,0,1,0,100,0), +(797200,36,-8668.29,676.294,99.6044,0,0,1,0,100,0), +(797200,37,-8671.98,683.76,98.8546,0,0,1,0,100,0), +(797200,38,-8705.22,725.675,97.1356,0,0,1,0,100,0), +(797200,39,-8714.54,732.607,97.8152,0,0,1,0,100,0), +(797200,40,-8729.44,723.121,101.552,0,0,1,0,100,0), +(797200,41,-8742.16,710.686,98.2678,0,0,1,0,100,0), +(797200,42,-8738.48,700.884,98.718,0,0,1,0,100,0), +(797200,43,-8752.58,688.263,100.448,0,0,1,0,100,0), +(797200,44,-8773.14,671.75,103.092,0,0,1,0,100,0), +(797200,45,-8774.24,667.734,103.092,0,0,1,0,100,0), +(797200,46,-8762.72,649.633,103.733,0,0,1,0,100,0), +(797200,47,-8759.08,635.326,102.912,0,0,1,0,100,0), +(797200,48,-8758.8,629.108,102.25,0,0,1,0,100,0), +(797200,49,-8761.79,618.03,99.275,0,0,1,0,100,0), +(797200,50,-8792.64,593.169,97.6035,0,0,1,0,100,0), +(797200,51,-8801.18,592.338,97.3394,0,0,1,0,100,0), +(797200,52,-8816.1,613.304,95.2455,0,0,1,0,100,0), +(797200,53,-8828.86,627.785,94.0444,0,0,1,0,100,0), +(797200,54,-8826.57,637.878,94.243,0,0,1,0,100,0), +(797200,55,-8818.02,645.358,94.2658,0,0,1,0,100,0), +(797200,56,-8811.9,638.996,94.2287,0,0,1,0,100,0), +(797200,57,-8812.1,630.047,94.2287,0,0,1,0,100,0), +(797200,58,-8824.53,623.322,93.8413,0,0,1,0,100,0), +(797200,59,-8837.91,642.898,95.4907,0,0,1,0,100,0), +(797200,60,-8851.59,652.393,96.44,0,0,1,0,100,0), +(797200,61,-8847.92,662.602,97.4256,0,0,1,0,100,0), +(797200,62,-8830.06,673.308,98.2819,0,0,1,0,100,0), +(797200,63,-8826.73,680.102,97.2982,0,0,1,0,100,0), +(797200,64,-8833.85,697.773,97.5546,0,0,1,0,100,0), +(797200,65,-8840.86,711.403,97.5683,0,0,1,0,100,0), +(797200,66,-8840.99,722.775,97.3683,0,0,1,0,100,0), +(797200,67,-8826.64,729.331,98.4387,0,0,1,0,100,0), +(797200,68,-8816.81,738.407,97.9223,0,0,1,0,100,0), +(797200,69,-8793.3,743.694,98.3306,0,0,1,0,100,0), +(797200,70,-8768.96,740.105,99.1632,0,0,1,0,100,0), +(797200,71,-8759.32,727.137,98.2857,0,0,1,0,100,0), +(797200,72,-8731.58,697.112,98.6319,0,0,1,0,100,0), +(797200,73,-8730.4,687.347,98.7743,0,0,1,0,100,0), +(797200,74,-8723.18,673.754,98.6213,0,0,1,0,100,0), +(797200,75,-8714.73,664.722,98.9638,0,0,1,0,100,0), +(797200,76,-8706.44,635.994,100.299,0,0,1,0,100,0), +(797200,77,-8705.95,611.391,99.9666,0,0,1,0,100,0), +(797200,78,-8711.1,594.366,98.6165,0,0,1,0,100,0), +(797200,79,-8720.06,591.749,98.5704,0,0,1,0,100,0), +(797200,80,-8734.96,576.142,97.4009,0,0,1,0,100,0), +(797200,81,-8743.7,570.146,97.382,0,0,1,0,100,0), +(797200,82,-8747.05,560.624,97.4024,0,0,1,0,100,0); + +-- -----------------------------------------------------------End Donna and William---------------------------------------------------------------- +-- -----------------------------------------------------------Janey, Suzanne, and Lisan------------------------------------------------------------- + +UPDATE `creature` SET `MovementType` = 0 WHERE `guid` in (86596,89294,86597); +UPDATE `creature_addon` SET `path_id` = 0 WHERE `guid` in (86596,89294,86597); +UPDATE `creature_template` SET `AIName` = "SmartAI" WHERE `entry` in (1413,1414,1415); + +DELETE FROM `smart_scripts` WHERE `entryorguid` in (1413,1414,1415,141300,141500); +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 +(1414,0,0,0,38,0,100,0,1,0,0,0,0,29,1,200,0,0,0,0,10,86596,1413,0,0,0,0,0,0,'Lisan Pierce - On Data Set 1 0 - Set Follow'), +(1414,0,1,0,38,0,100,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Lisan Pierce - On Data Set 1 1 - Say Random 0'), +(1414,0,2,0,38,0,100,0,1,2,0,0,0,90,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Lisan Pierce - On Data Set 1 2 - Set UNIT_STAND_STATE_SIT'), +(1414,0,3,0,38,0,100,0,1,3,0,0,0,91,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Lisan Pierce - On Data Set 1 3 - Remove UNIT_STAND_STATE_SIT'), +(1414,0,4,0,38,0,100,0,1,4,0,0,0,69,0,0,0,0,0,0,1,0,0,0,0,-8989.59,858.133,105.605,3.46022,'Lisan Pierce - On Data Set 1 5 - Move to POS'), + +(1415,0,0,0,38,0,100,0,1,0,0,0,0,29,0,160,0,0,0,0,10,86596,1413,0,0,0,0,0,0,'Suzanne - On Data Set 1 0 - Set Follow'), +(1415,0,1,0,38,0,100,0,1,2,0,0,0,90,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Suzanne - On Data Set 1 2 - Set UNIT_STAND_STATE_SIT'), +(1415,0,2,0,38,0,100,0,1,3,0,0,0,91,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Suzanne - On Data Set 1 3 - Remove UNIT_STAND_STATE_SIT'), +(1415,0,3,0,38,0,100,0,1,4,0,0,0,69,0,0,0,0,0,0,1,0,0,0,0,-8992.66,856.234,105.775,0.595873,'Suzanne - On Data Set 1 5 - Move to POS'), +(1415,0,4,0,1,0,100,0,35000,35000,60000,120000,0,80,141500,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Suzanne - OOC - Run Script'), + +(1413,0,0,1,1,0,100,1,20000,20000,0,0,0,53,0,1413,1,0,0,0,1,0,0,0,0,0,0,0,0,'Janey Anship - OOC (No Repeat) - Start Waypoint'), +(1413,0,1,2,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,86597,1414,0,0,0,0,0,0,'Janey Anship - Linked - Set Data 1 0 \'Lisan Pierce\''), +(1413,0,2,0,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,89294,1415,0,0,0,0,0,0,'Janey Anship - Linked - Set Data 1 0 \'Suzanne\''), +(1413,0,3,0,40,0,100,0,56,1413,0,0,0,80,141300,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Janey Anship - On Waypoint 56 Reached - Run Script'), +(1413,0,4,0,38,0,100,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Janey Anship - On Data Set 1 1 - Say Random 0'), + +(141500,9,0,0,0,0,100,0,0,0,0,0,0,45,1,1,0,0,0,0,10,86596,1413,0,0,0,0,0,0,'Suzanne - On Script - Set Data 1 1 \'Janey Anship\''), +(141500,9,1,0,0,0,100,0,14000,15000,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Suzanne - On Script - Say 0 0'), +(141500,9,2,0,0,0,100,0,14000,15000,0,0,0,45,1,1,0,0,0,0,10,86597,1414,0,0,0,0,0,0,'Suzanne - On Script - Set Data 1 1 \'Lisan Pierce\''), + +(141300,9,0,0,0,0,100,0,0,0,0,0,0,54,310000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Janey Anship - On Script - Pause Waypoint'), +(141300,9,1,0,0,0,100,0,2000,2000,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,5.06,'Janey Anship - On Script - Set Orientation'), +(141300,9,2,0,0,0,100,0,1000,1000,0,0,0,45,1,4,0,0,0,0,10,86597,1414,0,0,0,0,0,0,'Janey Anship - On Script - Set Data 1 4 \'Lisan Pierce\''), +(141300,9,3,0,0,0,100,0,0,0,0,0,0,45,1,4,0,0,0,0,10,89294,1415,0,0,0,0,0,0,'Janey Anship - On Script - Set Data 1 4 \'Suzanne\''), +(141300,9,4,0,0,0,100,0,1000,1000,0,0,0,90,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Janey Anship - On Script - Set UNIT_STAND_STATE_SIT'), +(141300,9,5,0,0,0,100,0,1000,2000,0,0,0,45,1,2,0,0,0,0,10,86597,1414,0,0,0,0,0,0,'Janey Anship - On Script - Set Data 1 2 \'Lisan Pierce\''), +(141300,9,6,0,0,0,100,0,1000,2000,0,0,0,45,1,2,0,0,0,0,10,89294,1415,0,0,0,0,0,0,'Janey Anship - On Script - Set Data 1 2 \'Suzanne\''), +(141300,9,7,0,0,0,100,0,240000,290000,0,0,0,5,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Janey Anship - On Script - Emote Talk'), +(141300,9,8,0,0,0,100,0,1000,1000,0,0,0,91,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Janey Anship - On Script - Remove UNIT_STAND_STATE_SIT'), +(141300,9,9,0,0,0,100,0,2000,2000,0,0,0,45,1,3,0,0,0,0,10,86597,1414,0,0,0,0,0,0,'Janey Anship - On Script - Set Data 1 3 \'Lisan Pierce\''), +(141300,9,10,0,0,0,100,0,2000,3000,0,0,0,45,1,3,0,0,0,0,10,89294,1415,0,0,0,0,0,0,'Janey Anship - On Script - Set Data 1 3 \'Suzanne\''), +(141300,9,11,0,0,0,100,0,2000,2000,0,0,0,65,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Janey Anship - On Script - Resume Waypoint'), +(141300,9,12,0,0,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,89294,1415,0,0,0,0,0,0,'Janey Anship - On Script - Set Data 1 0 \'Suzanne\''), +(141300,9,13,0,0,0,100,0,1000,1000,0,0,0,45,1,0,0,0,0,0,10,86597,1414,0,0,0,0,0,0,'Janey Anship - On Script - Set Data 1 0 \'Lisan Pierce\''); + +DELETE FROM `creature_text` WHERE `CreatureID` in (1413,1414,1415); +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(1413,0,0,'If we reverse the Essence flows perhaps we can alter the polarity.',12,7,100,1,0,0,201,0,'Janey Anship - Talk'), +(1413,0,1,'So then the array of magics would cascade into a chain reaction of positively charged energies.',12,7,100,1,0,0,203,0,'Janey Anship - Talk'), +(1413,0,2,'The portal will shift slightly, at this point if you cast a binding cantrip you will solidify it in place.',12,7,100,1,0,0,204,0,'Janey Anship - Talk'), +(1413,0,3,'When the positively aligned energies collide with the negatively charged energies, they don\'t negate one another.',12,7,100,1,0,0,205,0,'Janey Anship - Talk'), +(1413,0,4,'Maginor says that twisting alternating flows of positive energy actually creates a much more stable flow.',12,7,100,1,0,0,206,0,'Janey Anship - Talk'), +(1413,0,5,'The magical wards at that point should be supported enough by the energy flux to contain the entity.',12,7,100,1,0,0,207,0,'Janey Anship - Talk'), +(1413,0,6,'Why can\'t we just shift the array to compensate for the variance in the flux?',12,7,100,1,0,0,208,0,'Janey Anship - Talk'), +(1413,0,7,'Putting in twelve centers of focus might allow the magical energies to form more solidly, adding the necessary stability.',12,7,100,1,0,0,209,0,'Janey Anship - Talk'), + +(1414,0,0,'But what if the resulting frequency shift were to send magical feedback up the flows?',12,7,100,1,0,0,210,0,'Lisan Pierce - Talk'), +(1414,0,1,'Wouldn\'t that cause the weave to unravel if not properly anchored before starting the casting?',12,7,100,1,0,0,211,0,'Lisan Pierce - Talk'), +(1414,0,2,'But wouldn\'t that mean crossing the streams? Isn\'t that really bad?',12,7,100,1,0,0,212,0,'Lisan Pierce - Talk'), +(1414,0,3,'The resultant energies could collapse though, and that could cause an energy flux that would give you a migraine for weeks.',12,7,100,1,0,0,213,0,'Lisan Pierce - Talk'), +(1414,0,4,'But isn\'t that what caused the initial problems with Adept Syleria\'s magical formulae?',12,7,100,1,0,0,214,0,'Lisan Pierce - Talk'), +(1414,0,5,'I think not, I don\'t need to be blown up again.',12,7,100,1,0,0,215,0,'Lisan Pierce - Talk'), +(1414,0,6,'That will unbalance the magical focus, though, and cause a reverse vibration in the ether.',12,7,100,1,0,0,216,0,'Lisan Pierce - Talk'), +(1414,0,7,'I suppose that could work, if we had twenty people to cast it with.',12,7,100,1,0,0,217,0,'Lisan Pierce - Talk'), + +(1415,0,0,'What if we used three focuses in Tyrean pattern? That should solve it.',12,7,100,1,0,0,218,0,'Suzanne - Talk'), +(1415,0,1,'But if we stabilize it with an anchor thread at the appropriate energy crux then it should work.',12,7,100,1,0,0,219,0,'Suzanne - Talk'), +(1415,0,2,'Always so negative. The chances of that happening are between zero and none.',12,7,100,1,0,0,220,0,'Suzanne - Talk'), +(1415,0,3,'If we use the appropriate sequence we should be ok. Will just take some serious studying before we start.',12,7,100,1,0,0,221,0,'Suzanne - Talk'), +(1415,0,4,'Wow, all of this for a love potion. Hope he\'s worth it.',12,7,100,1,0,0,222,0,'Suzanne - Talk'), +(1415,0,5,'If we use the Surian theory, then yes, but not if we go with the Y\'serian approach.',12,7,100,1,0,0,223,0,'Suzanne - Talk'), +(1415,0,6,'At least we wouldn\'t be around to have to clean it up.',12,7,100,1,0,0,224,0,'Suzanne - Talk'), +(1415,0,7,'Only if we didn\'t follow the proper initialization procedures.',12,7,100,1,0,0,225,0,'Suzanne - Talk'); + +DELETE FROM `waypoint_scripts` WHERE `id` >= 385 and `id` <= 426 and `id` not in (413,414,415); +DELETE FROM `waypoint_data` WHERE `id` in (865960,892940,865970); + +DELETE FROM `waypoints` WHERE `entry` = 1413; +INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`point_comment`) VALUES +(1413,1,-8953.9,862.547,104.957,0,0,'Janey Anship'), +(1413,2,-8932.12,857.927,100.803,0,0,'Janey Anship'), +(1413,3,-8909.04,850.187,96.281,0,0,'Janey Anship'), +(1413,4,-8896.57,865.822,96.8556,0,0,'Janey Anship'), +(1413,5,-8890.18,881.888,101.184,0,0,'Janey Anship'), +(1413,6,-8888.17,893.701,104.619,0,0,'Janey Anship'), +(1413,7,-8890.076,901.395,107.355,0,0,'Janey Anship'), +(1413,8,-8890.792,903.77,107.813,0,0,'Janey Anship'), +(1413,9,-8894.17,909.79,110.395,0,0,'Janey Anship'), +(1413,10,-8890.685,911.816,110.63,0,0,'Janey Anship'), +(1413,11,-8870.31,923.272,105.91,0,0,'Janey Anship'), +(1413,12,-8855.94,931.187,101.845,0,0,'Janey Anship'), +(1413,13,-8843.91,933.491,104.097,0,0,'Janey Anship'), +(1413,14,-8835.285,938.716,105.319,0,0,'Janey Anship'), +(1413,15,-8824.983,946.589,102.938,0,0,'Janey Anship'), +(1413,16,-8816.65,953.442,100.743,0,0,'Janey Anship'), +(1413,17,-8767.52,895.508,101.256,0,0,'Janey Anship'), +(1413,18,-8753.45,892,101.896,0,0,'Janey Anship'), +(1413,19,-8740.3,893.588,101.375,0,0,'Janey Anship'), +(1413,20,-8726.64,877.216,102.712,0,0,'Janey Anship'), +(1413,21,-8719.896,868.748,101.591,0,0,'Janey Anship'), +(1413,22,-8711.78,859.391,96.9622,0,0,'Janey Anship'), +(1413,23,-8714.17,851.672,96.7801,0,0,'Janey Anship'), +(1413,24,-8724.59,835.118,96.1396,0,0,'Janey Anship'), +(1413,25,-8727.53,820.133,97.0495,0,0,'Janey Anship'), +(1413,26,-8723.35,807.987,97.2959,0,0,'Janey Anship'), +(1413,27,-8717.8,795.688,96.9682,0,0,'Janey Anship'), +(1413,28,-8720.86,784.235,97.7513,0,0,'Janey Anship'), +(1413,29,-8730.39,769.812,98.1267,0,0,'Janey Anship'), +(1413,30,-8729.96,761.621,98.2494,0,0,'Janey Anship'), +(1413,31,-8726.06,753.976,98.2668,0,0,'Janey Anship'), +(1413,32,-8714.42,737.952,97.8087,0,0,'Janey Anship'), +(1413,33,-8728.74,725.086,101.267,0,0,'Janey Anship'), +(1413,34,-8738.14,715.533,100.152,0,0,'Janey Anship'), +(1413,35,-8742.74,709.527,98.3091,0,0,'Janey Anship'), +(1413,36,-8737.21,700.627,98.6984,0,0,'Janey Anship'), +(1413,37,-8776.23,670.457,103.093,0,0,'Janey Anship'), +(1413,38,-8760.45,646.994,103.883,0,0,'Janey Anship'), +(1413,39,-8759.11,627.771,101.892,0,0,'Janey Anship'), +(1413,40,-8763.21,616.245,98.6119,0,0,'Janey Anship'), +(1413,41,-8779.99,602.334,97.3893,0,0,'Janey Anship'), +(1413,42,-8793.37,590.39,97.5755,0,0,'Janey Anship'), +(1413,43,-8817.337,614.697,95.094,0,0,'Janey Anship'), +(1413,44,-8849.81,659.507,97.1312,0,0,'Janey Anship'), +(1413,45,-8834.43,672.377,98.2964,0,0,'Janey Anship'), +(1413,46,-8825.5,677.093,97.6638,0,0,'Janey Anship'), +(1413,47,-8838.31,708.928,97.6485,0,0,'Janey Anship'), +(1413,48,-8851.32,736.847,100.505,0,0,'Janey Anship'), +(1413,49,-8870.66,759.965,96.6871,0,0,'Janey Anship'), +(1413,50,-8880.96,756.982,96.1098,0,0,'Janey Anship'), +(1413,51,-8909.67,790.199,87.4738,0,0,'Janey Anship'), +(1413,52,-8918.12,784.468,87.4199,0,0,'Janey Anship'), +(1413,53,-8930.34,773.156,87.9818,0,0,'Janey Anship'), +(1413,54,-8961.17,770.851,93.8524,0,0,'Janey Anship'), +(1413,55,-8980.98,783.189,98.0365,0,0,'Janey Anship'), +(1413,56,-8990.43,800.731,102.354,0,0,'Janey Anship'), +(1413,57,-8994.98,823.243,104.806,0,0,'Janey Anship'), +(1413,58,-8990.49,849.74,105.812,0,0,'Janey Anship'), +(1413,59,-8992.48,859.067,105.647,0,0,'Janey Anship'); + +-- ---------------------------------------------------------------End Janey, Suzanne, and Lisan---------------------------------------------------------------------- +-- ---------------------------------------------------------------Orphanage----------------------------------------------------------------------------------------- + +-- Matron Nightingale is always shown - Not event specific +DELETE FROM `game_event_creature` WHERE `eventEntry` = 10 and `guid` = 79806; + +-- Shellene +UPDATE `creature_template` SET `AIName` = "SmartAI" WHERE `entry` = 14497; +DELETE FROM `smart_scripts` WHERE `entryorguid` in (14497); +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 +(14497,0,0,0,1,0,100,0,30000,30000,160000,240000,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Shellene - OOC - Say Random 0'); + +-- Orphans +UPDATE `creature` SET `wander_distance` = 3 WHERE `guid` = 79813; +UPDATE `creature` SET `position_x` = -8614.1933, `position_y` = 739.778, `position_z` = 101.902, `orientation` = 0.55, `MovementType` = 2, `wander_distance` = 0 WHERE `guid` = 79812; + +DELETE FROM `creature_addon` WHERE `guid` in (79803,79804,79812); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES +(79803,0,0,0,0,0,0,NULL), +(79804,0,0,0,0,0,0,NULL), +(79812,798120,0,0,0,0,0,NULL); + +DELETE FROM `creature_formations` WHERE `leaderGUID` = 79812; +INSERT INTO `creature_formations` (`leaderGUID`,`memberGUID`,`dist`,`angle`,`groupAI`,`point_1`,`point_2`) VALUES +(79812,79804,2,190,515,0,0), +(79812,79803,1,160,515,0,0), +(79812,79812,0,0,515,0,0); + +DELETE FROM `waypoint_data` WHERE `id` = 798120; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(798120,1,-8611.855,741.819,101.902,0,0,1,0,100,0), +(798120,2,-8607.328,736.029,101.902,0,0,1,0,100,0), +(798120,3,-8607.453,731.481,101.906,0,0,1,0,100,0), +(798120,4,-8611.104,730.951,101.904,0,0,1,0,100,0), +(798120,5,-8611.386,732.98,101.902,0,0,1,0,100,0), +(798120,6,-8601.168,740.864,101.948,0,0,1,0,100,0), +(798120,7,-8597.565,740.674,101.904,0,0,1,0,100,0), +(798120,8,-8598.909,736.516,101.904,0,0,1,0,100,0), +(798120,9,-8601.760,733.618,101.904,0,0,1,0,100,0), +(798120,10,-8602.194,730.622,101.904,0,0,1,0,100,0), +(798120,11,-8605.554,727.392,101.904,0,0,1,0,100,0), +(798120,12,-8614.076,727.354,101.904,0,0,1,0,100,0), +(798120,13,-8617.707,733.004,101.896,0,0,1,0,100,0), +(798120,14,-8614.648,735.352,101.901,0,1000,1,0,100,0), +(798120,15,-8611.297,733.998,101.899,0,0,1,0,100,0), +(798120,16,-8610.278,727.638,101.904,0,0,1,0,100,0), +(798120,17,-8603.662,730.019,101.904,0,0,1,0,100,0), +(798120,18,-8601.92,730.248,101.904,0,0,1,0,100,0), +(798120,19,-8602.384,740.663,101.904,0,0,1,0,100,0), +(798120,20,-8598.212,741.582,101.904,0,0,1,0,100,0), +(798120,21,-8596.861,738.872,101.904,0,0,1,0,100,0), +(798120,22,-8603.715,733.69,101.903,0,0,1,0,100,0), +(798120,23,-8611.728,734.924,101.896,0,0,1,0,100,0), +(798120,24,-8613.419,737.851,101.901,0,0,1,0,100,0), +(798120,25,-8611.855,741.819,101.902,0,0,1,0,100,0), +(798120,26,-8614.002,744.876,101.626,0,0,1,0,100,0), +(798120,27,-8618.105,749.692,96.723,0,0,1,0,100,0), +(798120,28,-8615.264,754.488,96.688,0,0,1,0,100,0), +(798120,29,-8610.971,756.185,96.77,0,0,1,0,100,0), +(798120,30,-8604.835,754.705,96.784,0,0,1,0,100,0), +(798120,31,-8599.902,756.884,96.792,0,0,1,0,100,0), +(798120,32,-8601.771,761.891,96.723,0,0,1,0,100,0), +(798120,33,-8607.014,764.106,96.718,0,0,1,0,100,0), +(798120,34,-8610.498,760.02,96.736,0,0,1,0,100,0), +(798120,35,-8612.114,753.82,96.729,0,0,1,0,100,0), +(798120,36,-8609.295,752.037,96.765,0,0,1,0,100,0), +(798120,37,-8607.304,752.856,96.786,0,0,1,0,100,0), +(798120,38,-8605.813,756.485,96.769,0,0,1,0,100,0), +(798120,39,-8607.552,759.231,96.745,0,0,1,0,100,0), +(798120,40,-8612.130,758.924,96.751,0,0,1,0,100,0), +(798120,41,-8616.762,757.048,96.684,0,0,1,0,100,0), +(798120,42,-8625.063,751.401,96.777,0,0,1,0,100,0), +(798120,43,-8623.744,744.051,96.771,0,0,1,0,100,0), +(798120,44,-8624.977,739.424,96.777,0,0,1,0,100,0), +(798120,45,-8630.463,736.526,96.835,0,0,1,0,100,0), +(798120,46,-8634.493,736.914,96.768,0,0,1,0,100,0), +(798120,47,-8635.064,740.133,96.936,0,0,1,0,100,0), +(798120,48,-8632.448,744.383,96.891,0,0,1,0,100,0), +(798120,49,-8627.866,747.073,96.806,0,0,1,0,100,0), +(798120,50,-8624.17,748.017,96.793,0,0,1,0,100,0), +(798120,51,-8618.105,749.692,96.723,0,0,1,0,100,0), +(798120,52,-8614.002,744.876,101.626,0,0,1,0,100,0); + +-- --------------------------------------------------------End Orphanage----------------------------------------------------------------------------------------- +-- --------------------------------------------------------Karlee Chaddis, Paige, Gil and Fizzles---------------------------------------------------------------- + +UPDATE `creature` SET `MovementType` = 0 WHERE `guid` in (90439,90440,90443); +UPDATE `creature_addon` SET `path_id` = 0 WHERE `guid` in (90439,90440,90443); + +DELETE FROM `waypoint_data` WHERE `id` in (904390,904400,904430); +DELETE FROM `waypoint_scripts` WHERE `id` in (427,428,429,430,431); + +UPDATE `creature_template` SET `AIName` = "SmartAI" WHERE `entry` in (2330,2331); + +DELETE FROM `creature_text` WHERE `CreatureID` in (3504,2330,2331); +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(3504,0,0,'Is it true? Are there really crocolisks in the canals?',12,7,100,0,0,0,1098,0,'Gil'), +(3504,0,1,'My feet hurt.',12,7,100,0,0,0,1099,0,'Gil'), +(3504,0,2,'Are we there yet?',12,0,100,0,0,0,2223,0,'Gil'), +(3504,0,3,'Why are we goin\' this way?',12,0,100,0,0,0,1093,0,'Gil'), +(3504,0,4,'I wanna see the Mage Tower.',12,7,100,0,0,0,1097,0,'Gil'), +(3504,0,5,'Where we goin\'?',12,7,100,0,0,0,1094,0,'Gil'), +(3504,0,6,'Why do we always go the same way?',12,7,100,0,0,0,1100,0,'Gil'), +(3504,0,7,'I need to pee.',12,0,100,0,0,0,1095,0,'Gil'), +(3504,1,0,'Billy says Fizzles used to be a great wizard. But he got turned into a rabbit when one of his spells went bad.',12,0,100,0,0,0,1091,0,'Gil'), +(2330,0,0,'Hello, Charys. I have my list, could you get me all of that, especially the last ingredient.',12,7,100,0,0,0,587,0,'Karlee Chaddis'), +(2330,1,0,'Sure, Paige. Just be gentle.',12,7,100,0,0,0,589,0,'Karlee Chaddis'), +(2330,2,0,'Thanks, Charys. C\'mon Paige, sweetie.',12,0,100,0,0,0,590,0,'Karlee Chaddis'), +(2331,0,0,'Mommy? Can I pet Fizzles?',12,0,100,0,0,0,588,0,'Paige Chaddis'); + +DELETE FROM `smart_scripts` WHERE `entryorguid` in (3504,2330,2331,233000); +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 +(3504,0,0,0,1,0,100,0,60000,60000,180000,200000,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Gil - Out of Combat - Say Random 0 (No Repeat)'), +(3504,0,1,0,38,0,100,0,1,0,0,0,0,29,0,160,0,0,0,0,10,90439,2330,0,0,0,0,0,0,'Gil - On Data Set 1 0 - Set Follow'), +(3504,0,2,0,38,0,100,0,1,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Gil - On Data Set 1 1 - Say Line 1'), + +(2331,0,0,0,38,0,100,0,1,0,0,0,0,29,0,200,0,0,0,0,10,90439,2330,0,0,0,0,0,0,'Paige Chaddis - On Data Set 1 0 - Set Follow'), +(2331,0,1,0,38,0,100,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Paige Chaddis - On Data Set 1 1 - Say Line 0'), + +(2330,0,0,1,1,0,100,1,25000,25000,0,0,0,53,0,2330,1,0,0,0,1,0,0,0,0,0,0,0,0,'Karlee Chaddis - OOC (No Repeat) - Start Waypoint'), +(2330,0,1,2,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,90443,3504,0,0,0,0,0,0,'Karlee Chaddis - Linked - Set Data 1 0 \'Gil\''), +(2330,0,2,0,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,90440,2331,0,0,0,0,0,0,'Karlee Chaddis - Linked - Set Data 1 0 \'Paige Chaddis\''), +(2330,0,3,0,40,0,100,0,28,2330,0,0,0,80,233000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Karlee Chaddis - On Waypoint 28 Reached - Run Script'), + +(233000,9,0,0,0,0,100,0,0,0,0,0,0,54,60000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Karlee Chaddis - On Script - Pause Waypoint'), +(233000,9,1,0,0,0,100,0,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1.074,'Karlee Chaddis- On Script - Set Orientation'), +(233000,9,2,0,0,0,100,0,1000,1000,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Karlee Chaddis- On Script - Say Line 0'), +(233000,9,3,0,0,0,100,0,14000,14000,0,0,0,45,1,1,0,0,0,0,10,90440,2331,0,0,0,0,0,0,'Karlee Chaddis- On Script - Set Data 1 1 \'Paige Chaddis\''), +(233000,9,4,0,0,0,100,0,8000,8000,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Karlee Chaddis- On Script - Say Line 1'), +(233000,9,5,0,0,0,100,0,10000,10000,0,0,0,45,1,1,0,0,0,0,10,90443,3504,0,0,0,0,0,0,'Karlee Chaddis- On Script - Set Data 1 1 \'Gil\''), +(233000,9,6,0,0,0,100,0,20000,20000,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Karlee Chaddis- On Script - Say Line 2'), +(233000,9,7,0,0,0,100,0,4000,4000,0,0,0,5,3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Karlee Chaddis - On Script - Emote Wave'); + +DELETE FROM `waypoints` WHERE `entry` = 2330; +INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`point_comment`) VALUES +(2330,1,-8856.26,741.91,100.666,0,0,'Karlee Chaddis'), +(2330,2,-8860.26,747.938,99.9222,0,0,'Karlee Chaddis'), +(2330,3,-8866.15,756.326,97.8264,0,0,'Karlee Chaddis'), +(2330,4,-8870.51,760.372,96.7027,0,0,'Karlee Chaddis'), +(2330,5,-8879.54,756.138,96.2687,0,0,'Karlee Chaddis'), +(2330,6,-8883.45,758.191,95.4731,0,0,'Karlee Chaddis'), +(2330,7,-8907.48,788.261,87.7863,0,0,'Karlee Chaddis'), +(2330,8,-8906.29,794.423,87.3173,0,0,'Karlee Chaddis'), +(2330,9,-8899.1,801.189,87.6105,0,0,'Karlee Chaddis'), +(2330,10,-8899.88,815.041,89.3389,0,0,'Karlee Chaddis'), +(2330,11,-8899.09,826.687,92.5864,0,0,'Karlee Chaddis'), +(2330,12,-8905.65,841.38,95.4271,0,0,'Karlee Chaddis'), +(2330,13,-8905.3,845.868,95.7969,0,0,'Karlee Chaddis'), +(2330,14,-8898.15,863.912,96.2546,0,0,'Karlee Chaddis'), +(2330,15,-8893.39,873.065,98.9773,0,0,'Karlee Chaddis'), +(2330,16,-8888.58,889.208,102.944,0,0,'Karlee Chaddis'), +(2330,17,-8888.8,897.531,105.943,0,0,'Karlee Chaddis'), +(2330,18,-8896.33,913.303,110.988,0,0,'Karlee Chaddis'), +(2330,19,-8904.33,926.304,114.899,0,0,'Karlee Chaddis'), +(2330,20,-8919.41,948.481,117.337,0,0,'Karlee Chaddis'), +(2330,21,-8966.43,954.028,117.362,0,0,'Karlee Chaddis'), +(2330,22,-8982.42,966.381,116.043,0,0,'Karlee Chaddis'), +(2330,23,-8999.42,964.996,116.326,0,0,'Karlee Chaddis'), +(2330,24,-9012.36,953.626,116.256,0,0,'Karlee Chaddis'), +(2330,25,-9008.41,945.283,116.895,0,0,'Karlee Chaddis'), +(2330,26,-9000.86,940.914,117.094,0,0,'Karlee Chaddis'), +(2330,27,-8998.38,939.901,117.094,0,0,'Karlee Chaddis'), +(2330,28,-8996.34,945.169,117.097,0,0,'Karlee Chaddis'), +(2330,29,-8999.05,940.572,117.096,0,0,'Karlee Chaddis'), +(2330,30,-9002.62,941.706,117.095,0,0,'Karlee Chaddis'), +(2330,31,-9012.38,947.61,116.227,0,0,'Karlee Chaddis'), +(2330,32,-9012.45,951.694,116.246,0,0,'Karlee Chaddis'), +(2330,33,-9004.83,961.988,116.276,0,0,'Karlee Chaddis'), +(2330,34,-8998.64,965.802,116.292,0,0,'Karlee Chaddis'), +(2330,35,-8983.94,966.422,116.028,0,0,'Karlee Chaddis'), +(2330,36,-8980.01,965.284,116.256,0,0,'Karlee Chaddis'), +(2330,37,-8971.05,960.59,117.158,0,0,'Karlee Chaddis'), +(2330,38,-8957.87,953.377,117.299,0,0,'Karlee Chaddis'), +(2330,39,-8920.67,947.641,117.337,0,0,'Karlee Chaddis'), +(2330,40,-8908.711,932.625,116.370,0,0,'Karlee Chaddis'), +(2330,41,-8903.206,925.242,114.615,0,0,'Karlee Chaddis'), +(2330,42,-8899.662,918.715,112.635,0,0,'Karlee Chaddis'), +(2330,43,-8894.54,911.478,110.762,0,0,'Karlee Chaddis'), +(2330,44,-8877.53,920.808,107.603,0,0,'Karlee Chaddis'), +(2330,45,-8854.97,933.374,101.999,0,0,'Karlee Chaddis'), +(2330,46,-8848.88,930.711,102.495,0,0,'Karlee Chaddis'), +(2330,47,-8834.61,940.936,105.143,0,0,'Karlee Chaddis'), +(2330,48,-8818.28,953.205,100.678,0,0,'Karlee Chaddis'), +(2330,49,-8815.14,952.722,100.867,0,0,'Karlee Chaddis'), +(2330,50,-8804.01,942.261,101.241,0,0,'Karlee Chaddis'), +(2330,51,-8802.37,936.981,101.242,0,0,'Karlee Chaddis'), +(2330,52,-8777.24,909.299,100.262,0,0,'Karlee Chaddis'), +(2330,53,-8766.76,893.892,101.386,0,0,'Karlee Chaddis'), +(2330,54,-8737.03,892.761,101.221,0,0,'Karlee Chaddis'), +(2330,55,-8731.93,886.272,101.744,0,0,'Karlee Chaddis'), +(2330,56,-8723.13,875.04,102.678,0,0,'Karlee Chaddis'), +(2330,57,-8712.31,861.661,97.2752,0,0,'Karlee Chaddis'), +(2330,58,-8712.2,853.618,96.8655,0,0,'Karlee Chaddis'), +(2330,59,-8725.87,834.533,96.149,0,0,'Karlee Chaddis'), +(2330,60,-8726.58,813.587,97.0276,0,0,'Karlee Chaddis'), +(2330,61,-8717.15,795.784,97.0391,0,0,'Karlee Chaddis'), +(2330,62,-8721.79,782.622,97.8839,0,0,'Karlee Chaddis'), +(2330,63,-8732.2,766.047,98.0898,0,0,'Karlee Chaddis'), +(2330,64,-8724.93,751.443,98.2043,0,0,'Karlee Chaddis'), +(2330,65,-8713.3,732.548,97.8146,0,0,'Karlee Chaddis'), +(2330,66,-8699.05,715.705,97.0168,0,0,'Karlee Chaddis'), +(2330,67,-8661.63,744.699,96.6531,0,0,'Karlee Chaddis'), +(2330,68,-8660.26,765.872,96.6997,0,0,'Karlee Chaddis'), +(2330,69,-8634.36,787.361,96.6525,0,0,'Karlee Chaddis'), +(2330,70,-8632.43,787.372,96.6512,0,0,'Karlee Chaddis'), +(2330,71,-8606.16,761.17,96.7387,0,0,'Karlee Chaddis'), +(2330,72,-8592.08,756.77,96.651,0,0,'Karlee Chaddis'), +(2330,73,-8579.7,737.671,96.7114,0,0,'Karlee Chaddis'), +(2330,74,-8594.53,717.706,96.6514,0,0,'Karlee Chaddis'), +(2330,75,-8581.67,697.638,97.0168,0,0,'Karlee Chaddis'), +(2330,76,-8561.08,673.827,97.0168,0,0,'Karlee Chaddis'), +(2330,77,-8536.53,690.079,97.6665,0,0,'Karlee Chaddis'), +(2330,78,-8530.805,685.554,97.8444,0,0,'Karlee Chaddis'), +(2330,79,-8528.41,679.123,100.793,0,0,'Karlee Chaddis'), +(2330,80,-8517.6,662.84,102.123,0,0,'Karlee Chaddis'), +(2330,81,-8510.36,651.605,100.292,0,0,'Karlee Chaddis'), +(2330,82,-8516.68,643.439,100.134,0,0,'Karlee Chaddis'), +(2330,83,-8557.25,615.273,102.337,0,0,'Karlee Chaddis'), +(2330,84,-8563.65,615.408,102.278,0,0,'Karlee Chaddis'), +(2330,85,-8583.79,586.194,103.594,0,0,'Karlee Chaddis'), +(2330,86,-8584.4,560.743,101.871,0,0,'Karlee Chaddis'), +(2330,87,-8578.23,543.501,101.782,0,0,'Karlee Chaddis'), +(2330,88,-8593.35,530.953,105.659,0,0,'Karlee Chaddis'), +(2330,89,-8609.85,515.571,103.841,0,0,'Karlee Chaddis'), +(2330,90,-8616.86,517.629,103.218,0,0,'Karlee Chaddis'), +(2330,91,-8657.5,553.006,96.9502,0,0,'Karlee Chaddis'), +(2330,92,-8673.57,552.873,97.2864,0,0,'Karlee Chaddis'), +(2330,93,-8713.67,519.808,97.1597,0,0,'Karlee Chaddis'), +(2330,94,-8717.22,524.985,98.1892,0,0,'Karlee Chaddis'), +(2330,95,-8724.539,533.765,100.2637,0,0,'Karlee Chaddis'), +(2330,96,-8734.436,545.427,101.1412,0,0,'Karlee Chaddis'), +(2330,97,-8745.36,557.023,97.6718,0,0,'Karlee Chaddis'), +(2330,98,-8745,566.133,97.4006,0,0,'Karlee Chaddis'), +(2330,99,-8738.14,576.508,97.5043,0,0,'Karlee Chaddis'), +(2330,100,-8769.94,608.175,97.1405,0,0,'Karlee Chaddis'), +(2330,101,-8795.54,589.658,97.4546,0,0,'Karlee Chaddis'), +(2330,102,-8832.6,630.401,94.0918,0,0,'Karlee Chaddis'), +(2330,103,-8851.55,661.112,97.1319,0,0,'Karlee Chaddis'), +(2330,104,-8824.74,678.622,97.5366,0,0,'Karlee Chaddis'), +(2330,105,-8847.34,726.835,97.6974,0,0,'Karlee Chaddis'); + +-- Fizzles +DELETE FROM `creature` WHERE `guid` = 79379; +INSERT INTO `creature` (`guid`,`id1`,`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 +(79379,1419,0,0,0,1,1,0,-8994.19,947.069,118.348,4.29351,300,0,0,8,0,0,0,0,0,'',0); + +-- --------------------------------------------------------Karlee Chaddis, Paige, Gil and Fizzles------------------------------------------------------------------- +-- --------------------------------------------------------Lil' Timmy----------------------------------------------------------------------------------------------- + +DELETE FROM `creature_formations` WHERE `leaderGUID` = 45501; + +UPDATE `creature_addon` SET `path_id` = 0 WHERE `guid` in (45501); +UPDATE `creature_template` SET `AIName` = "SmartAI" WHERE `entry` in (8666,7386); +UPDATE `creature` SET `MovementType` = 0 WHERE `guid` = 45501; +UPDATE `npc_vendor` SET `incrtime` = 3600 WHERE `entry` = 8666 and `item` = 8489; + +DELETE FROM `smart_scripts` WHERE `entryorguid` in (8666,866600,7386); +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 +(8666,0,0,0,1,1,100,0,30000,30000,120000,180000,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Lil Timmy - Out of Combat - Say Random 0 (Phase 1)'), +(8666,0,1,2,1,0,100,1,10000,10000,0,0,0,53,0,8666,1,0,0,0,1,0,0,0,0,0,0,0,0,'Lil Timmy - OOC (No Repeat) - Start Waypoint'), +(8666,0,2,3,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,23427,7386,0,0,0,0,0,0,'Lil Timmy - Linked - Set Data 1 0 \'White Kitten\''), +(8666,0,3,4,61,0,100,0,0,0,0,0,0,45,1,2,0,0,0,0,10,23427,7386,0,0,0,0,0,0,'Lil Timmy - Linked - Set Data 1 2 \'White Kitten\''), +(8666,0,4,0,61,0,100,0,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Lil Timmy - Linked - Set Event Phase 1'), +(8666,0,5,0,40,0,100,0,91,8666,0,0,0,80,866600,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Lil Timmy - On Waypoint 91 Reached - Run Script'), + +(7386,0,0,0,38,0,100,0,1,0,0,0,0,29,0,180,0,0,0,0,10,45501,8666,0,0,0,0,0,0,'White Kitten - On Data Set 1 0 - Set Follow'), +(7386,0,1,2,38,0,100,0,1,1,0,0,0,18,2,1,0,0,0,0,1,0,0,0,0,0,0,0,0,"White Kitten - On Data Set 1 1 - Set Unit_flags2 (Hide)"), +(7386,0,2,0,61,0,100,0,0,0,0,0,0,18,33554432,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"White Kitten - Linked - Set Unit_flags (Not_Selectable)"), +(7386,0,3,4,38,0,100,0,1,2,0,0,0,19,2,1,0,0,0,0,1,0,0,0,0,0,0,0,0,"White Kitten - On Data Set 1 2 - Set Unit_flags2 (Unhide)"), +(7386,0,4,0,61,0,100,0,0,0,0,0,0,19,33554432,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"White Kitten - Linked - Set Unit_flags (Selectable)"), + +(866600,9,0,0,0,0,100,0,0,0,0,0,0,54,10802000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Lil Timmy - On Script - Pause Waypoint'), +(866600,9,1,0,0,0,100,0,1000,1000,0,0,0,45,1,1,0,0,0,0,10,23427,7386,0,0,0,0,0,0,'Lil Timmy - On Script - Set Data 1 1 \'White Kitten\''), +(866600,9,2,0,0,0,100,0,0,0,0,0,0,18,2,1,0,0,0,0,1,0,0,0,0,0,0,0,0,"Lil Timmy - On Script - Set Unit_flags2 (Hide)"), +(866600,9,3,0,0,0,100,0,0,0,0,0,0,18,33554432,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Lil Timmy - On Script - Set Unit_flags (Not_Selectable)"), +(866600,9,4,0,0,0,100,0,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Lil Timmy - On Script - Set Event Phase 2'), +(866600,9,5,0,0,0,100,0,5400000,10800000,0,0,0,19,2,1,0,0,0,0,1,0,0,0,0,0,0,0,0,"Lil Timmy - On Script - Set Unit_flags2 (Unhide)"), +(866600,9,6,0,0,0,100,0,0,0,0,0,0,19,33554432,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Lil Timmy - On Script - Set Unit_flags (Selectable)"), +(866600,9,7,0,0,0,100,0,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Lil Timmy - On Script - Set Event Phase 1'), +(866600,9,8,0,0,0,100,0,0,0,0,0,0,53,0,8666,1,0,0,0,1,0,0,0,0,0,0,0,0,'Lil Timmy - On Script - Start Waypoint'), +(866600,9,9,0,0,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,23427,7386,0,0,0,0,0,0,'Lil Timmy - On Script - Set Data 1 0 \'White Kitten\''), +(866600,9,10,0,0,0,100,0,0,0,0,0,0,45,1,2,0,0,0,0,10,23427,7386,0,0,0,0,0,0,'Lil Timmy - On Script - Set Data 1 2 \'White Kitten\''); + +DELETE FROM `waypoint_data` WHERE `id` = 455010; +DELETE FROM `waypoints` WHERE `entry` = 8666; +INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`point_comment`) VALUES +(8666,1,-8641.4,912.342,99.1397,0,0,'Lil Timmy'), +(8666,2,-8661.71,894.74,97.6239,0,0,'Lil Timmy'), +(8666,3,-8679.15,880.967,97.0168,0,0,'Lil Timmy'), +(8666,4,-8681.12,877.654,97.0168,0,0,'Lil Timmy'), +(8666,5,-8679.29,873.082,97.0168,0,0,'Lil Timmy'), +(8666,6,-8659.98,849.329,97.0168,0,0,'Lil Timmy'), +(8666,7,-8639.96,825.073,96.6251,0,0,'Lil Timmy'), +(8666,8,-8636.74,813.025,96.6486,0,0,'Lil Timmy'), +(8666,9,-8634,793.001,96.6508,0,0,'Lil Timmy'), +(8666,10,-8635.94,785.58,96.6515,0,0,'Lil Timmy'), +(8666,11,-8651.43,775.162,96.6714,0,0,'Lil Timmy'), +(8666,12,-8661.39,764.974,96.6998,0,0,'Lil Timmy'), +(8666,13,-8662.58,758.134,96.6947,0,0,'Lil Timmy'), +(8666,14,-8647.73,738.576,96.6965,0,0,'Lil Timmy'), +(8666,15,-8630.74,726.606,96.7377,0,0,'Lil Timmy'), +(8666,16,-8618.88,711.997,96.7248,0,0,'Lil Timmy'), +(8666,17,-8614.67,709.545,96.7549,0,0,'Lil Timmy'), +(8666,18,-8606.13,711.345,96.7382,0,0,'Lil Timmy'), +(8666,19,-8598.07,712.945,96.6746,0,0,'Lil Timmy'), +(8666,20,-8588.25,706.887,97.0168,0,0,'Lil Timmy'), +(8666,21,-8566.09,678.512,97.0168,0,0,'Lil Timmy'), +(8666,22,-8561.86,674.735,97.0168,0,0,'Lil Timmy'), +(8666,23,-8556.46,676.784,97.0168,0,0,'Lil Timmy'), +(8666,24,-8542.79,686.774,97.6239,0,0,'Lil Timmy'), +(8666,25,-8532.769,688.506,97.661,0,0,'Lil Timmy'), +(8666,26,-8528.005,682.699,99.567,0,0,'Lil Timmy'), +(8666,27,-8522.24,670.618,102.794,0,0,'Lil Timmy'), +(8666,28,-8519.8,666.4,102.615,0,0,'Lil Timmy'), +(8666,29,-8512.94,656.648,100.901,0,0,'Lil Timmy'), +(8666,30,-8513.15,648.714,100.292,0,0,'Lil Timmy'), +(8666,31,-8518.18,642.361,100.092,0,0,'Lil Timmy'), +(8666,32,-8538.04,630.723,100.404,0,0,'Lil Timmy'), +(8666,33,-8554.03,617.81,102.053,0,0,'Lil Timmy'), +(8666,34,-8564.5,613.48,102.435,0,0,'Lil Timmy'), +(8666,35,-8576.12,601.799,103.26,0,0,'Lil Timmy'), +(8666,36,-8582.44,589.572,103.691,0,0,'Lil Timmy'), +(8666,37,-8586.68,575.605,102.985,0,0,'Lil Timmy'), +(8666,38,-8585.96,565.941,102.26,0,0,'Lil Timmy'), +(8666,39,-8578.9,545.988,101.779,0,0,'Lil Timmy'), +(8666,40,-8581.73,541.012,102.09,0,0,'Lil Timmy'), +(8666,41,-8590.09,533.912,104.76,0,0,'Lil Timmy'), +(8666,42,-8598.32,527.164,106.399,0,0,'Lil Timmy'), +(8666,43,-8605.67,520.882,105.748,0,0,'Lil Timmy'), +(8666,44,-8610.26,515.735,103.79,0,0,'Lil Timmy'), +(8666,45,-8613.43,514.684,103.401,0,0,'Lil Timmy'), +(8666,46,-8618.8,518.794,103.068,0,0,'Lil Timmy'), +(8666,47,-8635.17,535.152,99.9833,0,0,'Lil Timmy'), +(8666,48,-8647.39,546.721,97.8568,0,0,'Lil Timmy'), +(8666,49,-8655.78,552.938,96.9435,0,0,'Lil Timmy'), +(8666,50,-8671.86,552.874,97.2037,0,0,'Lil Timmy'), +(8666,51,-8679.66,549.654,97.5031,0,0,'Lil Timmy'), +(8666,52,-8689.63,540.268,97.828,0,0,'Lil Timmy'), +(8666,53,-8698.98,530.295,97.7173,0,0,'Lil Timmy'), +(8666,54,-8712.64,520.242,97.2398,0,0,'Lil Timmy'), +(8666,55,-8715.24,521.571,97.4039,0,0,'Lil Timmy'), +(8666,56,-8720.77,528.729,99.1496,0,0,'Lil Timmy'), +(8666,57,-8729.84,539.87,101.105,0,0,'Lil Timmy'), +(8666,58,-8735.95,547.101,100.845,0,0,'Lil Timmy'), +(8666,59,-8745.79,557.737,97.7107,0,0,'Lil Timmy'), +(8666,60,-8746.01,564.915,97.4001,0,0,'Lil Timmy'), +(8666,61,-8729.92,581.294,97.6775,0,0,'Lil Timmy'), +(8666,62,-8719.58,591.033,98.4713,0,0,'Lil Timmy'), +(8666,63,-8712.04,594.001,98.6079,0,0,'Lil Timmy'), +(8666,64,-8707.26,600.676,98.9982,0,0,'Lil Timmy'), +(8666,65,-8704.46,616.407,100.215,0,0,'Lil Timmy'), +(8666,66,-8705.6,629.078,100.477,0,0,'Lil Timmy'), +(8666,67,-8708.67,645.787,99.9994,0,0,'Lil Timmy'), +(8666,68,-8716.46,666.585,98.8681,0,0,'Lil Timmy'), +(8666,69,-8724.09,676.482,98.6317,0,0,'Lil Timmy'), +(8666,70,-8728.54,684.167,98.7324,0,0,'Lil Timmy'), +(8666,71,-8733.47,695.151,98.723,0,0,'Lil Timmy'), +(8666,72,-8743.6,709.876,98.2678,0,0,'Lil Timmy'), +(8666,73,-8741.08,714.561,98.9815,0,0,'Lil Timmy'), +(8666,74,-8734.46,720.119,101.647,0,0,'Lil Timmy'), +(8666,75,-8726.79,726.231,100.924,0,0,'Lil Timmy'), +(8666,76,-8718.09,733.687,97.9511,0,0,'Lil Timmy'), +(8666,77,-8716.42,737.269,97.7782,0,0,'Lil Timmy'), +(8666,78,-8721.01,746.752,97.9693,0,0,'Lil Timmy'), +(8666,79,-8730.96,759.107,98.1572,0,0,'Lil Timmy'), +(8666,80,-8731.99,769.385,98.0161,0,0,'Lil Timmy'), +(8666,81,-8724.64,778.108,98.0604,0,0,'Lil Timmy'), +(8666,82,-8717.55,792.762,97.1197,0,0,'Lil Timmy'), +(8666,83,-8728.3,817.744,96.9777,0,0,'Lil Timmy'), +(8666,84,-8726.79,830.504,96.3102,0,0,'Lil Timmy'), +(8666,85,-8723.42,841.35,96.0764,0,0,'Lil Timmy'), +(8666,86,-8709.57,857.779,96.978,0,0,'Lil Timmy'), +(8666,87,-8692.38,870.557,97.0284,0,0,'Lil Timmy'), +(8666,88,-8679.35,880.974,97.0167,0,0,'Lil Timmy'), +(8666,89,-8661.22,896.239,97.5968,0,0,'Lil Timmy'), +(8666,90,-8643.7,912.233,98.9288,0,0,'Lil Timmy'), +(8666,91,-8634.58,918.926,99.3551,0,0,'Lil Timmy'); + +-- --------------------------------------------------------End Lil' Timmy----------------------------------------------------------------------------------------------- +-- --------------------------------------------------------Sewer Beast-------------------------------------------------------------------------------------------------- + +UPDATE `creature` SET `spawntimesecs` = 87180 WHERE `guid` in (86300,86301); +DELETE FROM `creature` WHERE `guid` in (300492,300493,300494,300495); +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 +(300492,3581,0,0,0,0,0,1,1,0,-8479.075,709.373,85.894,3.7941,87180,0,0,17720,0,0,0,0,0,'',0), +(300493,3581,0,0,0,0,0,1,1,0,-8648.995,927.668,85.894,3.854,87180,0,0,17720,0,0,0,0,0,'',0), +(300494,3581,0,0,0,0,0,1,1,0,-8860.171,965.54,85.893,5.484,87180,0,0,17720,0,0,0,0,0,'',0), +(300495,3581,0,0,0,0,0,1,1,0,-8906.125,709.376,85.892,0.7132,87180,0,0,17720,0,0,0,0,0,'',0); + +DELETE FROM `pool_creature` WHERE `pool_entry` = 86300; +INSERT INTO `pool_creature` (`guid`,`pool_entry`,`chance`,`description`) VALUES +(86300,86300,0,'Sewer Beast (86300)'), +(86301,86300,0,'Sewer Beast (86301)'), +(300492,86300,0,'Sewer Beast (300492)'), +(300493,86300,0,'Sewer Beast (300493)'), +(300494,86300,0,'Sewer Beast (300494)'), +(300495,86300,0,'Sewer Beast (300495)'); + +DELETE FROM `pool_template` WHERE `entry` = 86300; +INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES +(86300,1,'Sewer Beast Pool'); + +-- -------------------------------------------------End Sewer Beast-------------------------------------------------------------------------------------------------------- +-- ------------------------------------------------Underwater Construction Worker------------------------------------------------------------------------------------------ + +DELETE FROM `creature` WHERE `guid` = 85178; -- Remove the underwater construction worker; WOTLK expansion removed them +DELETE FROM `creature_addon` WHERE `guid` = 85178; +DELETE FROM `waypoint_data` WHERE `id` = 851780; +DELETE FROM `waypoint_scripts` WHERE `id` in (334,335); + +-- ------------------------------------------------ End Underwater Construction Worker--------------------------------------------------------------------------------------- +-- -------------------------------------------------Defias Prisoner Escort--------------------------------------------------------------------------------------------------- + +DELETE FROM smart_scripts WHERE `entryorguid` = 37063; +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 +(37063,0,0,0,38,0,100,0,1,0,0,0,0,29,0,50,0,0,0,0,12,2,0,0,0,0,0,0,0,'Stormwind City Guard - On Data Set - Set Follow'), +(37063,0,1,0,38,0,100,0,2,0,0,0,0,29,0,160,0,0,0,0,12,2,0,0,0,0,0,0,0,'Stormwind City Guard - On Data Set - Set Follow'), +(37063,0,2,0,38,0,100,0,3,0,0,0,0,29,0,200,0,0,0,0,12,2,0,0,0,0,0,0,0,'Stormwind City Guard - On Data Set - Set Follow'), +(37063,0,3,0,38,0,100,0,4,0,0,0,0,29,0,310,0,0,0,0,12,2,0,0,0,0,0,0,0,'Stormwind City Guard - On Data Set - Set Follow'); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_20' WHERE sql_rev = '1648089119541675100'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/db_world/2022_03_27_21.sql b/data/sql/updates/db_world/2022_03_27_21.sql new file mode 100644 index 000000000..836ddaf6a --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_21.sql @@ -0,0 +1,29 @@ +-- DB update 2022_03_27_20 -> 2022_03_27_21 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_20'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_20 2022_03_27_21 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1648383353183302321'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648383353183302321'); +-- This updates the existing proc to allow trinket to pop on any melee damage including melee spells +UPDATE `spell_proc_event` SET `SchoolMask`='1' AND `ProcFlags`='20' WHERE `entry`='15600'; + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_21' WHERE sql_rev = '1648383353183302321'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/src/server/game/AI/CreatureAI.h b/src/server/game/AI/CreatureAI.h index 2f5880287..a9a82989f 100644 --- a/src/server/game/AI/CreatureAI.h +++ b/src/server/game/AI/CreatureAI.h @@ -177,6 +177,8 @@ public: /// == Fields ======================================= virtual void PassengerBoarded(Unit* /*passenger*/, int8 /*seatId*/, bool /*apply*/) {} + virtual bool BeforeSpellClick(Unit* /*clicker*/) { return true; } + virtual void OnSpellClick(Unit* /*clicker*/, bool& /*result*/) { } virtual bool CanSeeAlways(WorldObject const* /*obj*/) { return false; } diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp index 36314010b..2ca681a87 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.cpp +++ b/src/server/game/AI/SmartScripts/SmartAI.cpp @@ -179,12 +179,6 @@ void SmartAI::GenerateWayPointArray(Movement::PointsArray* points) void SmartAI::StartPath(bool run, uint32 path, bool repeat, Unit* invoker) { - if (me->IsInCombat())// no wp movement in combat - { - LOG_ERROR("scripts.ai.sai", "SmartAI::StartPath: Creature entry {} wanted to start waypoint movement while in combat, ignoring.", me->GetEntry()); - return; - } - if (HasEscortState(SMART_ESCORT_ESCORTING)) StopPath(); diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 76c6d2edd..40e8b8952 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -4400,6 +4400,7 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui { if (e.event.quest.quest && var0 != e.event.quest.quest) return; + RecalcTimer(e, e.event.quest.cooldownMin, e.event.quest.cooldownMax); ProcessAction(e, unit, var0); break; } diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp index 2aca121e6..7e2ca667c 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp @@ -1009,7 +1009,14 @@ bool SmartAIMgr::IsEventValid(SmartScriptHolder& e) case SMART_EVENT_ACCEPTED_QUEST: case SMART_EVENT_REWARD_QUEST: if (e.event.quest.quest && !IsQuestValid(e, e.event.quest.quest)) + { return false; + } + + if (!IsMinMaxValid(e, e.event.quest.cooldownMin, e.event.quest.cooldownMax)) + { + return false; + } break; case SMART_EVENT_RECEIVE_EMOTE: { diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h index 208975359..5a17d4ce7 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h @@ -123,8 +123,8 @@ enum SMART_EVENT SMART_EVENT_FRIENDLY_MISSING_BUFF = 16, // SpellId, Radius, RepeatMin, RepeatMax SMART_EVENT_SUMMONED_UNIT = 17, // CreatureId(0 all), CooldownMin, CooldownMax SMART_EVENT_TARGET_MANA_PCT = 18, // ManaMin%, ManaMax%, RepeatMin, RepeatMax - SMART_EVENT_ACCEPTED_QUEST = 19, // QuestID(0any) - SMART_EVENT_REWARD_QUEST = 20, // QuestID(0any) + SMART_EVENT_ACCEPTED_QUEST = 19, // QuestID (0 = any), CooldownMin, CooldownMax + SMART_EVENT_REWARD_QUEST = 20, // QuestID (0 = any), CooldownMin, CooldownMax SMART_EVENT_REACHED_HOME = 21, // NONE SMART_EVENT_RECEIVE_EMOTE = 22, // EmoteId, CooldownMin, CooldownMax, condition, val1, val2, val3 SMART_EVENT_HAS_AURA = 23, // Param1 = SpellID, Param2 = Stack amount, Param3/4 RepeatMin, RepeatMax @@ -293,6 +293,8 @@ struct SmartEvent struct { uint32 quest; + uint32 cooldownMin; + uint32 cooldownMax; } quest; struct diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp index e9eae1f61..d07c35d6a 100644 --- a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp +++ b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp @@ -476,9 +476,19 @@ void BattlefieldWG::OnBattleEnd(bool endByTimer) m_PlayersInWar[TEAM_HORDE].clear(); if (!endByTimer) // win alli/horde + { + uint32 const worldStateId = GetDefenderTeam() == TEAM_ALLIANCE ? WORLDSTATE_ALLIANCE_KEEP_CAPTURED : WORLDSTATE_HORDE_KEEP_CAPTURED; + sWorld->setWorldState(worldStateId, sWorld->getWorldState(worldStateId) + 1); + SendWarning((GetDefenderTeam() == TEAM_ALLIANCE) ? BATTLEFIELD_WG_TEXT_WIN_KEEP : (BATTLEFIELD_WG_TEXT_WIN_KEEP + 2)); + } else // defend alli/horde + { + uint32 const worldStateId = GetDefenderTeam() == TEAM_ALLIANCE ? WORLDSTATE_ALLIANCE_KEEP_DEFENDED : WORLDSTATE_HORDE_KEEP_DEFENDED; + sWorld->setWorldState(worldStateId, sWorld->getWorldState(worldStateId) + 1); + SendWarning((GetDefenderTeam() == TEAM_ALLIANCE) ? BATTLEFIELD_WG_TEXT_DEFEND_KEEP : (BATTLEFIELD_WG_TEXT_DEFEND_KEEP + 2)); + } } // ******************************************************* @@ -898,6 +908,11 @@ void BattlefieldWG::FillInitialWorldStates(WorldPacket& data) data << uint32(BATTLEFIELD_WG_WORLD_STATE_VEHICLE_A) << uint32(GetData(BATTLEFIELD_WG_DATA_VEHICLE_A)); data << uint32(BATTLEFIELD_WG_WORLD_STATE_MAX_VEHICLE_A) << GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_A); + data << uint32(WORLDSTATE_HORDE_KEEP_CAPTURED) << uint32(sWorld->getWorldState(WORLDSTATE_HORDE_KEEP_CAPTURED)); + data << uint32(WORLDSTATE_HORDE_KEEP_DEFENDED) << uint32(sWorld->getWorldState(WORLDSTATE_HORDE_KEEP_DEFENDED)); + data << uint32(WORLDSTATE_ALLIANCE_KEEP_CAPTURED) << uint32(sWorld->getWorldState(WORLDSTATE_ALLIANCE_KEEP_CAPTURED)); + data << uint32(WORLDSTATE_ALLIANCE_KEEP_DEFENDED) << uint32(sWorld->getWorldState(WORLDSTATE_ALLIANCE_KEEP_DEFENDED)); + for (GameObjectBuilding::const_iterator itr = BuildingsInZone.begin(); itr != BuildingsInZone.end(); ++itr) data << (*itr)->m_WorldState << (*itr)->m_State; @@ -913,7 +928,7 @@ void BattlefieldWG::SendInitWorldStatesTo(Player* player) data << uint32(m_MapId); data << uint32(m_ZoneId); data << uint32(0); - data << uint16(10 + BuildingsInZone.size() + WorkshopsList.size()); // Number of fields + data << uint16(14 + BuildingsInZone.size() + WorkshopsList.size()); // Number of fields FillInitialWorldStates(data); diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.h b/src/server/game/Battlefield/Zones/BattlefieldWG.h index 162bd6299..d0058d9a9 100644 --- a/src/server/game/Battlefield/Zones/BattlefieldWG.h +++ b/src/server/game/Battlefield/Zones/BattlefieldWG.h @@ -523,7 +523,11 @@ enum WintergraspWorldstates WORLDSTATE_WORKSHOP_SE = 3703, WORLDSTATE_WORKSHOP_SW = 3702, WORLDSTATE_WORKSHOP_K_W = 3698, - WORLDSTATE_WORKSHOP_K_E = 3699 + WORLDSTATE_WORKSHOP_K_E = 3699, + WORLDSTATE_HORDE_KEEP_CAPTURED = 4022, + WORLDSTATE_HORDE_KEEP_DEFENDED = 4024, + WORLDSTATE_ALLIANCE_KEEP_CAPTURED = 4023, + WORLDSTATE_ALLIANCE_KEEP_DEFENDED = 4025, }; // TODO: Handle this with creature_text ? diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 4dba85af0..f92af6694 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -1045,7 +1045,7 @@ void MovementInfo::OutDebug() } WorldObject::WorldObject(bool isWorldObject) : WorldLocation(), - LastUsedScriptID(0), m_name(""), m_isActive(false), m_visibilityDistanceOverride(false), m_isWorldObject(isWorldObject), m_zoneScript(nullptr), + LastUsedScriptID(0), m_name(""), m_isActive(false), m_visibilityDistanceOverride(), m_isWorldObject(isWorldObject), m_zoneScript(nullptr), _zoneId(0), _areaId(0), _floorZ(INVALID_HEIGHT), _outdoors(false), _liquidData(), _updatePositionData(false), m_transport(nullptr), m_currMap(nullptr), m_InstanceId(0), m_phaseMask(PHASEMASK_NORMAL), m_useCombinedPhases(true), m_notifyflags(0), m_executed_notifies(0) { diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 7fb5faad6..ece72b883 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -737,22 +737,13 @@ void Player::SendMirrorTimer(MirrorTimerType Type, uint32 MaxValue, uint32 Curre StopMirrorTimer(Type); return; } - WorldPacket data(SMSG_START_MIRROR_TIMER, (21)); - data << (uint32)Type; - data << CurrentValue; - data << MaxValue; - data << Regen; - data << (uint8)0; - data << (uint32)0; // spell id - GetSession()->SendPacket(&data); + SendDirectMessage(WorldPackets::Misc::StartMirrorTimer(Type, CurrentValue, MaxValue, Regen, 0, 0).Write()); } void Player::StopMirrorTimer(MirrorTimerType Type) { m_MirrorTimer[Type] = DISABLED_MIRROR_TIMER; - WorldPacket data(SMSG_STOP_MIRROR_TIMER, 4); - data << (uint32)Type; - GetSession()->SendPacket(&data); + SendDirectMessage(WorldPackets::Misc::StopMirrorTimer(Type).Write()); } bool Player::IsImmuneToEnvironmentalDamage() @@ -7132,10 +7123,6 @@ void Player::CastItemCombatSpell(Unit* target, WeaponAttackType attType, uint32 continue; } - // not allow proc extra attack spell at extra attack - if (m_extraAttacks && spellInfo->HasEffect(SPELL_EFFECT_ADD_EXTRA_ATTACKS)) - return; - float chance = (float)spellInfo->ProcChance; if (spellData.SpellPPMRate) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index ebdbb3f08..8c6a858d9 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -231,7 +231,6 @@ Unit::Unit(bool isWorldObject) : WorldObject(isWorldObject), m_modAttackSpeedPct[OFF_ATTACK] = 1.0f; m_modAttackSpeedPct[RANGED_ATTACK] = 1.0f; - m_extraAttacks = 0; m_canDualWield = false; m_rootTimes = 0; @@ -316,6 +315,8 @@ Unit::Unit(bool isWorldObject) : WorldObject(isWorldObject), _lastLiquid = nullptr; _oldFactionId = 0; + + _lastExtraAttackSpell = 0; } //////////////////////////////////////////////////////////// @@ -430,6 +431,23 @@ void Unit::Update(uint32 p_time) } } + _lastDamagedTargetGuid = ObjectGuid::Empty; + if (_lastExtraAttackSpell) + { + while (!extraAttacksTargets.empty()) + { + auto itr = extraAttacksTargets.begin(); + ObjectGuid targetGuid = itr->first; + uint32 count = itr->second; + extraAttacksTargets.erase(itr); + if (Unit* victim = ObjectAccessor::GetUnit(*this, targetGuid)) + { + HandleProcExtraAttackFor(victim, count); + } + } + _lastExtraAttackSpell = 0; + } + // not implemented before 3.0.2 // xinef: if attack time > 0, reduce by diff // if on next update, attack time < 0 assume player didnt attack - set to 0 @@ -2286,8 +2304,15 @@ void Unit::CalcHealAbsorb(HealInfo& healInfo) void Unit::AttackerStateUpdate(Unit* victim, WeaponAttackType attType, bool extra) { - if (HasUnitState(UNIT_STATE_CANNOT_AUTOATTACK) || HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED)) + if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED)) + { return; + } + + if (HasUnitState(UNIT_STATE_CANNOT_AUTOATTACK) && !extra) + { + return; + } if (!victim->IsAlive()) return; @@ -2304,6 +2329,11 @@ void Unit::AttackerStateUpdate(Unit* victim, WeaponAttackType attType, bool extr if (attType != BASE_ATTACK && attType != OFF_ATTACK) return; // ignore ranged case + if (!extra && _lastExtraAttackSpell) + { + _lastExtraAttackSpell = 0; + } + bool meleeAttack = true; // melee attack spell casted at main hand attack only - no normal melee dmg dealt @@ -2345,6 +2375,8 @@ void Unit::AttackerStateUpdate(Unit* victim, WeaponAttackType attType, bool extr //TriggerAurasProcOnEvent(damageInfo); + _lastDamagedTargetGuid = victim->GetGUID(); + DealMeleeDamage(&damageInfo, true); DamageInfo dmgInfo(damageInfo); @@ -2457,15 +2489,31 @@ bool Unit::GetMeleeAttackPoint(Unit* attacker, Position& pos) return true; } -void Unit::HandleProcExtraAttackFor(Unit* victim) +void Unit::HandleProcExtraAttackFor(Unit* victim, uint32 count) { - while (m_extraAttacks) + while (count) { + --count; AttackerStateUpdate(victim, BASE_ATTACK, true); - --m_extraAttacks; } } +void Unit::AddExtraAttacks(uint32 count) +{ + ObjectGuid targetGUID = _lastDamagedTargetGuid; + if (!targetGUID) + { + if (ObjectGuid selection = GetTarget()) + { + targetGUID = selection; // Spell was cast directly (not triggered by aura) + } + else + return; + } + + extraAttacksTargets[targetGUID] += count; +} + MeleeHitOutcome Unit::RollMeleeOutcomeAgainst(Unit const* victim, WeaponAttackType attType) const { // This is only wrapper @@ -8418,7 +8466,7 @@ bool Unit::HandleAuraProc(Unit* victim, uint32 damage, Aura* triggeredByAura, Sp return false; } -bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* triggeredByAura, SpellInfo const* procSpell, uint32 procFlags, uint32 procEx, uint32 cooldown, uint32 procPhase) +bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* triggeredByAura, SpellInfo const* procSpell, uint32 procFlags, uint32 procEx, uint32 cooldown, uint32 procPhase, ProcEventInfo& eventInfo) { // Get triggered aura spell info SpellInfo const* auraSpellInfo = triggeredByAura->GetSpellInfo(); @@ -8904,8 +8952,23 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg } // not allow proc extra attack spell at extra attack - if (m_extraAttacks && triggerEntry->HasEffect(SPELL_EFFECT_ADD_EXTRA_ATTACKS)) - return false; + if (triggerEntry->HasEffect(SPELL_EFFECT_ADD_EXTRA_ATTACKS)) + { + uint32 lastExtraAttackSpell = eventInfo.GetActor()->GetLastExtraAttackSpell(); + + // Patch 1.12.0(?) extra attack abilities can no longer chain proc themselves + if (lastExtraAttackSpell == trigger_spell_id) + { + return false; + } + + // Patch 2.2.0 Sword Specialization (Warrior, Rogue) extra attack can no longer proc additional extra attacks + // 3.3.5 Sword Specialization (Warrior), Hack and Slash (Rogue) + if (lastExtraAttackSpell == 16459 || lastExtraAttackSpell == 66923) + { + return false; + } + } // Custom requirements (not listed in procEx) Warning! damage dealing after this // Custom triggered spells @@ -10742,15 +10805,15 @@ void Unit::SendEnergizeSpellLog(Unit* victim, uint32 spellID, uint32 damage, Pow void Unit::EnergizeBySpell(Unit* victim, uint32 spellID, uint32 damage, Powers powerType) { - SendEnergizeSpellLog(victim, spellID, damage, powerType); - // needs to be called after sending spell log - victim->ModifyPower(powerType, damage); + victim->ModifyPower(powerType, damage, false); if (powerType != POWER_HAPPINESS) { SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellID); victim->getHostileRefMgr().threatAssist(this, float(damage) * 0.5f, spellInfo); } + + SendEnergizeSpellLog(victim, spellID, damage, powerType); } float Unit::SpellPctDamageModsDone(Unit* victim, SpellInfo const* spellProto, DamageEffectType damagetype) @@ -13440,7 +13503,7 @@ int32 Unit::GetHealthGain(int32 dVal) } // returns negative amount on power reduction -int32 Unit::ModifyPower(Powers power, int32 dVal) +int32 Unit::ModifyPower(Powers power, int32 dVal, bool withPowerUpdate /*= true*/) { if (dVal == 0) return 0; @@ -13452,7 +13515,7 @@ int32 Unit::ModifyPower(Powers power, int32 dVal) int32 val = dVal + curPower; if (val <= 0) { - SetPower(power, 0); + SetPower(power, 0, withPowerUpdate); return -curPower; } @@ -13460,12 +13523,12 @@ int32 Unit::ModifyPower(Powers power, int32 dVal) if (val < maxPower) { - SetPower(power, val); + SetPower(power, val, withPowerUpdate); gain = val - curPower; } else if (curPower != maxPower) { - SetPower(power, maxPower); + SetPower(power, maxPower, withPowerUpdate); gain = maxPower - curPower; } @@ -14832,7 +14895,7 @@ void Unit::SetMaxHealth(uint32 val) SetHealth(val); } -void Unit::SetPower(Powers power, uint32 val) +void Unit::SetPower(Powers power, uint32 val, bool withPowerUpdate /*= true*/) { if (GetPower(power) == val) return; @@ -14843,11 +14906,14 @@ void Unit::SetPower(Powers power, uint32 val) SetStatInt32Value(static_cast(UNIT_FIELD_POWER1) + power, val); - WorldPacket data(SMSG_POWER_UPDATE); - data << GetPackGUID(); - data << uint8(power); - data << uint32(val); - SendMessageToSet(&data, GetTypeId() == TYPEID_PLAYER); + if (withPowerUpdate) + { + WorldPacket data(SMSG_POWER_UPDATE); + data << GetPackGUID(); + data << uint8(power); + data << uint32(val); + SendMessageToSet(&data, GetTypeId() == TYPEID_PLAYER); + } // group update if (GetTypeId() == TYPEID_PLAYER) @@ -15841,7 +15907,7 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit* target, uint32 procFlag, u { LOG_DEBUG("spells.aura", "ProcDamageAndSpell: casting spell {} (triggered by {} aura of spell {})", spellInfo->Id, (isVictim ? "a victim's" : "an attacker's"), triggeredByAura->GetId()); // Don`t drop charge or add cooldown for not started trigger - if (HandleProcTriggerSpell(target, damage, triggeredByAura, procSpellInfo, procFlag, procExtra, cooldown, procPhase)) + if (HandleProcTriggerSpell(target, damage, triggeredByAura, procSpellInfo, procFlag, procExtra, cooldown, procPhase, eventInfo)) takeCharges = true; break; } @@ -15900,7 +15966,7 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit* target, uint32 procFlag, u { LOG_DEBUG("spells.aura", "ProcDamageAndSpell: casting spell {} (triggered with value by {} aura of spell {})", spellInfo->Id, (isVictim ? "a victim's" : "an attacker's"), triggeredByAura->GetId()); - if (HandleProcTriggerSpell(target, damage, triggeredByAura, procSpellInfo, procFlag, procExtra, cooldown, procPhase)) + if (HandleProcTriggerSpell(target, damage, triggeredByAura, procSpellInfo, procFlag, procExtra, cooldown, procPhase, eventInfo)) takeCharges = true; break; } @@ -16303,10 +16369,6 @@ void Unit::AddComboPoints(Unit* target, int8 count) return; } - // remove Premed-like effects - // (NB: this Aura removes the already-added CP when it expires from duration - now that we've added CP, this shouldn't happen anymore) - RemoveAurasByType(SPELL_AURA_RETAIN_COMBO_POINTS); - if (target && target != m_comboTarget) { if (m_comboTarget) @@ -18931,6 +18993,15 @@ void Unit::JumpTo(WorldObject* obj, float speedZ) bool Unit::HandleSpellClick(Unit* clicker, int8 seatId) { + Creature* creature = ToCreature(); + if (creature && creature->IsAIEnabled) + { + if (!creature->AI()->BeforeSpellClick(clicker)) + { + return false; + } + } + bool result = false; uint32 spellClickEntry = GetVehicleKit() ? GetVehicleKit()->GetCreatureEntry() : GetEntry(); SpellClickInfoMapBounds clickPair = sObjectMgr->GetSpellClickInfoMapBounds(spellClickEntry); @@ -18999,7 +19070,6 @@ bool Unit::HandleSpellClick(Unit* clicker, int8 seatId) result = true; } - Creature* creature = ToCreature(); if (creature && creature->IsAIEnabled) creature->AI()->OnSpellClick(clicker, result); diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 373ac7c8d..3c38dc5c2 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1416,10 +1416,10 @@ public: void setPowerType(Powers power); [[nodiscard]] uint32 GetPower(Powers power) const { return GetUInt32Value(static_cast(UNIT_FIELD_POWER1) + power); } [[nodiscard]] uint32 GetMaxPower(Powers power) const { return GetUInt32Value(static_cast(UNIT_FIELD_MAXPOWER1) + power); } - void SetPower(Powers power, uint32 val); + void SetPower(Powers power, uint32 val, bool withPowerUpdate = true); void SetMaxPower(Powers power, uint32 val); // returns the change in power - int32 ModifyPower(Powers power, int32 val); + int32 ModifyPower(Powers power, int32 val, bool withPowerUpdate = true); int32 ModifyPowerPct(Powers power, float pct, bool apply = true); [[nodiscard]] uint32 GetAttackTime(WeaponAttackType att) const @@ -1507,7 +1507,13 @@ public: void CalculateMeleeDamage(Unit* victim, uint32 damage, CalcDamageInfo* damageInfo, WeaponAttackType attackType = BASE_ATTACK, const bool sittingVictim = false); void DealMeleeDamage(CalcDamageInfo* damageInfo, bool durabilityLoss); - void HandleProcExtraAttackFor(Unit* victim); + + void HandleProcExtraAttackFor(Unit* victim, uint32 count); + void SetLastExtraAttackSpell(uint32 spellId) { _lastExtraAttackSpell = spellId; } + [[nodiscard]] uint32 GetLastExtraAttackSpell() const { return _lastExtraAttackSpell; } + void AddExtraAttacks(uint32 count); + void SetLastDamagedTargetGuid(ObjectGuid const& guid) { _lastDamagedTargetGuid = guid; } + [[nodiscard]] ObjectGuid const& GetLastDamagedTargetGuid() const { return _lastDamagedTargetGuid; } void CalculateSpellDamageTaken(SpellNonMeleeDamage* damageInfo, int32 damage, SpellInfo const* spellInfo, WeaponAttackType attackType = BASE_ATTACK, bool crit = false); void DealSpellDamage(SpellNonMeleeDamage* damageInfo, bool durabilityLoss, Spell const* spell = nullptr); @@ -2474,7 +2480,7 @@ private: bool IsTriggeredAtSpellProcEvent(Unit* victim, Aura* aura, WeaponAttackType attType, bool isVictim, bool active, SpellProcEventEntry const*& spellProcEvent, ProcEventInfo const& eventInfo); bool HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggeredByAura, SpellInfo const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); bool HandleAuraProc(Unit* victim, uint32 damage, Aura* triggeredByAura, SpellInfo const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown, bool* handled); - bool HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* triggeredByAura, SpellInfo const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown, uint32 procPhase); + bool HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* triggeredByAura, SpellInfo const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown, uint32 procPhase, ProcEventInfo& eventInfo); bool HandleOverrideClassScriptAuraProc(Unit* victim, uint32 damage, AuraEffect* triggeredByAura, SpellInfo const* procSpell, uint32 cooldown); bool HandleAuraRaidProcFromChargeWithValue(AuraEffect* triggeredByAura); bool HandleAuraRaidProcFromCharge(AuraEffect* triggeredByAura); @@ -2518,6 +2524,10 @@ private: uint32 _oldFactionId; ///< faction before charm [[nodiscard]] float processDummyAuras(float TakenTotalMod) const; + + uint32 _lastExtraAttackSpell; + std::unordered_map extraAttacksTargets; + ObjectGuid _lastDamagedTargetGuid; }; namespace Acore diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index dc3c426f2..c4ccb3208 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -35,6 +35,7 @@ #include "Log.h" #include "LootMgr.h" #include "MapMgr.h" +#include "MiscPackets.h" #include "Object.h" #include "ObjectAccessor.h" #include "ObjectMgr.h" @@ -1570,9 +1571,9 @@ void WorldSession::HandleWorldStateUITimerUpdate(WorldPacket& /*recv_data*/) // empty opcode LOG_DEBUG("network", "WORLD: CMSG_WORLD_STATE_UI_TIMER_UPDATE"); - WorldPacket data(SMSG_WORLD_STATE_UI_TIMER_UPDATE, 4); - data << uint32(GameTime::GetGameTime().count()); - SendPacket(&data); + WorldPackets::Misc::UITime response; + response.Time = GameTime::GetGameTime().count(); + SendPacket(response.Write()); } void WorldSession::HandleReadyForAccountDataTimes(WorldPacket& /*recv_data*/) diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp index cf192ade6..a418a517e 100644 --- a/src/server/game/Server/Packets/MiscPackets.cpp +++ b/src/server/game/Server/Packets/MiscPackets.cpp @@ -83,6 +83,33 @@ WorldPacket const* WorldPackets::Misc::RandomRoll::Write() return &_worldPacket; } +WorldPacket const* WorldPackets::Misc::StartMirrorTimer::Write() +{ + _worldPacket << uint32(Timer); + _worldPacket << uint32(Value); + _worldPacket << uint32(MaxValue); + _worldPacket << int32(Scale); + _worldPacket << uint8(Paused); + _worldPacket << uint32(SpellID); + + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Misc::PauseMirrorTimer::Write() +{ + _worldPacket << uint32(Timer); + _worldPacket << uint8(Paused); + + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Misc::StopMirrorTimer::Write() +{ + _worldPacket << uint32(Timer); + + return &_worldPacket; +} + WorldPacket const* WorldPackets::Misc::CrossedInebriationThreshold::Write() { _worldPacket << Guid; @@ -91,3 +118,10 @@ WorldPacket const* WorldPackets::Misc::CrossedInebriationThreshold::Write() return &_worldPacket; } + +WorldPacket const* WorldPackets::Misc::UITime::Write() +{ + _worldPacket << uint32(Time); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h index d708654e4..7097596ad 100644 --- a/src/server/game/Server/Packets/MiscPackets.h +++ b/src/server/game/Server/Packets/MiscPackets.h @@ -114,6 +114,46 @@ namespace WorldPackets ObjectGuid Roller; }; + class StartMirrorTimer final : public ServerPacket + { + public: + StartMirrorTimer() : ServerPacket(SMSG_START_MIRROR_TIMER, 21) { } + StartMirrorTimer(uint32 timer, uint32 value, uint32 maxValue, int32 scale, bool paused, uint32 spellID) : + ServerPacket(SMSG_START_MIRROR_TIMER, 21), Timer(timer), Value(value), MaxValue(maxValue), Scale(scale), Paused(paused), SpellID(spellID) { } + + WorldPacket const* Write() override; + + uint32 Timer = 0; + uint32 Value = 0; + uint32 MaxValue = 0; + int32 Scale = 0; + bool Paused = false; + uint32 SpellID = 0; + }; + + class PauseMirrorTimer final : public ServerPacket + { + public: + PauseMirrorTimer() : ServerPacket(SMSG_PAUSE_MIRROR_TIMER, 5) { } + PauseMirrorTimer(uint32 timer, bool paused) : ServerPacket(SMSG_PAUSE_MIRROR_TIMER, 5), Timer(timer), Paused(paused) { } + + WorldPacket const* Write() override; + + uint32 Timer = 0; + bool Paused = true; + }; + + class StopMirrorTimer final : public ServerPacket + { + public: + StopMirrorTimer() : ServerPacket(SMSG_STOP_MIRROR_TIMER, 4) { } + StopMirrorTimer(uint32 timer) : ServerPacket(SMSG_STOP_MIRROR_TIMER, 4), Timer(timer) { } + + WorldPacket const* Write() override; + + uint32 Timer = 0; + }; + class DurabilityDamageDeath final : public ServerPacket { public: @@ -134,6 +174,16 @@ namespace WorldPackets uint32 ItemID = 0; }; + + class UITime final : public ServerPacket + { + public: + UITime() : ServerPacket(SMSG_WORLD_STATE_UI_TIMER_UPDATE, 4) { } + + WorldPacket const* Write() override; + + uint32 Time = 0; + }; } } diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 594b59e4d..dddaf542e 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -2605,6 +2605,8 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target) // Do damage and triggers else if (m_damage > 0) { + caster->SetLastDamagedTargetGuid(unitTarget->GetGUID()); + // Fill base damage struct (unitTarget - is real spell target) SpellNonMeleeDamage damageInfo(caster, unitTarget, m_spellInfo, m_spellSchoolMask); @@ -4039,11 +4041,20 @@ void Spell::_handle_finish_phase() // Real add combo points from effects if (m_comboTarget && m_comboPointGain) { + // remove Premed-like effects unless they were caused by ourselves + // (this Aura removes the already-added CP when it expires from duration - now that we've added CP, this shouldn't happen anymore!) + if (!m_spellInfo->HasAura(SPELL_AURA_RETAIN_COMBO_POINTS)) + { + m_caster->RemoveAurasByType(SPELL_AURA_RETAIN_COMBO_POINTS); + } + m_caster->AddComboPoints(m_comboTarget, m_comboPointGain); } - if (m_caster->m_extraAttacks && GetSpellInfo()->HasEffect(SPELL_EFFECT_ADD_EXTRA_ATTACKS)) - m_caster->HandleProcExtraAttackFor(m_caster->GetVictim()); + if (m_spellInfo->HasEffect(SPELL_EFFECT_ADD_EXTRA_ATTACKS)) + { + m_caster->SetLastExtraAttackSpell(m_spellInfo->Id); + } if (!IsAutoRepeat() && !IsNextMeleeSwingSpell()) if (m_caster->GetCharmerOrOwnerPlayerOrPlayerItself()) @@ -4461,10 +4472,12 @@ void Spell::SendSpellStart() if (m_spellInfo->HasAttribute(SPELL_ATTR0_USES_RANGED_SLOT) || m_spellInfo->HasAttribute(SPELL_ATTR0_CU_NEEDS_AMMO_DATA)) castFlags |= CAST_FLAG_PROJECTILE; - if ((m_caster->GetTypeId() == TYPEID_PLAYER || - (m_caster->GetTypeId() == TYPEID_UNIT && m_caster->IsPet())) - && m_spellInfo->PowerType != POWER_HEALTH) + + if ((m_caster->GetTypeId() == TYPEID_PLAYER || (m_caster->GetTypeId() == TYPEID_UNIT && m_caster->IsPet())) + && m_spellInfo->PowerType != POWER_HEALTH && m_powerCost != 0) + { castFlags |= CAST_FLAG_POWER_LEFT_SELF; + } if (m_spellInfo->RuneCostID && m_spellInfo->PowerType == POWER_RUNE) castFlags |= CAST_FLAG_NO_GCD; // not needed, but Blizzard sends it @@ -4518,10 +4531,11 @@ void Spell::SendSpellGo() if (m_spellInfo->HasAttribute(SPELL_ATTR0_USES_RANGED_SLOT) || m_spellInfo->HasAttribute(SPELL_ATTR0_CU_NEEDS_AMMO_DATA)) castFlags |= CAST_FLAG_PROJECTILE; // arrows/bullets visual - if ((m_caster->GetTypeId() == TYPEID_PLAYER || - (m_caster->GetTypeId() == TYPEID_UNIT && m_caster->IsPet())) - && m_spellInfo->PowerType != POWER_HEALTH) - castFlags |= CAST_FLAG_POWER_LEFT_SELF; // should only be sent to self, but the current messaging doesn't make that possible + if ((m_caster->GetTypeId() == TYPEID_PLAYER || (m_caster->GetTypeId() == TYPEID_UNIT && m_caster->IsPet())) + && m_spellInfo->PowerType != POWER_HEALTH && m_powerCost != 0) // should only be sent to self, but the current messaging doesn't make that possible + { + castFlags |= CAST_FLAG_POWER_LEFT_SELF; + } if ((m_caster->GetTypeId() == TYPEID_PLAYER) && (m_caster->getClass() == CLASS_DEATH_KNIGHT) @@ -5052,7 +5066,9 @@ void Spell::TakePower() // Set the five second timer if (PowerType == POWER_MANA && m_powerCost > 0) + { m_caster->SetLastManaUse(GameTime::GetGameTimeMS().count()); + } } void Spell::TakeAmmo() diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index fd383e71b..300f4c466 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -1287,39 +1287,6 @@ void Spell::EffectTeleportUnits(SpellEffIndex /*effIndex*/) } return; } - // Dimensional Ripper - Area 52 - case 36890: - { - if (roll_chance_i(50)) // 50% success - { - int32 rand_eff = urand(1, 4); - switch (rand_eff) - { - case 1: - // soul split - evil - m_caster->CastSpell(m_caster, 36900, true); - break; - case 2: - // soul split - good - m_caster->CastSpell(m_caster, 36901, true); - break; - case 3: - // Increase the size - m_caster->CastSpell(m_caster, 36895, true); - break; - case 4: - // Transform - { - if (m_caster->ToPlayer()->GetTeamId() == TEAM_ALLIANCE) - m_caster->CastSpell(m_caster, 36897, true); - else - m_caster->CastSpell(m_caster, 36899, true); - break; - } - } - } - return; - } } } @@ -1516,13 +1483,6 @@ void Spell::EffectHeal(SpellEffIndex /*effIndex*/) addhealth += damageAmount; } - // Runic Healing Injector (heal increased by 25% for engineers - 3.2.0 patch change) - else if (m_spellInfo->Id == 67489) - { - if (Player* player = m_caster->ToPlayer()) - if (player->HasSkill(SKILL_ENGINEERING)) - AddPct(addhealth, 25); - } // Swiftmend - consumes Regrowth or Rejuvenation else if (m_spellInfo->TargetAuraState == AURA_STATE_SWIFTMEND && unitTarget->HasAuraState(AURA_STATE_SWIFTMEND, m_spellInfo, m_caster)) { @@ -3822,17 +3782,6 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex) { switch (m_spellInfo->Id) { - // Bending Shinbone - case 8856: - { - if (!itemTarget && m_caster->GetTypeId() != TYPEID_PLAYER) - return; - - uint32 spell_id = roll_chance_i(20) ? 8854 : 8855; - - m_caster->CastSpell(m_caster, spell_id, true, nullptr); - return; - } // Brittle Armor - need remove one 24575 Brittle Armor aura case 24590: unitTarget->RemoveAuraFromStack(24575); @@ -3974,84 +3923,6 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex) m_caster->TextEmote(buf); break; } - // Death Knight Initiate Visual - case 51519: - { - if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT) - return; - - uint32 iTmpSpellId = 0; - switch (unitTarget->GetDisplayId()) - { - case 25369: - iTmpSpellId = 51552; - break; // bloodelf female - case 25373: - iTmpSpellId = 51551; - break; // bloodelf male - case 25363: - iTmpSpellId = 51542; - break; // draenei female - case 25357: - iTmpSpellId = 51541; - break; // draenei male - case 25361: - iTmpSpellId = 51537; - break; // dwarf female - case 25356: - iTmpSpellId = 51538; - break; // dwarf male - case 25372: - iTmpSpellId = 51550; - break; // forsaken female - case 25367: - iTmpSpellId = 51549; - break; // forsaken male - case 25362: - iTmpSpellId = 51540; - break; // gnome female - case 25359: - iTmpSpellId = 51539; - break; // gnome male - case 25355: - iTmpSpellId = 51534; - break; // human female - case 25354: - iTmpSpellId = 51520; - break; // human male - case 25360: - iTmpSpellId = 51536; - break; // nightelf female - case 25358: - iTmpSpellId = 51535; - break; // nightelf male - case 25368: - iTmpSpellId = 51544; - break; // orc female - case 25364: - iTmpSpellId = 51543; - break; // orc male - case 25371: - iTmpSpellId = 51548; - break; // tauren female - case 25366: - iTmpSpellId = 51547; - break; // tauren male - case 25370: - iTmpSpellId = 51545; - break; // troll female - case 25365: - iTmpSpellId = 51546; - break; // troll male - default: - return; - } - - unitTarget->CastSpell(unitTarget, iTmpSpellId, true); - Creature* npc = unitTarget->ToCreature(); - npc->LoadEquipment(); - return; - } // Deathbolt from Thalgran Blightbringer // reflected by Freya's Ward // Retribution by Sevenfold Retribution @@ -4121,48 +3992,6 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex) else unitTarget->CastSpell(unitTarget, 59314, true); - return; - } - case 60123: // Lightwell - { - if (m_caster->GetTypeId() != TYPEID_UNIT || !m_caster->ToCreature()->IsSummon()) - return; - - uint32 spell_heal; - - switch (m_caster->GetEntry()) - { - case 31897: - spell_heal = 7001; - break; - case 31896: - spell_heal = 27873; - break; - case 31895: - spell_heal = 27874; - break; - case 31894: - spell_heal = 28276; - break; - case 31893: - spell_heal = 48084; - break; - case 31883: - spell_heal = 48085; - break; - default: - LOG_ERROR("spells.effect", "Unknown Lightwell spell caster {}", m_caster->GetEntry()); - return; - } - - // proc a spellcast - if (Aura* chargesAura = m_caster->GetAura(59907)) - { - m_caster->CastSpell(unitTarget, spell_heal, true, nullptr, nullptr, m_caster->ToTempSummon()->GetSummonerGUID()); - if (chargesAura->ModCharges(-1)) - m_caster->ToTempSummon()->UnSummon(); - } - return; } // Stoneclaw Totem @@ -4835,17 +4664,18 @@ void Spell::EffectResurrect(SpellEffIndex effIndex) void Spell::EffectAddExtraAttacks(SpellEffIndex effIndex) { if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET) + { return; + } - if (!unitTarget || !unitTarget->IsAlive() || !unitTarget->GetVictim()) + if (!unitTarget || !unitTarget->IsAlive()) + { return; + } - if (unitTarget->m_extraAttacks) - return; + unitTarget->AddExtraAttacks(damage); - unitTarget->m_extraAttacks = damage; - - ExecuteLogEffectExtraAttacks(effIndex, unitTarget->GetVictim(), damage); + ExecuteLogEffectExtraAttacks(effIndex, unitTarget, damage); } void Spell::EffectParry(SpellEffIndex /*effIndex*/) diff --git a/src/server/game/Spells/SpellInfoCorrections.cpp b/src/server/game/Spells/SpellInfoCorrections.cpp index a90200076..c7f494b15 100644 --- a/src/server/game/Spells/SpellInfoCorrections.cpp +++ b/src/server/game/Spells/SpellInfoCorrections.cpp @@ -4168,6 +4168,11 @@ void SpellMgr::LoadSpellInfoCorrections() spellInfo->AttributesEx2 |= SPELL_ATTR2_IGNORE_LINE_OF_SIGHT; }); + ApplySpellFix({ 22247 }, [](SpellInfo* spellInfo) + { + spellInfo->AttributesCu |= SPELL_ATTR0_CU_DONT_BREAK_STEALTH; + }); + // Manastorm ApplySpellFix({ 21097 }, [](SpellInfo* spellInfo) { diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp index 1152b769c..21095dd73 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp @@ -51,7 +51,8 @@ enum Events enum Actions { - ACTION_DISARMED = 0 + ACTION_DEACTIVATE = 0, + ACTION_DISARMED = 1 }; class boss_broodlord : public CreatureScript @@ -75,6 +76,18 @@ public: events.ScheduleEvent(EVENT_CHECK, 1000); } + void JustDied(Unit* /*killer*/) override + { + _JustDied(); + + std::list _goList; + GetGameObjectListWithEntryInGrid(_goList, me, GO_SUPPRESSION_DEVICE, 200.0f); + for (std::list::const_iterator itr = _goList.begin(); itr != _goList.end(); itr++) + { + ((*itr)->AI()->DoAction(ACTION_DEACTIVATE)); + } + } + void UpdateAI(uint32 diff) override { if (!UpdateVictim()) @@ -183,11 +196,19 @@ class go_suppression_device : public GameObjectScript void DoAction(int32 action) override { - if (action == ACTION_DISARMED) + if (action == ACTION_DEACTIVATE) + { + _events.CancelEvent(EVENT_SUPPRESSION_RESET); + } + else if (action == ACTION_DISARMED) { Deactivate(); _events.CancelEvent(EVENT_SUPPRESSION_CAST); - _events.ScheduleEvent(EVENT_SUPPRESSION_RESET, urand(30000, 120000)); + + if (_instance->GetBossState(DATA_BROODLORD_LASHLAYER) != DONE) + { + _events.ScheduleEvent(EVENT_SUPPRESSION_RESET, urand(30000, 120000)); + } } } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp index 7073db104..79d0a6fa3 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp @@ -34,6 +34,7 @@ enum Events EVENT_CHECK_PHASE_2, EVENT_START_EVENT, EVENT_SHADOW_BOLT, + EVENT_SHADOW_BOLT_VOLLEY, EVENT_FEAR, EVENT_SILENCE, EVENT_MIND_CONTROL, @@ -298,7 +299,8 @@ public: SetCombatMovement(false); AttackStart(SelectTarget(SelectTargetMethod::Random, 0, 200.f, true)); events.ScheduleEvent(EVENT_SHADOWBLINK, 500); - events.ScheduleEvent(EVENT_SHADOW_BOLT, urand(3000, 10000)); + events.ScheduleEvent(EVENT_SHADOW_BOLT, 3000); + events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, urand(13000, 15000)); events.ScheduleEvent(EVENT_FEAR, urand(10000, 20000)); events.ScheduleEvent(EVENT_SILENCE, urand(20000, 25000)); events.ScheduleEvent(EVENT_MIND_CONTROL, urand(30000, 35000)); @@ -388,17 +390,12 @@ public: switch (eventId) { case EVENT_SHADOW_BOLT: - switch (urand(0, 1)) - { - case 0: - DoCastAOE(SPELL_SHADOWBOLT_VOLLEY); - break; - case 1: - DoCastRandomTarget(SPELL_SHADOWBOLT, 0, 150.f); - break; - } - DoResetThreat(); - events.ScheduleEvent(EVENT_SHADOW_BOLT, urand(3000, 10000)); + DoCastRandomTarget(SPELL_SHADOWBOLT, 0, 150.f); + events.ScheduleEvent(EVENT_SHADOW_BOLT, urand(2000, 4000)); + break; + case EVENT_SHADOW_BOLT_VOLLEY: + DoCastAOE(SPELL_SHADOWBOLT_VOLLEY); + events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, 19000, 25000); break; case EVENT_FEAR: if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40, true)) @@ -412,7 +409,7 @@ public: case EVENT_MIND_CONTROL: if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40, true)) DoCast(target, SPELL_SHADOW_COMMAND); - events.ScheduleEvent(EVENT_MIND_CONTROL, urand(30000, 35000)); + events.ScheduleEvent(EVENT_MIND_CONTROL, urand(24000, 30000)); break; case EVENT_SHADOWBLINK: DoCastSelf(SPELL_SHADOWBLINK); @@ -436,6 +433,7 @@ public: events.CancelEvent(EVENT_MIND_CONTROL); events.CancelEvent(EVENT_FEAR); events.CancelEvent(EVENT_SHADOW_BOLT); + events.CancelEvent(EVENT_SHADOW_BOLT_VOLLEY); events.CancelEvent(EVENT_SILENCE); DoCastSelf(SPELL_ROOT_SELF, true); me->SetVisible(false); @@ -470,6 +468,8 @@ public: me->SetUInt32Value(UNIT_NPC_FLAGS, 0); me->SetStandState(UNIT_STAND_STATE_STAND); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE); + // Due to Nefarius despawning himself on Vael, we need to update the guid on instance to prevent unwanted behaviours as encounter not resetting at all. + instance->SetGuidData(DATA_LORD_VICTOR_NEFARIUS, me->GetGUID()); } } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp index 6208ef50f..736c99ed7 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp @@ -124,7 +124,7 @@ public: events.ScheduleEvent(EVENT_CLEAVE, 10000); events.ScheduleEvent(EVENT_FLAME_BREATH, 15000); - events.ScheduleEvent(EVENT_FIRE_NOVA, 20000); + events.ScheduleEvent(EVENT_FIRE_NOVA, 5000); events.ScheduleEvent(EVENT_TAIL_SWEEP, 11000); events.ScheduleEvent(EVENT_BURNING_ADRENALINE, 15000); } @@ -220,7 +220,7 @@ public: break; case EVENT_FIRE_NOVA: DoCastVictim(SPELL_FIRE_NOVA); - events.ScheduleEvent(EVENT_FIRE_NOVA, 15000); + events.ScheduleEvent(EVENT_FIRE_NOVA, urand(3000, 5000)); break; case EVENT_TAIL_SWEEP: DoCastAOE(SPELL_TAIL_SWEEP); diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp index 679039671..1d4b0ead8 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp @@ -357,6 +357,18 @@ public: return ObjectGuid::Empty; } + void SetGuidData(uint32 type, ObjectGuid data) override + { + switch (type) + { + case DATA_LORD_VICTOR_NEFARIUS: + victorNefariusGUID = data; + break; + default: + break; + } + } + void OnUnitDeath(Unit* unit) override { switch (unit->GetEntry()) diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp index 965c537c2..dbee1f0bb 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -1171,6 +1171,52 @@ public: } }; +class spell_death_knight_initiate_visual : public SpellScript +{ + PrepareSpellScript(spell_death_knight_initiate_visual); + + void HandleScriptEffect(SpellEffIndex /* effIndex */) + { + Creature* target = GetHitCreature(); + if (!target) + return; + + uint32 spellId; + switch (target->GetDisplayId()) + { + case 25369: spellId = 51552; break; // bloodelf female + case 25373: spellId = 51551; break; // bloodelf male + case 25363: spellId = 51542; break; // draenei female + case 25357: spellId = 51541; break; // draenei male + case 25361: spellId = 51537; break; // dwarf female + case 25356: spellId = 51538; break; // dwarf male + case 25372: spellId = 51550; break; // forsaken female + case 25367: spellId = 51549; break; // forsaken male + case 25362: spellId = 51540; break; // gnome female + case 25359: spellId = 51539; break; // gnome male + case 25355: spellId = 51534; break; // human female + case 25354: spellId = 51520; break; // human male + case 25360: spellId = 51536; break; // nightelf female + case 25358: spellId = 51535; break; // nightelf male + case 25368: spellId = 51544; break; // orc female + case 25364: spellId = 51543; break; // orc male + case 25371: spellId = 51548; break; // tauren female + case 25366: spellId = 51547; break; // tauren male + case 25370: spellId = 51545; break; // troll female + case 25365: spellId = 51546; break; // troll male + default: return; + } + + target->CastSpell(target, spellId, true); + target->LoadEquipment(); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_death_knight_initiate_visual::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + void AddSC_the_scarlet_enclave_c1() { // Ours @@ -1191,4 +1237,6 @@ void AddSC_the_scarlet_enclave_c1() new npc_scarlet_miner(); new npc_scarlet_miner_cart(); new go_inconspicuous_mine_car(); + + RegisterSpellScript(spell_death_knight_initiate_visual); } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp index 01f6830c7..22197c24c 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp @@ -268,6 +268,11 @@ public: BindPlayers(); me->SetInCombatWithZone(); + + if (!_startTimer) + { + TurnGates(true, false); + } } void InitializeAI() override diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp index 9776efdc6..036cbdd54 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp @@ -242,17 +242,19 @@ public: summons.DespawnAll(); if (m_pInstance) + { m_pInstance->SetData(TYPE_KOLOGARN, NOT_STARTED); + // Open the door inside Kologarn chamber + if (GameObject* door = m_pInstance->instance->GetGameObject(m_pInstance->GetGuidData(GO_KOLOGARN_DOORS))) + door->SetGoState(GO_STATE_ACTIVE); + } + AttachLeftArm(); AttachRightArm(); // Reset breath on pull breathReady = false; - - // Open the door inside Kologarn chamber - if (GameObject* door = me->FindNearestGameObject(GO_KOLOGARN_DOORS, 100.0f)) - door->SetGoState(GO_STATE_ACTIVE); } void DoAction(int32 param) override @@ -301,6 +303,13 @@ public: Talk(SAY_DEATH); + if (m_pInstance) + { + // Open the door inside Kologarn chamber + if (GameObject* door = m_pInstance->instance->GetGameObject(m_pInstance->GetGuidData(GO_KOLOGARN_DOORS))) + door->SetGoState(GO_STATE_ACTIVE); + } + if (GameObject* bridge = me->FindNearestGameObject(GO_KOLOGARN_BRIDGE, 100)) bridge->SetGoState(GO_STATE_READY); @@ -384,8 +393,13 @@ public: me->setActive(true); // Close the door inside Kologarn chamber - if (GameObject* door = me->FindNearestGameObject(GO_KOLOGARN_DOORS, 100.0f)) - door->SetGoState(GO_STATE_READY); + if (m_pInstance) + { + if (GameObject* door = m_pInstance->instance->GetGameObject(m_pInstance->GetGuidData(GO_KOLOGARN_DOORS))) + { + door->SetGoState(GO_STATE_READY); + } + } } void UpdateAI(uint32 diff) override diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp index 6e7dfad7a..2d7e31a2d 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp @@ -16,12 +16,14 @@ */ #include "ulduar.h" +#include "CombatAI.h" #include "Player.h" #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "ScriptedGossip.h" #include "SpellAuraEffects.h" #include "SpellScript.h" +#include "Vehicle.h" class npc_ulduar_keeper : public CreatureScript { @@ -423,6 +425,31 @@ public: } }; +struct npc_salvaged_siege_engine : public VehicleAI +{ + npc_salvaged_siege_engine(Creature* creature) : VehicleAI(creature) { } + + bool BeforeSpellClick(Unit* clicker) override + { + if (Vehicle* vehicle = me->GetVehicleKit()) + { + if (vehicle->IsVehicleInUse()) + { + if (Unit* turret = vehicle->GetPassenger(7)) + { + if (!turret->GetVehicleKit()->IsVehicleInUse()) + { + turret->HandleSpellClick(clicker); + return false; + } + } + } + } + + return true; + } +}; + void AddSC_ulduar() { new npc_ulduar_keeper(); @@ -435,4 +462,6 @@ void AddSC_ulduar() new AreaTrigger_at_celestial_planetarium_enterance(); new go_call_tram(); + + RegisterCreatureAI(npc_salvaged_siege_engine); } diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp index cb611c3ec..6cc2876fd 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp @@ -20,17 +20,18 @@ #include "MapMgr.h" #include "ObjectMgr.h" #include "OutdoorPvP.h" -#include "OutdoorPvPMgr.h" #include "Player.h" #include "ScriptMgr.h" #include "World.h" #include "WorldPacket.h" +#include "GameTime.h" OutdoorPvPTF::OutdoorPvPTF() { m_TypeId = OUTDOOR_PVP_TF; m_IsLocked = false; + m_JustLocked = false; m_LockTimer = TF_LOCK_TIME; m_LockTimerUpdate = 0; @@ -105,6 +106,71 @@ void OutdoorPvPTF::SendRemoveWorldStates(Player* player) } } +void OutdoorPvPTF::SaveRequiredWorldStates() const +{ + sWorld->setWorldState(TF_UI_TOWER_COUNT_H, m_HordeTowersControlled); + sWorld->setWorldState(TF_UI_TOWER_COUNT_A, m_AllianceTowersControlled); + + sWorld->setWorldState(TF_UI_TOWERS_CONTROLLED_DISPLAY, m_IsLocked); + + // Save expiry as unix + uint32 const lockExpireTime = GameTime::GetGameTime().count() + (m_LockTimer / IN_MILLISECONDS); + sWorld->setWorldState(TF_UI_LOCKED_TIME_HOURS, lockExpireTime); +} + +void OutdoorPvPTF::ResetZoneToTeamControlled(TeamId team) +{ + switch (team) + { + case TEAM_HORDE: + m_HordeTowersControlled = TF_TOWER_NUM; + m_AllianceTowersControlled = 0; + break; + case TEAM_ALLIANCE: + m_HordeTowersControlled = 0; + m_AllianceTowersControlled = TF_TOWER_NUM; + break; + case TEAM_NEUTRAL: + m_HordeTowersControlled = 0; + m_AllianceTowersControlled = 0; + break; + } + + for (auto& [guid, tower] : m_capturePoints) + { + dynamic_cast(tower)->ResetToTeamControlled(team); + } + + SendUpdateWorldState(TF_UI_TOWER_COUNT_H, m_HordeTowersControlled); + SendUpdateWorldState(TF_UI_TOWER_COUNT_A, m_AllianceTowersControlled); +} + +void OPvPCapturePointTF::ResetToTeamControlled(TeamId team) +{ + switch (team) + { + case TEAM_HORDE: + m_State = OBJECTIVESTATE_HORDE; + m_OldState = OBJECTIVESTATE_HORDE; + m_team = TEAM_HORDE; + break; + case TEAM_ALLIANCE: + m_State = OBJECTIVESTATE_ALLIANCE; + m_OldState = OBJECTIVESTATE_ALLIANCE; + m_team = TEAM_ALLIANCE; + break; + case TEAM_NEUTRAL: + m_State = OBJECTIVESTATE_NEUTRAL; + m_OldState = OBJECTIVESTATE_NEUTRAL; + m_team = TEAM_NEUTRAL; + break; + } + + m_value = 0.0f; + ChangeState(); + SendChangePhase(); +} + void OPvPCapturePointTF::UpdateTowerState() { m_PvP->SendUpdateWorldState(uint32(TFTowerWorldStates[m_TowerType].n), uint32(bool(m_TowerState & TF_TOWERSTATE_N))); @@ -141,6 +207,7 @@ bool OutdoorPvPTF::Update(uint32 diff) { TeamApplyBuff(TEAM_ALLIANCE, TF_CAPTURE_BUFF); m_IsLocked = true; + m_JustLocked = true; SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_NEUTRAL, uint32(0)); SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_HORDE, uint32(0)); SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_ALLIANCE, uint32(1)); @@ -150,6 +217,7 @@ bool OutdoorPvPTF::Update(uint32 diff) { TeamApplyBuff(TEAM_HORDE, TF_CAPTURE_BUFF); m_IsLocked = true; + m_JustLocked = true; SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_NEUTRAL, uint32(0)); SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_HORDE, uint32(1)); SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_ALLIANCE, uint32(0)); @@ -160,17 +228,29 @@ bool OutdoorPvPTF::Update(uint32 diff) TeamCastSpell(TEAM_ALLIANCE, -TF_CAPTURE_BUFF); TeamCastSpell(TEAM_HORDE, -TF_CAPTURE_BUFF); } + SendUpdateWorldState(TF_UI_TOWER_COUNT_A, m_AllianceTowersControlled); SendUpdateWorldState(TF_UI_TOWER_COUNT_H, m_HordeTowersControlled); } + if (m_IsLocked) { + if (m_JustLocked) + { + m_JustLocked = false; + SaveRequiredWorldStates(); + } + // lock timer is down, release lock if (m_LockTimer < diff) { m_LockTimer = TF_LOCK_TIME; m_LockTimerUpdate = 0; m_IsLocked = false; + + ResetZoneToTeamControlled(TEAM_NEUTRAL); + SaveRequiredWorldStates(); + SendUpdateWorldState(TF_UI_TOWERS_CONTROLLED_DISPLAY, uint32(1)); SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_NEUTRAL, uint32(0)); SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_HORDE, uint32(0)); @@ -182,20 +262,21 @@ bool OutdoorPvPTF::Update(uint32 diff) if (m_LockTimerUpdate < diff) { m_LockTimerUpdate = TF_LOCK_TIME_UPDATE; - uint32 minutes_left = m_LockTimer / 60000; - hours_left = minutes_left / 60; - minutes_left -= hours_left * 60; - second_digit = minutes_left % 10; - first_digit = minutes_left / 10; + RecalculateClientUILockTime(); SendUpdateWorldState(TF_UI_LOCKED_TIME_MINUTES_FIRST_DIGIT, first_digit); SendUpdateWorldState(TF_UI_LOCKED_TIME_MINUTES_SECOND_DIGIT, second_digit); SendUpdateWorldState(TF_UI_LOCKED_TIME_HOURS, hours_left); } - else m_LockTimerUpdate -= diff; + else + { + m_LockTimerUpdate -= diff; + } + m_LockTimer -= diff; } } + return changed; } @@ -251,7 +332,8 @@ bool OutdoorPvPTF::SetupOutdoorPvP() m_AllianceTowersControlled = 0; m_HordeTowersControlled = 0; - m_IsLocked = false; + m_IsLocked = bool(sWorld->getWorldState(TF_UI_TOWERS_CONTROLLED_DISPLAY)); + m_JustLocked = false; m_LockTimer = TF_LOCK_TIME; m_LockTimerUpdate = 0; hours_left = 6; @@ -270,6 +352,30 @@ bool OutdoorPvPTF::SetupOutdoorPvP() AddCapturePoint(new OPvPCapturePointTF(this, TF_TOWER_SE)); AddCapturePoint(new OPvPCapturePointTF(this, TF_TOWER_S)); + if (m_IsLocked) + { + // Core shutdown while locked -- init from latest known data in WorldState + // Convert from unix + int32 const lockRemainingTime = int32((sWorld->getWorldState(TF_UI_LOCKED_TIME_HOURS) - GameTime::GetGameTime().count()) * IN_MILLISECONDS); + if (lockRemainingTime > 0) + { + m_LockTimer = lockRemainingTime; + RecalculateClientUILockTime(); + + uint32 const hordeTowers = uint32(sWorld->getWorldState(TF_UI_TOWER_COUNT_H)); + uint32 const allianceTowers = uint32(sWorld->getWorldState(TF_UI_TOWER_COUNT_A)); + TeamId const controllingTeam = hordeTowers > allianceTowers ? TEAM_HORDE : TEAM_ALLIANCE; + + ResetZoneToTeamControlled(controllingTeam); + } + else + { + // Lock expired while core was offline + m_IsLocked = false; + SaveRequiredWorldStates(); + } + } + return true; } diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h index c91f6a3be..9900c644b 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h @@ -32,10 +32,10 @@ const uint32 OutdoorPvPTFBuffZones[OutdoorPvPTFBuffZonesNum] = }; // locked for 6 hours after capture -const uint32 TF_LOCK_TIME = 3600 * 6 * 1000; +const uint32 TF_LOCK_TIME = 6 * HOUR * IN_MILLISECONDS; // update lock timer every 1/4 minute (overkill, but this way it's sure the timer won't "jump" 2 minutes at once.) -const uint32 TF_LOCK_TIME_UPDATE = 15000; +const uint32 TF_LOCK_TIME_UPDATE = 15 * IN_MILLISECONDS; // blessing of auchindoun #define TF_CAPTURE_BUFF 33377 @@ -138,6 +138,8 @@ public: bool HandlePlayerEnter(Player* player) override; void HandlePlayerLeave(Player* player) override; + void ResetToTeamControlled(TeamId team); + void UpdateTowerState(); protected: @@ -162,6 +164,19 @@ public: void SendRemoveWorldStates(Player* player) override; + void SaveRequiredWorldStates() const; + + void ResetZoneToTeamControlled(TeamId team); + + void RecalculateClientUILockTime() + { + uint32 minutes_left = m_LockTimer / 60000; + hours_left = minutes_left / 60; + minutes_left -= hours_left * 60; + second_digit = minutes_left % 10; + first_digit = minutes_left / 10; + } + uint32 GetAllianceTowersControlled() const; void SetAllianceTowersControlled(uint32 count); @@ -172,6 +187,7 @@ public: private: bool m_IsLocked; + bool m_JustLocked; uint32 m_LockTimer; uint32 m_LockTimerUpdate; diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index cc052f3ba..f6199dba1 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -2101,6 +2101,61 @@ class spell_item_scroll_of_recall : public SpellScript } }; +// 36890 - Dimensional Ripper - Area 52 +enum DimensionalRipperArea52 +{ + SPELL_TRANSPORTER_MALFUNCTION = 36895, + SPELL_TRANSFORM_HORDE = 36897, + SPELL_TRANSFORM_ALLIANCE = 36899, + SPELL_SOUL_SPLIT_EVIL = 36900, + SPELL_SOUL_SPLIT_GOOD = 36901 +}; + +class spell_item_dimensional_ripper_area52 : public SpellScript +{ + PrepareSpellScript(spell_item_dimensional_ripper_area52); + + bool Load() override + { + return GetCaster()->GetTypeId() == TYPEID_PLAYER; + } + + void HandleScript(SpellEffIndex /* effIndex */) + { + if (!roll_chance_i(50)) // 50% success + return; + + Unit* caster = GetCaster(); + + uint32 spellId = 0; + switch (urand(0, 3)) + { + case 0: + spellId = SPELL_TRANSPORTER_MALFUNCTION; + break; + case 1: + spellId = SPELL_SOUL_SPLIT_EVIL; + break; + case 2: + spellId = SPELL_SOUL_SPLIT_GOOD; + break; + case 3: + if (caster->ToPlayer()->GetTeamId() == TEAM_ALLIANCE) + spellId = SPELL_TRANSFORM_HORDE; + else + spellId = SPELL_TRANSFORM_ALLIANCE; + break; + } + + caster->CastSpell(caster, spellId, true); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_item_dimensional_ripper_area52::HandleScript, EFFECT_0, SPELL_EFFECT_TELEPORT_UNITS); + } +}; + // 71169 - Shadow's Fate (Shadowmourne questline) enum ShadowsFate { @@ -3184,6 +3239,28 @@ class spell_item_rocket_boots : public SpellScript } }; +class spell_item_runic_healing_injector : public SpellScript +{ + PrepareSpellScript(spell_item_runic_healing_injector); + + bool Load() override + { + return GetCaster()->GetTypeId() == TYPEID_PLAYER; + } + + void HandleHeal(SpellEffIndex /*effIndex*/) + { + if (Player* caster = GetCaster()->ToPlayer()) + if (caster->HasSkill(SKILL_ENGINEERING)) + SetHitHeal(GetHitHeal() * 1.25f); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_item_runic_healing_injector::HandleHeal, EFFECT_0, SPELL_EFFECT_HEAL); + } +}; + enum PygmyOil { SPELL_PYGMY_OIL_PYGMY_AURA = 53806, @@ -3585,6 +3662,7 @@ void AddSC_item_spell_scripts() RegisterSpellScript(spell_item_piccolo_of_the_flaming_fire); RegisterSpellScript(spell_item_savory_deviate_delight); RegisterSpellScript(spell_item_scroll_of_recall); + RegisterSpellScript(spell_item_dimensional_ripper_area52); RegisterSpellScript(spell_item_unsated_craving); RegisterSpellScript(spell_item_shadows_fate); RegisterSpellScript(spell_item_shadowmourne); @@ -3612,6 +3690,7 @@ void AddSC_item_spell_scripts() RegisterSpellScript(spell_item_nitro_boots); RegisterSpellScript(spell_item_teach_language); RegisterSpellScript(spell_item_rocket_boots); + RegisterSpellScript(spell_item_runic_healing_injector); RegisterSpellScript(spell_item_pygmy_oil); RegisterSpellScript(spell_item_unusual_compass); RegisterSpellScript(spell_item_chicken_cover); diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index d2fa4932f..f5b9cfb26 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -27,6 +27,7 @@ #include "SpellAuraEffects.h" #include "SpellMgr.h" #include "SpellScript.h" +#include "TemporarySummon.h" enum PriestSpells { @@ -37,6 +38,7 @@ enum PriestSpells SPELL_PRIEST_GLYPH_OF_PRAYER_OF_HEALING_HEAL = 56161, SPELL_PRIEST_GUARDIAN_SPIRIT_HEAL = 48153, SPELL_PRIEST_ITEM_EFFICIENCY = 37595, + SPELL_PRIEST_LIGHTWELL_CHARGES = 59907, SPELL_PRIEST_MANA_LEECH_PROC = 34650, SPELL_PRIEST_PENANCE_R1 = 47540, SPELL_PRIEST_PENANCE_R1_DAMAGE = 47758, @@ -61,6 +63,16 @@ enum PriestSpellIcons PRIEST_ICON_ID_PAIN_AND_SUFFERING = 2874, }; +enum Mics +{ + PRIEST_LIGHTWELL_NPC_1 = 31897, + PRIEST_LIGHTWELL_NPC_2 = 31896, + PRIEST_LIGHTWELL_NPC_3 = 31895, + PRIEST_LIGHTWELL_NPC_4 = 31894, + PRIEST_LIGHTWELL_NPC_5 = 31893, + PRIEST_LIGHTWELL_NPC_6 = 31883 +}; + class spell_pri_shadowfiend_scaling : public AuraScript { PrepareAuraScript(spell_pri_shadowfiend_scaling); @@ -359,6 +371,48 @@ class spell_pri_item_greater_heal_refund : public AuraScript } }; +// 60123 - Lightwell +class spell_pri_lightwell : public SpellScript +{ + PrepareSpellScript(spell_pri_lightwell); + + bool Load() override + { + return GetCaster()->GetTypeId() == TYPEID_UNIT; + } + + void HandleScriptEffect(SpellEffIndex /* effIndex */) + { + Creature* caster = GetCaster()->ToCreature(); + if (!caster || !caster->IsSummon()) + return; + + uint32 lightwellRenew = 0; + switch (caster->GetEntry()) + { + case PRIEST_LIGHTWELL_NPC_1: lightwellRenew = 7001; break; + case PRIEST_LIGHTWELL_NPC_2: lightwellRenew = 27873; break; + case PRIEST_LIGHTWELL_NPC_3: lightwellRenew = 27874; break; + case PRIEST_LIGHTWELL_NPC_4: lightwellRenew = 28276; break; + case PRIEST_LIGHTWELL_NPC_5: lightwellRenew = 48084; break; + case PRIEST_LIGHTWELL_NPC_6: lightwellRenew = 48085; break; + } + + // proc a spellcast + if (Aura* chargesAura = caster->GetAura(SPELL_PRIEST_LIGHTWELL_CHARGES)) + { + caster->CastSpell(GetHitUnit(), lightwellRenew, caster->ToTempSummon()->GetSummonerGUID()); + if (chargesAura->ModCharges(-1)) + caster->ToTempSummon()->UnSummon(); + } + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_pri_lightwell::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + // -7001 - Lightwell Renew class spell_pri_lightwell_renew : public AuraScript { @@ -854,6 +908,7 @@ void AddSC_priest_spell_scripts() RegisterSpellScript(spell_pri_guardian_spirit); RegisterSpellScript(spell_pri_hymn_of_hope); RegisterSpellScript(spell_pri_item_greater_heal_refund); + RegisterSpellScript(spell_pri_lightwell); RegisterSpellScript(spell_pri_lightwell_renew); RegisterSpellScript(spell_pri_mana_burn); RegisterSpellScript(spell_pri_mana_leech); diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index 04131ea79..8cd052331 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -840,6 +840,33 @@ public: } }; +enum BendingShinbone +{ + SPELL_BENDING_SHINBONE1 = 8854, + SPELL_BENDING_SHINBONE2 = 8855 +}; + +class spell_q1846_bending_shinbone : public SpellScript +{ + PrepareSpellScript(spell_q1846_bending_shinbone); + + void HandleScriptEffect(SpellEffIndex /* effIndex */) + { + Item* target = GetHitItem(); + Unit* caster = GetCaster(); + if (!target && caster->GetTypeId() != TYPEID_PLAYER) + return; + + uint32 const spellId = roll_chance_i(20) ? SPELL_BENDING_SHINBONE1 : SPELL_BENDING_SHINBONE2; + caster->CastSpell(caster, spellId, true); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_q1846_bending_shinbone::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + // 9712 - Thaumaturgy Channel enum ThaumaturgyChannel { @@ -2400,6 +2427,7 @@ void AddSC_quest_spell_scripts() RegisterSpellScript(spell_q10985_light_of_the_naaru); RegisterSpellScript(spell_q9718_crow_transform); new spell_q55_sacred_cleansing(); + RegisterSpellScript(spell_q1846_bending_shinbone); RegisterSpellScript(spell_q2203_thaumaturgy_channel); RegisterSpellScript(spell_q5206_test_fetid_skull); RegisterSpellScript(spell_q6124_6129_apply_salve);