Merge branch 'master' into Playerbot

This commit is contained in:
Oiuv
2023-12-28 17:33:26 +08:00
83 changed files with 805 additions and 300 deletions
@@ -0,0 +1,3 @@
-- DB update 2023_12_12_16 -> 2023_12_24_00
-- Spell Bomb
UPDATE `spell_proc_event` SET `Cooldown`=1000 WHERE `entry`=40303;
@@ -0,0 +1,28 @@
-- DB update 2023_12_24_00 -> 2023_12_24_01
-- update various midsummer NPC spawns with sniffed values
DELETE FROM `creature` WHERE (`id1` IN (16817, 16818, 25697, 25710, 25754)) AND (`guid` IN (202768, 202862, 94855, 94856, 94857, 202750, 94858, 94859, 94860, 94861, 202734, 245704, 202735, 202736, 202737));
INSERT INTO `creature` (`guid`, `id1`, `map`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`, `CreateObject`, `Comment`) VALUES
-- 16817 'Festival Loremaster'
(202768, 16817, 530, 1, 1, 0, -3787.9111328125, -11506.0986328125, -134.600814819335937, 5.969026088714599609, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(202862, 16817, 0, 1, 1, 0, -8832.986328125, 862.3447265625, 98.96456146240234375, 0.296705961227416992, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(94855, 16817, 1, 1, 1, 0, 8697.384765625, 936.7188720703125, 14.6749267578125, 1.797689080238342285, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(94856, 16817, 530, 1, 1, 0, -1751.86669921875, 5333.408203125, -12.3448038101196289, 2.30383467674255371, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(94857, 16817, 0, 1, 1, 0, -4702.794921875, -1218.0499267578125, 501.74273681640625, 1.93731546401977539, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
-- 16818 'Festival Talespinner'
(202750, 16818, 530, 1, 1, 0, 9807, -7246.8203125, 26.21605491638183593, 5.672319889068603515, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(94858, 16818, 1, 1, 1, 0, -1042.9757080078125, 291.024322509765625, 135.6658477783203125, 2.338741064071655273, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(94859, 16818, 530, 1, 1, 0, -1752.97216796875, 5323.267578125, -12.3448047637939453, 4.136430263519287109, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(94860, 16818, 0, 1, 1, 0, 1824.94580078125, 224.4239349365234375, 60.3980560302734375, 1.850049018859863281, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(94861, 16818, 1, 1, 1, 0, 1918.1146240234375, -4336.3505859375, 21.28496551513671875, 0.139626339077949523, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
-- 25697 'Luma Skymother'
(202734, 25697, 547, 3, 1, 0, -92.4571914672851562, -110.664161682128906, -2.86675882339477539, 2.408554315567016601, 7200, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
-- 25710 'Numa Cloudsister'
(245704, 25710, 547, 3, 1, 0, 131.4105682373046875, -120.632652282714843, -1.50722658634185791, 4.206243515014648437, 7200, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
-- 25754 'Earthen Ring Flamecaller'
(202735, 25754, 547, 3, 1, 0, -110.19451904296875, -116.621482849121093, -3.25569367408752441, 0.104719758033752441, 7200, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(202736, 25754, 547, 3, 1, 0, -112.209869384765625, -120.209037780761718, -2.65799570083618164, 5.183627605438232421, 7200, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(202737, 25754, 547, 3, 1, 0, -93.1847915649414062, -115.92059326171875, -2.69253182411193847, 3.804817676544189453, 7200, 0, 0, 0, 0, 0, "", 50172, 1, NULL);
-- enable all spawns for eventEntry 1
DELETE FROM `game_event_creature` WHERE (`eventEntry` = 1) AND (`guid` IN (SELECT `guid` FROM `creature` WHERE `id1` IN (16817, 16818, 25697, 25710, 25754)));
INSERT INTO `game_event_creature` (SELECT 1, `guid` FROM `creature` WHERE `id1` IN (16817, 16818, 25697, 25710, 25754));
+195
View File
@@ -0,0 +1,195 @@
-- DB update 2023_12_24_01 -> 2023_12_25_00
-- Implement Midsummer Bonfire Mechanics
-- Assign ArtKits to Alliance and Horde Bonfires
UPDATE `gameobject_template_addon` SET `artkit0` = 121, `artkit1` = 122 WHERE (`entry` IN (187564, 187914, 187916, 187917, 187919, 187920, 187921, 187922, 187923, 187924, 187925, 187926, 187927, 187928, 187929, 187930, 187931, 187932, 187933, 187934, 187935, 187936, 187937, 187938, 187939, 187940, 187941, 187942, 187943, 187944, 187945, 187946, 194032, 194035, 194036, 194038, 194040, 194044, 194045, 194049, 187559, 187947, 187948, 187949, 187950, 187951, 187952, 187953, 187954, 187955, 187956, 187957, 187958, 187959, 187960, 187961, 187962, 187963, 187964, 187965, 187966, 187967, 187968, 187969, 187970, 187971, 187972, 187973, 187974, 187975, 194033, 194034, 194037, 194039, 194042, 194043, 194046, 194048));
-- assign implicit targets to spells
-- 28806 'Toss Fuel on Bonfire' targets 16592 'Midsummer Bonfire' (already in DB)
-- 45437 'Stamp Out Bonfire' targets 16592 'Midsummer Bonfire' (already in DB)
-- 46903 'Stamp Out Bonfire (Art Kit)' targets Alliance / Horde Bonfires
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceEntry` = 46903);
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(13, 1, 46903, 0, 0, 31, 0, 5, 187564, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 1, 31, 0, 5, 187914, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 2, 31, 0, 5, 187916, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 3, 31, 0, 5, 187917, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 4, 31, 0, 5, 187919, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 5, 31, 0, 5, 187920, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 6, 31, 0, 5, 187921, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 7, 31, 0, 5, 187922, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 8, 31, 0, 5, 187923, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 9, 31, 0, 5, 187924, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 10, 31, 0, 5, 187925, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 11, 31, 0, 5, 187926, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 12, 31, 0, 5, 187927, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 13, 31, 0, 5, 187928, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 14, 31, 0, 5, 187929, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 15, 31, 0, 5, 187930, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 16, 31, 0, 5, 187931, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 17, 31, 0, 5, 187932, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 18, 31, 0, 5, 187933, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 19, 31, 0, 5, 187934, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 20, 31, 0, 5, 187935, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 21, 31, 0, 5, 187936, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 22, 31, 0, 5, 187937, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 23, 31, 0, 5, 187938, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 24, 31, 0, 5, 187939, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 25, 31, 0, 5, 187940, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 26, 31, 0, 5, 187941, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 27, 31, 0, 5, 187942, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 28, 31, 0, 5, 187943, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 29, 31, 0, 5, 187944, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 30, 31, 0, 5, 187945, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 31, 31, 0, 5, 187946, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 32, 31, 0, 5, 194032, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 33, 31, 0, 5, 194035, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 34, 31, 0, 5, 194036, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 35, 31, 0, 5, 194038, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 36, 31, 0, 5, 194040, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 37, 31, 0, 5, 194044, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 38, 31, 0, 5, 194045, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 39, 31, 0, 5, 194049, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46903, 0, 40, 31, 0, 5, 187559, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 41, 31, 0, 5, 187947, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 42, 31, 0, 5, 187948, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 43, 31, 0, 5, 187949, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 44, 31, 0, 5, 187950, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 45, 31, 0, 5, 187951, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 46, 31, 0, 5, 187952, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 47, 31, 0, 5, 187953, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 48, 31, 0, 5, 187954, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 49, 31, 0, 5, 187955, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 50, 31, 0, 5, 187956, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 51, 31, 0, 5, 187957, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 52, 31, 0, 5, 187958, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 53, 31, 0, 5, 187959, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 54, 31, 0, 5, 187960, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 55, 31, 0, 5, 187961, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 56, 31, 0, 5, 187962, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 57, 31, 0, 5, 187963, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 58, 31, 0, 5, 187964, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 59, 31, 0, 5, 187965, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 60, 31, 0, 5, 187966, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 61, 31, 0, 5, 187967, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 62, 31, 0, 5, 187968, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 63, 31, 0, 5, 187969, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 64, 31, 0, 5, 187970, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 65, 31, 0, 5, 187971, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 66, 31, 0, 5, 187972, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 67, 31, 0, 5, 187973, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 68, 31, 0, 5, 187974, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 69, 31, 0, 5, 187975, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 70, 31, 0, 5, 194033, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 71, 31, 0, 5, 194034, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 72, 31, 0, 5, 194037, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 73, 31, 0, 5, 194039, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 74, 31, 0, 5, 194042, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 75, 31, 0, 5, 194043, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 76, 31, 0, 5, 194046, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46903, 0, 77, 31, 0, 5, 194048, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire');
-- 46904 'Light Bonfire (Art Kit)' targets Alliance / Horde Bonfires
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceEntry` = 46904);
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(13, 1, 46904, 0, 0, 31, 0, 5, 187564, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 1, 31, 0, 5, 187914, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 2, 31, 0, 5, 187916, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 3, 31, 0, 5, 187917, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 4, 31, 0, 5, 187919, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 5, 31, 0, 5, 187920, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 6, 31, 0, 5, 187921, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 7, 31, 0, 5, 187922, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 8, 31, 0, 5, 187923, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 9, 31, 0, 5, 187924, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 10, 31, 0, 5, 187925, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 11, 31, 0, 5, 187926, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 12, 31, 0, 5, 187927, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 13, 31, 0, 5, 187928, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 14, 31, 0, 5, 187929, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 15, 31, 0, 5, 187930, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 16, 31, 0, 5, 187931, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 17, 31, 0, 5, 187932, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 18, 31, 0, 5, 187933, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 19, 31, 0, 5, 187934, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 20, 31, 0, 5, 187935, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 21, 31, 0, 5, 187936, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 22, 31, 0, 5, 187937, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 23, 31, 0, 5, 187938, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 24, 31, 0, 5, 187939, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 25, 31, 0, 5, 187940, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 26, 31, 0, 5, 187941, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 27, 31, 0, 5, 187942, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 28, 31, 0, 5, 187943, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 29, 31, 0, 5, 187944, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 30, 31, 0, 5, 187945, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 31, 31, 0, 5, 187946, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 32, 31, 0, 5, 194032, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 33, 31, 0, 5, 194035, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 34, 31, 0, 5, 194036, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 35, 31, 0, 5, 194038, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 36, 31, 0, 5, 194040, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 37, 31, 0, 5, 194044, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 38, 31, 0, 5, 194045, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 39, 31, 0, 5, 194049, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Alliance Bonfire'),
(13, 1, 46904, 0, 40, 31, 0, 5, 187559, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 41, 31, 0, 5, 187947, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 42, 31, 0, 5, 187948, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 43, 31, 0, 5, 187949, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 44, 31, 0, 5, 187950, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 45, 31, 0, 5, 187951, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 46, 31, 0, 5, 187952, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 47, 31, 0, 5, 187953, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 48, 31, 0, 5, 187954, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 49, 31, 0, 5, 187955, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 50, 31, 0, 5, 187956, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 51, 31, 0, 5, 187957, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 52, 31, 0, 5, 187958, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 53, 31, 0, 5, 187959, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 54, 31, 0, 5, 187960, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 55, 31, 0, 5, 187961, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 56, 31, 0, 5, 187962, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 57, 31, 0, 5, 187963, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 58, 31, 0, 5, 187964, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 59, 31, 0, 5, 187965, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 60, 31, 0, 5, 187966, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 61, 31, 0, 5, 187967, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 62, 31, 0, 5, 187968, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 63, 31, 0, 5, 187969, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 64, 31, 0, 5, 187970, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 65, 31, 0, 5, 187971, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 66, 31, 0, 5, 187972, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 67, 31, 0, 5, 187973, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 68, 31, 0, 5, 187974, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 69, 31, 0, 5, 187975, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 70, 31, 0, 5, 194033, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 71, 31, 0, 5, 194034, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 72, 31, 0, 5, 194037, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 73, 31, 0, 5, 194039, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 74, 31, 0, 5, 194042, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 75, 31, 0, 5, 194043, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 76, 31, 0, 5, 194046, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire'),
(13, 1, 46904, 0, 77, 31, 0, 5, 194048, 0, 0, 0, 0, '', 'Light Bonfire (Art Kit) targets Horde Bonfire');
-- Creature 16592 Midsummer Bonfire
UPDATE `creature_template` SET `AIName` = '', `ScriptName` = 'npc_midsummer_bonfire' WHERE (`entry` = 16592);
-- Spell 45444 Bonfire's Blessing
DELETE FROM `spell_script_names` WHERE `spell_id` = 45444 AND `ScriptName` = 'spell_bonfires_blessing';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(45444, 'spell_bonfires_blessing');
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 24) AND (`SourceEntry` = 45444);
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(24, 0, 45444, 0, 0, 12, 0, 1, 0, 0, 0, 0, 0, '', 'Spell \'Bonfire\'s Blessing\' PROC requires Midsummer Fire Festival');
-- proc cooldown 45 seconds
DELETE FROM `spell_proc_event` WHERE (`entry` = 45444);
INSERT INTO `spell_proc_event` (`entry`, `Cooldown`) VALUES
(45444, 45000);
-- remove all spawns of 181376, 'Midsummer Bonfire Campfire Damage Trap'
-- it's the linked trap of 181377
-- which is beeing spawned by spell 29114 'Midsummer Bonfire Bunnies 2' by NPC 16592 if the fire is burning
DELETE FROM `game_event_gameobject` WHERE (`guid` IN (SELECT `guid` FROM `gameobject` WHERE `id` = 181376));
DELETE FROM `gameobject` WHERE (`id` = 181376);
@@ -0,0 +1,7 @@
-- DB update 2023_12_25_00 -> 2023_12_25_01
--
DELETE FROM `spell_custom_attr` WHERE `spell_id` = 37546;
INSERT INTO `spell_custom_attr` (`spell_id`, `attributes`) VALUES
(37546, 2147483648);
UPDATE `creature_template` SET `mechanic_immune_mask` = `mechanic_immune_mask` |131072 WHERE `entry` = 21215;
@@ -0,0 +1,5 @@
-- DB update 2023_12_25_01 -> 2023_12_26_00
-- Spawn NPC 'Crown Apothecary' for event 'Love is in the Air' only
DELETE FROM `game_event_creature` WHERE (`eventEntry` = 8) AND (`guid` = 146624);
INSERT INTO `game_event_creature` (`eventEntry`,`guid`) VALUES
(8, 146624);
+168
View File
@@ -0,0 +1,168 @@
-- DB update 2023_12_26_00 -> 2023_12_28_00
-- Update Midsummer creature 'Flame Keeper' / 'Flame Warden' spawns with sniffed values
DELETE FROM `creature` WHERE (`id1` IN(32801, 32802, 32803, 32804, 32805, 32806, 32807, 32808, 32809, 32810, 32811, 32812, 32813, 32814, 32815, 32816, 25883, 25884, 25887, 25890, 25893, 25894, 25895, 25896, 25897, 25898, 25899, 25900, 25901, 25902, 25904, 25906, 25908, 25909, 25910, 25911, 25914, 25915, 25916, 25917, 25919, 25920, 25921, 25922, 25923, 25925, 25927, 25928, 25929, 25930, 25931, 25932, 25933, 25934, 25935, 25936, 25937, 25939, 25940, 25941, 25942, 25943, 25944, 25945, 25946, 25947, 25892, 25888, 25891, 25907, 25938, 25905, 25912, 25903, 25889, 25926, 25913, 25918)) AND (`guid` IN (245500, 245501, 245502, 245503, 245504, 245505, 245506, 245507, 245508, 245509, 245510, 245511, 245512, 245513, 245514, 245515, 245642, 245643, 245644, 245647, 245650, 245651, 245652, 245653, 245654, 245655, 245656, 245657, 245658, 245659, 245661, 245663, 245665, 245666, 245667, 245668, 245671, 245672, 245673, 245674, 245676, 245677, 245678, 245679, 245680, 245681, 245683, 245684, 245685, 245686, 245687, 245688, 245689, 245690, 245691, 245692, 245693, 245695, 245696, 245697, 245698, 245699, 245700, 245701, 245702, 245703, 248581, 248584, 248585, 248586, 248587, 248588, 248589, 248590, 248591, 248592, 248593, 248594));
INSERT INTO `creature` (`guid`, `id1`, `map`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`, `CreateObject`, `Comment`) VALUES
(245500, 32801, 571, 1, 1, 0, 4131.27880859375, 5394.60400390625, 26.09047317504882812, 3.59537816047668457, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(245501, 32802, 571, 1, 1, 0, 5360.001953125, 4834.39306640625, -196.398086547851562, 5.550147056579589843, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(245502, 32803, 571, 1, 1, 0, 3936.923583984375, -595.4437255859375, 241.1533660888671875, 5.951572895050048828, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(245503, 32804, 571, 1, 1, 0, 2466.96533203125, -4892.67529296875, 262.54742431640625, 2.30383467674255371, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(245504, 32805, 571, 1, 1, 0, 3400.944091796875, -2890.375, 201.4967803955078125, 2.30383467674255371, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(245505, 32806, 571, 1, 1, 0, 6087.44189453125, -1105.5230712890625, 418.2672119140625, 1.099557399749755859, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(245506, 32807, 571, 1, 1, 0, 5141.77587890625, -685.00274658203125, 170.273834228515625, 5.951572895050048828, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(245507, 32808, 571, 1, 1, 0, 5627.93212890625, -2616.493408203125, 292.501861572265625, 1.518436431884765625, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(245508, 32809, 571, 1, 1, 0, 4454.66650390625, 5623.537109375, 56.91561508178710937, 4.136430263519287109, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(245509, 32810, 571, 1, 1, 0, 5499.81201171875, 4878.97607421875, -197.865234375, 3.176499128341674804, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(245510, 32811, 571, 1, 1, 0, 3762.38720703125, 1481.287109375, 92.8881988525390625, 3.438298702239990234, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(245511, 32812, 571, 1, 1, 0, 2586.682373046875, -4337.068359375, 276.06976318359375, 4.136430263519287109, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(245512, 32813, 571, 1, 1, 0, 3376.009033203125, -2124.778076171875, 124.6639862060546875, 0.139626339077949523, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(245513, 32814, 571, 1, 1, 0, 6150.9453125, -1023.0499267578125, 408.364166259765625, 1.431169986724853515, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(245514, 32815, 571, 1, 1, 0, 5536.51611328125, -733.718505859375, 149.6217498779296875, 3.124139308929443359, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(245515, 32816, 571, 1, 1, 0, 5280.306640625, -2766.146240234375, 292.501861572265625, 2.30383467674255371, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(245642, 25883, 1, 1, 1, 0, 2568.965087890625, -478.949615478515625, 108.39166259765625, 1.675516128540039062, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245643, 25884, 1, 1, 1, 0, 2009.33056640625, -2345.086181640625, 89.7369232177734375, 2.94960641860961914, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245644, 25887, 0, 1, 1, 0, -1209.2672119140625, -2667.495361328125, 45.18304061889648437, 5.934119224548339843, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245647, 25890, 0, 1, 1, 0, -10946.642578125, -3227.52587890625, 41.4308319091796875, 4.520402908325195312, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245650, 25893, 1, 1, 1, 0, 6317.34716796875, 520.6370849609375, 18.50266075134277343, 1.343903541564941406, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245651, 25894, 1, 1, 1, 0, -60.1540260314941406, 1260.6822509765625, 90.85235595703125, 2.984513044357299804, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245652, 25895, 0, 1, 1, 0, -5418.35791015625, -497.67083740234375, 397.224212646484375, 4.764749050140380859, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245653, 25896, 0, 1, 1, 0, -10699.7001953125, -1156.25634765625, 25.06201362609863281, 3.909537553787231445, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245654, 25897, 1, 1, 1, 0, -3449.224609375, -4220.4794921875, 11.50491142272949218, 2.617993831634521484, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245655, 25898, 0, 1, 1, 0, -9389.173828125, 26.72422981262207031, 60.13254165649414062, 4.520402908325195312, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245656, 25899, 1, 1, 1, 0, -4400.099609375, 3474.04638671875, 11.66966533660888671, 5.864306449890136718, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245657, 25900, 530, 1, 1, 0, -526.0140380859375, 2328.915771484375, 39.06064224243164062, 3.59537816047668457, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245658, 25901, 0, 1, 1, 0, -615.18017578125, -547.1456298828125, 36.26576995849609375, 4.520402908325195312, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245659, 25902, 0, 1, 1, 0, -5240.81103515625, -2891.7265625, 338.1416015625, 1.93731546401977539, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245661, 25904, 0, 1, 1, 0, -9428.7666015625, -2118.62744140625, 66.248504638671875, 4.520402908325195312, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245663, 25906, 1, 1, 1, 0, 9780.8486328125, 1011.06207275390625, 1299.6243896484375, 6.195918560028076171, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245665, 25908, 0, 1, 1, 0, 181.5362396240234375, -2127.068603515625, 103.5297622680664062, 3.665191411972045898, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245666, 25909, 0, 1, 1, 0, 1006.46612548828125, -1452.320068359375, 61.63693618774414062, 5.16617441177368164, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245667, 25910, 0, 1, 1, 0, -10647.8984375, 1059.494384765625, 32.95148086547851562, 5.497786998748779296, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245668, 25911, 0, 1, 1, 0, -3445.115478515625, -946.04742431640625, 10.35079002380371093, 4.101523876190185546, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245671, 25914, 1, 1, 1, 0, -6776.85693359375, 535.37042236328125, -1.13637661933898925, 3.211405754089355468, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245672, 25915, 0, 1, 1, 0, -14296.548828125, 57.83572006225585937, 1.239098429679870605, 2.548180580139160156, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245673, 25916, 1, 1, 1, 0, -7225.96923828125, -3859.081298828125, 11.69223976135253906, 3.892084121704101562, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245674, 25917, 1, 1, 1, 0, 6856.548828125, -4757.7919921875, 696.747314453125, 0.890117883682250976, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245676, 25919, 1, 1, 1, 0, -6990.8369140625, 919.427734375, 9.771059989929199218, 1.029744267463684082, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245677, 25920, 0, 1, 1, 0, -14368.7802734375, 119.6214981079101562, 1.169593334197998046, 5.724679946899414062, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245678, 25921, 1, 1, 1, 0, -7113.9248046875, -3657.283447265625, 9.638824462890625, 1.029744267463684082, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245679, 25922, 1, 1, 1, 0, 6846.09912109375, -4567.4072265625, 709.08477783203125, 4.433136463165283203, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245680, 25923, 0, 1, 1, 0, -1128.567626953125, -3538.506103515625, 51.01441192626953125, 3.996803998947143554, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245681, 25925, 0, 1, 1, 0, -6695.68603515625, -2196.149658203125, 248.552642822265625, 1.570796370506286621, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245683, 25927, 0, 1, 1, 0, -7598.5302734375, -2075.66796875, 127.084625244140625, 2.792526721954345703, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245684, 25928, 1, 1, 1, 0, -1853.5321044921875, 3057.98681640625, 0.857634305953979492, 1.413716673851013183, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245685, 25929, 1, 1, 1, 0, 140.2664947509765625, -4721.44189453125, 17.75169944763183593, 5.270894527435302734, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(245686, 25930, 1, 1, 1, 0, -3115.071533203125, -2730.114013671875, 33.80213165283203125, 3.03687286376953125, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245687, 25931, 530, 1, 1, 0, 9380.330078125, -6772.7578125, 14.1056976318359375, 4.607669353485107421, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245688, 25932, 1, 1, 1, 0, -4580.9453125, 411.727874755859375, 42.02591705322265625, 3.717551231384277343, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245689, 25933, 530, 1, 1, 0, 7687.181640625, -6831.15478515625, 78.56020355224609375, 1.466076612472534179, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245690, 25934, 530, 1, 1, 0, 33.56027603149414062, 2589.915283203125, 69.20654296875, 3.630284786224365234, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245691, 25935, 0, 1, 1, 0, -142.508621215820312, -807.7791748046875, 55.47702407836914062, 2.426007747650146484, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245692, 25936, 1, 1, 1, 0, -2321.74365234375, -619.74908447265625, -9.08914852142333984, 5.672319889068603515, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245693, 25937, 530, 1, 1, 0, -1215.727783203125, 7482.88916015625, 22.181121826171875, 3.228859186172485351, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245695, 25939, 0, 1, 1, 0, 593.8203125, 1362.9957275390625, 90.1024169921875, 1.01229095458984375, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245696, 25940, 1, 1, 1, 0, 947.726806640625, 780.1524658203125, 104.1993026733398437, 3.804817676544189453, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245697, 25941, 0, 1, 1, 0, -10339.1572265625, -3294.16650390625, 22.53605270385742187, 1.797689080238342285, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245698, 25942, 530, 1, 1, 0, -2544.9462890625, 4274.578125, 19.87278175354003906, 0.610865235328674316, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245699, 25943, 1, 1, 1, 0, -282.30377197265625, -2668.305419921875, 92.95586395263671875, 4.607669353485107421, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245700, 25944, 0, 1, 1, 0, -457.318572998046875, -4525.64111328125, 9.816510200500488281, 1.867502331733703613, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245701, 25945, 1, 1, 1, 0, -5519.482421875, -2294.23046875, -57.9950790405273437, 3.176499128341674804, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245702, 25946, 0, 1, 1, 0, 2278.419189453125, 447.48089599609375, 34.1212310791015625, 3.159045934677124023, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(245703, 25947, 530, 1, 1, 0, 205.462860107421875, 7693.14599609375, 23.38621330261230468, 2.042035102844238281, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(248581, 25892, 0, 1, 1, 0, -8258.7978515625, -2618.704345703125, 133.3751983642578125, 1.343903541564941406, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(248584, 25888, 530, 1, 1, 0, -4219.21923828125, -12310.5498046875, 2.439188241958618164, 5.934119224548339843, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(248585, 25891, 530, 1, 1, 0, -2234.829833984375, -11895.943359375, 26.62420845031738281, 4.694935798645019531, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(248586, 25907, 530, 1, 1, 0, -2998.8544921875, 4164.04150390625, 5.169013500213623046, 0.593411922454833984, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(248587, 25938, 530, 1, 1, 0, -3067.27783203125, 2387.9033203125, 62.19348907470703125, 3.368485450744628906, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(248588, 25905, 530, 1, 1, 0, -3951.3046875, 2045.650146484375, 95.148040771484375, 4.520402908325195312, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(248589, 25912, 530, 1, 1, 0, 193.7308807373046875, 6016.71337890625, 22.73372650146484375, 6.161012172698974609, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(248590, 25903, 530, 1, 1, 0, -2517.064208984375, 7555.0849609375, -1.79315662384033203, 5.375614166259765625, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(248591, 25889, 530, 1, 1, 0, 2024.90625, 6590.5322265625, 135.321380615234375, 5.934119224548339843, 120, 0, 0, 0, 0, 0, "", 50172, 1, NULL),
(248592, 25926, 530, 1, 1, 0, 2286.706787109375, 6137.61767578125, 136.3055572509765625, 1.570796370506286621, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(248593, 25913, 530, 1, 1, 0, 3127.551025390625, 3743.1484375, 141.770599365234375, 6.161012172698974609, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL),
(248594, 25918, 530, 1, 1, 0, 2917.2216796875, 3693.41064453125, 143.7702789306640625, 2.932153224945068359, 120, 0, 0, 0, 0, 0, "", 50063, 1, NULL);
DELETE FROM `game_event_creature` WHERE (`eventEntry` = 1) AND (`guid` IN (245500, 245501, 245502, 245503, 245504, 245505, 245506, 245507, 245508, 245509, 245510, 245511, 245512, 245513, 245514, 245515, 245642, 245643, 245644, 245647, 245650, 245651, 245652, 245653, 245654, 245655, 245656, 245657, 245658, 245659, 245661, 245663, 245665, 245666, 245667, 245668, 245671, 245672, 245673, 245674, 245676, 245677, 245678, 245679, 245680, 245681, 245683, 245684, 245685, 245686, 245687, 245688, 245689, 245690, 245691, 245692, 245693, 245695, 245696, 245697, 245698, 245699, 245700, 245701, 245702, 245703, 248581, 248584, 248585, 248586, 248587, 248588, 248589, 248590, 248591, 248592, 248593, 248594));
INSERT INTO `game_event_creature` (`eventEntry`,`guid`) VALUES
(1, 245500),
(1, 245501),
(1, 245502),
(1, 245503),
(1, 245504),
(1, 245505),
(1, 245506),
(1, 245507),
(1, 245508),
(1, 245509),
(1, 245510),
(1, 245511),
(1, 245512),
(1, 245513),
(1, 245514),
(1, 245515),
(1, 245642),
(1, 245643),
(1, 245644),
(1, 245647),
(1, 245650),
(1, 245651),
(1, 245652),
(1, 245653),
(1, 245654),
(1, 245655),
(1, 245656),
(1, 245657),
(1, 245658),
(1, 245659),
(1, 245661),
(1, 245663),
(1, 245665),
(1, 245666),
(1, 245667),
(1, 245668),
(1, 245671),
(1, 245672),
(1, 245673),
(1, 245674),
(1, 245676),
(1, 245677),
(1, 245678),
(1, 245679),
(1, 245680),
(1, 245681),
(1, 245683),
(1, 245684),
(1, 245685),
(1, 245686),
(1, 245687),
(1, 245688),
(1, 245689),
(1, 245690),
(1, 245691),
(1, 245692),
(1, 245693),
(1, 245695),
(1, 245696),
(1, 245697),
(1, 245698),
(1, 245699),
(1, 245700),
(1, 245701),
(1, 245702),
(1, 245703),
(1, 248581),
(1, 248584),
(1, 248585),
(1, 248586),
(1, 248587),
(1, 248588),
(1, 248589),
(1, 248590),
(1, 248591),
(1, 248592),
(1, 248593),
(1, 248594);
-- remove duplicate spawns
DELETE FROM `creature` WHERE (`id1` IN (25889, 25903, 25905, 25907, 25912, 25913, 25918, 25926, 25938, 32804, 32814)) AND (`guid` IN (245646, 245660, 245662, 245664, 245669, 245670, 245675, 245682, 245694, 248572, 248575));
DELETE FROM `creature_addon` WHERE (`guid` IN (245646, 245660, 245662, 245664, 245669, 245670, 245675, 245682, 245694, 248572, 248575));
DELETE FROM `game_event_creature` WHERE (`guid` IN (245646, 245660, 245662, 245664, 245669, 245670, 245675, 245682, 245694, 248572, 248575));
@@ -30,10 +30,8 @@
#include "SecretMgr.h"
#include "StringConvert.h"
#include "TOTP.h"
#include "Timer.h"
#include "Util.h"
#include <boost/lexical_cast.hpp>
#include <openssl/crypto.h>
using boost::asio::ip::tcp;
@@ -740,6 +740,7 @@ Logger.spells.scripts=2,Console Errors
#Logger.scripts.ai.sai=4,Console Server
#Logger.scripts.ai=4,Console Server
#Logger.scripts.cos=4,Console Server
#Logger.scripts.midsummer=4,Console Server
#Logger.scripts=4,Console Server
#Logger.server.authserver=4,Console Server
#Logger.spells.aura.effect.nospell=4,Console Server
@@ -22,7 +22,6 @@
#include "DatabaseLoader.h"
#include "GitRevision.h"
#include "Log.h"
#include "QueryResult.h"
#include "StartProcess.h"
#include "UpdateFetcher.h"
#include <filesystem>
@@ -2193,6 +2193,11 @@ bool Creature::IsImmunedToSpell(SpellInfo const* spellInfo, Spell const* spell)
if (!spellInfo)
return false;
if (spellInfo->HasAttribute(SPELL_ATTR0_CU_BYPASS_MECHANIC_IMMUNITY))
{
return false;
}
// Xinef: this should exclude self casts...
// Spells that don't have effectMechanics.
if (spellInfo->Mechanic > MECHANIC_NONE && HasMechanicTemplateImmunity(1 << (spellInfo->Mechanic - 1)))
-1
View File
@@ -16,7 +16,6 @@
*/
#include "ObjectMgr.h"
#include "AccountMgr.h"
#include "AchievementMgr.h"
#include "ArenaTeamMgr.h"
#include "CharacterCache.h"
@@ -18,7 +18,6 @@
#include "GridNotifiers.h"
#include "Map.h"
#include "ObjectAccessor.h"
#include "SpellInfo.h"
#include "SpellMgr.h"
#include "Transport.h"
#include "UpdateData.h"
-1
View File
@@ -19,7 +19,6 @@
#include "Battleground.h"
#include "Group.h"
#include "InstanceSaveMgr.h"
#include "MMapFactory.h"
#include "MapMgr.h"
#include "ObjectMgr.h"
#include "Player.h"
@@ -22,7 +22,6 @@
#include "MoveSpline.h"
#include "MoveSplineInit.h"
#include "Player.h"
#include "World.h"
template<class T>
void EscortMovementGenerator<T>::DoInitialize(T* unit)
@@ -20,7 +20,6 @@
#include "CreatureAI.h"
#include "DisableMgr.h"
#include "MoveSplineInit.h"
#include "WorldPacket.h"
void HomeMovementGenerator<Creature>::DoInitialize(Creature* owner)
{
@@ -22,7 +22,6 @@
#include "Common.h"
#include "GameTime.h"
#include "GridNotifiers.h"
#include "InstanceScript.h"
#include "Log.h"
#include "ObjectAccessor.h"
#include "ObjectMgr.h"
+1
View File
@@ -204,6 +204,7 @@ enum SpellCustomAttributes
SPELL_ATTR0_CU_FORCE_SEND_CATEGORY_COOLDOWNS = 0x10000000,
SPELL_ATTR0_CU_FORCE_AURA_SAVING = 0x20000800,
SPELL_ATTR0_CU_ENCOUNTER_REWARD = 0x40000000, // pussywizard
SPELL_ATTR0_CU_BYPASS_MECHANIC_IMMUNITY = 0x80000000,
SPELL_ATTR0_CU_NEGATIVE = SPELL_ATTR0_CU_NEGATIVE_EFF0 | SPELL_ATTR0_CU_NEGATIVE_EFF1 | SPELL_ATTR0_CU_NEGATIVE_EFF2,
SPELL_ATTR0_CU_POSITIVE = SPELL_ATTR0_CU_POSITIVE_EFF0 | SPELL_ATTR0_CU_POSITIVE_EFF1 | SPELL_ATTR0_CU_POSITIVE_EFF2,
@@ -16,7 +16,6 @@
*/
#include "CharacterDatabaseCleaner.h"
#include "Common.h"
#include "DBCStores.h"
#include "Database/DatabaseEnv.h"
#include "Log.h"
-1
View File
@@ -19,7 +19,6 @@
#include "CommandScript.h"
#include "DatabaseEnv.h"
#include "Item.h"
#include "Language.h"
#include "Mail.h"
#include "ObjectMgr.h"
#include "Pet.h"
@@ -24,10 +24,8 @@
#include "Chat.h"
#include "CommandScript.h"
#include "Config.h"
#include "GameTime.h"
#include "GitRevision.h"
#include "Language.h"
#include "ModuleMgr.h"
#include "MotdMgr.h"
#include "MySQLThreading.h"
@@ -21,7 +21,6 @@
#include "Chat.h"
#include "CommandScript.h"
#include "Player.h"
#include "World.h"
using namespace Acore::ChatCommands;
-1
View File
@@ -27,7 +27,6 @@ EndScriptData */
#include "DBCStores.h"
#include "DatabaseEnv.h"
#include "Group.h"
#include "Language.h"
#include "MapMgr.h"
#include "ObjectMgr.h"
#include "Player.h"
@@ -26,7 +26,6 @@ EndScriptData */
#include "Chat.h"
#include "CommandScript.h"
#include "ObjectMgr.h"
#include "Opcodes.h"
#include "Player.h"
#include "Realm.h"
#include "TicketMgr.h"
@@ -25,7 +25,6 @@ EndScriptData */
#include "Chat.h"
#include "CommandScript.h"
#include "DBCStores.h"
#include "Language.h"
#include "Player.h"
using namespace Acore::ChatCommands;
-1
View File
@@ -24,7 +24,6 @@ EndScriptData */
#include "Chat.h"
#include "CommandScript.h"
#include "Language.h"
#include "ObjectMgr.h"
#include "Player.h"
#include "WaypointMgr.h"
@@ -1,34 +0,0 @@
/*
* This file is part of the AzerothCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Affero General Public License as published by the
* Free Software Foundation; either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* ScriptData
SDName: Alterac_Mountains
SD%Complete: 0
SDComment: Placeholder
SDCategory: Alterac Mountains
EndScriptData */
/* ContentData
EndContentData */
//#include "CreatureScript.h"
//#include "ScriptedCreature.h"
/*void AddSC_alterac_mountains()
{
Script* newscript;
}*/
@@ -1,18 +0,0 @@
/*
* This file is part of the AzerothCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Affero General Public License as published by the
* Free Software Foundation; either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
//void AddSC_ironforge() { }
+358 -2
View File
@@ -16,9 +16,11 @@
*/
#include "CreatureScript.h"
#include "GameEventMgr.h"
#include "GameObjectScript.h"
#include "GameTime.h"
#include "Player.h"
#include "PlayerScript.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "Spell.h"
@@ -29,10 +31,28 @@
enum eBonfire
{
GO_MIDSUMMER_BONFIRE = 181288,
GO_MIDSUMMER_BONFIRE_CAMPFIRE_SPELL_FOCUS = 181377,
GO_AHUNE_BONFIRE = 188073,
SPELL_MIDSUMMER_BONFIRE_BUNNIES_2 = 29114,
SPELL_STAMP_OUT_BONFIRE = 45437,
SPELL_LIGHT_BONFIRE = 29831,
SPELL_STAMP_OUT_BONFIRE_ART_KIT = 46903,
SPELL_TOSS_FUEL_ON_BONFIRE = 28806,
SPELL_LIGHT_BONFIRE_ART_KIT = 46904,
SPELL_BONFIRES_BLESSING = 45444,
BONFIRE_TYPE_NONE = 0,
BONFIRE_TYPE_ALLIANCE = 1,
BONFIRE_TYPE_HORDE = 2,
BONFIRE_TYPE_CITY = 3,
BONFIRE_TYPE_AHUNE = 4,
COUNT_GO_BONFIRE_ALLIANCE = 40,
COUNT_GO_BONFIRE_HORDE = 38,
COUNT_GO_BONFIRE_CITY = 9,
};
class go_midsummer_bonfire : public GameObjectScript
@@ -49,6 +69,313 @@ public:
}
};
static bool BonfireStampedOutState[COUNT_GO_BONFIRE_ALLIANCE + COUNT_GO_BONFIRE_HORDE];
// <mapId, zoneId, teamId>, <state>
const std::map<std::tuple<uint32, uint32, TeamId>, bool*> BonfireStateStore = {
// Map 0
{ { 0, 1, TEAM_ALLIANCE }, &BonfireStampedOutState[0] },
{ { 0, 3, TEAM_HORDE }, &BonfireStampedOutState[1] },
{ { 0, 4, TEAM_ALLIANCE }, &BonfireStampedOutState[2] },
{ { 0, 8, TEAM_HORDE }, &BonfireStampedOutState[3] },
{ { 0, 10, TEAM_ALLIANCE }, &BonfireStampedOutState[4] },
{ { 0, 11, TEAM_ALLIANCE }, &BonfireStampedOutState[5] },
{ { 0, 12, TEAM_ALLIANCE }, &BonfireStampedOutState[6] },
{ { 0, 28, TEAM_ALLIANCE }, &BonfireStampedOutState[7] },
{ { 0, 33, TEAM_ALLIANCE }, &BonfireStampedOutState[8] },
{ { 0, 33, TEAM_HORDE }, &BonfireStampedOutState[9] },
{ { 0, 38, TEAM_ALLIANCE }, &BonfireStampedOutState[10] },
{ { 0, 40, TEAM_ALLIANCE }, &BonfireStampedOutState[11] },
{ { 0, 44, TEAM_ALLIANCE }, &BonfireStampedOutState[12] },
{ { 0, 45, TEAM_ALLIANCE }, &BonfireStampedOutState[13] },
{ { 0, 45, TEAM_HORDE }, &BonfireStampedOutState[14] },
{ { 0, 46, TEAM_ALLIANCE }, &BonfireStampedOutState[15] },
{ { 0, 46, TEAM_HORDE }, &BonfireStampedOutState[16] },
{ { 0, 47, TEAM_ALLIANCE }, &BonfireStampedOutState[17] },
{ { 0, 47, TEAM_HORDE }, &BonfireStampedOutState[18] },
{ { 0, 85, TEAM_HORDE }, &BonfireStampedOutState[19] },
{ { 0, 130, TEAM_HORDE }, &BonfireStampedOutState[20] },
{ { 0, 267, TEAM_ALLIANCE }, &BonfireStampedOutState[21] },
{ { 0, 267, TEAM_HORDE }, &BonfireStampedOutState[22] },
// Map 1
{ { 1, 14, TEAM_HORDE }, &BonfireStampedOutState[23] },
{ { 1, 15, TEAM_ALLIANCE }, &BonfireStampedOutState[24] },
{ { 1, 15, TEAM_HORDE }, &BonfireStampedOutState[25] },
{ { 1, 17, TEAM_HORDE }, &BonfireStampedOutState[26] },
{ { 1, 141, TEAM_ALLIANCE }, &BonfireStampedOutState[27] },
{ { 1, 148, TEAM_ALLIANCE }, &BonfireStampedOutState[28] },
{ { 1, 215, TEAM_HORDE }, &BonfireStampedOutState[29] },
{ { 1, 331, TEAM_ALLIANCE }, &BonfireStampedOutState[30] },
{ { 1, 331, TEAM_HORDE }, &BonfireStampedOutState[31] },
{ { 1, 357, TEAM_ALLIANCE }, &BonfireStampedOutState[32] },
{ { 1, 357, TEAM_HORDE }, &BonfireStampedOutState[33] },
{ { 1, 400, TEAM_HORDE }, &BonfireStampedOutState[34] },
{ { 1, 405, TEAM_ALLIANCE }, &BonfireStampedOutState[35] },
{ { 1, 405, TEAM_HORDE }, &BonfireStampedOutState[36] },
{ { 1, 406, TEAM_HORDE }, &BonfireStampedOutState[37] },
{ { 1, 440, TEAM_ALLIANCE }, &BonfireStampedOutState[38] },
{ { 1, 440, TEAM_HORDE }, &BonfireStampedOutState[39] },
{ { 1, 618, TEAM_ALLIANCE }, &BonfireStampedOutState[40] },
{ { 1, 618, TEAM_HORDE }, &BonfireStampedOutState[41] },
{ { 1, 1377, TEAM_ALLIANCE }, &BonfireStampedOutState[42] },
{ { 1, 1377, TEAM_HORDE }, &BonfireStampedOutState[43] },
// Map 530
{ { 530, 3430, TEAM_HORDE }, &BonfireStampedOutState[44] },
{ { 530, 3433, TEAM_HORDE }, &BonfireStampedOutState[45] },
{ { 530, 3483, TEAM_ALLIANCE }, &BonfireStampedOutState[46] },
{ { 530, 3483, TEAM_HORDE }, &BonfireStampedOutState[47] },
{ { 530, 3518, TEAM_ALLIANCE }, &BonfireStampedOutState[48] },
{ { 530, 3518, TEAM_HORDE }, &BonfireStampedOutState[49] },
{ { 530, 3519, TEAM_ALLIANCE }, &BonfireStampedOutState[50] },
{ { 530, 3519, TEAM_HORDE }, &BonfireStampedOutState[51] },
{ { 530, 3520, TEAM_ALLIANCE }, &BonfireStampedOutState[52] },
{ { 530, 3520, TEAM_HORDE }, &BonfireStampedOutState[53] },
{ { 530, 3521, TEAM_ALLIANCE }, &BonfireStampedOutState[54] },
{ { 530, 3521, TEAM_HORDE }, &BonfireStampedOutState[55] },
{ { 530, 3522, TEAM_ALLIANCE }, &BonfireStampedOutState[56] },
{ { 530, 3522, TEAM_HORDE }, &BonfireStampedOutState[57] },
{ { 530, 3523, TEAM_ALLIANCE }, &BonfireStampedOutState[58] },
{ { 530, 3523, TEAM_HORDE }, &BonfireStampedOutState[59] },
{ { 530, 3524, TEAM_ALLIANCE }, &BonfireStampedOutState[60] },
{ { 530, 3525, TEAM_ALLIANCE }, &BonfireStampedOutState[61] },
// Map 571
{ { 571, 65, TEAM_ALLIANCE }, &BonfireStampedOutState[62] },
{ { 571, 65, TEAM_HORDE }, &BonfireStampedOutState[63] },
{ { 571, 66, TEAM_ALLIANCE }, &BonfireStampedOutState[64] },
{ { 571, 66, TEAM_HORDE }, &BonfireStampedOutState[65] },
{ { 571, 67, TEAM_ALLIANCE }, &BonfireStampedOutState[66] },
{ { 571, 67, TEAM_HORDE }, &BonfireStampedOutState[67] },
{ { 571, 394, TEAM_ALLIANCE }, &BonfireStampedOutState[68] },
{ { 571, 394, TEAM_HORDE }, &BonfireStampedOutState[69] },
{ { 571, 495, TEAM_ALLIANCE }, &BonfireStampedOutState[70] },
{ { 571, 495, TEAM_HORDE }, &BonfireStampedOutState[71] },
{ { 571, 2817, TEAM_ALLIANCE }, &BonfireStampedOutState[72] },
{ { 571, 2817, TEAM_HORDE }, &BonfireStampedOutState[73] },
{ { 571, 3537, TEAM_ALLIANCE }, &BonfireStampedOutState[74] },
{ { 571, 3537, TEAM_HORDE }, &BonfireStampedOutState[75] },
{ { 571, 3711, TEAM_ALLIANCE }, &BonfireStampedOutState[76] },
{ { 571, 3711, TEAM_HORDE }, &BonfireStampedOutState[77] },
};
uint32 const GoBonfireAlliance[COUNT_GO_BONFIRE_ALLIANCE] = { 187564, 187914, 187916, 187917, 187919, 187920, 187921, 187922, 187923, 187924, 187925, 187926, 187927, 187928, 187929, 187930, 187931, 187932, 187933, 187934, 187935, 187936, 187937, 187938, 187939, 187940, 187941, 187942, 187943, 187944, 187945, 187946, 194032, 194035, 194036, 194038, 194040, 194044, 194045, 194049 };
uint32 const GoBonfireHorde[COUNT_GO_BONFIRE_HORDE] = { 187559, 187947, 187948, 187949, 187950, 187951, 187952, 187953, 187954, 187955, 187956, 187957, 187958, 187959, 187960, 187961, 187962, 187963, 187964, 187965, 187966, 187967, 187968, 187969, 187970, 187971, 187972, 187973, 187974, 187975, 194033, 194034, 194037, 194039, 194042, 194043, 194046, 194048 };
uint32 const GoBonfireCity[COUNT_GO_BONFIRE_CITY] = { 181332, 181333, 181334, 181335, 181336, 181337, 188128, 188129, 188352 };
class MidsummerPlayerScript : public PlayerScript
{
public:
MidsummerPlayerScript() : PlayerScript("MidsummerPlayerScript")
{
}
void OnUpdateZone(Player* player, uint32 newZone, uint32 /*newArea*/) override
{
if (!IsHolidayActive(HOLIDAY_FIRE_FESTIVAL))
return;
auto itr = BonfireStateStore.find(std::make_tuple(player->GetMapId(), newZone, player->GetTeamId()));
if ((itr != BonfireStateStore.end()) && (itr->second))
{
if (!(*(itr->second)))
{
if (!player->HasAura(SPELL_BONFIRES_BLESSING))
player->CastSpell(player, SPELL_BONFIRES_BLESSING, true);
return;
}
}
player->RemoveAurasDueToSpell(SPELL_BONFIRES_BLESSING);
}
};
struct npc_midsummer_bonfire : public ScriptedAI
{
npc_midsummer_bonfire(Creature* creature) : ScriptedAI(creature)
{
_isStampedOut = nullptr;
_teamId = TEAM_NEUTRAL;
_type = BONFIRE_TYPE_NONE;
_spellFocus = nullptr;
if (!IsHolidayActive(HOLIDAY_FIRE_FESTIVAL))
return;
scheduler.Schedule(420ms, [this](TaskContext context)
{
if (!InitBonfire())
context.Repeat();
});
}
void Ignite()
{
if (_isStampedOut)
*_isStampedOut = false;
if (!_spellFocus)
{
DoCastSelf(SPELL_MIDSUMMER_BONFIRE_BUNNIES_2, true);
if ((_spellFocus = me->FindNearestGameObject(GO_MIDSUMMER_BONFIRE_CAMPFIRE_SPELL_FOCUS, 10.0f)))
me->AddGameObject(_spellFocus);
}
switch (_type)
{
case BONFIRE_TYPE_ALLIANCE:
case BONFIRE_TYPE_HORDE:
DoCastSelf(SPELL_LIGHT_BONFIRE_ART_KIT, true);
UpdateBonfireBlessingBuffs();
break;
case BONFIRE_TYPE_AHUNE:
if (_bonfire)
_bonfire->SetGoState(GO_STATE_ACTIVE);
break;
default:
break;
}
}
void StampOut()
{
switch (_type)
{
case BONFIRE_TYPE_ALLIANCE:
case BONFIRE_TYPE_HORDE:
if (_isStampedOut)
*_isStampedOut = true;
if (_spellFocus)
{
_spellFocus->DespawnOrUnsummon();
_spellFocus = nullptr;
}
DoCastSelf(SPELL_STAMP_OUT_BONFIRE_ART_KIT, true);
UpdateBonfireBlessingBuffs();
break;
default:
break;
}
}
void UpdateBonfireBlessingBuffs()
{
if ((_type != BONFIRE_TYPE_ALLIANCE) && (_type != BONFIRE_TYPE_HORDE))
return;
me->GetMap()->DoForAllPlayers([&](Player* p)
{
if ((p->GetZoneId() == me->GetZoneId()) && (p->GetTeamId() == _teamId))
{
if (_isStampedOut)
{
if (*_isStampedOut)
p->RemoveAurasDueToSpell(SPELL_BONFIRES_BLESSING);
else
{
if (!p->HasAura(SPELL_BONFIRES_BLESSING))
p->CastSpell(p, SPELL_BONFIRES_BLESSING, true);
}
}
}
});
}
bool InitBonfire()
{
_type = BONFIRE_TYPE_NONE;
_teamId = TEAM_NEUTRAL;
for (uint32 i = 0; (i < COUNT_GO_BONFIRE_ALLIANCE) && (_type == BONFIRE_TYPE_NONE); i++)
{
if ((_bonfire = me->FindNearestGameObject(GoBonfireAlliance[i], 10.0f)))
{
_type = BONFIRE_TYPE_ALLIANCE;
_teamId = TEAM_ALLIANCE;
}
}
for (uint32 i = 0; (i < COUNT_GO_BONFIRE_HORDE) && (_type == BONFIRE_TYPE_NONE); i++)
{
if ((_bonfire = me->FindNearestGameObject(GoBonfireHorde[i], 10.0f)))
{
_type = BONFIRE_TYPE_HORDE;
_teamId = TEAM_HORDE;
}
}
for (uint32 i = 0; (i < COUNT_GO_BONFIRE_CITY) && (_type == BONFIRE_TYPE_NONE); i++)
{
if ((_bonfire = me->FindNearestGameObject(GoBonfireCity[i], 10.0f)))
{
_type = BONFIRE_TYPE_CITY;
return true;
}
}
if ((_type == BONFIRE_TYPE_NONE) && (_bonfire = me->FindNearestGameObject(GO_AHUNE_BONFIRE, 10.0f)))
{
_type = BONFIRE_TYPE_AHUNE;
return true;
}
if (_type == BONFIRE_TYPE_NONE)
return false;
auto itr = BonfireStateStore.find(std::make_tuple(me->GetMapId(), me->GetZoneId(), _teamId));
if ((itr != BonfireStateStore.end()) && (itr->second))
_isStampedOut = itr->second;
else
LOG_ERROR("scripts.midsummer", "NPC {} (GUID{}) in map {}, zone {} with teamId {} can't locate its entry within BonfireStateStore", me->GetGUID().GetEntry(), me->GetSpawnId(), me->GetMapId(), me->GetZoneId(), _teamId);
Ignite();
return true;
}
void SpellHit(Unit* caster, SpellInfo const* spellInfo) override
{
if (caster->GetTypeId() != TYPEID_PLAYER)
return;
switch (spellInfo->Id)
{
case SPELL_TOSS_FUEL_ON_BONFIRE:
{
Ignite();
break;
}
case SPELL_STAMP_OUT_BONFIRE:
{
StampOut();
// desecrating other faction's bonfire flags player for PVP
caster->SetPvP(true);
break;
}
default:
break;
}
}
void UpdateAI(uint32 diff) override
{
scheduler.Update(diff);
}
private:
bool* _isStampedOut;
TeamId _teamId;
uint8 _type;
GameObject* _spellFocus;
GameObject* _bonfire;
};
enum torchToss
{
GO_TORCH_TARGET_BRAZIER = 187708,
@@ -172,6 +499,30 @@ struct npc_midsummer_torch_target : public ScriptedAI
// SPELLS
///////////////////////////////
class spell_bonfires_blessing : public AuraScript
{
PrepareAuraScript(spell_bonfires_blessing)
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_BONFIRES_BLESSING });
}
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
if (!IsHolidayActive(HOLIDAY_FIRE_FESTIVAL))
{
if (Unit* target = GetTarget())
target->RemoveAurasDueToSpell(SPELL_BONFIRES_BLESSING);
}
}
void Register() override
{
AfterEffectApply += AuraEffectApplyFn(spell_bonfires_blessing::OnApply, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
}
};
enum CrabDisguise
{
SPELL_CRAB_DISGUISE = 46337,
@@ -879,12 +1230,17 @@ class spell_midsummer_torch_catch : public SpellScript
void AddSC_event_midsummer_scripts()
{
// Player
new MidsummerPlayerScript();
// NPCs
new go_midsummer_bonfire();
RegisterCreatureAI(npc_midsummer_bonfire);
RegisterCreatureAI(npc_midsummer_torch_target);
RegisterCreatureAI(npc_midsummer_ribbon_pole_target);
// Spells
RegisterSpellScript(spell_bonfires_blessing);
RegisterSpellScript(spell_gen_crab_disguise);
RegisterSpellScript(spell_midsummer_ribbon_pole_firework);
RegisterSpellScript(spell_midsummer_ribbon_pole);
@@ -23,7 +23,6 @@ SDCategory: Caverns of Time, Mount Hyjal
EndScriptData */
#include "Chat.h"
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "Opcodes.h"
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "EventMap.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
@@ -15,11 +15,9 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "SpellInfo.h"
#include "TemporarySummon.h"
#include "the_black_morass.h"
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
@@ -23,7 +23,6 @@
#include "GridNotifiersImpl.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
/*######
## npc_belnistrasz for Quest 3525 "Extinguishing the Idol"
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
@@ -19,7 +19,6 @@
#include "ScriptedCreature.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "TaskScheduler.h"
#include "ruins_of_ahnqiraj.h"
enum Emotes
@@ -16,7 +16,6 @@
*/
#include "CreatureGroups.h"
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "Player.h"
@@ -16,7 +16,6 @@
*/
#include "CreatureGroups.h"
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "Player.h"
@@ -17,14 +17,12 @@
#include "zulfarrak.h"
#include "Cell.h"
#include "CellImpl.h"
#include "CreatureScript.h"
#include "GameObject.h"
#include "GameObjectAI.h"
#include "GameObjectScript.h"
#include "GridNotifiers.h"
#include "InstanceScript.h"
#include "MotionMaster.h"
#include "ObjectAccessor.h"
#include "Player.h"
#include "ScriptSystem.h"
@@ -16,7 +16,6 @@
*/
#include "CreatureScript.h"
#include "GameTime.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "Group.h"
#include "Player.h"
#include "ScriptedCreature.h"
@@ -35,7 +35,6 @@ EndContentData */
#include "Player.h"
#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
#include "ScriptedGossip.h"
#include "SpellInfo.h"
/*######
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "Player.h"
#include "ScriptedCreature.h"
@@ -17,7 +17,6 @@
#include "AreaBoundary.h"
#include "CreatureAIImpl.h"
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "Player.h"
#include "ScriptedCreature.h"
@@ -25,7 +25,6 @@
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "Vehicle.h"
#include "WorldSession.h"
#include "ruby_sanctum.h"
enum Texts
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "Group.h"
#include "InstanceMapScript.h"
#include "Player.h"
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "GameTime.h"
#include "Group.h"
#include "InstanceMapScript.h"
@@ -23,7 +23,6 @@
#include "SpellAuras.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "WorldSession.h"
#include "pit_of_saron.h"
enum Yells
@@ -24,7 +24,6 @@
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "Vehicle.h"
#include "WorldSession.h"
#include "pit_of_saron.h"
enum Yells
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "ScriptedCreature.h"
#include "gundrak.h"
@@ -32,7 +32,6 @@
#include "Vehicle.h"
#include "Weather.h"
#include "icecrown_citadel.h"
#include "GridNotifiersImpl.h"
enum Texts
{
@@ -16,7 +16,6 @@
*/
#include "AreaTriggerScript.h"
#include "CreatureScript.h"
#include "GameObjectScript.h"
#include "InstanceScript.h"
#include "Player.h"
@@ -16,7 +16,6 @@
*/
#include "AccountMgr.h"
#include "CreatureScript.h"
#include "CreatureTextMgr.h"
#include "Group.h"
#include "InstanceMapScript.h"
@@ -18,7 +18,6 @@
#include "CombatAI.h"
#include "CreatureScript.h"
#include "GameObjectScript.h"
#include "MoveSpline.h"
#include "MoveSplineInit.h"
#include "Opcodes.h"
#include "PassiveAI.h"
@@ -19,7 +19,6 @@
#include "CreatureScript.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "SpellInfo.h"
#include "nexus.h"
enum Spells
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "Group.h"
#include "InstanceMapScript.h"
#include "LFGMgr.h"
@@ -18,7 +18,6 @@
#include "CombatAI.h"
#include "CreatureScript.h"
#include "InstanceScript.h"
#include "MotionMaster.h"
#include "ObjectAccessor.h"
#include "Player.h"
#include "ScriptedCreature.h"
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "SpellInfo.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
@@ -26,7 +26,6 @@
#include "SpellInfo.h"
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "WorldSession.h"
// Ours
enum eDrakeHunt
@@ -25,7 +25,6 @@
#include "PassiveAI.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "SpellAuraEffects.h"
#include "SpellAuras.h"
#include "SpellScript.h"
@@ -26,7 +26,6 @@
#include "SpellScriptLoader.h"
#include "Vehicle.h"
#include "WaypointMgr.h"
#include "WorldSession.h"
// Ours
enum qSniffing
@@ -17,7 +17,6 @@
#include "OutdoorPvPZM.h"
#include "Creature.h"
#include "CreatureScript.h"
#include "GameGraveyard.h"
#include "ObjectAccessor.h"
#include "ObjectMgr.h"
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "Map.h"
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "Map.h"
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "sethekk_halls.h"
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "SpellScriptLoader.h"
@@ -79,9 +79,26 @@ struct boss_the_lurker_below : public BossAI
void EnterEvadeMode(EvadeReason why) override
{
BossAI::EnterEvadeMode(why);
if (GameObject* pool = instance->GetGameObject(DATA_STRANGE_POOL))
{
pool->Respawn();
}
me->DespawnOrUnsummon(2000);
}
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*type*/, SpellSchoolMask /*school*/) override
{
if (damage >= me->GetHealth())
{
// Liquid state around his area is working awkwardly and doesn't consider him to be swimming
// Therefore he falls to the bottom of the lake when he dies, because he is "flying" in his pool
// Removing this prevents him from dropping to the bottom of the lake
// There is also a visual issue currently causing him to drop to the bottom of the lake but his body not update clientside
// So it looks as if he was floating but he has in fact dropped to the bottom of the lake, and thus becomes unlootable
me->SetDisableGravity(false);
}
}
void DoAction(int32 action) override
{
if (action == ACTION_START_EVENT)
@@ -228,6 +245,10 @@ public:
player->CastSpell(player, SPELL_LURKER_SPAWN_TRIGGER, true);
if (Creature* lurker = go->SummonCreature(NPC_THE_LURKER_BELOW, 38.4567f, -417.324f, -18.916666f, 2.94960f, TEMPSUMMON_MANUAL_DESPAWN))
lurker->AI()->DoAction(ACTION_START_EVENT);
go->DespawnOrUnsummon();
go->SetRespawnDelay(7 * DAY);
go->SaveRespawnTime();
return true;
}
@@ -40,6 +40,12 @@ ObjectData const creatureData[] =
{ 0, 0 }
};
ObjectData const gameObjectData[] =
{
{ GO_STRANGE_POOL, DATA_STRANGE_POOL },
{ 0, 0 }
};
MinionData const minionData[] =
{
{ NPC_FATHOM_GUARD_SHARKKIS, DATA_FATHOM_LORD_KARATHRESS },
@@ -69,7 +75,7 @@ public:
SetHeaders(DataHeader);
SetBossNumber(MAX_ENCOUNTERS);
LoadDoorData(doorData);
LoadObjectData(creatureData, nullptr);
LoadObjectData(creatureData, gameObjectData);
LoadMinionData(minionData);
LoadBossBoundaries(boundaries);
@@ -45,6 +45,7 @@ enum DataTypes
DATA_ALIVE_KEEPERS = 22,
DATA_BRIDGE_ACTIVATED = 23,
DATA_ACTIVATE_SHIELD = 24,
DATA_STRANGE_POOL = 25
};
enum SSNPCs
@@ -77,7 +78,9 @@ enum SSNPCs
GO_SHIELD_GENERATOR1 = 185051,
GO_SHIELD_GENERATOR2 = 185052,
GO_SHIELD_GENERATOR3 = 185053,
GO_SHIELD_GENERATOR4 = 185054
GO_SHIELD_GENERATOR4 = 185054,
GO_STRANGE_POOL = 184956
};
enum SSSpells
@@ -23,7 +23,6 @@
*/
#include "Creature.h"
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "Map.h"
@@ -17,7 +17,6 @@
#include "the_slave_pens.h"
#include "AreaTriggerScript.h"
#include "CreatureScript.h"
#include "InstanceScript.h"
#include "Player.h"
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "GameObjectScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "Map.h"
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "gruuls_lair.h"
@@ -16,7 +16,6 @@
*/
#include "CreatureAI.h"
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "blood_furnace.h"
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "hellfire_ramparts.h"
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "magtheridons_lair.h"
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "SpellScriptLoader.h"
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "mechanar.h"
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "InstanceMapScript.h"
#include "InstanceScript.h"
#include "arcatraz.h"
-1
View File
@@ -17,7 +17,6 @@
#include "Battleground.h"
#include "CreatureScript.h"
#include "GameTime.h"
#include "ObjectMgr.h"
#include "Pet.h"
#include "Player.h"
@@ -15,7 +15,6 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "CreatureScript.h"
#include "Group.h"
#include "Player.h"
#include "SpellAuraEffects.h"
+2 -2
View File
@@ -1418,7 +1418,7 @@ public:
{
stoneSpell = SPELL_CREATE_MASTER_HEALTH_STONE_R1;
}
else if (owner->HasAura(SPELL_CREATE_MASTER_HEALTH_STONE_R2))
else if (owner->HasAura(SPELL_IMPROVED_HEALTH_STONE_R2))
{
stoneSpell = SPELL_CREATE_MASTER_HEALTH_STONE_R2;
}
@@ -1432,7 +1432,7 @@ public:
{
stoneSpell = SPELL_CREATE_FEL_HEALTH_STONE_R1;
}
else if (owner->HasAura(SPELL_CREATE_MASTER_HEALTH_STONE_R2))
else if (owner->HasAura(SPELL_IMPROVED_HEALTH_STONE_R2))
{
stoneSpell = SPELL_CREATE_FEL_HEALTH_STONE_R2;
}
@@ -15,159 +15,10 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* ScriptData
SDName: Generic_Creature
SD%Complete: 80
SDComment: Should be replaced with core based AI
SDCategory: Creatures
EndScriptData */
#include "CreatureScript.h"
#include "PassiveAI.h"
#include "ScriptedCreature.h"
#define GENERIC_CREATURE_COOLDOWN 5000
class generic_creature : public CreatureScript
{
public:
generic_creature() : CreatureScript("generic_creature") { }
struct generic_creatureAI : public ScriptedAI
{
generic_creatureAI(Creature* creature) : ScriptedAI(creature) { }
uint32 GlobalCooldown; //This variable acts like the global cooldown that players have (1.5 seconds)
uint32 BuffTimer; //This variable keeps track of buffs
bool IsSelfRooted;
void Reset() override
{
GlobalCooldown = 0;
BuffTimer = 0; //Rebuff as soon as we can
IsSelfRooted = false;
}
void JustEngagedWith(Unit* who) override
{
if (!me->IsWithinMeleeRange(who))
IsSelfRooted = true;
}
void UpdateAI(uint32 diff) override
{
//Always decrease our global cooldown first
if (GlobalCooldown > diff)
GlobalCooldown -= diff;
else GlobalCooldown = 0;
//Buff timer (only buff when we are alive and not in combat
if (!me->IsInCombat() && me->IsAlive())
{
if (BuffTimer <= diff)
{
//Find a spell that targets friendly and applies an aura (these are generally buffs)
SpellInfo const* info = SelectSpell(me, 0, 0, SELECT_TARGET_ANY_FRIEND, 0, 0, 0, 0, SELECT_EFFECT_AURA);
if (info && !GlobalCooldown)
{
//Cast the buff spell
DoCastSpell(me, info);
//Set our global cooldown
GlobalCooldown = GENERIC_CREATURE_COOLDOWN;
//Set our timer to 10 minutes before rebuff
BuffTimer = 600000;
}//Try agian in 30 seconds
else BuffTimer = 30000;
}
else BuffTimer -= diff;
}
//Return since we have no target
if (!UpdateVictim())
return;
//If we are within range melee the target
if (me->IsWithinMeleeRange(me->GetVictim()))
{
//Make sure our attack is ready and we arn't currently casting
if (me->isAttackReady() && !me->IsNonMeleeSpellCast(false))
{
bool Healing = false;
SpellInfo const* info = nullptr;
//Select a healing spell if less than 30% hp
if (HealthBelowPct(30))
info = SelectSpell(me, 0, 0, SELECT_TARGET_ANY_FRIEND, 0, 0, 0, 0, SELECT_EFFECT_HEALING);
//No healing spell available, select a hostile spell
if (info) Healing = true;
else info = SelectSpell(me->GetVictim(), 0, 0, SELECT_TARGET_ANY_ENEMY, 0, 0, 0, 0, SELECT_EFFECT_DONTCARE);
//50% chance if elite or higher, 20% chance if not, to replace our white hit with a spell
if (info && (rand() % (me->GetCreatureTemplate()->rank > 1 ? 2 : 5) == 0) && !GlobalCooldown)
{
//Cast the spell
if (Healing)DoCastSpell(me, info);
else DoCastSpell(me->GetVictim(), info);
//Set our global cooldown
GlobalCooldown = GENERIC_CREATURE_COOLDOWN;
}
else me->AttackerStateUpdate(me->GetVictim());
me->resetAttackTimer();
}
}
else
{
//Only run this code if we arn't already casting
if (!me->IsNonMeleeSpellCast(false))
{
bool Healing = false;
SpellInfo const* info = nullptr;
//Select a healing spell if less than 30% hp ONLY 33% of the time
if (HealthBelowPct(30) && rand() % 3 == 0)
info = SelectSpell(me, 0, 0, SELECT_TARGET_ANY_FRIEND, 0, 0, 0, 0, SELECT_EFFECT_HEALING);
//No healing spell available, See if we can cast a ranged spell (Range must be greater than ATTACK_DISTANCE)
if (info) Healing = true;
else info = SelectSpell(me->GetVictim(), 0, 0, SELECT_TARGET_ANY_ENEMY, 0, 0, NOMINAL_MELEE_RANGE, 0, SELECT_EFFECT_DONTCARE);
//Found a spell, check if we arn't on cooldown
if (info && !GlobalCooldown)
{
//If we are currently moving stop us and set the movement generator
if (!IsSelfRooted)
IsSelfRooted = true;
//Cast spell
if (Healing) DoCastSpell(me, info);
else DoCastSpell(me->GetVictim(), info);
//Set our global cooldown
GlobalCooldown = GENERIC_CREATURE_COOLDOWN;
}//If no spells available and we arn't moving run to target
else if (IsSelfRooted)
{
//Cancel our current spell and then allow movement agian
me->InterruptNonMeleeSpells(false);
IsSelfRooted = false;
}
}
}
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return new generic_creatureAI(creature);
}
};
class trigger_periodic : public CreatureScript
{
public:
@@ -204,30 +55,7 @@ public:
}
};
class trigger_death : public CreatureScript
{
public:
trigger_death() : CreatureScript("trigger_death") { }
struct trigger_deathAI : public NullCreatureAI
{
trigger_deathAI(Creature* creature) : NullCreatureAI(creature) { }
void JustDied(Unit* killer) override
{
if (killer && me->m_spells[0])
me->CastSpell(killer, me->m_spells[0], true);
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return new trigger_deathAI(creature);
}
};
void AddSC_generic_creature()
{
//new generic_creature;
new trigger_periodic;
//new trigger_death;
}