diff --git a/data/sql/updates/db_world/2025_11_07_01.sql b/data/sql/updates/db_world/2025_11_07_01.sql new file mode 100644 index 0000000000..cc4ffb7588 --- /dev/null +++ b/data/sql/updates/db_world/2025_11_07_01.sql @@ -0,0 +1,43 @@ +-- DB update 2025_11_07_00 -> 2025_11_07_01 +-- +-- v11_2_5_63906 +SET @VBUILD := 63906; + +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28932; +UPDATE `creature_template_addon` SET `bytes2` = 1 WHERE (`entry` = 28932); + +DELETE FROM `creature` WHERE (`id1` = 28932) AND `guid` IN (96663, 96664, 96671, 96798, 96800, 96865, 96870, 96871); +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`, `CreateObject`, `Comment`) VALUES +(96663, 28932, 0, 0, 571, 0, 0, 1, 1, 0, 6146.6094, -1971.1476, 481.92764, 5.305801, 300, 5, 0, 4979, 0, 1, 0, 0, 0, '', @VBUILD, 0, NULL), +(96664, 28932, 0, 0, 571, 0, 0, 1, 1, 0, 6143.005, -1973.7048, 482.06653, 4.520403, 300, 5, 0, 4979, 0, 1, 0, 0, 0, '', @VBUILD, 0, NULL), +(96671, 28932, 0, 0, 571, 0, 0, 1, 1, 0, 6218.721, -1985.6326, 482.0804, 4.3982296, 300, 5, 0, 4979, 0, 1, 0, 0, 0, '', @VBUILD, 0, NULL), +(96798, 28932, 0, 0, 571, 0, 0, 1, 1, 0, 6221.371, -1989.2194, 482.06653, 1.5009831, 300, 5, 0, 4979, 0, 1, 0, 0, 0, '', @VBUILD, 0, NULL), +(96800, 28932, 0, 0, 571, 0, 0, 1, 1, 0, 6128.758, -2046.2726, 482.0735, 2.7052603, 300, 5, 0, 4979, 0, 1, 0, 0, 0, '', @VBUILD, 0, NULL), +(96865, 28932, 0, 0, 571, 0, 0, 1, 1, 0, 6131.65, -2049.7249, 482.03876, 0.6806784, 300, 5, 0, 4979, 0, 1, 0, 0, 0, '', @VBUILD, 0, NULL), +(96870, 28932, 0, 0, 571, 0, 0, 1, 1, 0, 6203.877, -2064.1401, 482.06653, 0.06981317, 300, 5, 0, 4979, 0, 1, 0, 0, 0, '', @VBUILD, 0, NULL), +(96871, 28932, 0, 0, 571, 0, 0, 1, 1, 0, 6207.528, -2061.5386, 482.02487, 4.08407, 300, 5, 0, 4979, 0, 1, 0, 0, 0, '', @VBUILD, 0, NULL); + +DELETE FROM `smart_scripts` WHERE (`entryorguid` IN (-96663, -96798, -96800, -96870, -96664, -96671, -96865, -96871)) AND (`source_type` = 0) AND (`id` IN (0)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `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 +(-96663, 0, 0, 0, 60, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52686, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Blight Effect Bunny - On Update - Cast \'Voltarus Blight Beam LH\''), +(-96798, 0, 0, 0, 60, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52686, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Blight Effect Bunny - On Update - Cast \'Voltarus Blight Beam LH\''), +(-96800, 0, 0, 0, 60, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52686, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Blight Effect Bunny - On Update - Cast \'Voltarus Blight Beam LH\''), +(-96870, 0, 0, 0, 60, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52686, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Blight Effect Bunny - On Update - Cast \'Voltarus Blight Beam LH\''), +(-96664, 0, 0, 0, 60, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52681, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Blight Effect Bunny - On Update - Cast \'Voltarus Blight Beam RH\''), +(-96671, 0, 0, 0, 60, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52681, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Blight Effect Bunny - On Update - Cast \'Voltarus Blight Beam RH\''), +(-96865, 0, 0, 0, 60, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52681, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Blight Effect Bunny - On Update - Cast \'Voltarus Blight Beam RH\''), +(-96871, 0, 0, 0, 60, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 52681, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Blight Effect Bunny - On Update - Cast \'Voltarus Blight Beam RH\''); + +-- Set `unitflag` to IMMUNE_TO_PC, verify spawns, add missing spawn +DELETE FROM `creature` WHERE (`id1` = 28931) and `guid` IN (96497, 96498, 96499, 96545); +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`, `Comment`, `VerifiedBuild`) VALUES +(96497, 28931, 0, 0, 571, 0, 0, 1, 1, 0, 6144.44, -1971.41, 461.385, 5.16617, 300, 0, 0, 200000, 0, 0, 0, 256, 0, '', NULL, @VBUILD), +(96498, 28931, 0, 0, 571, 0, 0, 1, 1, 0, 6206.33, -2063.48, 461.385, 2.14675, 300, 0, 0, 200000, 0, 0, 0, 256, 0, '', NULL, @VBUILD), +(96499, 28931, 0, 0, 571, 0, 0, 1, 1, 0, 6129.33, -2047.82, 461.385, 0.506145, 300, 0, 0, 200000, 0, 0, 0, 256, 0, '', NULL, @VBUILD), +(96545, 28931, 0, 0, 571, 0, 0, 1, 1, 0, 6221.2, -1986.5, 461.385, 3.78736, 300, 0, 0, 200000, 0, 0, 0, 256, 0, '', NULL, @VBUILD); + +-- Voltarus Blight Beam LH, RH +DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceGroup` = 1) AND (`SourceEntry` IN (52686, 52681)) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 31) AND (`ConditionTarget` = 0) AND (`ConditionValue1` = 3) AND (`ConditionValue2` = 28931) AND (`ConditionValue3` = 0); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(13, 1, 52686, 0, 0, 31, 0, 3, 28931, 0, 0, 0, 0, '', 'target Blightblood Troll'), +(13, 1, 52681, 0, 0, 31, 0, 3, 28931, 0, 0, 0, 0, '', 'target Blightblood Troll'); diff --git a/data/sql/updates/db_world/2025_11_07_02.sql b/data/sql/updates/db_world/2025_11_07_02.sql new file mode 100644 index 0000000000..89f0f8191b --- /dev/null +++ b/data/sql/updates/db_world/2025_11_07_02.sql @@ -0,0 +1,108 @@ +-- DB update 2025_11_07_01 -> 2025_11_07_02 + +-- Add Waypoints (Scarlet Miner) +DELETE FROM `waypoint_data` WHERE (`id` IN (2884100, 2884101)); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(2884100, 1, 2376.9087, -5906.2495, 108.593, NULL, 0, 1, 0, 100, 0), +(2884100, 2, 2340.1587, -5903.4995, 102.593, NULL, 0, 1, 0, 100, 0), +(2884100, 3, 2306.4087, -5904.7495, 90.593, NULL, 0, 1, 0, 100, 0), +(2884100, 4, 2292.6587, -5917.4995, 82.343, NULL, 0, 1, 0, 100, 0), +(2884100, 5, 2285.6587, -5943.4995, 64.093, NULL, 0, 1, 0, 100, 0), +(2884100, 6, 2271.9087, -5968.4995, 49.843, NULL, 0, 1, 0, 100, 0), +(2884100, 7, 2248.1587, -5978.4995, 36.843, NULL, 0, 1, 0, 100, 0), +(2884100, 8, 2234.6587, -5996.9995, 25.842999, NULL, 0, 1, 0, 100, 0), +(2884100, 9, 2223.4087, -6014.9995, 11.5929985, NULL, 0, 1, 0, 100, 0), +(2884100, 10, 2216.1587, -6035.9995, 7.3429985, NULL, 0, 1, 0, 100, 0), +(2884100, 11, 2195.4087, -6061.2495, 6.3429985, NULL, 0, 1, 0, 100, 0), +(2884100, 12, 2184.4087, -6091.9995, 2.0929985, NULL, 0, 1, 0, 100, 0), +(2884100, 13, 2179.6587, -6120.2495, 1.5929985, NULL, 0, 1, 0, 100, 0), +(2884100, 14, 2175.4087, -6142.9995, 1.5929985, NULL, 0, 1, 0, 100, 0), +(2884100, 15, 2167.9087, -6159.4995, 1.8429985, NULL, 0, 1, 0, 100, 0), +(2884100, 16, 2149.4087, -6161.4995, 1.5929985, NULL, 0, 1, 0, 100, 0), +(2884100, 17, 2134.9087, -6166.2495, 0.8429985, NULL, 0, 1, 0, 100, 0), +(2884100, 18, 2130.9087, -6173.2495, 4.3429985, NULL, 0, 1, 0, 100, 0), +(2884100, 19, 2125.9087, -6180.7495, 10.0929985, NULL, 0, 1, 0, 100, 0), +(2884100, 20, 2123.4087, -6184.7495, 14.0929985, NULL, 0, 1, 0, 100, 0), +(2884100, 21, 2115.9087, -6196.2495, 13.8429985, NULL, 0, 1, 0, 100, 0), +(2884100, 22, 2119.1106, -6191.905, 13.275559, NULL, 0, 1, 0, 100, 0), +(2884101, 1, 2376.855, -5906.1553, 108.57493, NULL, 0, 1, 0, 100, 0), +(2884101, 2, 2340.105, -5903.4053, 102.57493, NULL, 0, 1, 0, 100, 0), +(2884101, 3, 2306.855, -5904.9053, 90.57493, NULL, 0, 1, 0, 100, 0), +(2884101, 4, 2292.855, -5917.6553, 82.32493, NULL, 0, 1, 0, 100, 0), +(2884101, 5, 2285.855, -5943.4053, 64.07493, NULL, 0, 1, 0, 100, 0), +(2884101, 6, 2272.105, -5968.4053, 49.82493, NULL, 0, 1, 0, 100, 0), +(2884101, 7, 2248.355, -5978.4053, 36.82493, NULL, 0, 1, 0, 100, 0), +(2884101, 8, 2234.605, -5996.9053, 25.824928, NULL, 0, 1, 0, 100, 0), +(2884101, 9, 2223.605, -6015.1553, 11.574928, NULL, 0, 1, 0, 100, 0), +(2884101, 10, 2216.105, -6035.9053, 7.3249283, NULL, 0, 1, 0, 100, 0), +(2884101, 11, 2195.105, -6059.4053, 6.3249283, NULL, 0, 1, 0, 100, 0), +(2884101, 12, 2184.855, -6087.1553, 3.0749283, NULL, 0, 1, 0, 100, 0), +(2884101, 13, 2180.605, -6119.4053, 1.5749283, NULL, 0, 1, 0, 100, 0), +(2884101, 14, 2177.605, -6149.4053, 1.8249283, NULL, 0, 1, 0, 100, 0), +(2884101, 15, 2188.855, -6170.4053, 1.3249283, NULL, 0, 1, 0, 100, 0), +(2884101, 16, 2213.105, -6165.4053, 1.0749283, NULL, 0, 1, 0, 100, 0), +(2884101, 17, 2241.855, -6160.4053, 2.0749283, NULL, 0, 1, 0, 100, 0), +(2884101, 18, 2269.105, -6163.4053, 2.3249283, NULL, 0, 1, 0, 100, 0), +(2884101, 19, 2269.605, -6168.9053, 2.3249283, NULL, 0, 1, 0, 100, 0), +(2884101, 20, 2270.105, -6174.6553, 5.8249283, NULL, 0, 1, 0, 100, 0), +(2884101, 21, 2270.605, -6180.9053, 9.824928, NULL, 0, 1, 0, 100, 0), +(2884101, 22, 2271.105, -6186.1553, 14.074928, NULL, 0, 1, 0, 100, 0), +(2884101, 23, 2273.855, -6196.4053, 13.824928, NULL, 0, 1, 0, 100, 0), +(2884101, 24, 2273.0032, -6191.717, 13.239414, NULL, 0, 1, 0, 100, 0); + +-- Remove Script Names. +UPDATE `creature_template` SET `ScriptName` = '' WHERE (`entry` IN (28817, 28833, 28841)); +UPDATE `gameobject_template` SET `ScriptName` = '' WHERE (`entry` = 190767); + +-- Set spell target position for Mine Car spawn. +UPDATE `spell_target_position` SET `PositionX` = 2389.58, `PositionY` = -5901.18, `PositionZ` = 109.02134, `Orientation` = 0 WHERE `ID` = 52462; + +-- Set Unit Flag for Mine Car (immune_to_npc) +UPDATE `creature_template` SET `unit_flags` = `unit_flags` |512 WHERE (`entry` = 28817); + +-- Set SmartAI (Mine Car) +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28817; + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 28817); +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`, `event_param6`, `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 +(28817, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 0, 0, 3, 0, 25703, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Mine Car - On Just Summoned - Morph To Model 25703'), +(28817, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 12, 28841, 8, 0, 0, 0, 0, 8, 0, 0, 0, 0, 2382.171, -5899.672, 107.74545, 0, 'Mine Car - On Just Summoned - Summon Creature \'Scarlet Miner\''), +(28817, 0, 2, 0, 8, 0, 100, 0, 52465, 0, 0, 0, 0, 0, 29, 3, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Mine Car - On Spellhit \'Drag Mine Cart\' - Start Follow Invoker'); + +-- Set SmartAI (Scarlet Miner) +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28841; + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 28841); +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`, `event_param6`, `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 +(28841, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 0, 0, 80, 2884100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Just Summoned - Run Script'), +(28841, 0, 1, 0, 109, 0, 100, 0, 0, 0, 0, 0, 0, 0, 80, 2884101, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - On Path 0 Finished - Run Script'); + +-- Set Scarlet Miner Action List +DELETE FROM `smart_scripts` WHERE (`source_type` = 9) AND (`entryorguid` IN (2884100, 2884101)); +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`, `event_param6`, `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 +(2884100, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Set Run Off'), +(2884100, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 1, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Move To Owner Or Summoner'), +(2884100, 9, 2, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Say Line 0'), +(2884100, 9, 3, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 0, 0, 11, 52465, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Cast \'Drag Mine Cart\''), +(2884100, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Set Run On'), +(2884100, 9, 5, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 233, 2884100, 2884101, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Start Random Path 2884100-2884101'), +(2884101, 9, 0, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Set Orientation Owner Or Summoner'), +(2884101, 9, 1, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Say Line 1'), +(2884101, 9, 2, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 0, 0, 28, 52465, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Remove Aura \'Drag Mine Cart\''), +(2884101, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Despawn Instant'), +(2884101, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Miner - Actionlist - Despawn Instant'); + +-- Set SmartAI (Scarlet Fleet Defender) +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28834; + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 28834); +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`, `event_param6`, `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 +(28834, 0, 0, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 3000, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Fleet Defender - On Just Died - Despawn In 3000 ms'), +(28834, 0, 1, 0, 0, 0, 100, 0, 1000, 5000, 5000, 8000, 0, 0, 11, 52566, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Fleet Defender - In Combat - Cast \'Shoot\''); + +-- Update SmartAI (Scarlet Cannon) +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 28850; + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 28850) AND (`source_type` = 0) AND (`id` IN (2)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `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 +(28850, 0, 2, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 3000, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Scarlet Land Cannon - On Just Died - Despawn In 3000 ms'); diff --git a/data/sql/updates/db_world/2025_11_08_00.sql b/data/sql/updates/db_world/2025_11_08_00.sql new file mode 100644 index 0000000000..4ee7702d3c --- /dev/null +++ b/data/sql/updates/db_world/2025_11_08_00.sql @@ -0,0 +1,2481 @@ +-- DB update 2025_11_07_02 -> 2025_11_08_00 +/* We are updating XP modifiers across the board. +These lists are creature entries that are rank higher than 0 and in instances. +They are separated by their expansion value, sorted by entry ID. +AC's current formula would have these set to 1.35, but that is almost certainly wrong. +There are absolutely exceptions to the values shown in these updates, but they will need to be assessed pretty individually. +Do note that the double XP modifier from elites is still in place. +*/ + +-- Expansion 0 (Vanilla) creatures +UPDATE `creature_template` SET `ExperienceModifier` = 1.25 WHERE `entry` IN ( +622, +634, +636, +641, +657, +1706, +1707, +1708, +1711, +1715, +1729, +1731, +1732, +3636, +3637, +3640, +3678, +3840, +3849, +3850, +3851, +3853, +3854, +3855, +3857, +3859, +3861, +3862, +3863, +3864, +3866, +3868, +3873, +3875, +3877, +3947, +4286, +4287, +4288, +4289, +4290, +4291, +4292, +4294, +4295, +4296, +4297, +4298, +4299, +4300, +4301, +4302, +4303, +4304, +4306, +4417, +4418, +4425, +4427, +4435, +4436, +4437, +4438, +4440, +4442, +4508, +4511, +4512, +4514, +4515, +4516, +4517, +4518, +4519, +4520, +4522, +4523, +4525, +4530, +4531, +4532, +4538, +4539, +4540, +4541, +4623, +4798, +4799, +4805, +4807, +4809, +4810, +4811, +4812, +4813, +4814, +4815, +4818, +4819, +4820, +4821, +4822, +4823, +4824, +4825, +4827, +4842, +4847, +4848, +4849, +4850, +4852, +4853, +4855, +4857, +4860, +4861, +4863, +5048, +5056, +5226, +5228, +5256, +5259, +5267, +5270, +5271, +5273, +5277, +5280, +5283, +5291, +5648, +5649, +5650, +5708, +5755, +5756, +5761, +5912, +6035, +6206, +6211, +6212, +6218, +6219, +6220, +6223, +6225, +6226, +6227, +6228, +6230, +6232, +6233, +6234, +6329, +6392, +6407, +6426, +6427, +6488, +6489, +6490, +6907, +6908, +7022, +7030, +7246, +7247, +7268, +7274, +7290, +7320, +7321, +7327, +7328, +7329, +7332, +7335, +7337, +7341, +7342, +7345, +7347, +7348, +7352, +7353, +7604, +7605, +7606, +7607, +7608, +7998, +8095, +8120, +8130, +8384, +8889, +8890, +8891, +8892, +8893, +8894, +8895, +8898, +8899, +8903, +8905, +8906, +8907, +8908, +8909, +8910, +8911, +8912, +8913, +8914, +8923, +8982, +9020, +9021, +9022, +9023, +9034, +9035, +9036, +9037, +9038, +9039, +9040, +9045, +9096, +9097, +9098, +9197, +9198, +9199, +9200, +9201, +9216, +9217, +9218, +9219, +9239, +9240, +9241, +9257, +9258, +9259, +9260, +9261, +9262, +9263, +9264, +9265, +9266, +9267, +9268, +9269, +9500, +9541, +9554, +9583, +9596, +9677, +9678, +9679, +9680, +9681, +9692, +9693, +9716, +9717, +9718, +9817, +9818, +9819, +10000, +10043, +10080, +10081, +10082, +10083, +10120, +10162, +10257, +10263, +10299, +10317, +10318, +10319, +10366, +10371, +10372, +10374, +10376, +10381, +10382, +10384, +10385, +10398, +10400, +10405, +10406, +10407, +10408, +10409, +10412, +10413, +10414, +10416, +10417, +10418, +10419, +10420, +10421, +10422, +10423, +10424, +10425, +10426, +10447, +10463, +10464, +10469, +10470, +10471, +10472, +10475, +10476, +10477, +10478, +10486, +10487, +10488, +10489, +10491, +10495, +10498, +10499, +10500, +10509, +10740, +10762, +10809, +10812, +10814, +10899, +10917, +11043, +11082, +11257, +11318, +11319, +11320, +11321, +11322, +11323, +11324, +11338, +11339, +11340, +11347, +11348, +11350, +11351, +11352, +11353, +11356, +11357, +11359, +11361, +11365, +11370, +11371, +11372, +11373, +11374, +11380, +11382, +11441, +11444, +11445, +11446, +11448, +11450, +11451, +11452, +11453, +11454, +11455, +11456, +11457, +11458, +11459, +11461, +11462, +11464, +11465, +11467, +11469, +11470, +11471, +11472, +11473, +11475, +11480, +11483, +11484, +11491, +11551, +11582, +11658, +11659, +11661, +11662, +11665, +11666, +11667, +11668, +11669, +11671, +11672, +11673, +11784, +11790, +11791, +11792, +11793, +11794, +11830, +11831, +11981, +11982, +11983, +11988, +12017, +12056, +12057, +12076, +12098, +12099, +12100, +12101, +12118, +12119, +12206, +12207, +12219, +12220, +12221, +12222, +12223, +12224, +12237, +12242, +12243, +12259, +12264, +12435, +12457, +12458, +12459, +12460, +12461, +12463, +12464, +12465, +12467, +12468, +12557, +13020, +13021, +13141, +13142, +13196, +13197, +13285, +13323, +13533, +13996, +14020, +14241, +14303, +14308, +14349, +14354, +14358, +14368, +14369, +14371, +14381, +14382, +14383, +14398, +14399, +14401, +14456, +14507, +14509, +14510, +14517, +14532, +14601, +14682, +14684, +14686, +14690, +14695, +14750, +14821, +14825, +14834, +14861, +14880, +14882, +14883, +15042, +15043, +15067, +15111, +15229, +15230, +15233, +15235, +15236, +15240, +15247, +15249, +15250, +15252, +15262, +15263, +15264, +15275, +15276, +15277, +15299, +15311, +15312, +15318, +15319, +15320, +15323, +15324, +15325, +15327, +15335, +15336, +15338, +15339, +15340, +15341, +15343, +15344, +15348, +15355, +15369, +15370, +15378, +15379, +15380, +15385, +15386, +15387, +15388, +15389, +15390, +15391, +15392, +15461, +15462, +15502, +15503, +15504, +15505, +15509, +15510, +15511, +15516, +15543, +15544, +15589, +15727, +15963, +15984, +17653, +19523, +19524, +20201, +20465, +21689, +24137, +28070, +29637, +33350, +33432, +33628, +36913, +37586, +38491, +-- Difficulty entries +18620, +20572, +20573, +21943, +31366, +32778, +34106, +38495); + +-- Expansion 1 (TBC) creatures +UPDATE `creature_template` SET `ExperienceModifier` = 2.25 WHERE `entry` IN ( +15547, +15548, +15551, +15608, +15687, +15688, +15689, +15690, +15691, +16151, +16153, +16159, +16169, +16170, +16171, +16173, +16174, +16175, +16176, +16177, +16178, +16388, +16389, +16406, +16407, +16408, +16410, +16411, +16412, +16414, +16415, +16424, +16425, +16426, +16457, +16459, +16460, +16461, +16470, +16471, +16472, +16473, +16481, +16482, +16485, +16488, +16489, +16491, +16492, +16504, +16507, +16523, +16524, +16525, +16526, +16529, +16530, +16539, +16540, +16544, +16545, +16593, +16594, +16595, +16596, +16699, +16700, +16704, +16806, +16807, +16808, +16809, +16811, +16812, +16813, +16814, +16815, +16816, +17161, +17211, +17225, +17256, +17257, +17259, +17264, +17269, +17270, +17271, +17281, +17301, +17306, +17307, +17308, +17309, +17356, +17370, +17371, +17377, +17380, +17381, +17395, +17397, +17398, +17400, +17414, +17420, +17427, +17455, +17461, +17464, +17465, +17469, +17478, +17491, +17518, +17611, +17624, +17626, +17670, +17671, +17694, +17695, +17721, +17722, +17723, +17724, +17725, +17726, +17727, +17728, +17729, +17730, +17731, +17732, +17734, +17735, +17770, +17771, +17772, +17796, +17797, +17798, +17799, +17800, +17801, +17802, +17803, +17805, +17814, +17815, +17816, +17817, +17819, +17820, +17826, +17827, +17833, +17840, +17846, +17852, +17860, +17871, +17876, +17882, +17895, +17898, +17899, +17917, +17919, +17920, +17921, +17922, +17928, +17931, +17932, +17933, +17934, +17935, +17936, +17937, +17938, +17940, +17941, +17942, +17943, +17944, +17945, +17948, +17957, +17958, +17959, +17960, +17961, +17962, +17968, +17975, +17976, +17977, +17978, +17980, +17991, +17993, +17994, +18092, +18093, +18094, +18105, +18155, +18206, +18309, +18311, +18312, +18313, +18314, +18315, +18317, +18318, +18319, +18320, +18321, +18322, +18323, +18325, +18326, +18327, +18328, +18331, +18341, +18343, +18344, +18371, +18373, +18404, +18405, +18419, +18420, +18421, +18422, +18472, +18473, +18493, +18495, +18497, +18502, +18521, +18524, +18631, +18632, +18633, +18634, +18635, +18636, +18637, +18638, +18639, +18640, +18666, +18667, +18673, +18702, +18708, +18723, +18725, +18731, +18732, +18794, +18796, +18805, +18829, +18830, +18831, +18832, +18834, +18835, +18836, +18848, +18894, +18956, +19044, +19166, +19167, +19168, +19218, +19219, +19220, +19221, +19231, +19307, +19389, +19428, +19429, +19486, +19505, +19507, +19508, +19509, +19510, +19511, +19512, +19513, +19514, +19516, +19622, +19632, +19633, +19710, +19712, +19713, +19735, +19843, +19865, +20031, +20032, +20033, +20034, +20035, +20036, +20037, +20038, +20039, +20040, +20041, +20042, +20043, +20044, +20045, +20046, +20047, +20048, +20049, +20050, +20052, +20059, +20060, +20062, +20063, +20064, +20709, +20857, +20859, +20864, +20866, +20867, +20868, +20869, +20870, +20873, +20875, +20879, +20881, +20882, +20883, +20885, +20886, +20896, +20897, +20898, +20900, +20901, +20902, +20904, +20923, +20988, +20990, +21126, +21127, +21128, +21160, +21174, +21212, +21213, +21214, +21215, +21216, +21218, +21220, +21221, +21224, +21225, +21226, +21227, +21228, +21229, +21230, +21231, +21232, +21246, +21251, +21263, +21298, +21299, +21301, +21303, +21304, +21339, +21350, +21664, +21682, +21683, +21684, +21694, +21695, +21702, +21726, +21747, +21748, +21750, +21752, +21806, +21863, +21904, +21964, +21965, +21966, +22421, +22841, +22844, +22845, +22846, +22847, +22848, +22849, +22853, +22855, +22856, +22869, +22871, +22873, +22874, +22875, +22876, +22877, +22878, +22879, +22880, +22881, +22882, +22883, +22884, +22885, +22887, +22898, +22917, +22939, +22945, +22947, +22948, +22949, +22950, +22951, +22952, +22953, +22954, +22955, +22956, +22957, +22959, +22960, +22962, +22963, +22964, +22965, +23018, +23028, +23030, +23047, +23049, +23089, +23147, +23158, +23159, +23172, +23191, +23196, +23222, +23223, +23232, +23235, +23236, +23237, +23239, +23330, +23337, +23339, +23374, +23394, +23397, +23399, +23400, +23401, +23402, +23403, +23421, +23426, +23499, +23542, +23574, +23576, +23577, +23578, +23580, +23581, +23582, +23584, +23596, +23597, +23774, +23834, +23863, +24043, +24059, +24065, +24138, +24175, +24179, +24180, +24239, +24374, +24530, +24549, +24560, +24664, +24683, +24684, +24685, +24686, +24687, +24688, +24689, +24690, +24696, +24697, +24698, +24723, +24744, +24777, +24850, +24882, +24895, +25165, +25166, +25363, +25367, +25368, +25369, +25370, +25371, +25372, +25373, +25483, +25484, +25486, +25506, +25507, +25508, +25509, +25591, +25592, +25593, +25595, +25597, +25599, +25741, +25837, +25851, +25867, +25954, +25955, +25956, +25957, +25958, +25959, +25960, +26579, +28132, +28194, +30883, +37126, +37763, +-- Difficulty entries +18048, +18049, +18050, +18051, +18052, +18053, +18054, +18055, +18058, +18433, +18435, +18436, +18601, +18604, +18607, +18608, +18609, +18610, +18611, +18612, +18615, +18617, +18618, +18619, +18621, +19884, +19885, +19886, +19887, +19888, +19889, +19890, +19891, +19892, +19893, +19894, +19895, +19901, +19903, +20164, +20165, +20168, +20169, +20173, +20174, +20175, +20177, +20179, +20180, +20181, +20183, +20184, +20185, +20187, +20188, +20190, +20191, +20192, +20193, +20255, +20256, +20257, +20258, +20259, +20260, +20261, +20264, +20265, +20266, +20267, +20268, +20298, +20299, +20300, +20301, +20302, +20306, +20315, +20318, +20526, +20527, +20528, +20529, +20530, +20537, +20538, +20542, +20543, +20545, +20546, +20547, +20548, +20565, +20568, +20576, +20577, +20579, +20580, +20581, +20582, +20583, +20584, +20585, +20586, +20587, +20588, +20589, +20590, +20591, +20593, +20594, +20596, +20597, +20620, +20621, +20622, +20623, +20624, +20625, +20626, +20627, +20628, +20629, +20630, +20633, +20636, +20637, +20638, +20639, +20640, +20641, +20642, +20644, +20645, +20646, +20647, +20648, +20649, +20650, +20652, +20653, +20656, +20657, +20686, +20688, +20690, +20691, +20692, +20693, +20694, +20695, +20696, +20697, +20698, +20699, +20701, +20706, +20993, +21522, +21523, +21524, +21525, +21526, +21527, +21528, +21532, +21533, +21536, +21537, +21539, +21540, +21541, +21542, +21543, +21544, +21545, +21546, +21547, +21548, +21549, +21551, +21558, +21559, +21560, +21562, +21563, +21564, +21565, +21570, +21571, +21572, +21573, +21574, +21575, +21576, +21577, +21578, +21581, +21582, +21585, +21586, +21587, +21590, +21591, +21592, +21593, +21595, +21596, +21597, +21598, +21604, +21605, +21608, +21610, +21611, +21613, +21614, +21615, +21619, +21621, +21622, +21623, +21624, +21626, +21645, +21841, +21842, +21843, +21914, +21917, +21990, +22346, +24857, +25547, +25551, +25560, +25562, +25563, +25565, +25568, +25569, +25570, +25571, +25572, +25573, +25575, +25576, +25577, +28171, +38258); + +-- Expansion 2 (WotLK) creatures +UPDATE `creature_template` SET `ExperienceModifier` = 2.5 WHERE `entry` IN ( +10184, +10404, +12129, +15928, +15931, +15932, +15936, +15952, +15953, +15954, +15956, +15974, +15975, +15976, +15977, +15978, +15979, +15980, +15981, +15989, +15990, +16011, +16017, +16018, +16020, +16021, +16022, +16024, +16025, +16028, +16029, +16034, +16036, +16037, +16056, +16057, +16060, +16061, +16063, +16064, +16065, +16067, +16145, +16146, +16154, +16156, +16163, +16164, +16165, +16167, +16168, +16193, +16194, +16215, +16216, +16236, +16243, +16244, +16297, +16447, +23872, +23953, +23954, +23956, +23960, +23961, +24069, +24071, +24078, +24079, +24080, +24082, +24083, +24085, +24200, +24201, +24808, +24849, +24864, +26499, +26550, +26553, +26554, +26555, +26620, +26621, +26623, +26624, +26625, +26626, +26628, +26630, +26631, +26632, +26635, +26636, +26637, +26638, +26639, +26641, +26669, +26670, +26672, +26683, +26684, +26685, +26686, +26687, +26693, +26694, +26696, +26716, +26722, +26723, +26727, +26728, +26729, +26730, +26731, +26734, +26735, +26736, +26737, +26761, +26763, +26782, +26792, +26794, +26796, +26800, +26802, +26805, +26830, +26861, +26918, +27048, +27303, +27307, +27308, +27309, +27431, +27447, +27483, +27633, +27635, +27638, +27639, +27640, +27641, +27654, +27655, +27656, +27657, +27658, +27659, +27729, +27734, +27736, +27745, +27746, +27747, +27752, +27871, +27949, +27960, +27961, +27962, +27963, +27964, +27965, +27966, +27969, +27970, +27971, +27972, +27975, +27977, +27978, +28055, +28130, +28149, +28201, +28231, +28249, +28368, +28410, +28546, +28547, +28578, +28579, +28580, +28581, +28582, +28583, +28584, +28586, +28587, +28684, +28732, +28734, +28823, +28826, +28835, +28836, +28837, +28838, +28859, +28860, +28920, +28921, +28923, +28961, +28965, +29120, +29128, +29266, +29276, +29304, +29305, +29306, +29307, +29308, +29309, +29310, +29311, +29312, +29313, +29314, +29315, +29316, +29335, +29340, +29395, +29425, +29682, +29768, +29774, +29819, +29820, +29822, +29826, +29829, +29830, +29832, +29838, +29920, +29931, +30071, +30083, +30085, +30111, +30179, +30258, +30276, +30277, +30278, +30279, +30283, +30284, +30285, +30286, +30288, +30319, +30329, +30413, +30414, +30416, +30418, +30419, +30449, +30451, +30452, +30453, +30549, +30658, +30680, +30681, +30682, +31104, +31118, +31125, +32204, +32315, +32353, +32593, +32845, +32857, +32865, +32867, +32892, +32906, +32913, +32914, +32915, +32922, +32924, +32925, +32927, +32930, +33054, +33089, +33113, +33118, +33121, +33134, +33186, +33210, +33235, +33237, +33259, +33264, +33271, +33282, +33287, +33293, +33354, +33355, +33378, +33430, +33431, +33515, +33525, +33526, +33527, +33528, +33579, +33620, +33622, +33624, +33629, +33696, +33699, +33722, +33725, +33754, +33755, +33772, +33774, +33775, +33816, +33818, +33819, +33820, +33822, +33823, +33824, +33956, +33957, +33993, +34015, +34054, +34069, +34085, +34086, +34133, +34134, +34135, +34164, +34183, +34190, +34191, +34192, +34193, +34196, +34197, +34198, +34199, +34234, +34267, +34269, +34271, +34273, +34816, +34990, +34992, +34994, +34995, +34996, +35013, +35143, +36296, +36476, +36478, +36494, +36497, +36499, +36502, +36516, +36522, +36564, +36597, +36612, +36620, +36626, +36627, +36661, +36666, +36678, +36723, +36724, +36725, +36764, +36765, +36766, +36767, +36770, +36771, +36772, +36773, +36788, +36789, +36794, +36805, +36807, +36808, +36811, +36829, +36830, +36841, +36855, +36874, +36877, +36879, +36880, +36886, +36891, +36896, +36954, +36990, +36998, +37003, +37004, +37007, +37011, +37012, +37016, +37017, +37021, +37022, +37023, +37025, +37026, +37027, +37028, +37030, +37031, +37032, +37033, +37035, +37038, +37068, +37098, +37119, +37120, +37122, +37123, +37124, +37125, +37127, +37129, +37132, +37133, +37134, +37144, +37148, +37183, +37187, +37189, +37217, +37223, +37225, +37226, +37528, +37531, +37532, +37533, +37534, +37544, +37545, +37546, +37554, +37571, +37583, +37595, +37596, +37662, +37663, +37664, +37665, +37666, +37711, +37712, +37713, +37728, +37764, +37779, +37781, +37813, +37868, +37920, +37928, +37950, +37955, +37970, +37972, +37973, +37996, +38004, +38112, +38113, +38125, +38172, +38173, +38175, +38176, +38177, +38194, +38433, +38471, +38482, +38490, +38494, +38551, +38558, +38589, +39190, +39372, +39746, +39747, +39751, +39863, +40417, +40419, +40421, +40423, +40446, +-- Difficulty entries +25546, +29229, +29241, +29242, +29243, +29247, +29248, +29249, +29268, +29278, +29286, +29324, +29347, +29353, +29355, +29356, +29359, +29362, +29363, +29371, +29373, +29417, +29448, +29574, +29575, +29576, +29601, +29603, +29608, +29609, +29612, +29613, +29615, +29701, +29718, +29823, +29824, +29825, +29828, +29831, +29833, +29835, +29837, +29842, +29852, +29898, +29899, +29900, +29940, +29955, +29991, +30061, +30075, +30087, +30097, +30389, +30398, +30424, +30457, +30459, +30460, +30473, +30478, +30485, +30496, +30498, +30509, +30510, +30516, +30517, +30518, +30519, +30521, +30522, +30524, +30525, +30526, +30529, +30530, +30532, +30540, +30600, +30601, +30602, +30603, +30747, +30748, +30762, +30764, +30765, +30766, +30770, +30772, +30774, +30780, +30782, +30784, +30786, +30788, +30790, +30803, +30806, +30807, +30816, +30817, +30818, +30820, +30821, +30901, +30903, +30904, +30905, +30915, +30916, +30926, +30927, +30929, +30930, +30932, +30933, +30935, +30936, +30938, +30939, +30941, +30942, +30964, +30966, +30967, +30968, +30971, +30972, +30974, +30975, +30976, +30977, +30978, +30979, +30980, +30981, +30982, +30983, +30998, +30999, +31000, +31001, +31178, +31179, +31187, +31199, +31200, +31210, +31311, +31336, +31338, +31339, +31340, +31342, +31343, +31345, +31346, +31347, +31349, +31350, +31351, +31352, +31354, +31355, +31357, +31359, +31360, +31362, +31363, +31365, +31368, +31370, +31371, +31372, +31373, +31374, +31375, +31376, +31377, +31378, +31381, +31383, +31384, +31385, +31386, +31387, +31392, +31442, +31443, +31449, +31450, +31451, +31452, +31453, +31454, +31455, +31456, +31457, +31459, +31460, +31463, +31464, +31465, +31466, +31469, +31470, +31471, +31472, +31475, +31491, +31507, +31508, +31509, +31510, +31511, +31512, +31513, +31520, +31533, +31534, +31535, +31536, +31537, +31538, +31542, +31558, +31559, +31560, +31561, +31587, +31604, +31606, +31608, +31609, +31610, +31611, +31612, +31656, +31658, +31659, +31660, +31661, +31662, +31663, +31665, +31666, +31667, +31668, +31669, +31673, +31675, +31676, +31679, +31722, +31734, +32209, +32368, +32846, +33147, +33190, +33191, +33360, +33391, +33392, +33393, +33449, +33692, +33693, +33694, +33700, +33723, +33724, +33729, +33731, +33732, +33733, +33734, +33735, +33737, +33741, +33757, +33758, +33773, +33827, +33828, +33829, +33830, +33831, +33832, +33885, +33909, +33994, +34003, +34016, +34105, +34139, +34141, +34142, +34165, +34175, +34185, +34186, +34201, +34214, +34216, +34217, +34220, +34221, +34226, +34229, +34235, +34236, +34237, +34245, +34254, +34255, +34256, +34257, +34268, +34270, +34272, +34274, +34332, +35359, +35360, +36498, +36538, +36572, +37504, +37563, +37565, +37566, +37567, +37568, +37569, +37608, +37609, +37612, +37613, +37622, +37626, +37627, +37635, +37636, +37638, +37640, +37645, +37646, +37647, +37648, +37649, +37650, +37651, +37652, +37655, +37677, +37720, +37721, +37731, +37797, +37957, +38000, +38025, +38026, +38031, +38057, +38058, +38059, +38061, +38062, +38063, +38064, +38072, +38073, +38074, +38075, +38076, +38078, +38079, +38080, +38081, +38082, +38083, +38084, +38085, +38086, +38087, +38088, +38090, +38091, +38094, +38096, +38097, +38098, +38099, +38100, +38101, +38102, +38103, +38106, +38108, +38110, +38126, +38130, +38131, +38132, +38133, +38139, +38151, +38167, +38174, +38193, +38219, +38220, +38249, +38298, +38299, +38303, +38304, +38390, +38399, +38400, +38401, +38402, +38418, +38431, +38434, +38445, +38446, +38462, +38479, +38480, +38481, +38483, +38486, +38524, +38525, +38544, +38552, +38563, +38564, +38590, +38599, +38603, +39166, +39287, +39805, +39823, +39864, +39920, +40418, +40420, +40422, +40424, +37505, +37958, +38296, +38435, +38549, +38582, +38585, +38725, +38769, +38771, +38784, +39167, +39288, +39944, +37506, +37959, +38297, +38436, +38550, +38583, +38586, +38735, +38770, +38772, +38785, +39168, +39289, +39945); diff --git a/src/server/game/Entities/Player/PlayerStorage.cpp b/src/server/game/Entities/Player/PlayerStorage.cpp index 6e0b192493..80f6a068e4 100644 --- a/src/server/game/Entities/Player/PlayerStorage.cpp +++ b/src/server/game/Entities/Player/PlayerStorage.cpp @@ -1848,8 +1848,13 @@ InventoryResult Player::CanEquipItem(uint8 slot, uint16& dest, Item* pItem, bool return EQUIP_ERR_NOT_DURING_ARENA_MATCH; } - if (IsInCombat() && (pProto->Class == ITEM_CLASS_WEAPON || pProto->InventoryType == INVTYPE_RELIC) && m_weaponChangeTimer != 0) - return EQUIP_ERR_CANT_DO_RIGHT_NOW; // maybe exist better err + if (IsInCombat() && (pProto->Class == ITEM_CLASS_WEAPON || pProto->InventoryType == INVTYPE_RELIC)) + { + uint32 cooldownSpell = IsClass(CLASS_ROGUE, CLASS_CONTEXT_WEAPON_SWAP) ? 6123 : 6119; + uint32 startRecoveryTime = sSpellMgr->GetSpellInfo(cooldownSpell)->StartRecoveryTime; + if (m_weaponChangeTimer != 0 && m_weaponChangeTimer != startRecoveryTime) + return EQUIP_ERR_CANT_DO_RIGHT_NOW; // maybe exist better err + } if (IsNonMeleeSpellCast(false)) return EQUIP_ERR_CANT_DO_RIGHT_NOW; diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp index ac7ab27834..fa83cf3179 100644 --- a/src/server/game/Handlers/CharacterHandler.cpp +++ b/src/server/game/Handlers/CharacterHandler.cpp @@ -1170,6 +1170,12 @@ void WorldSession::HandlePlayerLoginToCharInWorld(Player* pCurrChar) pCurrChar->RemoveUnitFlag(UNIT_FLAG_STUNNED); } + if (pCurrChar->GetPendingFlightChange() <= pCurrChar->GetMapChangeOrderCounter()) + { + if (!pCurrChar->HasIncreaseMountedFlightSpeedAura() && !pCurrChar->HasFlyAura()) + pCurrChar->m_movementInfo.RemoveMovementFlag(MOVEMENTFLAG_CAN_FLY); + } + pCurrChar->SendInitialPacketsBeforeAddToMap(); // necessary actions from AddPlayerToMap: diff --git a/src/server/game/Miscellaneous/Formulas.cpp b/src/server/game/Miscellaneous/Formulas.cpp index 76c6c292d8..66bc53b8ff 100644 --- a/src/server/game/Miscellaneous/Formulas.cpp +++ b/src/server/game/Miscellaneous/Formulas.cpp @@ -84,14 +84,9 @@ uint32 Acore::XP::Gain(Player* player, Unit* unit, bool isBattleGround /*= false if (gain && creature) { if (creature->isElite()) - { - // Elites in instances have a 2.75x XP bonus instead of the regular 2x world bonus. - if (unit->GetMap() && unit->GetMap()->IsDungeon()) - xpMod *= 2.75f; - else - xpMod *= 2.0f; - } + xpMod *= 2.0f; + // Instanced mobs (particularly bosses) oftentimes have higher bonuses, especially in later content levels xpMod *= creature->GetCreatureTemplate()->ModExperience; } diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp index d722cda01d..8c51346655 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -502,49 +502,6 @@ public: }; }; -class npc_scarlet_cannon : public CreatureScript -{ -public: - npc_scarlet_cannon() : CreatureScript("npc_scarlet_cannon") { } - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_scarlet_cannonAI(creature); - } - - struct npc_scarlet_cannonAI : public VehicleAI - { - npc_scarlet_cannonAI(Creature* creature) : VehicleAI(creature) { summonAttackers = 0; } - - uint32 summonAttackers; - void PassengerBoarded(Unit* /*passenger*/, int8 /*seatId*/, bool apply) override - { - summonAttackers = apply ? 8000 : 0; - } - - void UpdateAI(uint32 diff) override - { - VehicleAI::UpdateAI(diff); - - if (summonAttackers) - { - summonAttackers += diff; - if (summonAttackers >= 15000) - { - for (uint8 i = 0; i < 15; ++i) - if (Creature* summon = me->SummonCreature(28834 /*NPC_SCARLET_FLEET_DEFENDER*/, 2192.56f + irand(-10, 10), -6147.90f + irand(-10, 10), 5.2f, 4.7f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 45000)) - { - summon->SetHomePosition(me->GetHomePosition()); - summon->AI()->AttackStart(me); - } - - summonAttackers = 1; - } - } - } - }; -}; - /*###### ##Quest 12848 ######*/ @@ -835,253 +792,6 @@ public: } }; -/*#### -## npc_scarlet_miner_cart -####*/ - -enum Spells_SM -{ - SPELL_CART_CHECK = 54173, - SPELL_CART_DRAG = 52465 -}; - -class npc_scarlet_miner_cart : public CreatureScript -{ -public: - npc_scarlet_miner_cart() : CreatureScript("npc_scarlet_miner_cart") { } - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_scarlet_miner_cartAI(creature); - } - - struct npc_scarlet_miner_cartAI : public PassiveAI - { - npc_scarlet_miner_cartAI(Creature* creature) : PassiveAI(creature) - { - me->SetImmuneToAll(true); - me->SetFaction(FACTION_FRIENDLY); - me->SetDisplayFromModel(0); // Modelid2 is a horse. - } - - ObjectGuid minerGUID; - - void SetGUID(ObjectGuid const& guid, int32 /*id*/) override - { - minerGUID = guid; - } - - void DoAction(int32 /*param*/) override - { - if (Creature* miner = ObjectAccessor::GetCreature(*me, minerGUID)) - { - me->SetWalk(false); - - //Not 100% correct, but movement is smooth. Sometimes miner walks faster - //than normal, this speed is fast enough to keep up at those times. - me->SetSpeed(MOVE_RUN, 1.25f); - - me->GetMotionMaster()->MoveFollow(miner, 1.0f, 0); - me->ReplaceAllUnitFlags(UNIT_FLAG_NON_ATTACKABLE); - me->SetImmuneToAll(true); - me->SetFaction(FACTION_FRIENDLY); - } - } - - void PassengerBoarded(Unit* who, int8 /*seatId*/, bool apply) override - { - who->SetVisible(!apply); - if (!apply) - if (Creature* miner = ObjectAccessor::GetCreature(*me, minerGUID)) - miner->DisappearAndDie(); - } - }; -}; - -/*#### -## npc_scarlet_miner -####*/ - -enum Says_SM -{ - SAY_SCARLET_MINER_0 = 0, - SAY_SCARLET_MINER_1 = 1 -}; - -class npc_scarlet_miner : public CreatureScript -{ -public: - npc_scarlet_miner() : CreatureScript("npc_scarlet_miner") { } - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_scarlet_minerAI(creature); - } - - struct npc_scarlet_minerAI : public npc_escortAI - { - npc_scarlet_minerAI(Creature* creature) : npc_escortAI(creature) - { - me->SetReactState(REACT_PASSIVE); - } - - uint32 IntroTimer; - uint32 IntroPhase; - ObjectGuid carGUID; - - void Reset() override - { - carGUID.Clear(); - IntroTimer = 0; - IntroPhase = 0; - } - - void InitWaypoint() - { - AddWaypoint(1, 2389.03f, -5902.74f, 109.014f, 5000); - AddWaypoint(2, 2341.812012f, -5900.484863f, 102.619743f); - AddWaypoint(3, 2308.34f, -5904.2f, 91.1099f); - AddWaypoint(4, 2300.69f, -5912.99f, 86.1572f); - AddWaypoint(5, 2294.142090f, -5927.274414f, 75.316849f); - AddWaypoint(6, 2286.984375f, -5944.955566f, 63.714966f); - AddWaypoint(7, 2280.001709f, -5961.186035f, 54.228283f); - AddWaypoint(8, 2259.389648f, -5974.197754f, 42.359348f); - AddWaypoint(9, 2242.882812f, -5984.642578f, 32.827850f); - AddWaypoint(10, 2239.79f, -5989.31f, 30.4453f); - AddWaypoint(11, 2236.52f, -5994.28f, 27.4829f); - AddWaypoint(12, 2232.61f, -6000.23f, 23.1281f); - AddWaypoint(13, 2228.69f, -6006.46f, 17.6638f); - AddWaypoint(14, 2225.2f, -6012.39f, 12.9487f); - AddWaypoint(15, 2217.265625f, -6028.959473f, 7.675705f); - AddWaypoint(16, 2202.595947f, -6061.325684f, 5.882018f); - AddWaypoint(17, 2188.974609f, -6080.866699f, 3.370027f); - - if (urand(0, 1)) - { - AddWaypoint(18, 2176.483887f, -6110.407227f, 1.855181f); - AddWaypoint(19, 2172.516602f, -6146.752441f, 1.074235f); - AddWaypoint(20, 2138.918457f, -6158.920898f, 1.342926f); - AddWaypoint(21, 2129.866699f, -6174.107910f, 4.380779f); - AddWaypoint(22, 2125.250001f, -6181.230001f, 9.91997f); - AddWaypoint(23, 2117.709473f, -6193.830078f, 13.3542f, 10000); - } - else - { - AddWaypoint(18, 2184.190186f, -6166.447266f, 0.968877f); - AddWaypoint(19, 2234.265625f, -6163.741211f, 0.916021f); - AddWaypoint(20, 2268.071777f, -6158.750977f, 1.822252f); - AddWaypoint(21, 2270.028320f, -6176.505859f, 6.340538f); - AddWaypoint(22, 2270.350001f, -6182.410001f, 10.42431f); - AddWaypoint(23, 2271.739014f, -6195.401855f, 13.3542f, 10000); - } - } - - void InitCartQuest(Player* who) - { - carGUID = who->GetVehicleBase()->GetGUID(); - InitWaypoint(); - me->SetWalk(true); - Start(false, who->GetGUID()); - SetDespawnAtFar(false); - } - - void WaypointReached(uint32 waypointId) override - { - switch (waypointId) - { - case 1: - if (Unit* car = ObjectAccessor::GetCreature(*me, carGUID)) - { - me->SetFacingToObject(car); - // xinef: add some flags - car->ReplaceAllUnitFlags(UNIT_FLAG_NON_ATTACKABLE); - car->SetImmuneToAll(true); - car->SetFaction(FACTION_FRIENDLY); - } - Talk(SAY_SCARLET_MINER_0); - me->SetWalk(false); - IntroTimer = 4000; - IntroPhase = 1; - break; - case 23: - if (Creature* car = ObjectAccessor::GetCreature(*me, carGUID)) - { - car->SetPosition(car->GetPositionX(), car->GetPositionY(), me->GetPositionZ() + 1, car->GetOrientation()); - car->StopMovingOnCurrentPos(); - me->SetFacingToObject(car); - car->RemoveAura(SPELL_CART_DRAG); - } - Talk(SAY_SCARLET_MINER_1); - break; - default: - break; - } - } - - void UpdateAI(uint32 diff) override - { - if (IntroPhase) - { - if (IntroTimer <= diff) - { - if (IntroPhase == 1) - { - if (Creature* car = ObjectAccessor::GetCreature(*me, carGUID)) - DoCast(car, SPELL_CART_DRAG); - IntroTimer = 800; - IntroPhase = 2; - } - else - { - if (Creature* car = ObjectAccessor::GetCreature(*me, carGUID)) - car->AI()->DoAction(0); - IntroPhase = 0; - } - } - else IntroTimer -= diff; - } - npc_escortAI::UpdateAI(diff); - } - }; -}; - -/*###### -## go_inconspicuous_mine_car -######*/ - -enum Spells_Cart -{ - SPELL_CART_SUMM = 52463 -}; - -class go_inconspicuous_mine_car : public GameObjectScript -{ -public: - go_inconspicuous_mine_car() : GameObjectScript("go_inconspicuous_mine_car") { } - - bool OnGossipHello(Player* player, GameObject* /*go*/) override - { - if (player->GetQuestStatus(12701) == QUEST_STATUS_INCOMPLETE) - { - // Hack Why Trinity Dont Support Custom Summon Location - if (Creature* miner = player->SummonCreature(28841, 2383.869629f, -5900.312500f, 107.996086f, player->GetOrientation(), TEMPSUMMON_DEAD_DESPAWN, 1)) - { - player->CastSpell(player, SPELL_CART_SUMM, true); - if (Creature* car = player->GetVehicleCreatureBase()) - { - if (car->GetEntry() == 28817) - { - car->AI()->SetGUID(miner->GetGUID()); - CAST_AI(npc_scarlet_miner::npc_scarlet_minerAI, miner->AI())->InitCartQuest(player); - } - } - } - } - - return true; - } -}; - class spell_death_knight_initiate_visual : public SpellScript { PrepareSpellScript(spell_death_knight_initiate_visual); @@ -1219,13 +929,9 @@ void AddSC_the_scarlet_enclave_c1() RegisterSpellScript(spell_q12698_the_gift_that_keeps_on_giving); new npc_scarlet_ghoul(); new npc_dkc1_gothik(); - new npc_scarlet_cannon(); new npc_unworthy_initiate(); new npc_unworthy_initiate_anchor(); new go_acherus_soul_prison(); - new npc_scarlet_miner(); - new npc_scarlet_miner_cart(); - new go_inconspicuous_mine_car(); RegisterSpellScript(spell_death_knight_initiate_visual); RegisterSpellScript(spell_lich_king_whisper); RegisterSpellScript(spell_lich_king_vo_blocker); diff --git a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_herald_volazj.cpp b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_herald_volazj.cpp index fa1a998b0d..e1b0018ef7 100644 --- a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_herald_volazj.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_herald_volazj.cpp @@ -77,51 +77,52 @@ enum Misc DATA_SET_INSANITY_PHASE = 1, }; -enum Events -{ - EVENT_HERALD_MIND_FLAY = 1, - EVENT_HERALD_SHADOW, - EVENT_HERALD_SHIVER, -}; - const std::array InsanitySpells = { SPELL_INSANITY_PHASING_1, SPELL_INSANITY_PHASING_2, SPELL_INSANITY_PHASING_3, SPELL_INSANITY_PHASING_4, SPELL_INSANITY_PHASING_5 }; struct boss_volazj : public BossAI { boss_volazj(Creature* pCreature) : BossAI(pCreature, DATA_HERALD_VOLAZJ), - insanityTimes(0), insanityPhase(false) { } - void InitializeAI() override - { - BossAI::InitializeAI(); - // Visible for all players in insanity - me->SetPhaseMask((1 | 16 | 32 | 64 | 128 | 256), true); - } - void Reset() override { _Reset(); - insanityTimes = 0; insanityPhase = false; me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE); me->SetControlled(false, UNIT_STATE_STUNNED); ResetPlayersPhaseMask(); instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_QUICK_DEMISE_START_EVENT); + me->SetPhaseMask((1 | 16 | 32 | 64 | 128 | 256), true); + + ScheduleHealthCheckEvent({ 66, 33 }, [&]{ + scheduler.CancelAll(); + DoCastSelf(SPELL_INSANITY); + }, false); + } + + void ScheduleTasks() override + { + ScheduleTimedEvent(8s, [&] { + DoCastVictim(SPELL_MIND_FLAY); + }, 20s); + + ScheduleTimedEvent(5s, [&] { + DoCastVictim(SPELL_SHADOW_BOLT_VOLLEY); + }, 5s); + + ScheduleTimedEvent(15s, [&] { + DoCastRandomTarget(SPELL_SHIVER); + }, 15s); } void JustEngagedWith(Unit* /*who*/) override { _JustEngagedWith(); - events.ScheduleEvent(EVENT_HERALD_MIND_FLAY, 8s); - events.ScheduleEvent(EVENT_HERALD_SHADOW, 5s); - events.ScheduleEvent(EVENT_HERALD_SHIVER, 15s); Talk(SAY_AGGRO); DoCastSelf(SPELL_WHISPER_AGGRO); instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_QUICK_DEMISE_START_EVENT); - me->SetInCombatWithZone(); } void JustDied(Unit* /*killer*/) override @@ -184,36 +185,13 @@ struct boss_volazj : public BossAI } } - void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damagetype*/, SpellSchoolMask /*damageSchoolMask*/) override - { - // Do not perform insanity recast if boss is casting Insanity already - if (me->FindCurrentSpellBySpellId(SPELL_INSANITY)) - { - return; - } - - // First insanity - if (insanityTimes == 0 && me->HealthBelowPctDamaged(66, damage)) - { - DoCastSelf(SPELL_INSANITY, false); - ++insanityTimes; - } - // Second insanity - else if (insanityTimes == 1 && me->HealthBelowPctDamaged(33, damage)) - { - me->InterruptNonMeleeSpells(false); - DoCastSelf(SPELL_INSANITY, false); - ++insanityTimes; - } - } - void UpdateAI(uint32 diff) override { //Return since we have no target if (!UpdateVictim()) - { return; - } + + scheduler.Update(diff); if (insanityPhase) { @@ -226,53 +204,13 @@ struct boss_volazj : public BossAI me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE); me->SetControlled(false, UNIT_STATE_STUNNED); me->RemoveAurasDueToSpell(INSANITY_VISUAL); - } - - events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - { - return; - } - - while (uint32 const eventId = events.ExecuteEvent()) - { - switch (eventId) - { - case EVENT_HERALD_MIND_FLAY: - { - DoCastVictim(SPELL_MIND_FLAY, false); - events.Repeat(20s); - break; - } - case EVENT_HERALD_SHADOW: - { - DoCastVictim(SPELL_SHADOW_BOLT_VOLLEY, false); - events.Repeat(5s); - break; - } - case EVENT_HERALD_SHIVER: - { - if (Unit* pTarget = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true)) - { - DoCast(pTarget, SPELL_SHIVER, false); - } - - events.Repeat(15s); - break; - } - } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - { - return; - } + ScheduleTasks(); } DoMeleeAttackIfReady(); } private: - uint8 insanityTimes; bool insanityPhase; // Indicates if boss enter to insanity phase uint32 GetPlrInsanityAuraId(uint32 phaseMask) const @@ -312,6 +250,7 @@ private: bool CheckPhaseMinions() { summons.RemoveNotExisting(); + if (summons.empty()) { ResetPlayersPhaseMask();