Compare commits
11
Commits
787e1b27c0
...
0182d47648
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0182d47648 | ||
|
|
50c33e9b8a | ||
|
|
c3df2f8853 | ||
|
|
400879e3a9 | ||
|
|
528a35e927 | ||
|
|
7d41092fd8 | ||
|
|
aa4b3691e2 | ||
|
|
7531c050e5 | ||
|
|
e5ed044aa7 | ||
|
|
77d77369d1 | ||
|
|
788d2d892e |
@@ -0,0 +1,48 @@
|
||||
-- Midnight 12.1 Housing WIP persistence required by HousingHandler.cpp.
|
||||
DROP TABLE IF EXISTS `character_housing`;
|
||||
CREATE TABLE IF NOT EXISTS `character_housing` (
|
||||
`OwnerGuid` bigint unsigned NOT NULL,
|
||||
`HouseGuid` varchar(64) NOT NULL,
|
||||
`CosmeticOwnerGuid` varchar(64) NOT NULL,
|
||||
`NeighborhoodGuid` varchar(64) NOT NULL,
|
||||
`PlotID` tinyint unsigned NOT NULL DEFAULT 0,
|
||||
`HouseSettingFlags` int unsigned NOT NULL DEFAULT 0,
|
||||
`ReservationTime` timestamp NULL DEFAULT NULL,
|
||||
`CreatedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`UpdatedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`OwnerGuid`),
|
||||
UNIQUE KEY `uk_character_housing_house` (`HouseGuid`),
|
||||
KEY `idx_character_housing_neighborhood` (`NeighborhoodGuid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
DROP TABLE IF EXISTS `housing_neighborhood`;
|
||||
CREATE TABLE IF NOT EXISTS `housing_neighborhood` (
|
||||
`NeighborhoodGuid` varchar(64) NOT NULL,
|
||||
`OwnerGuid` bigint unsigned NOT NULL,
|
||||
`Name` varchar(64) NOT NULL,
|
||||
`Type` tinyint unsigned NOT NULL DEFAULT 0,
|
||||
`Flags` int unsigned NOT NULL DEFAULT 0,
|
||||
`CreatedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`NeighborhoodGuid`),
|
||||
KEY `idx_housing_neighborhood_owner` (`OwnerGuid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
DROP TABLE IF EXISTS `account_housing_decor`;
|
||||
CREATE TABLE IF NOT EXISTS `account_housing_decor` (
|
||||
`BattlenetAccountId` int unsigned NOT NULL,
|
||||
`DecorId` int unsigned NOT NULL,
|
||||
`Quantity` int unsigned NOT NULL DEFAULT 0,
|
||||
`AcquiredAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`UpdatedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`BattlenetAccountId`, `DecorId`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
DROP TABLE IF EXISTS `character_housing_permission`;
|
||||
CREATE TABLE IF NOT EXISTS `character_housing_permission` (
|
||||
`HouseGuid` varchar(64) NOT NULL,
|
||||
`PlayerGuid` bigint unsigned NOT NULL,
|
||||
`PermissionFlags` int unsigned NOT NULL DEFAULT 0,
|
||||
`GrantedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`HouseGuid`, `PlayerGuid`),
|
||||
KEY `idx_character_housing_permission_player` (`PlayerGuid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
@@ -25,7 +25,7 @@ INSERT INTO `spell_area` (`spell`, `area`, `quest_start`, `quest_end`, `aura_spe
|
||||
DELETE FROM `spell_area` WHERE `area`=9171 AND `spell` IN (49417,60922);
|
||||
INSERT INTO `spell_area` (`spell`, `area`, `quest_start`, `quest_end`, `aura_spell`, `teamId`, `racemask`, `gender`, `flags`, `quest_start_status`, `quest_end_status`, `comment`) VALUES
|
||||
(49417, 9171, 50313, 0, 0, -1, 536870912, 2, 3, 64, 64, 'Generic Quest Invisibility Detection 2 - Lightforged Draenei (Stormwind Embassy, Stormwind City)'),
|
||||
(60922, 9171, 49698, 50071, 0, -1, 0, 2, 3, 74, 64, 'Generic Quest Invisibility Detection 2 (Stormwind Embassy, Stormwind City)');
|
||||
(60922, 9171, 49698, 50071, 0, -1, 0, 2, 3, 74, 64, 'Generic Quest Invisibility Detection 3 (Stormwind Embassy, Stormwind City)');
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
-- =====
|
||||
-- Fixes
|
||||
-- =====
|
||||
|
||||
-- NPC Generic Bunny (114590)
|
||||
DELETE FROM `creature_addon` WHERE `guid` IN (SELECT `guid` FROM `creature` WHERE `id`=114590);
|
||||
DELETE FROM `creature` WHERE `guid` IN (580609,583246,583285,583307,583323,583330,583868,583884,583887,583891,583906,587940,587943,588268,588285,588287,618614,535939,535056,535051,535045,535017,535016,535008,535002,534984,534645,533734,533732,533702,533701,533699,533696,533586,533583,231061,231064,243589,243618,324240,324241,324242,324243,324244,324245,325178,325179,325180,325181,325182,325183,325184,443447,444071,444186,444391,444392,447404,447409,505683,505684,513352,513381,513383);
|
||||
UPDATE `creature_template` SET `flags_extra`=128, `AIName`='SmartAI' WHERE `entry`=114590;
|
||||
UPDATE `creature_template_addon` SET `SheathState`=0, `auras`='207542' WHERE `entry`=114590;
|
||||
UPDATE `creature_template_difficulty` SET `StaticFlags1`=536871168 WHERE `Entry`=114590;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=114590 AND `source_type`=0;
|
||||
|
||||
INSERT INTO `creature_addon` (`guid`, `PathId`, `mount`, `MountCreatureID`, `StandState`, `AnimTier`, `VisFlags`, `SheathState`, `PvPFlags`, `emote`, `aiAnimKit`, `movementAnimKit`, `meleeAnimKit`, `visibilityDistanceType`, `auras`) VALUES
|
||||
(513293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''),
|
||||
(513299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''),
|
||||
(513342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''),
|
||||
(513351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''),
|
||||
(513443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''),
|
||||
(513458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''),
|
||||
(523334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''),
|
||||
(523336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''),
|
||||
(523354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''),
|
||||
(523355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''),
|
||||
(534564, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''),
|
||||
(534593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''),
|
||||
(534618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''),
|
||||
(534633, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''),
|
||||
(534637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''),
|
||||
(534650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''),
|
||||
(534657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''),
|
||||
(534697, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''),
|
||||
(534902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '');
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (114590,-523334,-523336,-523354,-523355,-534633,-534637) AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(-523334, 0, 0, 0, '', 1, 0, 100, 1, 500, 500, 0, 0, 0, '', 11, 449067, 0, 0, 0, 0, 0, 0, NULL, 10, 523313, 190333, 0, 0, NULL, 0, 0, 0, 0, 'Generic Bunny - OOC - Cast [DNT] Cosmetic - Thick Chains - Right Hand on Creature Oversized Basilisk'),
|
||||
(-523336, 0, 0, 0, '', 1, 0, 100, 1, 500, 500, 0, 0, 0, '', 11, 449063, 0, 0, 0, 0, 0, 0, NULL, 10, 523313, 190333, 0, 0, NULL, 0, 0, 0, 0, 'Generic Bunny - OOC - Cast [DNT] Cosmetic - Thick Chains - Left Hand on Creature Oversized Basilisk'),
|
||||
(-523354, 0, 0, 0, '', 1, 0, 100, 1, 500, 500, 0, 0, 0, '', 11, 449063, 0, 0, 0, 0, 0, 0, NULL, 10, 523315, 190329, 0, 0, NULL, 0, 0, 0, 0, 'Generic Bunny - OOC - Cast [DNT] Cosmetic - Thick Chains - Left Hand on Creature Captured Proto-Drake'),
|
||||
(-523355, 0, 0, 0, '', 1, 0, 100, 1, 500, 500, 0, 0, 0, '', 11, 449067, 0, 0, 0, 0, 0, 0, NULL, 10, 523315, 190329, 0, 0, NULL, 0, 0, 0, 0, 'Generic Bunny - OOC - Cast [DNT] Cosmetic - Thick Chains - Right Hand on Creature Captured Proto-Drake'),
|
||||
(-534633, 0, 0, 0, '', 1, 0, 100, 1, 500, 500, 0, 0, 0, '', 11, 449067, 0, 0, 0, 0, 0, 0, NULL, 10, 534548, 153606, 0, 0, NULL, 0, 0, 0, 0, 'Generic Bunny - OOC - Cast [DNT] Cosmetic - Thick Chains - Right Hand on Creature Sodden Kelp Giant'),
|
||||
(-534637, 0, 0, 0, '', 1, 0, 100, 1, 500, 500, 0, 0, 0, '', 11, 449063, 0, 0, 0, 0, 0, 0, NULL, 10, 534548, 153606, 0, 0, NULL, 0, 0, 0, 0, 'Generic Bunny - OOC - Cast [DNT] Cosmetic - Thick Chains - Left Hand on Creature Sodden Kelp Giant');
|
||||
|
||||
|
||||
|
||||
-- NPC Forge-Keep Custodian (192703)
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=192703;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=192703 AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(192703, 0, 0, 0, '', 1, 0, 100, 1, 500, 500, 0, 0, 0, '', 11, 404034, 0, 0, 0, 0, 0, 0, NULL, 19, 114590, 15, 0, 0, NULL, 0, 0, 0, 0, 'Forge-Keep Custodia - OOC - Cast Yellow Beam [DNT] on Closest Creature Generic Bunny');
|
||||
|
||||
|
||||
|
||||
-- NPC Kelfin Captive (153545)
|
||||
UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=153545;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=153545 AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(153545, 0, 0, 0, '', 1, 0, 100, 1, 500, 500, 0, 0, 0, '', 11, 167235, 0, 0, 0, 0, 0, 0, NULL, 19, 114590, 10, 0, 0, NULL, 0, 0, 0, 0, 'Kelfin Captive - OOC - Cast Chain - Base to Neck on Closest Creature Generic Bunny');
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
-- ==============================
|
||||
-- Void Elf Starting Zone Adjusts
|
||||
-- ==============================
|
||||
|
||||
-- NPC Atynar (132657)
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=15 AND `SourceGroup`=132657;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `ConditionStringValue1`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(15, 132657, 1, 0, 0, 12, 0, 12, 0, 0, '', 0, 0, 0, '', 'Atynar - Show Gossip Option 1 if Hallow\'s End Event is Active'),
|
||||
(15, 132657, 1, 0, 0, 1, 0, 24755, 0, 0, '', 1, 0, 0, '', 'Atynar - Show Gossip Option 1 if Player Not Aura Tricked or Treated');
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
-- Frozen Dominion (377226) and Pillar of Frost (51271)
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName` IN
|
||||
('spell_dk_frozen_dominion', 'spell_dk_pillar_of_frost');
|
||||
|
||||
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||
(377226, 'spell_dk_frozen_dominion'),
|
||||
(51271, 'spell_dk_pillar_of_frost');
|
||||
|
||||
-- Arctic Assault (456230) and Glacial Advance (194913)
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName` IN
|
||||
('spell_dk_arctic_assault', 'spell_dk_glacial_advance', 'spell_dk_glacial_advance_damage');
|
||||
|
||||
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||
(456230, 'spell_dk_arctic_assault'),
|
||||
(194913, 'spell_dk_glacial_advance'),
|
||||
(195975, 'spell_dk_glacial_advance_damage');
|
||||
|
||||
@@ -0,0 +1,402 @@
|
||||
DELETE FROM `areatrigger_template` WHERE (`IsCustom`=0 AND `Id` IN (41326,41356,42567));
|
||||
INSERT INTO `areatrigger_template` (`Id`, `IsCustom`, `VerifiedBuild`) VALUES
|
||||
(41326, 0, 69587),
|
||||
(41356, 0, 69587),
|
||||
(42567, 0, 69587);
|
||||
|
||||
|
||||
DELETE FROM `areatrigger_create_properties` WHERE (`IsCustom`=0 AND `Id` IN (39953,39995,41547));
|
||||
INSERT INTO `areatrigger_create_properties` (`Id`, `IsCustom`, `AreaTriggerId`, `IsAreatriggerCustom`, `Flags`, `MoveCurveId`, `ScaleCurveId`, `MorphCurveId`, `FacingCurveId`, `AnimId`, `AnimKitId`, `DecalPropertiesId`, `SpellForVisuals`, `TimeToTargetScale`, `Speed`, `Shape`, `ShapeData0`, `ShapeData1`, `ShapeData2`, `ShapeData3`, `ShapeData4`, `ShapeData5`, `ShapeData6`, `ShapeData7`, `VerifiedBuild`) VALUES
|
||||
(39953, 0, 41326, 0, 0, 0, 0, 0, 0, -1, 0, 0, NULL, 10000, 10, 0, 5, 5, 0, 0, 0, 0, 0, 0, 69587), -- Spell: 1258499 (Barrage)
|
||||
(39995, 0, 41356, 0, 0, 0, 0, 0, 0, -1, 0, 0, NULL, 15000, 10, 0, 2, 2, 0, 0, 0, 0, 0, 0, 69587), -- Spell: 1259211 (Summon Holy Orbs)
|
||||
(41547, 0, 42567, 0, 1, 0, 0, 0, 0, -1, 0, 0, NULL, 3000, 10, 0, 2, 2, 0, 0, 0, 0, 0, 0, 69587); -- Spell: 1283258 (Overloaded Void)
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.26045989990234375 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 382484 (Consecration)
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.73544120788574218 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.73544120788574218 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.74042701721191406 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.74042701721191406 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.74042701721191406 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.73545074462890625 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.80634689331054687 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.82123947143554687 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 26573 (Consecration)
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 382484 (Consecration)
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.52370643615722656 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.62048721313476562 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.56944084167480468 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.61063957214355468 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.83522987365722656 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.90777969360351562 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.7673187255859375 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.53803062438964843 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 382484 (Consecration)
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.53803062438964843 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=2 WHERE (`Id`=21796 AND `IsCustom`=0); -- Spell: 1231847 (Devouring Gaze)
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=3000 WHERE (`Id`=26554 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=2 WHERE (`Id`=21796 AND `IsCustom`=0); -- Spell: 1231847 (Devouring Gaze)
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=2 WHERE (`Id`=21796 AND `IsCustom`=0); -- Spell: 1231847 (Devouring Gaze)
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.59071731567382812 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=3000 WHERE (`Id`=26554 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.59071731567382812 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.59071731567382812 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.59071731567382812 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
|
||||
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.58958053588867187 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.54890823364257812 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.54247665405273437 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 26573 (Consecration)
|
||||
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.11605453491210937 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.11605453491210937 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.65766334533691406 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.65766334533691406 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.65766334533691406 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.65766334533691406 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.65766334533691406 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.66738128662109375 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.65981864929199218 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.51003646850585937 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.50674057006835937 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.2131500244140625 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.13698768615722656 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 382484 (Consecration)
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=2 WHERE (`Id`=21796 AND `IsCustom`=0); -- Spell: 1231847 (Devouring Gaze)
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=2 WHERE (`Id`=21796 AND `IsCustom`=0); -- Spell: 1231847 (Devouring Gaze)
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=2 WHERE (`Id`=21796 AND `IsCustom`=0); -- Spell: 1231847 (Devouring Gaze)
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=2, `TimeToTargetScale`=3999 WHERE (`Id`=21796 AND `IsCustom`=0); -- Spell: 1231847 (Devouring Gaze)
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=2 WHERE (`Id`=21796 AND `IsCustom`=0); -- Spell: 1231847 (Devouring Gaze)
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=2 WHERE (`Id`=21796 AND `IsCustom`=0); -- Spell: 1231847 (Devouring Gaze)
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=2 WHERE (`Id`=21796 AND `IsCustom`=0); -- Spell: 1231847 (Devouring Gaze)
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=3000 WHERE (`Id`=26554 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=22.03788375854492187 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 26573 (Consecration)
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.75326347351074218 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.056884765625 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.16180610656738281 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.01745414733886718 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=22.16194725036621093 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.95618438720703125 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.95618438720703125 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.95618438720703125 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.82416152954101562 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.38862228393554687 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.18288803100585937 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.52724456787109375 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=2 WHERE (`Id`=32961 AND `IsCustom`=0); -- Spell: 444474 (Death and Decay)
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.97591400146484375 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.15606498718261718 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.10069084167480468 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.14436912536621093 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.14436912536621093 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.14436912536621093 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.05086326599121093 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 382484 (Consecration)
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.82117080688476562 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.82117080688476562 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.82117080688476562 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.54844856262207031 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.5516815185546875 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.73691749572753906 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 26573 (Consecration)
|
||||
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=3000 WHERE (`Id`=26554 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=3000 WHERE (`Id`=26554 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.81816864013671875 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.1950531005859375 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.26439094543457031 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.75116729736328125 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.77275276184082031 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.77275276184082031 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.69111251831054687 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 26573 (Consecration)
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 26573 (Consecration)
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 382484 (Consecration)
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.37493705749511718 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.41116714477539062 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.02561759948730468 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.02308082580566406 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.81996536254882812 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.82032966613769531 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.82941055297851562 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.82941055297851562 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.82941055297851562 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=3000 WHERE (`Id`=26554 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.82860755920410156 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.81917381286621093 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.81917381286621093 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.93451118469238281 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.93451118469238281 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.89111328125 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=21.17060089111328125 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.84173583984375 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.58346176147460937 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.58346176147460937 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.58346176147460937 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
|
||||
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.62542724609375 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.76415061950683593 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.876556396484375 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Speed`=20.68170547485351562 WHERE (`Id`=6006 AND `IsCustom`=0);
|
||||
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 382484 (Consecration)
|
||||
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
|
||||
|
||||
|
||||
DELETE FROM `quest_poi` WHERE (`QuestID`=96245 AND `BlobIndex`=0 AND `Idx1`=1) OR (`QuestID`=96245 AND `BlobIndex`=0 AND `Idx1`=0);
|
||||
INSERT INTO `quest_poi` (`QuestID`, `BlobIndex`, `Idx1`, `ObjectiveIndex`, `QuestObjectiveID`, `QuestObjectID`, `MapID`, `UiMapID`, `Priority`, `Flags`, `WorldEffectID`, `PlayerConditionID`, `NavigationPlayerConditionID`, `SpawnTrackingID`, `AlwaysAllowMergingBlobs`, `VerifiedBuild`) VALUES
|
||||
(96245, 0, 1, 0, 472582, 259153, 0, 2393, 0, 2, 0, 0, 0, 0, 0, 69587), -- You've Seen it All Before
|
||||
(96245, 0, 0, -1, 0, 0, 0, 2393, 0, 2, 0, 0, 0, 0, 0, 69587); -- You've Seen it All Before
|
||||
|
||||
DELETE FROM `quest_poi_points` WHERE (`QuestID`=96245 AND `Idx1`=1 AND `Idx2`=0) OR (`QuestID`=96245 AND `Idx1`=0 AND `Idx2`=0);
|
||||
INSERT INTO `quest_poi_points` (`QuestID`, `Idx1`, `Idx2`, `X`, `Y`, `Z`, `VerifiedBuild`) VALUES
|
||||
(96245, 1, 0, 8467, -4897, 54, 69587), -- You've Seen it All Before
|
||||
(96245, 0, 0, 8467, -4897, 54, 69587); -- You've Seen it All Before
|
||||
|
||||
|
||||
DELETE FROM `quest_details` WHERE `ID` IN (89249 /*Overwhelmed*/, 96245 /*You've Seen it All Before*/, 86542 /*Flicker in the Dark*/, 86541 /*Just In Case...*/, 88768 /*Agents of Darkness*/, 86540 /*Third, Blow It Up*/, 86539 /*A Naaru!*/, 86537 /*Network Insecurity*/, 86538 /*Second, The Fuel*/);
|
||||
INSERT INTO `quest_details` (`ID`, `Emote1`, `Emote2`, `Emote3`, `Emote4`, `EmoteDelay1`, `EmoteDelay2`, `EmoteDelay3`, `EmoteDelay4`, `VerifiedBuild`) VALUES
|
||||
(89249, 16, 0, 0, 0, 0, 0, 0, 0, 69587), -- Overwhelmed
|
||||
(96245, 0, 0, 0, 0, 0, 0, 0, 0, 69587), -- You've Seen it All Before
|
||||
(86542, 1, 0, 0, 0, 0, 0, 0, 0, 69587), -- Flicker in the Dark
|
||||
(86541, 1, 0, 0, 0, 0, 0, 0, 0, 69587), -- Just In Case...
|
||||
(88768, 1, 0, 0, 0, 0, 0, 0, 0, 69587), -- Agents of Darkness
|
||||
(86540, 1, 0, 0, 0, 0, 0, 0, 0, 69587), -- Third, Blow It Up
|
||||
(86539, 1, 0, 0, 0, 0, 0, 0, 0, 69587), -- A Naaru!
|
||||
(86537, 1, 0, 0, 0, 0, 0, 0, 0, 69587), -- Network Insecurity
|
||||
(86538, 1, 0, 0, 0, 0, 0, 0, 0, 69587); -- Second, The Fuel
|
||||
|
||||
|
||||
DELETE FROM `ui_map_quest` WHERE (`UIMapId`=2405 AND `QuestId`=92138);
|
||||
INSERT INTO `ui_map_quest` (`UIMapId`, `QuestId`, `VerifiedBuild`) VALUES
|
||||
(2405, 92138, 69587); -- Mobilize! Enlist! Recruit!
|
||||
|
||||
|
||||
DELETE FROM `world_quest_template` WHERE `QuestID` IN (49197 /*Greater Invasion Point: Sotanathor*/, 58232 /*Order Among Chaos*/, 57089 /*Vil'thik Hatchery*/, 75120 /*Dragonrider Racing - Caldera Cruise*/, 56793 /*Work Order: Mech-Dowel's "Big Mech"*/, 51119 /*Vathikur*/, 61337 /*March of the Eternal Protector*/, 54254 /*Bombs Away*/, 70073 /*Bluefeather Banners*/, 55723 /*Requisition: A Few Carp*/, 51972 /*Lost Goat*/, 51635 /*Make Loh Go*/, 61816 /*Mortanis*/, 51469 /*Betsy*/, 66934 /*Break the Breaker*/, 93505 /*Enshrouded in War*/, 93425 /*Sparks of War: Harandar*/, 57542 /*Swarm Caller*/, 57333 /*Terrace Terrors*/, 51586 /*Azerite Empowerment*/, 56385 /*Pearlhusk Crawler*/, 78435 /*Dragonrider Racing - Smoldering Sprint*/, 52179 /*Fortified Resistance*/, 51653 /*Auditor Dolp*/, 54555 /*Siege O' Matic 9000*/, 60844 /*Flight School: Falling With Style*/, 52238 /*The Underrot: Mysterious Spores*/, 54819 /*Granokk*/, 60531 /*Chosen Champions*/, 50782 /*Word on the Streets*/, 98232 /*Midnight: Vaults of Atal'Utek*/, 93756 /*The Blinding Vale*/, 50858 /*Sky Queen*/, 52782 /*Call to Arms: Stormsong Valley*/, 81806 /*Skyrider Racing - Orecreg's Doglegs*/, 54672 /*Rituals of Twilight*/, 54784 /*Blackwood Liberation*/, 70649 /*Swab Swog*/, 51530 /*Wedding Crashers*/, 82586 /*Spore Ender*/, 76251 /*Fowl Beasts*/, 53188 /*Frozen Freestyle*/, 54837 /*Burninator Mark V*/, 49043 /*Baneglow*/, 72029 /*Fishing Frenzy!*/, 52879 /*Stiff Policy*/, 52218 /*Night Horrors*/, 43476 /*Experimental Potion: Test Subjects Needed*/, 57737 /*Ramkahen Rescue*/, 51816 /*Pterrible Ingredients*/, 52157 /*A Chilling Encounter*/, 58755 /*Stashed Supplies*/, 81816 /*Skyrider Racing - Tenir's Traversal*/, 51841 /*Blackthorne*/, 75750 /*Are They Not Beautiful?*/);
|
||||
INSERT INTO `world_quest_template` (`QuestID`, `Duration`, `VariableID`, `Value`) VALUES
|
||||
(49197, 604800, 14253, 1), -- Greater Invasion Point: Sotanathor
|
||||
(58232, 86400, 18449, 3), -- Order Among Chaos
|
||||
(57089, 86400, 18508, 1), -- Vil'thik Hatchery
|
||||
(75120, 302400, 23337, 1), -- Dragonrider Racing - Caldera Cruise
|
||||
(56793, 86400, 17978, 1), -- Work Order: Mech-Dowel's "Big Mech"
|
||||
(51119, 86400, 15092, 1), -- Vathikur
|
||||
(61337, 86400, 19733, 1), -- March of the Eternal Protector
|
||||
(54254, 25200, 16293, 1), -- Bombs Away
|
||||
(70073, 302400, 22337, 1), -- Bluefeather Banners
|
||||
(55723, 86400, 17445, 1), -- Requisition: A Few Carp
|
||||
(51972, 86400, 15592, 1), -- Lost Goat
|
||||
(51635, 86400, 15305, 1), -- Make Loh Go
|
||||
(61816, 604800, 19923, 2), -- Mortanis
|
||||
(51469, 86400, 15241, 1), -- Betsy
|
||||
(66934, 302400, 22031, 1), -- Break the Breaker
|
||||
(93505, 604800, 30132, 2), -- Enshrouded in War
|
||||
(93425, 604800, 30117, 3), -- Sparks of War: Harandar
|
||||
(57542, 86400, 18520, 1), -- Swarm Caller
|
||||
(57333, 43200, 18140, 1), -- Terrace Terrors
|
||||
(51586, 86400, 15761, 4), -- Azerite Empowerment
|
||||
(56385, 86400, 17787, 5), -- Pearlhusk Crawler
|
||||
(78435, 302400, 24884, 1), -- Dragonrider Racing - Smoldering Sprint
|
||||
(52179, 86400, 15541, 2), -- Fortified Resistance
|
||||
(51653, 86400, 15424, 1), -- Auditor Dolp
|
||||
(54555, 25200, 16880, 1), -- Siege O' Matic 9000
|
||||
(60844, 86400, 19496, 1), -- Flight School: Falling With Style
|
||||
(52238, 345600, 15544, 3), -- The Underrot: Mysterious Spores
|
||||
(54819, 86400, 17013, 1), -- Granokk
|
||||
(60531, 259200, 19335, 1), -- Chosen Champions
|
||||
(50782, 86400, 14928, 1), -- Word on the Streets
|
||||
(98232, 1209600, 30401, 1), -- Midnight: Vaults of Atal'Utek
|
||||
(93756, 604800, 30402, 6), -- The Blinding Vale
|
||||
(50858, 86400, 14948, 1), -- Sky Queen
|
||||
(52782, 604800, 16006, 6), -- Call to Arms: Stormsong Valley
|
||||
(81806, 302400, 26109, 1), -- Skyrider Racing - Orecreg's Doglegs
|
||||
(54672, 86400, 17064, 1), -- Rituals of Twilight
|
||||
(54784, 86400, 17072, 1), -- Blackwood Liberation
|
||||
(70649, 302400, 22463, 2), -- Swab Swog
|
||||
(51530, 86400, 15261, 1), -- Wedding Crashers
|
||||
(82586, 345600, 26479, 1), -- Spore Ender
|
||||
(76251, 86400, 24011, 1), -- Fowl Beasts
|
||||
(53188, 86400, 16131, 2), -- Frozen Freestyle
|
||||
(54837, 86400, 17032, 1), -- Burninator Mark V
|
||||
(49043, 86400, 14309, 1), -- Baneglow
|
||||
(72029, 604800, 22964, 1), -- Fishing Frenzy!
|
||||
(52879, 86400, 15969, 1), -- Stiff Policy
|
||||
(52218, 86400, 15666, 1), -- Night Horrors
|
||||
(43476, 86400, 12223, 1), -- Experimental Potion: Test Subjects Needed
|
||||
(57737, 86400, 18448, 3), -- Ramkahen Rescue
|
||||
(51816, 86400, 15520, 1), -- Pterrible Ingredients
|
||||
(52157, 604800, 15647, 1), -- A Chilling Encounter
|
||||
(58755, 86400, 18540, 2), -- Stashed Supplies
|
||||
(81816, 302400, 26117, 1), -- Skyrider Racing - Tenir's Traversal
|
||||
(51841, 86400, 15532, 1), -- Blackthorne
|
||||
(75750, 302400, 23759, 1); -- Are They Not Beautiful?
|
||||
|
||||
UPDATE `world_quest_template` SET `Duration`=1209600 WHERE `QuestID`=93913; -- Midnight: World Boss
|
||||
UPDATE `world_quest_template` SET `Duration`=1209600 WHERE `QuestID`=93892; -- Midnight: Stormarion Assault
|
||||
UPDATE `world_quest_template` SET `Duration`=1209600 WHERE `QuestID`=95842; -- Midnight: Void Assaults
|
||||
UPDATE `world_quest_template` SET `Duration`=1209600 WHERE `QuestID`=95843; -- Midnight: Ritual Sites
|
||||
UPDATE `world_quest_template` SET `Duration`=1209600 WHERE `QuestID`=94457; -- Midnight: Battlegrounds
|
||||
UPDATE `world_quest_template` SET `Duration`=1209600 WHERE `QuestID`=93889; -- Midnight: Saltheril's Soiree
|
||||
UPDATE `world_quest_template` SET `Duration`=1209600 WHERE `QuestID`=93911; -- Midnight: Dungeons
|
||||
UPDATE `world_quest_template` SET `Duration`=1209600 WHERE `QuestID`=93767; -- Midnight: Arcantina
|
||||
UPDATE `world_quest_template` SET `Duration`=1209600 WHERE `QuestID`=93912; -- Midnight: Raid
|
||||
UPDATE `world_quest_template` SET `Value`=3 WHERE `QuestID`=76169; -- Glow in the Dark
|
||||
UPDATE `world_quest_template` SET `Duration`=1209600 WHERE `QuestID`=93909; -- Midnight: Delves
|
||||
UPDATE `world_quest_template` SET `Duration`=1209600 WHERE `QuestID`=93744; -- Unity Against the Void
|
||||
UPDATE `world_quest_template` SET `Value`=2 WHERE `QuestID`=78915; -- Squashing the Threat
|
||||
UPDATE `world_quest_template` SET `Duration`=1209600 WHERE `QuestID`=93766; -- Midnight: World Quests
|
||||
UPDATE `world_quest_template` SET `Value`=3 WHERE `QuestID`=79216; -- Web of Manipulation
|
||||
UPDATE `world_quest_template` SET `Value`=2 WHERE `QuestID`=79346; -- Chew On That
|
||||
UPDATE `world_quest_template` SET `Duration`=1209600 WHERE `QuestID`=93910; -- Midnight: Prey
|
||||
UPDATE `world_quest_template` SET `Duration`=1209600 WHERE `QuestID`=96727; -- Midnight: Offworld Showdowns
|
||||
UPDATE `world_quest_template` SET `Duration`=1209600 WHERE `QuestID`=93769; -- Midnight: Housing
|
||||
|
||||
DELETE FROM `spawn_tracking_template` WHERE `SpawnTrackingId` IN (2744158 /*Map: 2771 (Voidstorm) - Phase: 26521*/, 2704586 /*Map: 2771 (Voidstorm) - Phase: 25979*/, 2739489 /*Map: 2771 (Voidstorm) - Phase: 0*/, 2744157 /*Map: 2771 (Voidstorm) - Phase: 26521*/, 2702735 /*Map: 2771 (Voidstorm) - Phase: 25974*/, 2703753 /*Map: 2771 (Voidstorm) - Phase: 25977*/, 2702919 /*Map: 2771 (Voidstorm) - Phase: 0*/, 2702921 /*Map: 2771 (Voidstorm) - Phase: 0*/, 2702918 /*Map: 2771 (Voidstorm) - Phase: 0*/, 2737363 /*Map: 2771 (Voidstorm) - Phase: 0*/, 2738349 /*Map: 2771 (Voidstorm) - Phase: 0*/, 2702736 /*Map: 2771 (Voidstorm) - Phase: 25974*/, 2702742 /*Map: 2771 (Voidstorm) - Phase: 25977*/, 2737311 /*Map: 2771 (Voidstorm) - Phase: 0*/, 2737320 /*Map: 2771 (Voidstorm) - Phase: 0*/, 2737358 /*Map: 2771 (Voidstorm) - Phase: 0*/, 2702741 /*Map: 2771 (Voidstorm) - Phase: 25977*/, 2734923 /*Map: 2771 (Voidstorm) - Phase: 0*/, 2734925 /*Map: 2771 (Voidstorm) - Phase: 0*/, 2734906 /*Map: 2771 (Voidstorm) - Phase: 0*/, 2820070 /*Map: 2771 (Voidstorm) - Phase: 0*/, 2768123 /*Map: 2771 (Voidstorm) - Phase: 0*/, 2734834 /*Map: 2771 (Voidstorm) - Phase: 0*/, 2703694 /*Map: 2771 (Voidstorm) - Phase: 0*/, 2703699 /*Map: 2771 (Voidstorm) - Phase: 0*/, 2702306 /*Map: 2771 (Voidstorm) - Phase: 26323*/);
|
||||
INSERT INTO `spawn_tracking_template` (`SpawnTrackingId`, `MapId`, `PhaseId`, `PhaseGroup`, `PhaseUseFlags`, `VerifiedBuild`) VALUES
|
||||
(2744158, 2771, 26521, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 26521
|
||||
(2704586, 2771, 25979, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 25979
|
||||
(2739489, 2771, 0, 0, 1, 69587), -- Map: 2771 (Voidstorm) - Phase: 0
|
||||
(2744157, 2771, 26521, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 26521
|
||||
(2702735, 2771, 25974, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 25974
|
||||
(2703753, 2771, 25977, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 25977
|
||||
(2702919, 2771, 0, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 0
|
||||
(2702921, 2771, 0, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 0
|
||||
(2702918, 2771, 0, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 0
|
||||
(2737363, 2771, 0, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 0
|
||||
(2738349, 2771, 0, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 0
|
||||
(2702736, 2771, 25974, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 25974
|
||||
(2702742, 2771, 25977, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 25977
|
||||
(2737311, 2771, 0, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 0
|
||||
(2737320, 2771, 0, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 0
|
||||
(2737358, 2771, 0, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 0
|
||||
(2702741, 2771, 25977, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 25977
|
||||
(2734923, 2771, 0, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 0
|
||||
(2734925, 2771, 0, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 0
|
||||
(2734906, 2771, 0, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 0
|
||||
(2820070, 2771, 0, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 0
|
||||
(2768123, 2771, 0, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 0
|
||||
(2734834, 2771, 0, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 0
|
||||
(2703694, 2771, 0, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 0
|
||||
(2703699, 2771, 0, 0, 0, 69587), -- Map: 2771 (Voidstorm) - Phase: 0
|
||||
(2702306, 2771, 26323, 0, 0, 69587); -- Map: 2771 (Voidstorm) - Phase: 26323
|
||||
|
||||
|
||||
DELETE FROM `spawn_tracking_quest_objective` WHERE (`SpawnTrackingId`=2739489 AND `QuestObjectiveId`=459161) OR (`SpawnTrackingId`=2737311 AND `QuestObjectiveId`=459059) OR (`SpawnTrackingId`=2737320 AND `QuestObjectiveId`=459058) OR (`SpawnTrackingId`=2737358 AND `QuestObjectiveId`=459057) OR (`SpawnTrackingId`=2734923 AND `QuestObjectiveId`=458699) OR (`SpawnTrackingId`=2734925 AND `QuestObjectiveId`=458698) OR (`SpawnTrackingId`=2734906 AND `QuestObjectiveId`=458697);
|
||||
INSERT INTO `spawn_tracking_quest_objective` (`SpawnTrackingId`, `QuestObjectiveId`, `VerifiedBuild`) VALUES
|
||||
(2739489, 459161, 69587), -- 2739489
|
||||
(2737311, 459059, 69587), -- 2737311
|
||||
(2737320, 459058, 69587), -- 2737320
|
||||
(2737358, 459057, 69587), -- 2737358
|
||||
(2734923, 458699, 69587), -- 2734923
|
||||
(2734925, 458698, 69587), -- 2734925
|
||||
(2734906, 458697, 69587); -- 2734906
|
||||
|
||||
|
||||
DELETE FROM `spell_target_position` WHERE (`ID`=1224984 AND `EffectIndex`=1 AND `OrderIndex`=0) OR (`ID`=1234861 AND `EffectIndex`=0 AND `OrderIndex`=0) OR (`ID`=1234948 AND `EffectIndex`=0 AND `OrderIndex`=0);
|
||||
INSERT INTO `spell_target_position` (`ID`, `EffectIndex`, `OrderIndex`, `MapID`, `PositionX`, `PositionY`, `PositionZ`, `VerifiedBuild`) VALUES
|
||||
(1224984, 1, 0, 2771, 315.79998779296875, 573.530029296875, -310.649993896484375, 69587), -- Spell: 1224984 (Scene Credit [DNT]) Effect 1: 15 (SPELL_EFFECT_RITUAL_ACTIVATE_PORTAL)
|
||||
(1234861, 0, 0, 2771, -144.8699951171875, 866.45001220703125, -337.760009765625, 69587), -- Spell: 1234861 (Return Light) Effect 0: 3 (SPELL_EFFECT_DUMMY)
|
||||
(1234948, 0, 0, 2771, -29.5400009155273437, 881.3599853515625, -345.230010986328125, 69587); -- Spell: 1234948 (Nexus-King's Vigil) Effect 0: 32 (SPELL_EFFECT_TRIGGER_MISSILE)
|
||||
|
||||
|
||||
UPDATE `creature_model_info` SET `BoundingRadius`=1.592997074127197265 WHERE `DisplayID`=128549;
|
||||
UPDATE `creature_model_info` SET `BoundingRadius`=1.872143745422363281, `CombatReach`=2.40000009536743164 WHERE `DisplayID`=137452;
|
||||
UPDATE `creature_model_info` SET `CombatReach`=0 WHERE `DisplayID`=118072;
|
||||
|
||||
DELETE FROM `creature_template_gossip` WHERE (`MenuID`=38434 AND `CreatureID` IN (235660,235717)) OR (`MenuID`=38396 AND `CreatureID` IN (235648,235713));
|
||||
INSERT INTO `creature_template_gossip` (`CreatureID`, `MenuID`, `VerifiedBuild`) VALUES
|
||||
(235660, 38434, 69587), -- Alleria Windrunner
|
||||
(235648, 38396, 69587), -- Lothraxion
|
||||
(235713, 38396, 69587), -- Lothraxion
|
||||
(235717, 38434, 69587); -- Alleria Windrunner
|
||||
|
||||
|
||||
UPDATE `npc_vendor` SET `slot`=20 WHERE (`entry`=32638 AND `item`=33449 AND `ExtendedCost`=0 AND `type`=1);
|
||||
|
||||
REPLACE INTO `npc_text` (`ID`, `Probability0`, `Probability1`, `Probability2`, `Probability3`, `Probability4`, `Probability5`, `Probability6`, `Probability7`, `BroadcastTextId0`, `BroadcastTextId1`, `BroadcastTextId2`, `BroadcastTextId3`, `BroadcastTextId4`, `BroadcastTextId5`, `BroadcastTextId6`, `BroadcastTextId7`, `VerifiedBuild`) VALUES
|
||||
(235713, 1, 0, 0, 0, 0, 0, 0, 0, 283434, 0, 0, 0, 0, 0, 0, 0, 69587), -- 235713 (Lothraxion)
|
||||
(235717, 1, 0, 0, 0, 0, 0, 0, 0, 283738, 0, 0, 0, 0, 0, 0, 0, 69587); -- 235717 (Alleria Windrunner)
|
||||
|
||||
REPLACE INTO `gossip_menu` (`MenuID`, `TextID`, `VerifiedBuild`) VALUES
|
||||
(38396, 235713, 69587), -- 235713 (Lothraxion)
|
||||
(38434, 235717, 69587); -- 235717 (Alleria Windrunner)
|
||||
|
||||
DELETE FROM `gossip_menu_option` WHERE (`MenuID`=38434 AND `OptionID` IN (1,0)) OR (`MenuID`=38396 AND `OptionID`=0);
|
||||
INSERT INTO `gossip_menu_option` (`MenuID`, `GossipOptionID`, `OptionID`, `OptionNpc`, `OptionText`, `OptionBroadcastTextID`, `Language`, `Flags`, `ActionMenuID`, `ActionPoiID`, `GossipNpcOptionID`, `BoxCoded`, `BoxMoney`, `BoxText`, `BoxBroadcastTextID`, `SpellID`, `OverrideIconID`, `VerifiedBuild`) VALUES
|
||||
(38434, 132794, 1, 0, 'Tell me more about Nexus-King Salhadaar.', 0, 0, 0, 0, 0, NULL, 0, 0, '', 0, NULL, NULL, 69587),
|
||||
(38396, 132547, 0, 0, 'Tell me about the naaru.', 0, 0, 0, 0, 0, NULL, 0, 0, '', 0, NULL, NULL, 69587),
|
||||
(38434, 132610, 0, 0, 'Tell me about the naaru.', 0, 0, 0, 0, 0, NULL, 0, 0, '', 0, NULL, NULL, 69587);
|
||||
|
||||
|
||||
DELETE FROM `quest_reward_display_spell` WHERE (`QuestID`=93425 AND `Idx`=0);
|
||||
INSERT INTO `quest_reward_display_spell` (`QuestID`, `Idx`, `SpellID`, `PlayerConditionID`, `VerifiedBuild`) VALUES
|
||||
(93425, 0, 1305974, 0, 69587);
|
||||
|
||||
|
||||
|
||||
UPDATE `creature_template_model` SET `CreatureDisplayID`=11686 WHERE (`Idx`=1 AND `CreatureID` IN (257693,258087,239634)) OR (`Idx`=0 AND `CreatureID`=239465);
|
||||
File diff suppressed because it is too large
Load Diff
@@ -883,121 +883,7 @@ void CharacterDatabaseConnection::DoPrepareStatements()
|
||||
PrepareStatement(CHAR_DEL_CHARACTER_BANK_TAB_SETTINGS, "DELETE FROM character_bank_tab_settings WHERE characterGuid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_INS_CHARACTER_BANK_TAB_SETTINGS, "INSERT INTO character_bank_tab_settings (characterGuid, tabId, name, icon, description, depositFlags) VALUES (?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
//WowCommunity
|
||||
// Housing
|
||||
PrepareStatement(CHAR_SEL_CHARACTER_HOUSING, "SELECT houseId, neighborhoodGuid, plotIndex, houseLevel, favor, settingsFlags, exteriorLocked, houseSize, houseType, createTime, posX, posY, posZ, facing, houseName, houseDescription FROM character_housing WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_INS_CHARACTER_HOUSING, "INSERT INTO character_housing (guid, houseId, neighborhoodGuid, plotIndex, houseLevel, favor, settingsFlags, exteriorLocked, houseSize, houseType, createTime, posX, posY, posZ, facing, houseName, houseDescription) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, UNIX_TIMESTAMP(), ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_CHARACTER_HOUSING, "DELETE FROM character_housing WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_SEL_CHARACTER_HOUSING_DECOR, "SELECT id, houseDecorId, posX, posY, posZ, rotX, rotY, rotZ, rotW, scale, dyeSlot0, dyeSlot1, dyeSlot2, roomGuid, locked, placementTime, sourceType, sourceValue FROM character_housing_decor WHERE ownerGuid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_INS_CHARACTER_HOUSING_DECOR, "INSERT INTO character_housing_decor (ownerGuid, id, houseDecorId, posX, posY, posZ, rotX, rotY, rotZ, rotW, scale, dyeSlot0, dyeSlot1, dyeSlot2, roomGuid, locked, placementTime, sourceType, sourceValue) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_CHARACTER_HOUSING_DECOR, "DELETE FROM character_housing_decor WHERE ownerGuid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_SEL_CHARACTER_HOUSING_ROOMS, "SELECT id, houseRoomId, slotIndex, gridX, gridY, floorIndex, orientation, mirrored, themeId, wallTextureId, floorTextureId, ceilingTextureId, colorOverride, doorTypeId, doorSlot, ceilingTypeId, ceilingSlot, wallThemeId, floorThemeId, ceilingThemeId FROM character_housing_rooms WHERE ownerGuid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_INS_CHARACTER_HOUSING_ROOMS, "INSERT INTO character_housing_rooms (ownerGuid, id, houseRoomId, slotIndex, gridX, gridY, floorIndex, orientation, mirrored, themeId, wallTextureId, floorTextureId, ceilingTextureId, colorOverride, doorTypeId, doorSlot, ceilingTypeId, ceilingSlot, wallThemeId, floorThemeId, ceilingThemeId) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_CHARACTER_HOUSING_ROOMS, "DELETE FROM character_housing_rooms WHERE ownerGuid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_SEL_CHARACTER_HOUSING_FIXTURES, "SELECT fixturePointId, fixtureOptionId FROM character_housing_fixtures WHERE ownerGuid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_INS_CHARACTER_HOUSING_FIXTURES, "INSERT INTO character_housing_fixtures (ownerGuid, fixturePointId, fixtureOptionId) VALUES (?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_CHARACTER_HOUSING_FIXTURES, "DELETE FROM character_housing_fixtures WHERE ownerGuid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_SEL_CHARACTER_HOUSING_CATALOG, "SELECT houseDecorId, quantity, sourceType, sourceValue FROM character_housing_catalog WHERE ownerGuid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_INS_CHARACTER_HOUSING_CATALOG, "INSERT INTO character_housing_catalog (ownerGuid, houseDecorId, quantity, sourceType, sourceValue) VALUES (?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_CHARACTER_HOUSING_CATALOG, "DELETE FROM character_housing_catalog WHERE ownerGuid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_CHARACTER_HOUSING_SETTINGS, "UPDATE character_housing SET settingsFlags = ? WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_CHARACTER_HOUSING_EXTERIOR_LOCKED, "UPDATE character_housing SET exteriorLocked = ? WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_CHARACTER_HOUSING_HOUSE_SIZE, "UPDATE character_housing SET houseSize = ? WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_CHARACTER_HOUSING_HOUSE_TYPE, "UPDATE character_housing SET houseType = ? WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_CHARACTER_HOUSING_POSITION, "UPDATE character_housing SET posX = ?, posY = ?, posZ = ?, facing = ? WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_CHARACTER_HOUSING_DECOR_POSITION, "UPDATE character_housing_decor SET posX = ?, posY = ?, posZ = ?, rotX = ?, rotY = ?, rotZ = ?, rotW = ?, scale = ? WHERE ownerGuid = ? AND id = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_CHARACTER_HOUSING_DECOR_DYES, "UPDATE character_housing_decor SET dyeSlot0 = ?, dyeSlot1 = ?, dyeSlot2 = ? WHERE ownerGuid = ? AND id = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_CHARACTER_HOUSING_DECOR_LOCKED, "UPDATE character_housing_decor SET locked = ? WHERE ownerGuid = ? AND id = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_CHARACTER_HOUSING_ROOM, "UPDATE character_housing_rooms SET slotIndex = ?, gridX = ?, gridY = ?, floorIndex = ?, orientation = ?, mirrored = ?, themeId = ?, wallTextureId = ?, floorTextureId = ?, ceilingTextureId = ?, colorOverride = ?, doorTypeId = ?, doorSlot = ?, ceilingTypeId = ?, ceilingSlot = ?, wallThemeId = ?, floorThemeId = ?, ceilingThemeId = ? WHERE ownerGuid = ? AND id = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_CHARACTER_HOUSING_FIXTURE, "UPDATE character_housing_fixtures SET fixtureOptionId = ? WHERE ownerGuid = ? AND fixturePointId = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_CHARACTER_HOUSING_FIXTURE_SINGLE, "DELETE FROM character_housing_fixtures WHERE ownerGuid = ? AND fixturePointId = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_REP_CHARACTER_HOUSING_CATALOG, "REPLACE INTO character_housing_catalog (ownerGuid, houseDecorId, quantity, sourceType, sourceValue) VALUES (?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_CHARACTER_HOUSING_CATALOG_COUNT, "UPDATE character_housing_catalog SET quantity = ? WHERE ownerGuid = ? AND houseDecorId = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_CHARACTER_HOUSING_DECOR_SINGLE, "DELETE FROM character_housing_decor WHERE ownerGuid = ? AND id = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_CHARACTER_HOUSING_NAME_DESC, "UPDATE character_housing SET houseName = ?, houseDescription = ? WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_CHARACTER_HOUSING_LEVEL_FAVOR, "UPDATE character_housing SET houseLevel = ?, favor = ? WHERE guid = ?", CONNECTION_ASYNC);
|
||||
|
||||
// Neighborhoods
|
||||
PrepareStatement(CHAR_SEL_NEIGHBORHOOD, "SELECT guid, name, neighborhoodMapId, ownerGuid, factionRestriction, isPublic, createTime FROM neighborhoods WHERE guid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_INS_NEIGHBORHOOD, "INSERT INTO neighborhoods (guid, name, neighborhoodMapId, ownerGuid, factionRestriction, isPublic, createTime) VALUES (?, ?, ?, ?, ?, ?, ?)", CONNECTION_BOTH);
|
||||
PrepareStatement(CHAR_REP_NEIGHBORHOOD, "REPLACE INTO neighborhoods (guid, name, neighborhoodMapId, ownerGuid, factionRestriction, isPublic, createTime) VALUES (?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_NEIGHBORHOOD_PUBLIC, "UPDATE neighborhoods SET isPublic = ? WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_NEIGHBORHOOD_NAME, "UPDATE neighborhoods SET name = ? WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_NEIGHBORHOOD, "DELETE FROM neighborhoods WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_SEL_NEIGHBORHOOD_MEMBERS, "SELECT nm.playerGuid, nm.role, nm.joinTime, nm.plotIndex, ch.houseId, c.account, ch.houseLevel, ch.favor, ch.houseName, ch.houseType, ch.settingsFlags FROM neighborhood_members nm LEFT JOIN character_housing ch ON nm.playerGuid = ch.guid LEFT JOIN characters c ON nm.playerGuid = c.guid WHERE nm.neighborhoodGuid = ?", CONNECTION_SYNCH);
|
||||
// Owner-keyed batch fetches used to preload all occupied-plot exterior and
|
||||
// interior spawn data at neighborhood init, so houses render for every plot
|
||||
// regardless of whether the owner is online. Filtered by the neighborhood's
|
||||
// member guids via JOIN on neighborhood_members so only the members we care
|
||||
// about come back.
|
||||
PrepareStatement(CHAR_SEL_NEIGHBORHOOD_MEMBER_FIXTURES, "SELECT f.ownerGuid, f.fixturePointId, f.fixtureOptionId FROM character_housing_fixtures f INNER JOIN neighborhood_members nm ON nm.playerGuid = f.ownerGuid WHERE nm.neighborhoodGuid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_NEIGHBORHOOD_MEMBER_DECOR, "SELECT d.id, d.ownerGuid, d.houseDecorId, d.posX, d.posY, d.posZ, d.rotX, d.rotY, d.rotZ, d.rotW, d.scale, d.dyeSlot0, d.dyeSlot1, d.dyeSlot2, d.roomGuid, d.locked, d.placementTime, d.sourceType, d.sourceValue FROM character_housing_decor d INNER JOIN neighborhood_members nm ON nm.playerGuid = d.ownerGuid WHERE nm.neighborhoodGuid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_NEIGHBORHOOD_MEMBER_ROOMS, "SELECT r.ownerGuid, r.id, r.houseRoomId, r.slotIndex, r.gridX, r.gridY, r.floorIndex, r.orientation, r.mirrored, r.themeId, r.wallTextureId, r.floorTextureId, r.ceilingTextureId, r.colorOverride, r.doorTypeId, r.doorSlot, r.ceilingTypeId, r.ceilingSlot, r.wallThemeId, r.floorThemeId, r.ceilingThemeId FROM character_housing_rooms r INNER JOIN neighborhood_members nm ON nm.playerGuid = r.ownerGuid WHERE nm.neighborhoodGuid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_INS_NEIGHBORHOOD_MEMBER, "INSERT INTO neighborhood_members (neighborhoodGuid, playerGuid, role, joinTime, plotIndex) VALUES (?, ?, ?, ?, ?)", CONNECTION_BOTH);
|
||||
PrepareStatement(CHAR_DEL_NEIGHBORHOOD_MEMBERS, "DELETE FROM neighborhood_members WHERE neighborhoodGuid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_NEIGHBORHOOD_MEMBER, "DELETE FROM neighborhood_members WHERE neighborhoodGuid = ? AND playerGuid = ?", CONNECTION_BOTH);
|
||||
PrepareStatement(CHAR_UPD_NEIGHBORHOOD_MEMBER_PLOT, "UPDATE neighborhood_members SET plotIndex = ? WHERE neighborhoodGuid = ? AND playerGuid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_NEIGHBORHOOD_OWNER, "UPDATE neighborhoods SET ownerGuid = ? WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_NEIGHBORHOOD_MEMBER_ROLE, "UPDATE neighborhood_members SET role = ? WHERE neighborhoodGuid = ? AND playerGuid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_SEL_NEIGHBORHOOD_INVITES, "SELECT inviteeGuid, inviterGuid, inviteTime FROM neighborhood_invites WHERE neighborhoodGuid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_INS_NEIGHBORHOOD_INVITE, "INSERT INTO neighborhood_invites (neighborhoodGuid, inviteeGuid, inviterGuid, inviteTime) VALUES (?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_NEIGHBORHOOD_INVITES, "DELETE FROM neighborhood_invites WHERE neighborhoodGuid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_NEIGHBORHOOD_INVITE, "DELETE FROM neighborhood_invites WHERE neighborhoodGuid = ? AND inviteeGuid = ?", CONNECTION_ASYNC);
|
||||
|
||||
// Neighborhood Charters
|
||||
PrepareStatement(CHAR_SEL_NEIGHBORHOOD_CHARTER, "SELECT id, creatorGuid, name, neighborhoodMapId, factionFlags, isGuild, createTime FROM neighborhood_charters WHERE id = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_NEIGHBORHOOD_CHARTER_SIGNATURES, "SELECT signerGuid FROM neighborhood_charter_signatures WHERE charterId = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_REP_NEIGHBORHOOD_CHARTER, "REPLACE INTO neighborhood_charters (id, creatorGuid, name, neighborhoodMapId, factionFlags, isGuild, createTime) VALUES (?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_NEIGHBORHOOD_CHARTER, "DELETE FROM neighborhood_charters WHERE id = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_INS_NEIGHBORHOOD_CHARTER_SIGNATURE, "INSERT INTO neighborhood_charter_signatures (charterId, signerGuid, signTime) VALUES (?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_NEIGHBORHOOD_CHARTER_SIGNATURES, "DELETE FROM neighborhood_charter_signatures WHERE charterId = ?", CONNECTION_ASYNC);
|
||||
|
||||
// Neighborhood Initiatives
|
||||
PrepareStatement(CHAR_SEL_NEIGHBORHOOD_INITIATIVES, "SELECT id, neighborhoodGuid, initiativeId, startTime, progress, completed FROM neighborhood_initiatives WHERE neighborhoodGuid = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_NEIGHBORHOOD_INITIATIVE, "SELECT id, neighborhoodGuid, initiativeId, startTime, progress, completed FROM neighborhood_initiatives WHERE id = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_INS_NEIGHBORHOOD_INITIATIVE, "INSERT INTO neighborhood_initiatives (neighborhoodGuid, initiativeId, startTime, progress, completed) VALUES (?, ?, ?, ?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_NEIGHBORHOOD_INITIATIVE, "UPDATE neighborhood_initiatives SET progress = ?, completed = ? WHERE id = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_NEIGHBORHOOD_INITIATIVE, "DELETE FROM neighborhood_initiatives WHERE id = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_DEL_NEIGHBORHOOD_INITIATIVES, "DELETE FROM neighborhood_initiatives WHERE neighborhoodGuid = ?", CONNECTION_ASYNC);
|
||||
|
||||
// Neighborhood Initiative Task Progress (per-task persistence)
|
||||
PrepareStatement(CHAR_SEL_INITIATIVE_TASK_PROGRESS,
|
||||
"SELECT taskId, progress, status FROM neighborhood_initiative_task_progress WHERE initiativeDbId = ?",
|
||||
CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_REP_INITIATIVE_TASK_PROGRESS,
|
||||
"REPLACE INTO neighborhood_initiative_task_progress (initiativeDbId, taskId, progress, status) VALUES (?, ?, ?, ?)",
|
||||
CONNECTION_ASYNC);
|
||||
|
||||
// Neighborhood Initiative Milestones (reached/claimed tracking)
|
||||
PrepareStatement(CHAR_SEL_INITIATIVE_MILESTONES,
|
||||
"SELECT milestoneIndex, reached, reachedTime FROM neighborhood_initiative_milestones WHERE initiativeDbId = ?",
|
||||
CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_REP_INITIATIVE_MILESTONE,
|
||||
"REPLACE INTO neighborhood_initiative_milestones (initiativeDbId, milestoneIndex, reached, reachedTime) VALUES (?, ?, ?, ?)",
|
||||
CONNECTION_ASYNC);
|
||||
|
||||
// Neighborhood Initiative Reward Claims (per-player, per-milestone)
|
||||
PrepareStatement(CHAR_SEL_INITIATIVE_REWARD_CLAIMS,
|
||||
"SELECT milestoneIndex, playerGuid, claimTime FROM neighborhood_initiative_reward_claims WHERE initiativeDbId = ?",
|
||||
CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_INITIATIVE_REWARD_CLAIM_PLAYER,
|
||||
"SELECT milestoneIndex FROM neighborhood_initiative_reward_claims WHERE initiativeDbId = ? AND playerGuid = ?",
|
||||
CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_INS_INITIATIVE_REWARD_CLAIM,
|
||||
"INSERT IGNORE INTO neighborhood_initiative_reward_claims (initiativeDbId, milestoneIndex, playerGuid, claimTime) VALUES (?, ?, ?, ?)",
|
||||
CONNECTION_ASYNC);
|
||||
|
||||
// Neighborhood Initiative Contributions (per-player tracking)
|
||||
PrepareStatement(CHAR_INS_INITIATIVE_CONTRIBUTION,
|
||||
"INSERT INTO neighborhood_initiative_contributions (initiativeDbId, playerGuid, taskId, amount, lastUpdated) "
|
||||
"VALUES (?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE amount = amount + VALUES(amount), lastUpdated = VALUES(lastUpdated)",
|
||||
CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_SEL_INITIATIVE_CONTRIBUTIONS,
|
||||
"SELECT playerGuid, taskId, amount, lastUpdated FROM neighborhood_initiative_contributions WHERE initiativeDbId = ?",
|
||||
CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_SEL_PLAYER_INITIATIVE_FAVOR,
|
||||
"SELECT COALESCE(SUM(amount), 0) FROM neighborhood_initiative_contributions WHERE initiativeDbId = ? AND playerGuid = ?",
|
||||
CONNECTION_SYNCH);
|
||||
|
||||
|
||||
//WARBANDS
|
||||
PrepareStatement(CHAR_SEL_WARBAND_GROUPS, "SELECT groupId, orderIndex, warbandSceneId, flags, contentSetId, name FROM character_warband_groups WHERE battlenetAccountId = ? ORDER BY orderIndex", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_SEL_WARBAND_GROUP_MEMBERS, "SELECT gm.groupId, gm.memberIndex, gm.guid, gm.warbandScenePlacementId, gm.memberType, gm.contentSetId FROM character_warband_group_members gm INNER JOIN character_warband_groups g ON gm.groupId = g.groupId WHERE g.battlenetAccountId = ? ORDER BY gm.groupId, gm.memberIndex", CONNECTION_ASYNC);
|
||||
|
||||
@@ -679,69 +679,6 @@ enum CharacterDatabaseStatements : uint32
|
||||
CHAR_INS_CHARACTER_BANK_TAB_SETTINGS,
|
||||
|
||||
//WowCommunity
|
||||
// Housing
|
||||
CHAR_SEL_CHARACTER_HOUSING,
|
||||
CHAR_INS_CHARACTER_HOUSING,
|
||||
CHAR_DEL_CHARACTER_HOUSING,
|
||||
CHAR_SEL_CHARACTER_HOUSING_DECOR,
|
||||
CHAR_INS_CHARACTER_HOUSING_DECOR,
|
||||
CHAR_DEL_CHARACTER_HOUSING_DECOR,
|
||||
CHAR_SEL_CHARACTER_HOUSING_ROOMS,
|
||||
CHAR_INS_CHARACTER_HOUSING_ROOMS,
|
||||
CHAR_DEL_CHARACTER_HOUSING_ROOMS,
|
||||
CHAR_SEL_CHARACTER_HOUSING_FIXTURES,
|
||||
CHAR_INS_CHARACTER_HOUSING_FIXTURES,
|
||||
CHAR_DEL_CHARACTER_HOUSING_FIXTURES,
|
||||
CHAR_SEL_CHARACTER_HOUSING_CATALOG,
|
||||
CHAR_INS_CHARACTER_HOUSING_CATALOG,
|
||||
CHAR_DEL_CHARACTER_HOUSING_CATALOG,
|
||||
CHAR_UPD_CHARACTER_HOUSING_SETTINGS,
|
||||
CHAR_UPD_CHARACTER_HOUSING_EXTERIOR_LOCKED,
|
||||
CHAR_UPD_CHARACTER_HOUSING_HOUSE_SIZE,
|
||||
CHAR_UPD_CHARACTER_HOUSING_HOUSE_TYPE,
|
||||
CHAR_UPD_CHARACTER_HOUSING_POSITION,
|
||||
CHAR_UPD_CHARACTER_HOUSING_DECOR_POSITION,
|
||||
CHAR_UPD_CHARACTER_HOUSING_DECOR_DYES,
|
||||
CHAR_UPD_CHARACTER_HOUSING_DECOR_LOCKED,
|
||||
CHAR_UPD_CHARACTER_HOUSING_ROOM,
|
||||
CHAR_UPD_CHARACTER_HOUSING_FIXTURE,
|
||||
CHAR_DEL_CHARACTER_HOUSING_FIXTURE_SINGLE,
|
||||
CHAR_REP_CHARACTER_HOUSING_CATALOG,
|
||||
CHAR_UPD_CHARACTER_HOUSING_CATALOG_COUNT,
|
||||
CHAR_DEL_CHARACTER_HOUSING_DECOR_SINGLE,
|
||||
CHAR_UPD_CHARACTER_HOUSING_NAME_DESC,
|
||||
CHAR_UPD_CHARACTER_HOUSING_LEVEL_FAVOR,
|
||||
|
||||
// Neighborhoods
|
||||
CHAR_SEL_NEIGHBORHOOD,
|
||||
CHAR_INS_NEIGHBORHOOD,
|
||||
CHAR_REP_NEIGHBORHOOD,
|
||||
CHAR_UPD_NEIGHBORHOOD_PUBLIC,
|
||||
CHAR_UPD_NEIGHBORHOOD_NAME,
|
||||
CHAR_DEL_NEIGHBORHOOD,
|
||||
CHAR_SEL_NEIGHBORHOOD_MEMBERS,
|
||||
CHAR_SEL_NEIGHBORHOOD_MEMBER_FIXTURES,
|
||||
CHAR_SEL_NEIGHBORHOOD_MEMBER_DECOR,
|
||||
CHAR_SEL_NEIGHBORHOOD_MEMBER_ROOMS,
|
||||
CHAR_INS_NEIGHBORHOOD_MEMBER,
|
||||
CHAR_DEL_NEIGHBORHOOD_MEMBERS,
|
||||
CHAR_DEL_NEIGHBORHOOD_MEMBER,
|
||||
CHAR_UPD_NEIGHBORHOOD_MEMBER_PLOT,
|
||||
CHAR_UPD_NEIGHBORHOOD_OWNER,
|
||||
CHAR_UPD_NEIGHBORHOOD_MEMBER_ROLE,
|
||||
CHAR_SEL_NEIGHBORHOOD_INVITES,
|
||||
CHAR_INS_NEIGHBORHOOD_INVITE,
|
||||
CHAR_DEL_NEIGHBORHOOD_INVITES,
|
||||
CHAR_DEL_NEIGHBORHOOD_INVITE,
|
||||
|
||||
// Neighborhood Charters
|
||||
CHAR_SEL_NEIGHBORHOOD_CHARTER,
|
||||
CHAR_SEL_NEIGHBORHOOD_CHARTER_SIGNATURES,
|
||||
CHAR_REP_NEIGHBORHOOD_CHARTER,
|
||||
CHAR_DEL_NEIGHBORHOOD_CHARTER,
|
||||
CHAR_INS_NEIGHBORHOOD_CHARTER_SIGNATURE,
|
||||
CHAR_DEL_NEIGHBORHOOD_CHARTER_SIGNATURES,
|
||||
|
||||
CHAR_SEL_CHARACTER_GARRISON_MISSIONS,
|
||||
CHAR_INS_CHARACTER_GARRISON_MISSIONS,
|
||||
CHAR_DEL_CHARACTER_GARRISON_MISSIONS,
|
||||
|
||||
@@ -898,6 +898,21 @@ namespace PetBattles
|
||||
return;
|
||||
}
|
||||
|
||||
// Additional safety check: validate abilityID exists in DB2
|
||||
if (!sBattlePetAbilityStore.LookupEntry(abilityID))
|
||||
{
|
||||
TC_LOG_ERROR("server.loading", "PetBattle ApplyAbilityEffects: abilityID={} does not exist in BattlePetAbility.db2! Preventing crash.", abilityID);
|
||||
PetBattleRoundEffect effect;
|
||||
effect.AbilityEffectID = abilityID;
|
||||
effect.EffectType = PET_BATTLE_EFFECT_STATUS_CHANGE;
|
||||
effect.SourceTeam = attackerTeam;
|
||||
effect.SourcePet = attackerPet;
|
||||
effect.TargetTeam = attackerTeam;
|
||||
effect.TargetPet = attackerPet;
|
||||
_roundEffects.push_back(effect);
|
||||
return;
|
||||
}
|
||||
|
||||
// Determine which turn in the sequence to execute
|
||||
uint8 turnIndex = 0;
|
||||
if (attacker.IsLockedByMultiTurn && attacker.MultiTurnAbilityID == int32(abilityID))
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -332,7 +332,10 @@ namespace WorldPackets::BattlePet
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, PetBattleEffectTargetInfo const& target)
|
||||
{
|
||||
data << uint8(target.Type << 4); // Upper nibble (IDA-verified 12.0: client reads uint8 >> 4)
|
||||
// Safety check: ensure target.Type fits in upper nibble (0-15)
|
||||
// If Type >= 16, this would corrupt the packet and crash the client
|
||||
uint8 targetType = (target.Type > 15) ? 0 : static_cast<uint8>(target.Type);
|
||||
data << uint8(targetType << 4); // Upper nibble (IDA-verified 12.0: client reads uint8 >> 4)
|
||||
|
||||
if (target.Type == 8 && target.EmbeddedPetUpdate)
|
||||
data << *target.EmbeddedPetUpdate;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -494,16 +494,16 @@ void OpcodeTable::InitializeClientOpcodes()
|
||||
DEFINE_HANDLER(CMSG_GENERATE_RANDOM_CHARACTER_NAME, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleRandomizeCharNameOpcode);
|
||||
DEFINE_HANDLER(CMSG_GET_ACCOUNT_CHARACTER_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_GET_ACCOUNT_NOTIFICATIONS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_GET_ALL_LICENSED_DECOR_QUANTITIES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_GET_ALL_LICENSED_DECOR_QUANTITIES, STATUS_AUTHED, PROCESS_INPLACE, &WorldSession::HandleGetAllLicensedDecorQuantities);
|
||||
DEFINE_HANDLER(CMSG_GET_AVAILABLE_INITIATIVE_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_GET_CHARACTER_CURRENCY_TRANSFER_LOG, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGetCharacterCurrencyTransferLog);
|
||||
DEFINE_HANDLER(CMSG_GET_CLIENT_CHECKOUT_LICENSES, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleGetClientCheckoutLicenses);
|
||||
DEFINE_HANDLER(CMSG_GET_DECOR_REFUND_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_GET_DECOR_REFUND_LIST, STATUS_AUTHED, PROCESS_INPLACE, &WorldSession::HandleGetDecorRefundList);
|
||||
DEFINE_HANDLER(CMSG_GET_GARRISON_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGetGarrisonInfo);
|
||||
DEFINE_HANDLER(CMSG_GET_INITIATIVE_ACTIVITY_LOG_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_GET_INITIATIVE_ACTIVITY_LOG_REQUEST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGetInitiativeActivityLogRequest);
|
||||
DEFINE_HANDLER(CMSG_GET_ITEM_PURCHASE_DATA, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGetItemPurchaseData);
|
||||
DEFINE_HANDLER(CMSG_GET_LANDING_PAGE_SHIPMENTS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGetLandingPageShipments);
|
||||
DEFINE_HANDLER(CMSG_GET_LAST_CATALOG_FETCH, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGetLastCatalogFetch);
|
||||
DEFINE_HANDLER(CMSG_GET_LAST_CATALOG_FETCH, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_GET_MIRROR_IMAGE_DATA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMirrorImageDataRequest);
|
||||
DEFINE_HANDLER(CMSG_GET_PVP_OPTIONS_ENABLED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGetPVPOptionsEnabled);
|
||||
DEFINE_HANDLER(CMSG_GET_RAF_ACCOUNT_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGetRafAccountInfo);
|
||||
@@ -583,9 +583,9 @@ void OpcodeTable::InitializeClientOpcodes()
|
||||
DEFINE_HANDLER(CMSG_HOUSING_DECOR_PLACE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_DECOR_REDEEM_DEFERRED_DECOR, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_DECOR_REMOVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_DECOR_REQUEST_STORAGE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_DECOR_REQUEST_STORAGE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleHousingDecorRequestStorage);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_DECOR_SET_DYE_SLOTS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_DECOR_SET_EDIT_MODE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_DECOR_SET_EDIT_MODE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleHousingDecorSetEditMode);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_DECOR_SET_PET, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_FIXTURE_CREATE_FIXTURE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_FIXTURE_DELETE_FIXTURE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
@@ -593,9 +593,9 @@ void OpcodeTable::InitializeClientOpcodes()
|
||||
DEFINE_HANDLER(CMSG_HOUSING_FIXTURE_SET_EDIT_MODE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_FIXTURE_SET_HOUSE_SIZE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_FIXTURE_SET_HOUSE_TYPE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_GET_CURRENT_HOUSE_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_GET_PLAYER_PERMISSIONS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_HOUSE_STATUS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_GET_CURRENT_HOUSE_INFO, STATUS_AUTHED, PROCESS_INPLACE, &WorldSession::HandleHousingGetCurrentHouseInfo);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_GET_PLAYER_PERMISSIONS, STATUS_AUTHED, PROCESS_INPLACE, &WorldSession::HandleHousingGetPlayerPermissions);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_HOUSE_STATUS, STATUS_AUTHED, PROCESS_INPLACE, &WorldSession::HandleHousingHouseStatus);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_PHOTO_SHARING_CLEAR_AUTHORIZATION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_PHOTO_SHARING_COMPLETE_AUTHORIZATION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_RESET_HOUSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
@@ -614,13 +614,13 @@ void OpcodeTable::InitializeClientOpcodes()
|
||||
DEFINE_HANDLER(CMSG_HOUSING_SVCS_GET_BNET_FRIEND_NEIGHBORHOODS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_SVCS_GET_HOUSE_FINDER_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_SVCS_GET_HOUSE_FINDER_NEIGHBORHOOD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_SVCS_GET_PLAYER_HOUSES_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_SVCS_GET_PLAYER_HOUSES_INFO, STATUS_AUTHED, PROCESS_INPLACE, &WorldSession::HandleHousingGetPlayerHousesInfo);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_SVCS_GET_POTENTIAL_HOUSE_OWNERS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_SVCS_HOUSE_FINDER_IGNORE_NEIGHBORHOOD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_SVCS_GUILD_CREATE_NEIGHBORHOOD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_SVCS_NEIGHBORHOOD_RESERVE_PLOT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_SVCS_PLAYER_VIEW_HOUSES_BY_BNET_ACCOUNT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_SVCS_PLAYER_VIEW_HOUSES_BY_PLAYER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_SVCS_PLAYER_VIEW_HOUSES_BY_PLAYER, STATUS_AUTHED, PROCESS_INPLACE, &WorldSession::HandleHousingPlayerViewHousesByPlayer);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_SVCS_REJECT_NEIGHBORHOOD_OWNERSHIP, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_SVCS_RELINQUISH_HOUSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_HOUSING_SVCS_START_TUTORIAL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
@@ -819,7 +819,7 @@ void OpcodeTable::InitializeClientOpcodes()
|
||||
DEFINE_HANDLER(CMSG_NEIGHBORHOOD_EVICT_PLOT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_NEIGHBORHOOD_GET_INVITES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_NEIGHBORHOOD_GET_ROSTER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_NEIGHBORHOOD_INITIATIVE_SERVICE_STATUS_CHECK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_NEIGHBORHOOD_INITIATIVE_SERVICE_STATUS_CHECK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleNeighborhoodInitiativeServiceStatusCheck);
|
||||
DEFINE_HANDLER(CMSG_NEIGHBORHOOD_INVITE_RESIDENT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_NEIGHBORHOOD_MOVE_HOUSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_NEIGHBORHOOD_OFFER_OWNERSHIP, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
@@ -890,7 +890,7 @@ void OpcodeTable::InitializeClientOpcodes()
|
||||
DEFINE_HANDLER(CMSG_QUERY_GARRISON_PET_NAME, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQueryGarrisonPetName);
|
||||
DEFINE_HANDLER(CMSG_QUERY_GUILD_INFO, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildQueryOpcode);
|
||||
DEFINE_HANDLER(CMSG_QUERY_INSPECT_ACHIEVEMENTS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQueryInspectAchievements);
|
||||
DEFINE_HANDLER(CMSG_QUERY_NEIGHBORHOOD_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_QUERY_NEIGHBORHOOD_INFO, STATUS_AUTHED, PROCESS_INPLACE, &WorldSession::HandleQueryNeighborhoodInfo);
|
||||
DEFINE_HANDLER(CMSG_QUERY_NEXT_MAIL_TIME, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQueryNextMailTime);
|
||||
DEFINE_HANDLER(CMSG_QUERY_NPC_TEXT, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleNpcTextQueryOpcode);
|
||||
DEFINE_HANDLER(CMSG_QUERY_PAGE_TEXT, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQueryPageText);
|
||||
@@ -1650,10 +1650,10 @@ void OpcodeTable::InitializeServerOpcodes()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GENERATE_RANDOM_CHARACTER_NAME_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GENERATE_SSO_TOKEN_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_ACCOUNT_CHARACTER_LIST_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_ALL_LICENSED_DECOR_QUANTITIES_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_DECOR_REFUND_LIST_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_ALL_LICENSED_DECOR_QUANTITIES_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_DECOR_REFUND_LIST_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_GARRISON_INFO_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_INITIATIVE_ACTIVITY_LOG_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_INITIATIVE_ACTIVITY_LOG_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_INITIATIVE_REWARDS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_LANDING_PAGE_SHIPMENTS_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_PLAYER_INITIATIVE_INFO_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
@@ -1761,7 +1761,7 @@ void OpcodeTable::InitializeServerOpcodes()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_DECOR_MOVE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_DECOR_PLACE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_DECOR_REMOVE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_DECOR_REQUEST_STORAGE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_DECOR_REQUEST_STORAGE_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_DECOR_SET_EDIT_MODE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_DECOR_SYSTEM_SET_DYE_SLOTS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_FIRST_TIME_DECOR_ACQUISITION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
@@ -1773,9 +1773,9 @@ void OpcodeTable::InitializeServerOpcodes()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_FIXTURE_SET_EDIT_MODE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_FIXTURE_SET_HOUSE_SIZE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_FIXTURE_SET_HOUSE_TYPE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_GET_CURRENT_HOUSE_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_GET_PLAYER_PERMISSIONS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_HOUSE_STATUS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_GET_CURRENT_HOUSE_INFO_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_GET_PLAYER_PERMISSIONS_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_HOUSE_STATUS_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_PHOTO_SHARING_AUTHORIZATION_CLEARED_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_PHOTO_SHARING_AUTHORIZATION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_REDEEM_DEFERRED_DECOR_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
@@ -1798,7 +1798,7 @@ void OpcodeTable::InitializeServerOpcodes()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_GET_BNET_FRIEND_NEIGHBORHOODS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_GET_HOUSE_FINDER_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_GET_HOUSE_FINDER_NEIGHBORHOOD_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_GET_PLAYER_HOUSES_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_GET_PLAYER_HOUSES_INFO_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_GET_POTENTIAL_HOUSE_OWNERS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_GUILD_ADD_HOUSE_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_GUILD_APPEND_NEIGHBORHOOD_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
@@ -1812,7 +1812,7 @@ void OpcodeTable::InitializeServerOpcodes()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_NEIGHBORHOOD_RESERVE_PLOT_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_NEIGHBORHOOD_UPDATE_NAME_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_NOTIFY_PERMISSIONS_FAILURE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_PLAYER_VIEW_HOUSES_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_PLAYER_VIEW_HOUSES_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_REJECT_NEIGHBORHOOD_OWNERSHIP_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_RELINQUISH_HOUSE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_HOUSING_SVCS_UPDATE_HOUSES_LEVEL_FAVOR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
@@ -1822,7 +1822,7 @@ void OpcodeTable::InitializeServerOpcodes()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIAL_SETUP, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIATIVE_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIATIVE_REWARD_AVAILABLE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIATIVE_SERVICE_STATUS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIATIVE_SERVICE_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIATIVE_TASK_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INIT_WORLD_STATES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSPECT_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
@@ -2248,7 +2248,7 @@ void OpcodeTable::InitializeServerOpcodes()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GUILD_FOLLOW_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GUILD_INFO_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_ITEM_TEXT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_NEIGHBORHOOD_NAME_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_NEIGHBORHOOD_NAME_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_NPC_TEXT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PAGE_TEXT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_PETITION_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
|
||||
@@ -619,96 +619,19 @@ namespace WorldPackets
|
||||
|
||||
namespace Housing
|
||||
{
|
||||
class HouseExteriorCommitPosition;
|
||||
class HouseInteriorLeaveHouse;
|
||||
class HousingDecorSetEditMode;
|
||||
class HousingDecorPlace;
|
||||
class HousingDecorMove;
|
||||
class HousingDecorRemove;
|
||||
class HousingDecorLock;
|
||||
class HousingDecorSetDyeSlots;
|
||||
class HousingDecorDeleteFromStorage;
|
||||
class HousingDecorDeleteFromStorageById;
|
||||
class HousingDecorRequestStorage;
|
||||
class HousingDecorRedeemDeferredDecor;
|
||||
class HousingDecorStartPlacingNewDecor;
|
||||
class HousingDecorCatalogCreateSearcher;
|
||||
class GetLastCatalogFetch;
|
||||
class UpdateLastCatalogFetch;
|
||||
class HousingFixtureSetEditMode;
|
||||
class HousingFixtureSetCoreFixture;
|
||||
class HousingFixtureCreateFixture;
|
||||
class HousingFixtureDeleteFixture;
|
||||
class HousingRoomSetLayoutEditMode;
|
||||
class HousingRoomAdd;
|
||||
class HousingRoomRemove;
|
||||
class HousingRoomRotate;
|
||||
class HousingRoomMoveRoom;
|
||||
class HousingRoomSetComponentTheme;
|
||||
class HousingRoomApplyComponentMaterials;
|
||||
class HousingRoomSetDoorType;
|
||||
class HousingRoomSetCeilingType;
|
||||
class HousingSvcsGuildCreateNeighborhood;
|
||||
class HousingSvcsNeighborhoodReservePlot;
|
||||
class HousingSvcsRelinquishHouse;
|
||||
class HousingSvcsUpdateHouseSettings;
|
||||
class HousingSvcsPlayerViewHousesByPlayer;
|
||||
class HousingSvcsPlayerViewHousesByBnetAccount;
|
||||
class HousingSvcsGetPlayerHousesInfo;
|
||||
class HousingSvcsTeleportToPlot;
|
||||
class HousingSvcsStartTutorial;
|
||||
class HousingSvcsSetTutorialState;
|
||||
class HousingSvcsCompleteTutorialStep;
|
||||
class HousingSvcsSkipTutorial;
|
||||
class HousingSvcsQueryPendingInvites;
|
||||
class HousingDecorConfirmPreviewPlacement;
|
||||
class HousingSvcsAcceptNeighborhoodOwnership;
|
||||
class HousingSvcsRejectNeighborhoodOwnership;
|
||||
class HousingSvcsGetPotentialHouseOwners;
|
||||
class HousingSvcsGetHouseFinderInfo;
|
||||
class HousingSvcsGetHouseFinderNeighborhood;
|
||||
class HousingSvcsGetBnetFriendNeighborhoods;
|
||||
class HousingSvcsDeleteAllNeighborhoodInvites;
|
||||
class HousingHouseStatus;
|
||||
class HousingGetCurrentHouseInfo;
|
||||
class HousingGetPlayerPermissions;
|
||||
class HousingResetKioskMode;
|
||||
class DeclineNeighborhoodInvites;
|
||||
class QueryNeighborhoodInfo;
|
||||
class InvitePlayerToNeighborhood;
|
||||
class GuildGetOthersOwnedHouses;
|
||||
class HouseExteriorLock;
|
||||
class HousingPhotoSharingCompleteAuthorization;
|
||||
class HousingPhotoSharingClearAuthorization;
|
||||
class HousingFixtureSetHouseSize;
|
||||
class HousingFixtureSetHouseType;
|
||||
class NeighborhoodInitiativeServiceStatusCheck;
|
||||
class GetInitiativeActivityLogRequest;
|
||||
class GetCurrentHouseInfo;
|
||||
class GetPlayerPermissions;
|
||||
class HouseStatus;
|
||||
class PlayerViewHousesByPlayer;
|
||||
class GetPlayerHousesInfo;
|
||||
class HousingDecorRequestStorage;
|
||||
class HousingDecorSetEditMode;
|
||||
class GetAllLicensedDecorQuantities;
|
||||
class GetDecorRefundList;
|
||||
class BulkRefund;
|
||||
class HousingRequestEditorAvailability;
|
||||
class HousingDecorUpdateDyeSlot;
|
||||
class HousingDecorStartPlacingFromSource;
|
||||
class HousingDecorCleanupModeToggle;
|
||||
class HousingDecorBatchOperation;
|
||||
class HousingDecorPlacementPreview;
|
||||
class HousingFixtureCreateBasicHouse;
|
||||
class HousingFixtureDeleteHouse;
|
||||
class HousingSvcsRequestPermissionsCheck;
|
||||
class HousingSvcsClearPlotReservation;
|
||||
class HousingSvcsGetPlayerHousesInfoAlt;
|
||||
class HousingSvcsGetRosterData;
|
||||
class HousingSvcsRosterUpdateSubscribe;
|
||||
class HousingSvcsChangeHouseCosmeticOwnerRequest;
|
||||
class HousingSvcsQueryHouseLevelFavor;
|
||||
class HousingSvcsGuildAddHouse;
|
||||
class HousingSvcsGuildAppendNeighborhood;
|
||||
class HousingSvcsGuildRenameNeighborhood;
|
||||
class HousingSvcsGuildGetHousingInfo;
|
||||
class HousingSystemHouseStatusQuery;
|
||||
class HousingSystemGetHouseInfoAlt;
|
||||
class HousingSystemHouseSnapshot;
|
||||
class HousingSystemExportHouse;
|
||||
class HousingSystemUpdateHouseInfo;
|
||||
}
|
||||
|
||||
namespace Neighborhood
|
||||
@@ -1982,171 +1905,22 @@ public:
|
||||
void HandleQueryRecipes(WorldPackets::Guild::QueryRecipes& packet);
|
||||
void HandleRequestRealmGuildMasterInfo(WorldPackets::Guild::RequestRealmGuildMasterInfo& packet);
|
||||
|
||||
// Housing - Exterior/Interior
|
||||
void HandleHouseExteriorSetHousePosition(WorldPackets::Housing::HouseExteriorCommitPosition const& houseExteriorCommitPosition);
|
||||
void HandleHouseExteriorLock(WorldPackets::Housing::HouseExteriorLock const& houseExteriorLock);
|
||||
void HandleHouseInteriorLeaveHouse(WorldPackets::Housing::HouseInteriorLeaveHouse const& houseInteriorLeaveHouse);
|
||||
|
||||
// Housing - Decor System
|
||||
void HandleHousingDecorSetEditMode(WorldPackets::Housing::HousingDecorSetEditMode const& housingDecorSetEditMode);
|
||||
void HandleHousingDecorPlace(WorldPackets::Housing::HousingDecorPlace const& housingDecorPlace);
|
||||
void HandleHousingDecorMove(WorldPackets::Housing::HousingDecorMove const& housingDecorMove);
|
||||
void HandleHousingDecorRemove(WorldPackets::Housing::HousingDecorRemove const& housingDecorRemove);
|
||||
void HandleHousingDecorLock(WorldPackets::Housing::HousingDecorLock const& housingDecorLock);
|
||||
void HandleHousingDecorSetDyeSlots(WorldPackets::Housing::HousingDecorSetDyeSlots const& housingDecorSetDyeSlots);
|
||||
void HandleHousingDecorDeleteFromStorage(WorldPackets::Housing::HousingDecorDeleteFromStorage const& housingDecorDeleteFromStorage);
|
||||
void HandleHousingDecorDeleteFromStorageById(WorldPackets::Housing::HousingDecorDeleteFromStorageById const& housingDecorDeleteFromStorageById);
|
||||
void HandleHousingDecorRequestStorage(WorldPackets::Housing::HousingDecorRequestStorage const& housingDecorRequestStorage);
|
||||
void HandleHousingDecorRedeemDeferredDecor(WorldPackets::Housing::HousingDecorRedeemDeferredDecor const& housingDecorRedeemDeferredDecor);
|
||||
// Retired 2026-05-11: HandleHousingDecorStartPlacingNewDecor + CatalogCreateSearcher (TC-CUSTOM CMSGs).
|
||||
void HandleGetLastCatalogFetch(WorldPackets::Housing::GetLastCatalogFetch const& getLastCatalogFetch);
|
||||
void HandleUpdateLastCatalogFetch(WorldPackets::Housing::UpdateLastCatalogFetch const& updateLastCatalogFetch);
|
||||
|
||||
// Housing - Fixture System
|
||||
void SendFixtureUpdateObject(Player* player, Housing* housing);
|
||||
void HandleHousingFixtureSetEditMode(WorldPackets::Housing::HousingFixtureSetEditMode const& housingFixtureSetEditMode);
|
||||
void HandleHousingFixtureSetCoreFixture(WorldPackets::Housing::HousingFixtureSetCoreFixture const& housingFixtureSetCoreFixture);
|
||||
void HandleHousingFixtureCreateFixture(WorldPackets::Housing::HousingFixtureCreateFixture const& housingFixtureCreateFixture);
|
||||
void HandleHousingFixtureDeleteFixture(WorldPackets::Housing::HousingFixtureDeleteFixture const& housingFixtureDeleteFixture);
|
||||
void HandleHousingFixtureSetHouseSize(WorldPackets::Housing::HousingFixtureSetHouseSize const& housingFixtureSetHouseSize);
|
||||
void HandleHousingFixtureSetHouseType(WorldPackets::Housing::HousingFixtureSetHouseType const& housingFixtureSetHouseType);
|
||||
|
||||
// Housing - Room System
|
||||
void HandleHousingRoomSetLayoutEditMode(WorldPackets::Housing::HousingRoomSetLayoutEditMode const& housingRoomSetLayoutEditMode);
|
||||
void HandleHousingRoomAdd(WorldPackets::Housing::HousingRoomAdd const& housingRoomAdd);
|
||||
void HandleHousingRoomRemove(WorldPackets::Housing::HousingRoomRemove const& housingRoomRemove);
|
||||
void HandleHousingRoomRotate(WorldPackets::Housing::HousingRoomRotate const& housingRoomRotate);
|
||||
void HandleHousingRoomMoveRoom(WorldPackets::Housing::HousingRoomMoveRoom const& housingRoomMoveRoom);
|
||||
void HandleHousingRoomSetComponentTheme(WorldPackets::Housing::HousingRoomSetComponentTheme const& housingRoomSetComponentTheme);
|
||||
void HandleHousingRoomApplyComponentMaterials(WorldPackets::Housing::HousingRoomApplyComponentMaterials const& housingRoomApplyComponentMaterials);
|
||||
void HandleHousingRoomSetDoorType(WorldPackets::Housing::HousingRoomSetDoorType const& housingRoomSetDoorType);
|
||||
void HandleHousingRoomSetCeilingType(WorldPackets::Housing::HousingRoomSetCeilingType const& housingRoomSetCeilingType);
|
||||
|
||||
// Housing - Services System
|
||||
void HandleHousingSvcsGuildCreateNeighborhood(WorldPackets::Housing::HousingSvcsGuildCreateNeighborhood const& housingSvcsGuildCreateNeighborhood);
|
||||
void HandleHousingSvcsNeighborhoodReservePlot(WorldPackets::Housing::HousingSvcsNeighborhoodReservePlot const& housingSvcsNeighborhoodReservePlot);
|
||||
void HandleHousingSvcsRelinquishHouse(WorldPackets::Housing::HousingSvcsRelinquishHouse const& housingSvcsRelinquishHouse);
|
||||
void HandleHousingSvcsUpdateHouseSettings(WorldPackets::Housing::HousingSvcsUpdateHouseSettings const& housingSvcsUpdateHouseSettings);
|
||||
void HandleHousingSvcsPlayerViewHousesByPlayer(WorldPackets::Housing::HousingSvcsPlayerViewHousesByPlayer const& housingSvcsPlayerViewHousesByPlayer);
|
||||
void HandleHousingSvcsPlayerViewHousesByBnetAccount(WorldPackets::Housing::HousingSvcsPlayerViewHousesByBnetAccount const& housingSvcsPlayerViewHousesByBnetAccount);
|
||||
void HandleHousingSvcsGetPlayerHousesInfo(WorldPackets::Housing::HousingSvcsGetPlayerHousesInfo const& housingSvcsGetPlayerHousesInfo);
|
||||
void HandleHousingSvcsTeleportToPlot(WorldPackets::Housing::HousingSvcsTeleportToPlot const& housingSvcsTeleportToPlot);
|
||||
void HandleHousingSvcsStartTutorial(WorldPackets::Housing::HousingSvcsStartTutorial const& housingSvcsStartTutorial);
|
||||
// Removed 2026-04-24: HandleHousingSvcsSetTutorialState / CompleteTutorialStep /
|
||||
// SkipTutorial / QueryPendingInvites ? no matching 12.0.5 Lua API exists.
|
||||
void HandleHousingDecorConfirmPreviewPlacement(WorldPackets::Housing::HousingDecorConfirmPreviewPlacement const& housingDecorConfirmPreviewPlacement);
|
||||
void HandleHousingSvcsAcceptNeighborhoodOwnership(WorldPackets::Housing::HousingSvcsAcceptNeighborhoodOwnership const& housingSvcsAcceptNeighborhoodOwnership);
|
||||
void HandleHousingSvcsRejectNeighborhoodOwnership(WorldPackets::Housing::HousingSvcsRejectNeighborhoodOwnership const& housingSvcsRejectNeighborhoodOwnership);
|
||||
void HandleHousingSvcsGetPotentialHouseOwners(WorldPackets::Housing::HousingSvcsGetPotentialHouseOwners const& housingSvcsGetPotentialHouseOwners);
|
||||
void HandleHousingSvcsGetHouseFinderInfo(WorldPackets::Housing::HousingSvcsGetHouseFinderInfo const& housingSvcsGetHouseFinderInfo);
|
||||
void HandleHousingSvcsGetHouseFinderNeighborhood(WorldPackets::Housing::HousingSvcsGetHouseFinderNeighborhood const& housingSvcsGetHouseFinderNeighborhood);
|
||||
void HandleHousingSvcsGetBnetFriendNeighborhoods(WorldPackets::Housing::HousingSvcsGetBnetFriendNeighborhoods const& housingSvcsGetBnetFriendNeighborhoods);
|
||||
void HandleHousingSvcsDeleteAllNeighborhoodInvites(WorldPackets::Housing::HousingSvcsDeleteAllNeighborhoodInvites const& housingSvcsDeleteAllNeighborhoodInvites);
|
||||
|
||||
// Retired 2026-05-11: HandleHousingRequestEditorAvailability (sync Lua API in retail).
|
||||
|
||||
// Housing - Decor Licensing / Refund
|
||||
void HandleGetAllLicensedDecorQuantities(WorldPackets::Housing::GetAllLicensedDecorQuantities const& getAllLicensedDecorQuantities);
|
||||
void HandleGetDecorRefundList(WorldPackets::Housing::GetDecorRefundList const& getDecorRefundList);
|
||||
void HandleBulkRefund(WorldPackets::Housing::BulkRefund const& bulkRefund);
|
||||
|
||||
// Housing - Photo Sharing
|
||||
void HandleHousingPhotoSharingCompleteAuthorization(WorldPackets::Housing::HousingPhotoSharingCompleteAuthorization const& packet);
|
||||
void HandleHousingPhotoSharingClearAuthorization(WorldPackets::Housing::HousingPhotoSharingClearAuthorization const& packet);
|
||||
|
||||
// Housing - Misc
|
||||
void HandleHousingHouseStatus(WorldPackets::Housing::HousingHouseStatus const& housingHouseStatus);
|
||||
void HandleHousingGetCurrentHouseInfo(WorldPackets::Housing::HousingGetCurrentHouseInfo const& housingGetCurrentHouseInfo);
|
||||
void HandleHousingGetPlayerPermissions(WorldPackets::Housing::HousingGetPlayerPermissions const& housingGetPlayerPermissions);
|
||||
void HandleHousingResetKioskMode(WorldPackets::Housing::HousingResetKioskMode const& housingResetKioskMode);
|
||||
|
||||
// Phase 7 Housing Decor handlers
|
||||
void HandleHousingDecorUpdateDyeSlot(WorldPackets::Housing::HousingDecorUpdateDyeSlot const& housingDecorUpdateDyeSlot);
|
||||
// Retired 2026-05-11: HandleHousingDecorStartPlacingFromSource + BatchOperation + PlacementPreview.
|
||||
void HandleHousingDecorCleanupModeToggle(WorldPackets::Housing::HousingDecorCleanupModeToggle const& housingDecorCleanupModeToggle);
|
||||
|
||||
// Phase 7 Housing Fixture handlers
|
||||
void HandleHousingFixtureCreateBasicHouse(WorldPackets::Housing::HousingFixtureCreateBasicHouse const& housingFixtureCreateBasicHouse);
|
||||
void HandleHousingFixtureDeleteHouse(WorldPackets::Housing::HousingFixtureDeleteHouse const& housingFixtureDeleteHouse);
|
||||
|
||||
// Phase 7 Housing Services handlers
|
||||
void HandleHousingSvcsRequestPermissionsCheck(WorldPackets::Housing::HousingSvcsRequestPermissionsCheck const& housingSvcsRequestPermissionsCheck);
|
||||
void HandleHousingSvcsClearPlotReservation(WorldPackets::Housing::HousingSvcsClearPlotReservation const& housingSvcsClearPlotReservation);
|
||||
// Removed 2026-04-24: HandleHousingSvcsGetPlayerHousesInfoAlt ? duplicate of
|
||||
// the real CMSG_HOUSING_SVCS_GET_PLAYER_HOUSES_INFO (0x330013).
|
||||
void HandleHousingSvcsGetRosterData(WorldPackets::Housing::HousingSvcsGetRosterData const& housingSvcsGetRosterData);
|
||||
void HandleHousingSvcsRosterUpdateSubscribe(WorldPackets::Housing::HousingSvcsRosterUpdateSubscribe const& housingSvcsRosterUpdateSubscribe);
|
||||
// Removed 2026-04-24: HandleHousingSvcsChangeHouseCosmeticOwner ? the client
|
||||
// sends cosmetic-owner changes via CMSG_HOUSING_SVCS_UPDATE_HOUSE_SETTINGS (0x33000B).
|
||||
void HandleHousingSvcsQueryHouseLevelFavor(WorldPackets::Housing::HousingSvcsQueryHouseLevelFavor const& housingSvcsQueryHouseLevelFavor);
|
||||
// Removed 2026-04-24: HandleHousingSvcsGuildAddHouse ? no matching Lua API.
|
||||
void HandleHousingSvcsGuildAppendNeighborhood(WorldPackets::Housing::HousingSvcsGuildAppendNeighborhood const& housingSvcsGuildAppendNeighborhood);
|
||||
void HandleHousingSvcsGuildRenameNeighborhood(WorldPackets::Housing::HousingSvcsGuildRenameNeighborhood const& housingSvcsGuildRenameNeighborhood);
|
||||
void HandleHousingSvcsGuildGetHousingInfo(WorldPackets::Housing::HousingSvcsGuildGetHousingInfo const& housingSvcsGuildGetHousingInfo);
|
||||
|
||||
// Phase 7 Housing System handlers
|
||||
void HandleHousingSystemHouseStatusQuery(WorldPackets::Housing::HousingSystemHouseStatusQuery const& housingSystemHouseStatusQuery);
|
||||
void HandleHousingSystemGetHouseInfoAlt(WorldPackets::Housing::HousingSystemGetHouseInfoAlt const& housingSystemGetHouseInfoAlt);
|
||||
// Retired 2026-05-11: HandleHousingSystemHouseSnapshot (no C_HouseSnapshot Lua namespace in retail).
|
||||
void HandleHousingSystemExportHouse(WorldPackets::Housing::HousingSystemExportHouse const& housingSystemExportHouse);
|
||||
void HandleHousingSystemUpdateHouseInfo(WorldPackets::Housing::HousingSystemUpdateHouseInfo const& housingSystemUpdateHouseInfo);
|
||||
|
||||
// Housing
|
||||
void HandleDeclineNeighborhoodInvites(WorldPackets::Housing::DeclineNeighborhoodInvites const& declineNeighborhoodInvites);
|
||||
void HandleQueryNeighborhoodInfo(WorldPackets::Housing::QueryNeighborhoodInfo const& queryNeighborhoodInfo);
|
||||
void HandleInvitePlayerToNeighborhood(WorldPackets::Housing::InvitePlayerToNeighborhood const& invitePlayerToNeighborhood);
|
||||
void HandleGuildGetOthersOwnedHouses(WorldPackets::Housing::GuildGetOthersOwnedHouses const& guildGetOthersOwnedHouses);
|
||||
void HandleQueryNeighborhoodInfo(WorldPackets::Housing::QueryNeighborhoodInfo& packet);
|
||||
void HandleNeighborhoodInitiativeServiceStatusCheck(WorldPackets::Housing::NeighborhoodInitiativeServiceStatusCheck& packet);
|
||||
void HandleGetInitiativeActivityLogRequest(WorldPackets::Housing::GetInitiativeActivityLogRequest& packet);
|
||||
void HandleHousingGetCurrentHouseInfo(WorldPackets::Housing::GetCurrentHouseInfo& packet);
|
||||
void HandleHousingGetPlayerPermissions(WorldPackets::Housing::GetPlayerPermissions& packet);
|
||||
void HandleHousingHouseStatus(WorldPackets::Housing::HouseStatus& packet);
|
||||
void HandleHousingPlayerViewHousesByPlayer(WorldPackets::Housing::PlayerViewHousesByPlayer& packet);
|
||||
void HandleHousingGetPlayerHousesInfo(WorldPackets::Housing::GetPlayerHousesInfo& packet);
|
||||
void HandleHousingDecorRequestStorage(WorldPackets::Housing::HousingDecorRequestStorage& packet);
|
||||
void HandleHousingDecorSetEditMode(WorldPackets::Housing::HousingDecorSetEditMode& packet);
|
||||
void HandleGetAllLicensedDecorQuantities(WorldPackets::Housing::GetAllLicensedDecorQuantities& packet);
|
||||
void HandleGetDecorRefundList(WorldPackets::Housing::GetDecorRefundList& packet);
|
||||
|
||||
// Neighborhood - Charter System
|
||||
void HandleNeighborhoodCharterOpenConfirmationUI(WorldPackets::Neighborhood::NeighborhoodCharterOpenConfirmationUI const& neighborhoodCharterOpenConfirmationUI);
|
||||
void HandleNeighborhoodCharterCreate(WorldPackets::Neighborhood::NeighborhoodCharterCreate const& neighborhoodCharterCreate);
|
||||
void HandleNeighborhoodCharterEdit(WorldPackets::Neighborhood::NeighborhoodCharterEdit const& neighborhoodCharterEdit);
|
||||
void HandleNeighborhoodCharterFinalize(WorldPackets::Neighborhood::NeighborhoodCharterFinalize const& neighborhoodCharterFinalize);
|
||||
void HandleNeighborhoodCharterAddSignature(WorldPackets::Neighborhood::NeighborhoodCharterAddSignature const& neighborhoodCharterAddSignature);
|
||||
void HandleNeighborhoodCharterSendSignatureRequest(WorldPackets::Neighborhood::NeighborhoodCharterSendSignatureRequest const& neighborhoodCharterSendSignatureRequest);
|
||||
|
||||
// Neighborhood - Management System
|
||||
void HandleNeighborhoodUpdateName(WorldPackets::Neighborhood::NeighborhoodUpdateName const& neighborhoodUpdateName);
|
||||
void HandleNeighborhoodSetPublicFlag(WorldPackets::Neighborhood::NeighborhoodSetPublicFlag const& neighborhoodSetPublicFlag);
|
||||
void HandleNeighborhoodAddSecondaryOwner(WorldPackets::Neighborhood::NeighborhoodAddSecondaryOwner const& neighborhoodAddSecondaryOwner);
|
||||
void HandleNeighborhoodRemoveSecondaryOwner(WorldPackets::Neighborhood::NeighborhoodRemoveSecondaryOwner const& neighborhoodRemoveSecondaryOwner);
|
||||
void HandleNeighborhoodInviteResident(WorldPackets::Neighborhood::NeighborhoodInviteResident const& neighborhoodInviteResident);
|
||||
void HandleNeighborhoodCancelInvitation(WorldPackets::Neighborhood::NeighborhoodCancelInvitation const& neighborhoodCancelInvitation);
|
||||
void HandleNeighborhoodPlayerDeclineInvite(WorldPackets::Neighborhood::NeighborhoodPlayerDeclineInvite const& neighborhoodPlayerDeclineInvite);
|
||||
void HandleNeighborhoodPlayerGetInvite(WorldPackets::Neighborhood::NeighborhoodPlayerGetInvite const& neighborhoodPlayerGetInvite);
|
||||
void HandleNeighborhoodGetInvites(WorldPackets::Neighborhood::NeighborhoodGetInvites const& neighborhoodGetInvites);
|
||||
void HandleNeighborhoodBuyHouse(WorldPackets::Neighborhood::NeighborhoodBuyHouse const& neighborhoodBuyHouse);
|
||||
void HandleNeighborhoodMoveHouse(WorldPackets::Neighborhood::NeighborhoodMoveHouse const& neighborhoodMoveHouse);
|
||||
void HandleNeighborhoodOpenCornerstoneUI(WorldPackets::Neighborhood::NeighborhoodOpenCornerstoneUI const& neighborhoodOpenCornerstoneUI);
|
||||
void HandleNeighborhoodOfferOwnership(WorldPackets::Neighborhood::NeighborhoodOfferOwnership const& neighborhoodOfferOwnership);
|
||||
void HandleNeighborhoodGetRoster(WorldPackets::Neighborhood::NeighborhoodGetRoster const& neighborhoodGetRoster);
|
||||
void HandleNeighborhoodEvictPlot(WorldPackets::Neighborhood::NeighborhoodEvictPlot const& neighborhoodEvictPlot);
|
||||
|
||||
// Phase 7 Neighborhood Charter handlers
|
||||
void HandleNeighborhoodCharterSignResponse(WorldPackets::Neighborhood::NeighborhoodCharterSignResponsePacket const& neighborhoodCharterSignResponse);
|
||||
void HandleNeighborhoodCharterRemoveSignature(WorldPackets::Neighborhood::NeighborhoodCharterRemoveSignature const& neighborhoodCharterRemoveSignature);
|
||||
|
||||
// Phase 7 Neighborhood handlers
|
||||
void HandleNeighborhoodCancelInvitationAlt(WorldPackets::Neighborhood::NeighborhoodCancelInvitationAlt const& neighborhoodCancelInvitationAlt);
|
||||
void HandleNeighborhoodInviteNotificationAck(WorldPackets::Neighborhood::NeighborhoodInviteNotificationAck const& neighborhoodInviteNotificationAck);
|
||||
void HandleNeighborhoodOfferOwnershipResponse(WorldPackets::Neighborhood::NeighborhoodOfferOwnershipResponsePacket const& neighborhoodOfferOwnershipResponse);
|
||||
|
||||
void HandleNeighborhoodInitiativeServiceStatusCheck(WorldPackets::Neighborhood::NeighborhoodInitiativeServiceStatusCheck const& packet);
|
||||
void HandleGetAvailableInitiativeRequest(WorldPackets::Neighborhood::GetAvailableInitiativeRequest const& getAvailableInitiativeRequest);
|
||||
void HandleGetInitiativeActivityLogRequest(WorldPackets::Neighborhood::GetInitiativeActivityLogRequest const& getInitiativeActivityLogRequest);
|
||||
void HandleGetNeighborhoodInitiativeInfoRequest(WorldPackets::Neighborhood::GetNeighborhoodInitiativeInfoRequest const& getNeighborhoodInitiativeInfoRequest);
|
||||
void HandleInitiativeUpdateActiveNeighborhood(WorldPackets::Neighborhood::InitiativeUpdateActiveNeighborhood const& initiativeUpdateActiveNeighborhood);
|
||||
void HandleNeighborhoodInitiativeOp01(WorldPackets::Neighborhood::NeighborhoodInitiativeOp01 const& packet);
|
||||
void HandleNeighborhoodInitiativeOp05(WorldPackets::Neighborhood::NeighborhoodInitiativeOp05 const& packet);
|
||||
void HandleNeighborhoodInitiativeOp06(WorldPackets::Neighborhood::NeighborhoodInitiativeOp06 const& packet);
|
||||
void HandleNeighborhoodInitiativeOp07(WorldPackets::Neighborhood::NeighborhoodInitiativeOp07 const& packet);
|
||||
void HandleNeighborhoodInitiativeOp08(WorldPackets::Neighborhood::NeighborhoodInitiativeOp08 const& packet);
|
||||
void HandleNeighborhoodInitiativeOp09(WorldPackets::Neighborhood::NeighborhoodInitiativeOp09 const& packet);
|
||||
void HandleNeighborhoodInitiativeOp0A(WorldPackets::Neighborhood::NeighborhoodInitiativeOp0A const& packet);
|
||||
void HandleNeighborhoodInitiativeOp0B(WorldPackets::Neighborhood::NeighborhoodInitiativeOp0B const& packet);
|
||||
void HandleNeighborhoodInitiativeOp0C(WorldPackets::Neighborhood::NeighborhoodInitiativeOp0C const& packet);
|
||||
void HandleNeighborhoodInitiativeOp0D(WorldPackets::Neighborhood::NeighborhoodInitiativeOp0D const& packet);
|
||||
void HandleNeighborhoodInitiativeOp0E(WorldPackets::Neighborhood::NeighborhoodInitiativeOp0E const& packet);
|
||||
void HandleNeighborhoodInitiativeOp0F(WorldPackets::Neighborhood::NeighborhoodInitiativeOp0F const& packet);
|
||||
void HandleEnableTaxiNodeOpcode(WorldPackets::Taxi::EnableTaxiNode& enableTaxiNode);
|
||||
void HandleTaxiNodeStatusQueryOpcode(WorldPackets::Taxi::TaxiNodeStatusQuery& taxiNodeStatusQuery);
|
||||
void HandleTaxiQueryAvailableNodesOpcode(WorldPackets::Taxi::TaxiQueryAvailableNodes& taxiQueryAvailableNodes);
|
||||
@@ -2999,6 +2773,7 @@ public:
|
||||
bool _filterAddonMessages;
|
||||
// Garrison login prologue (FOLLOWER_FATIGUE_CLEARED + FOLLOWER_ACTIVATIONS_SET) is sniff-confirmed
|
||||
// to be sent only before the FIRST GetGarrisonInfo result of a session.
|
||||
bool _housingDecorEditMode = false;
|
||||
bool _sentGarrisonLoginPrologue = false;
|
||||
uint32 recruiterId;
|
||||
bool isRecruiter;
|
||||
|
||||
@@ -7232,9 +7232,9 @@ void Spell::EffectLearnHouseTheme()
|
||||
player->GetName(), themeData->Name, houseThemeId);*/
|
||||
|
||||
// Send collection update to the client
|
||||
WorldPackets::Housing::AccountRoomThemeCollectionUpdate collectionUpdate;
|
||||
collectionUpdate.AddSingle(houseThemeId);
|
||||
player->SendDirectMessage(collectionUpdate.Write());
|
||||
// WorldPackets::Housing::AccountRoomThemeCollectionUpdate collectionUpdate;
|
||||
// collectionUpdate.AddSingle(houseThemeId);
|
||||
// player->SendDirectMessage(collectionUpdate.Write());
|
||||
}
|
||||
|
||||
void Spell::EffectLearnHouseRoomComponentTexture()
|
||||
@@ -7258,9 +7258,9 @@ void Spell::EffectLearnHouseRoomComponentTexture()
|
||||
player->GetName(), textureId, m_spellInfo->Id);
|
||||
|
||||
// Send collection update to the client (texture = material in the collection system)
|
||||
WorldPackets::Housing::AccountRoomMaterialCollectionUpdate collectionUpdate;
|
||||
collectionUpdate.AddSingle(textureId);
|
||||
player->SendDirectMessage(collectionUpdate.Write());
|
||||
// WorldPackets::Housing::AccountRoomMaterialCollectionUpdate collectionUpdate;
|
||||
// collectionUpdate.AddSingle(textureId);
|
||||
// player->SendDirectMessage(collectionUpdate.Write());
|
||||
}
|
||||
|
||||
void Spell::EffectLearnHouseType()
|
||||
|
||||
@@ -69,33 +69,18 @@ enum RaviSpells
|
||||
{
|
||||
// Ravenous Stomp
|
||||
SPELL_RAVENOUS_STOMP = 1307894,
|
||||
SPELL_RAVENOUS_STOMP_AOE = 1307899,
|
||||
SPELL_RAVENOUS_STOMP_HIT = 1307915,
|
||||
// Triple Shot
|
||||
SPELL_TRIPLE_SHOT = 1296220,
|
||||
SPELL_TRIPLE_SHOT_2 = 1297869,
|
||||
SPELL_TRIPLE_SHOT_3 = 1298632,
|
||||
SPELL_TRIPLE_SHOT_4 = 1298633,
|
||||
SPELL_TRIPLE_SHOT_5 = 1307573,
|
||||
// Hydrastrike
|
||||
SPELL_HYDRASTRIKE = 1298677,
|
||||
SPELL_HYDRASTRIKE_2 = 1298683,
|
||||
SPELL_TRIPLE_SHOT_HIT = 1298632,
|
||||
SPELL_TRIPLE_SHOT_HIT_2 = 1297876,
|
||||
// Scent of Blood
|
||||
SPELL_SCENT_OF_BLOOD = 1310434,
|
||||
SPELL_SCENT_OF_BLOOD_TICK = 1310378,
|
||||
// Fresh Meat
|
||||
SPELL_FRESH_MEAT = 1307924,
|
||||
SPELL_FRESH_MEAT_TRIGGERED = 1307703,
|
||||
// Ssscavenging
|
||||
SPELL_SSCAVENGING = 1307801,
|
||||
SPELL_SSCAVENGING_2 = 1309522,
|
||||
// Regurgitate
|
||||
SPELL_REGURGITATE = 1296050,
|
||||
SPELL_REGURGITATE_2 = 1296058,
|
||||
// Feeding Frenzy
|
||||
SPELL_FEEDING_FRENZY = 1307768,
|
||||
SPELL_FEEDING_FRENZY_TRIGGERED = 1307765,
|
||||
// Carrion Burst
|
||||
SPELL_CARRION_BURST = 1307700,
|
||||
};
|
||||
|
||||
// The Writhing Coil spells
|
||||
@@ -103,38 +88,25 @@ enum WrithingCoilSpells
|
||||
{
|
||||
// Synchronized Venom
|
||||
SPELL_SYNCHRONIZED_VENOM = 1299154,
|
||||
SPELL_SYNCHRONIZED_VENOM_2 = 1299155,
|
||||
SPELL_SYNCHRONIZED_VENOM_3 = 1299189,
|
||||
SPELL_SYNCHRONIZED_VENOM_4 = 1299998,
|
||||
SPELL_SYNCHRONIZED_VENOM_5 = 1299999,
|
||||
// Tail Scythe
|
||||
SPELL_TAIL_SCYTHE = 1298949,
|
||||
// Toxic Barrage
|
||||
SPELL_TOXIC_BARRAGE = 1310357,
|
||||
// Toxic Atrophy
|
||||
SPELL_TOXIC_ATROPHY = 1310358,
|
||||
SPELL_TOXIC_ATROPHY_2 = 1310974,
|
||||
// Vindictive Onslaught
|
||||
SPELL_VINDICTIVE_ONSLAUGHT = 1299940,
|
||||
// Burrowing Charge
|
||||
SPELL_BURROWING_CHARGE = 1299130,
|
||||
SPELL_BURROWING_CHARGE_2 = 1299135,
|
||||
SPELL_BURROWING_CHARGE_3 = 1300083,
|
||||
// Venom Jet
|
||||
SPELL_VENOM_JET = 1299902,
|
||||
SPELL_VENOM_JET_2 = 1300044,
|
||||
// Death Rattle
|
||||
SPELL_DEATH_RATTLE = 1299053,
|
||||
SPELL_DEATH_RATTLE_TICK = 1299080,
|
||||
// Vine Grip
|
||||
SPELL_VINE_GRIP_MOVEMENT = 1300421,
|
||||
SPELL_VINE_GRIP_KNOCKBACK = 1300367,
|
||||
// Uncoil
|
||||
SPELL_UNCOIL = 1287806,
|
||||
SPELL_UNCOIL_2 = 1287807,
|
||||
SPELL_UNCOIL_3 = 1287811,
|
||||
// DNT cosmetics
|
||||
SPELL_BURROWING_CHARGE_COSMETIC = 1314949,
|
||||
SPELL_REFORM_BOSS_COSMETIC = 1300683,
|
||||
SPELL_REFORM_BOSS_COSMETIC_2 = 1305417,
|
||||
};
|
||||
@@ -144,15 +116,28 @@ enum UncoiledWritheSpells
|
||||
{
|
||||
SPELL_SPLIT_HEALTH = 1301169,
|
||||
SPELL_UNCOILED = 1300612,
|
||||
SPELL_ASSIMILATION = 1300686,
|
||||
SPELL_ASSIMILATION = 1300698,
|
||||
SPELL_ASSIMILATION_2 = 1300618,
|
||||
SPELL_ASSIMILATION_3 = 1300698,
|
||||
SPELL_UNCOILED_WRITHE_IMMUNITY = 1308723,
|
||||
SPELL_DESPAWN_SPLIT_SNAKES = 1300619,
|
||||
SPELL_COMBINE_HEALTH = 1301171,
|
||||
SPELL_UNCOILED_WRITHE_UNCOIL = 1287805,
|
||||
SPELL_UNCOILED_WRITHE_TOXIC_ATROPHY = 1310666,
|
||||
SPELL_UNCOILED_WRITHE_TOXIC_ATROPHY_2 = 1310974,
|
||||
SPELL_UNDERMINING = 1305390,
|
||||
};
|
||||
|
||||
// Zul'jan spells
|
||||
enum ZuljanSpells
|
||||
{
|
||||
SPELL_ZULJAN_BLOODLETTING = 1301217,
|
||||
SPELL_RITUAL_OF_THE_FANG = 1300872,
|
||||
SPELL_RITUAL_OF_THE_FANG_2 = 1300876,
|
||||
SPELL_AXEGRINDER = 1301111,
|
||||
SPELL_AXEGRINDER_HIT = 1301113,
|
||||
SPELL_CHOP_DOWN = 1301350,
|
||||
SPELL_CHOP_DOWN_HIT = 1301353,
|
||||
SPELL_BONESLICER = 1301413,
|
||||
SPELL_BONESLICER_TRIGGER = 1301416,
|
||||
};
|
||||
|
||||
template <class AI, class T>
|
||||
@@ -163,4 +148,4 @@ inline AI* GetAltarofFangsAI(T* obj)
|
||||
|
||||
#define RegisterAltarofFangsCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetAltarofFangsAI)
|
||||
|
||||
#endif
|
||||
#endif
|
||||
@@ -22,37 +22,41 @@
|
||||
enum TrashSpells
|
||||
{
|
||||
SPELL_SEPTIC_SPATTER = 1306232,
|
||||
SPELL_PARALYZING_SHOTS = 1294569,
|
||||
SPELL_PARALYZING_SHOTS = 1294567,
|
||||
SPELL_DUOSTRIKE = 1294572,
|
||||
SPELL_TOXIC_BREATH = 1306668,
|
||||
SPELL_RAVENOUS_CLAWS = 1306333,
|
||||
SPELL_RAVENOUS = 1306308,
|
||||
SPELL_RAVENOUS_CLAWS = 1306338,
|
||||
SPELL_PIERCING_HISS = 1294557,
|
||||
SPELL_FETID_SPIT = 1306381,
|
||||
SPELL_BLOOD_SACRIFICE = 1306641,
|
||||
SPELL_BLOOD_SACRIFICE = 1306517,
|
||||
SPELL_BLOOD_SACRIFICE_HIT = 1306641,
|
||||
SPELL_UNSTABLE_TOTEM = 1306893,
|
||||
SPELL_DISMEMBER = 1306911,
|
||||
SPELL_ENVENOM = 1307571,
|
||||
SPELL_ENVENOM = 1289416,
|
||||
SPELL_MASS_ENVENOM = 1307567,
|
||||
SPELL_EVOLVE = 1306385,
|
||||
SPELL_CORROSIVE_FANGS = 1294845,
|
||||
SPELL_RATTLE = 1294849,
|
||||
SPELL_BLOODLETTING = 1307526,
|
||||
SPELL_INFEST = 1308865,
|
||||
SPELL_VIRULENT_WHIRL = 1295055,
|
||||
SPELL_NOXIOUS_SPRAY = 1294934,
|
||||
SPELL_LACED_EDGE = 1308518,
|
||||
SPELL_TOXIC_SURGE = 1306853,
|
||||
SPELL_TOXIC_SURGE = 1306852,
|
||||
SPELL_VENOM_BURST = 1303366,
|
||||
SPELL_NASCENT_HUNGER = 1306331,
|
||||
SPELL_NASCENT_HUNGER = 1306382,
|
||||
};
|
||||
|
||||
enum TrashEvents
|
||||
{
|
||||
EVENT_SEPTIC_SPATTER = 1,
|
||||
EVENT_PARALYZING_SHOTS,
|
||||
EVENT_DUOSTRIKE,
|
||||
EVENT_TOXIC_BREATH,
|
||||
EVENT_RAVENOUS_CLAWS,
|
||||
EVENT_PIERCING_HISS,
|
||||
EVENT_FETID_SPIT,
|
||||
EVENT_BLOOD_SACRIFICE,
|
||||
EVENT_UNSTABLE_TOTEM,
|
||||
EVENT_DISMEMBER,
|
||||
EVENT_ENVENOM,
|
||||
EVENT_MASS_ENVENOM,
|
||||
@@ -60,8 +64,6 @@ enum TrashEvents
|
||||
EVENT_CORROSIVE_FANGS,
|
||||
EVENT_RATTLE,
|
||||
EVENT_INFEST,
|
||||
EVENT_VIRULENT_WHIRL,
|
||||
EVENT_NOXIOUS_SPRAY,
|
||||
EVENT_LACED_EDGE,
|
||||
EVENT_TOXIC_SURGE,
|
||||
EVENT_NASCENT_HUNGER,
|
||||
@@ -97,6 +99,7 @@ struct npc_twinfang_harrower : public ScriptedAI
|
||||
void ScheduleTasks() override
|
||||
{
|
||||
DoZoneInCombat();
|
||||
events.ScheduleEvent(EVENT_DUOSTRIKE, 4s);
|
||||
events.ScheduleEvent(EVENT_PARALYZING_SHOTS, 8s);
|
||||
events.ScheduleEvent(EVENT_TOXIC_BREATH, 15s);
|
||||
}
|
||||
@@ -105,12 +108,16 @@ struct npc_twinfang_harrower : public ScriptedAI
|
||||
{
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_DUOSTRIKE:
|
||||
DoCastVictim(SPELL_DUOSTRIKE);
|
||||
events.Repeat(7s);
|
||||
break;
|
||||
case EVENT_PARALYZING_SHOTS:
|
||||
DoCastAOE(SPELL_PARALYZING_SHOTS);
|
||||
DoCastSelf(SPELL_PARALYZING_SHOTS);
|
||||
events.Repeat(20s);
|
||||
break;
|
||||
case EVENT_TOXIC_BREATH:
|
||||
DoCastVictim(SPELL_TOXIC_BREATH);
|
||||
DoCastSelf(SPELL_TOXIC_BREATH);
|
||||
events.Repeat(22s);
|
||||
break;
|
||||
default:
|
||||
@@ -134,6 +141,7 @@ struct npc_ravenous_descendant : public ScriptedAI
|
||||
{
|
||||
if (eventId == EVENT_RAVENOUS_CLAWS)
|
||||
{
|
||||
DoCastSelf(SPELL_RAVENOUS);
|
||||
DoCastVictim(SPELL_RAVENOUS_CLAWS);
|
||||
events.Repeat(16s);
|
||||
}
|
||||
@@ -179,6 +187,7 @@ struct npc_ritual_chieftain : public ScriptedAI
|
||||
void ScheduleTasks() override
|
||||
{
|
||||
DoZoneInCombat();
|
||||
events.ScheduleEvent(EVENT_UNSTABLE_TOTEM, 5s);
|
||||
events.ScheduleEvent(EVENT_BLOOD_SACRIFICE, 8s);
|
||||
events.ScheduleEvent(EVENT_DISMEMBER, 16s);
|
||||
}
|
||||
@@ -187,8 +196,12 @@ struct npc_ritual_chieftain : public ScriptedAI
|
||||
{
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_UNSTABLE_TOTEM:
|
||||
DoCastSelf(SPELL_UNSTABLE_TOTEM);
|
||||
events.Repeat(20s);
|
||||
break;
|
||||
case EVENT_BLOOD_SACRIFICE:
|
||||
DoCastAOE(SPELL_BLOOD_SACRIFICE);
|
||||
DoCastSelf(SPELL_BLOOD_SACRIFICE);
|
||||
events.Repeat(20s);
|
||||
break;
|
||||
case EVENT_DISMEMBER:
|
||||
@@ -298,28 +311,14 @@ struct npc_ascendant_serpent : public ScriptedAI
|
||||
{
|
||||
DoZoneInCombat();
|
||||
events.ScheduleEvent(EVENT_INFEST, 7s);
|
||||
events.ScheduleEvent(EVENT_VIRULENT_WHIRL, 13s);
|
||||
events.ScheduleEvent(EVENT_NOXIOUS_SPRAY, 20s);
|
||||
}
|
||||
|
||||
void ExecuteEvent(uint32 eventId) override
|
||||
{
|
||||
switch (eventId)
|
||||
if (eventId == EVENT_INFEST)
|
||||
{
|
||||
case EVENT_INFEST:
|
||||
DoCastAOE(SPELL_INFEST);
|
||||
events.Repeat(20s);
|
||||
break;
|
||||
case EVENT_VIRULENT_WHIRL:
|
||||
DoCastAOE(SPELL_VIRULENT_WHIRL);
|
||||
events.Repeat(18s);
|
||||
break;
|
||||
case EVENT_NOXIOUS_SPRAY:
|
||||
DoCastVictim(SPELL_NOXIOUS_SPRAY);
|
||||
events.Repeat(24s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
DoCastAOE(SPELL_INFEST);
|
||||
events.Repeat(20s);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -408,8 +407,7 @@ struct npc_hatchling : public ScriptedAI
|
||||
{
|
||||
if (eventId == EVENT_NASCENT_HUNGER)
|
||||
{
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
|
||||
DoCast(target, SPELL_NASCENT_HUNGER);
|
||||
DoCastSelf(SPELL_NASCENT_HUNGER);
|
||||
events.Repeat(12s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,13 +23,8 @@ enum RaviEvents
|
||||
{
|
||||
EVENT_RAVENOUS_STOMP = 1,
|
||||
EVENT_TRIPLE_SHOT,
|
||||
EVENT_HYDRASTRIKE,
|
||||
EVENT_SCENT_OF_BLOOD,
|
||||
EVENT_FRESH_MEAT,
|
||||
EVENT_SSCAVENGING,
|
||||
EVENT_REGURGITATE,
|
||||
EVENT_FEEDING_FRENZY,
|
||||
EVENT_CARRION_BURST,
|
||||
};
|
||||
|
||||
// 259445 - Rav'i
|
||||
@@ -43,14 +38,10 @@ struct boss_ravi : public BossAI
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
|
||||
|
||||
DoCastSelf(SPELL_SCENT_OF_BLOOD, true);
|
||||
events.ScheduleEvent(EVENT_SCENT_OF_BLOOD, 6s);
|
||||
events.ScheduleEvent(EVENT_RAVENOUS_STOMP, 3s);
|
||||
events.ScheduleEvent(EVENT_HYDRASTRIKE, 6s);
|
||||
events.ScheduleEvent(EVENT_FRESH_MEAT, 10s);
|
||||
events.ScheduleEvent(EVENT_RAVENOUS_STOMP, 1s);
|
||||
events.ScheduleEvent(EVENT_TRIPLE_SHOT, 9s);
|
||||
events.ScheduleEvent(EVENT_SSCAVENGING, 25s);
|
||||
events.ScheduleEvent(EVENT_REGURGITATE, 50s);
|
||||
events.ScheduleEvent(EVENT_FEEDING_FRENZY, 26s);
|
||||
events.ScheduleEvent(EVENT_CARRION_BURST, 30s);
|
||||
events.ScheduleEvent(EVENT_REGURGITATE, 52s);
|
||||
}
|
||||
|
||||
void JustDied(Unit* killer) override
|
||||
@@ -63,60 +54,24 @@ struct boss_ravi : public BossAI
|
||||
{
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_SCENT_OF_BLOOD:
|
||||
// Applied at engage as a persistent damage-over-time; refresh periodically
|
||||
DoCastSelf(SPELL_SCENT_OF_BLOOD_TICK, true);
|
||||
events.Repeat(6s);
|
||||
break;
|
||||
case EVENT_RAVENOUS_STOMP:
|
||||
// Leap AoE: big initial slam (1307894) then sustained ground-pounding hits
|
||||
DoCastAOE(SPELL_RAVENOUS_STOMP);
|
||||
DoCastAOE(SPELL_RAVENOUS_STOMP_AOE, true);
|
||||
events.Repeat(3s);
|
||||
events.ScheduleEvent(EVENT_TRIPLE_SHOT, 2s);
|
||||
break;
|
||||
case EVENT_HYDRASTRIKE:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 30.0f, true))
|
||||
{
|
||||
DoCast(target, urand(0, 1) ? SPELL_HYDRASTRIKE : SPELL_HYDRASTRIKE_2);
|
||||
}
|
||||
events.Repeat(9s);
|
||||
DoCastSelf(SPELL_RAVENOUS_STOMP);
|
||||
events.Repeat(62s);
|
||||
break;
|
||||
case EVENT_TRIPLE_SHOT:
|
||||
// Fires 3 shots in quick succession at random players
|
||||
for (uint8 i = 0; i < 3; ++i)
|
||||
{
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
|
||||
DoCast(target, SPELL_TRIPLE_SHOT_5);
|
||||
}
|
||||
events.Repeat(2s);
|
||||
break;
|
||||
case EVENT_FRESH_MEAT:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
|
||||
{
|
||||
DoCast(target, SPELL_FRESH_MEAT);
|
||||
DoCast(target, SPELL_FRESH_MEAT_TRIGGERED, true);
|
||||
}
|
||||
events.Repeat(20s);
|
||||
DoCastSelf(SPELL_TRIPLE_SHOT);
|
||||
events.Repeat(39s);
|
||||
break;
|
||||
case EVENT_SSCAVENGING:
|
||||
DoCastSelf(SPELL_SSCAVENGING_2, true);
|
||||
DoCastSelf(SPELL_SSCAVENGING, true);
|
||||
events.Repeat(50s);
|
||||
break;
|
||||
case EVENT_REGURGITATE:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
|
||||
{
|
||||
DoCast(target, SPELL_REGURGITATE);
|
||||
DoCast(target, SPELL_REGURGITATE_2, true);
|
||||
}
|
||||
events.Repeat(35s);
|
||||
break;
|
||||
case EVENT_FEEDING_FRENZY:
|
||||
DoCastSelf(SPELL_FEEDING_FRENZY, true);
|
||||
DoCastSelf(SPELL_FEEDING_FRENZY_TRIGGERED, true);
|
||||
break;
|
||||
case EVENT_CARRION_BURST:
|
||||
DoCastAOE(SPELL_CARRION_BURST, true);
|
||||
events.Repeat(3s);
|
||||
DoCast(target, SPELL_REGURGITATE_2);
|
||||
DoCastSelf(SPELL_REGURGITATE, true);
|
||||
events.Repeat(52s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -141,4 +96,4 @@ struct boss_ravi : public BossAI
|
||||
void AddSC_boss_ravi()
|
||||
{
|
||||
RegisterAltarofFangsCreatureAI(boss_ravi);
|
||||
}
|
||||
}
|
||||
@@ -28,11 +28,13 @@ enum WrithingCoilEvents
|
||||
EVENT_VINDICTIVE_ONSLAUGHT,
|
||||
EVENT_BURROWING_CHARGE,
|
||||
EVENT_VENOM_JET,
|
||||
EVENT_VENOM_JET_CAST,
|
||||
EVENT_ENTER_DEATH_RATTLE,
|
||||
EVENT_DEATH_RATTLE_TICK,
|
||||
EVENT_VINE_GRIP,
|
||||
EVENT_VINE_GRIP_MOVEMENT,
|
||||
EVENT_VINE_GRIP_KNOCKBACK,
|
||||
EVENT_ENTER_UNCOIL,
|
||||
EVENT_UNCOIL_DESPAWN,
|
||||
EVENT_RECOMBINE,
|
||||
EVENT_FINISH_RECOMBINE,
|
||||
};
|
||||
|
||||
enum WrithingCoilPhases
|
||||
@@ -45,12 +47,14 @@ enum WrithingCoilPhases
|
||||
// 259446 - The Writhing Coil
|
||||
struct boss_the_writhing_coil : public BossAI
|
||||
{
|
||||
boss_the_writhing_coil(Creature* creature) : BossAI(creature, DATA_THE_WRITHING_COIL) { }
|
||||
boss_the_writhing_coil(Creature* creature) : BossAI(creature, DATA_THE_WRITHING_COIL), _phase(PHASE_NORMAL), _hasSplit(false) { }
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
BossAI::Reset();
|
||||
_phase = PHASE_NORMAL;
|
||||
_hasSplit = false;
|
||||
_toxicAtrophyCasts = 0;
|
||||
summons.DespawnEntry(NPC_UNCOILED_WRITHE);
|
||||
}
|
||||
|
||||
@@ -68,58 +72,61 @@ struct boss_the_writhing_coil : public BossAI
|
||||
summons.DespawnEntry(NPC_UNCOILED_WRITHE);
|
||||
}
|
||||
|
||||
void EnterPhase(int phase)
|
||||
void EnterEvadeMode(EvadeReason why) override
|
||||
{
|
||||
if (phase == _phase)
|
||||
summons.DespawnEntry(NPC_UNCOILED_WRITHE);
|
||||
BossAI::EnterEvadeMode(why);
|
||||
}
|
||||
|
||||
void EnterPhase(uint8 phase)
|
||||
{
|
||||
if (_phase == phase)
|
||||
return;
|
||||
|
||||
_phase = phase;
|
||||
|
||||
events.CancelEvent(EVENT_SYNCHRONIZED_VENOM);
|
||||
events.CancelEvent(EVENT_TAIL_SCYTHE);
|
||||
events.CancelEvent(EVENT_TOXIC_BARRAGE);
|
||||
events.CancelEvent(EVENT_TOXIC_ATROPHY);
|
||||
events.CancelEvent(EVENT_VINDICTIVE_ONSLAUGHT);
|
||||
events.CancelEvent(EVENT_BURROWING_CHARGE);
|
||||
events.CancelEvent(EVENT_VENOM_JET);
|
||||
events.CancelEvent(EVENT_DEATH_RATTLE_TICK);
|
||||
events.CancelEvent(EVENT_VINE_GRIP);
|
||||
events.CancelEvent(EVENT_ENTER_UNCOIL);
|
||||
events.CancelEvent(EVENT_UNCOIL_DESPAWN);
|
||||
events.Reset();
|
||||
|
||||
if (phase == PHASE_NORMAL)
|
||||
{
|
||||
if (_phase == PHASE_UNCOIL)
|
||||
DoCastSelf(SPELL_REFORM_BOSS_COSMETIC, true);
|
||||
events.ScheduleEvent(EVENT_SYNCHRONIZED_VENOM, 1s);
|
||||
events.ScheduleEvent(EVENT_TAIL_SCYTHE, 8s);
|
||||
events.ScheduleEvent(EVENT_TOXIC_BARRAGE, 12s);
|
||||
events.ScheduleEvent(EVENT_TOXIC_ATROPHY, 20s);
|
||||
events.ScheduleEvent(EVENT_VINDICTIVE_ONSLAUGHT, 26s);
|
||||
events.ScheduleEvent(EVENT_BURROWING_CHARGE, 30s);
|
||||
events.ScheduleEvent(EVENT_ENTER_DEATH_RATTLE, 65s);
|
||||
if (_hasSplit)
|
||||
{
|
||||
// After the Writhes recombine the encounter resumes the rotation mid-cycle
|
||||
events.ScheduleEvent(EVENT_BURROWING_CHARGE, 2s);
|
||||
events.ScheduleEvent(EVENT_VINDICTIVE_ONSLAUGHT, 2s);
|
||||
events.ScheduleEvent(EVENT_VENOM_JET, 6s);
|
||||
events.ScheduleEvent(EVENT_SYNCHRONIZED_VENOM, 12s);
|
||||
events.ScheduleEvent(EVENT_TAIL_SCYTHE, 18s);
|
||||
events.ScheduleEvent(EVENT_TOXIC_BARRAGE, 24s);
|
||||
events.ScheduleEvent(EVENT_TOXIC_ATROPHY, 26s);
|
||||
}
|
||||
else
|
||||
{
|
||||
events.ScheduleEvent(EVENT_SYNCHRONIZED_VENOM, 8s);
|
||||
events.ScheduleEvent(EVENT_TAIL_SCYTHE, 14s);
|
||||
events.ScheduleEvent(EVENT_TOXIC_BARRAGE, 21s);
|
||||
events.ScheduleEvent(EVENT_TOXIC_ATROPHY, 23s);
|
||||
events.ScheduleEvent(EVENT_BURROWING_CHARGE, 37s);
|
||||
events.ScheduleEvent(EVENT_VINDICTIVE_ONSLAUGHT, 37s);
|
||||
events.ScheduleEvent(EVENT_VENOM_JET, 40s);
|
||||
}
|
||||
_hasSplit = true;
|
||||
events.ScheduleEvent(EVENT_ENTER_DEATH_RATTLE, 51s);
|
||||
}
|
||||
else if (phase == PHASE_DEATH_RATTLE)
|
||||
{
|
||||
DoCastSelf(SPELL_VINE_GRIP_KNOCKBACK, true);
|
||||
events.ScheduleEvent(EVENT_VINE_GRIP, 3s);
|
||||
events.ScheduleEvent(EVENT_DEATH_RATTLE_TICK, 2s);
|
||||
events.ScheduleEvent(EVENT_ENTER_UNCOIL, 30s);
|
||||
DoCastSelf(SPELL_DEATH_RATTLE);
|
||||
events.ScheduleEvent(EVENT_VINE_GRIP_MOVEMENT, 1s);
|
||||
events.ScheduleEvent(EVENT_VINE_GRIP_KNOCKBACK, 5s);
|
||||
events.ScheduleEvent(EVENT_ENTER_UNCOIL, 6s);
|
||||
}
|
||||
else if (phase == PHASE_UNCOIL)
|
||||
{
|
||||
// Split: cast Uncoil and spawn the shared-health Writhes
|
||||
me->CastSpell(me, SPELL_UNCOIL, true);
|
||||
me->CastSpell(me, SPELL_UNCOIL_2, true);
|
||||
for (uint8 i = 0; i < 5; ++i)
|
||||
{
|
||||
if (Creature* writhe = me->SummonCreature(NPC_UNCOILED_WRITHE, me->GetPosition(), TEMPSUMMON_MANUAL_DESPAWN))
|
||||
{
|
||||
writhe->AI()->DoZoneInCombat();
|
||||
me->CastSpell(writhe, SPELL_SPLIT_HEALTH, true);
|
||||
}
|
||||
}
|
||||
events.ScheduleEvent(EVENT_UNCOIL_DESPAWN, 12s);
|
||||
events.ScheduleEvent(EVENT_RECOMBINE, 24s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,68 +135,74 @@ struct boss_the_writhing_coil : public BossAI
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_SYNCHRONIZED_VENOM:
|
||||
for (uint8 i = 0; i < 5; ++i)
|
||||
{
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
|
||||
DoCast(target, urand(0, 1) ? SPELL_SYNCHRONIZED_VENOM_2 : SPELL_SYNCHRONIZED_VENOM_4);
|
||||
}
|
||||
events.Repeat(75s);
|
||||
DoCastSelf(SPELL_SYNCHRONIZED_VENOM);
|
||||
events.Repeat(37s);
|
||||
break;
|
||||
case EVENT_TAIL_SCYTHE:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 15.0f, true))
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::MinDistance, 0, 15.0f, true))
|
||||
DoCast(target, SPELL_TAIL_SCYTHE);
|
||||
events.Repeat(10s);
|
||||
events.Repeat(24s);
|
||||
break;
|
||||
case EVENT_TOXIC_BARRAGE:
|
||||
DoCastAOE(SPELL_TOXIC_BARRAGE, true);
|
||||
events.Repeat(15s);
|
||||
DoCastSelf(SPELL_TOXIC_BARRAGE);
|
||||
events.Repeat(24s);
|
||||
break;
|
||||
case EVENT_TOXIC_ATROPHY:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
|
||||
{
|
||||
DoCast(target, SPELL_TOXIC_ATROPHY, true);
|
||||
DoCast(target, SPELL_TOXIC_ATROPHY_2, true);
|
||||
}
|
||||
events.Repeat(20s);
|
||||
break;
|
||||
case EVENT_VINDICTIVE_ONSLAUGHT:
|
||||
DoCastAOE(SPELL_VINDICTIVE_ONSLAUGHT, true);
|
||||
events.Repeat(20s);
|
||||
DoCastSelf(SPELL_TOXIC_ATROPHY);
|
||||
_toxicAtrophyCasts = (_toxicAtrophyCasts + 1) % 3;
|
||||
events.Repeat(_toxicAtrophyCasts ? 5s : 24s);
|
||||
break;
|
||||
case EVENT_BURROWING_CHARGE:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
|
||||
DoCast(target, urand(0, 2) ? SPELL_BURROWING_CHARGE : SPELL_BURROWING_CHARGE_3);
|
||||
events.ScheduleEvent(EVENT_VENOM_JET, 2s);
|
||||
events.Repeat(16s);
|
||||
DoCast(target, SPELL_BURROWING_CHARGE);
|
||||
events.Repeat(52s);
|
||||
break;
|
||||
case EVENT_VINDICTIVE_ONSLAUGHT:
|
||||
DoCastSelf(SPELL_VINDICTIVE_ONSLAUGHT);
|
||||
events.Repeat(52s);
|
||||
break;
|
||||
case EVENT_VENOM_JET:
|
||||
for (uint8 i = 0; i < 3; ++i)
|
||||
{
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
|
||||
DoCast(target, urand(0, 1) ? SPELL_VENOM_JET : SPELL_VENOM_JET_2);
|
||||
}
|
||||
DoCastSelf(SPELL_VENOM_JET, true);
|
||||
events.ScheduleEvent(EVENT_VENOM_JET_CAST, 1s);
|
||||
events.Repeat(55s);
|
||||
break;
|
||||
case EVENT_VENOM_JET_CAST:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
|
||||
DoCast(target, SPELL_VENOM_JET_2);
|
||||
break;
|
||||
case EVENT_ENTER_DEATH_RATTLE:
|
||||
EnterPhase(PHASE_DEATH_RATTLE);
|
||||
break;
|
||||
case EVENT_DEATH_RATTLE_TICK:
|
||||
DoCastAOE(SPELL_DEATH_RATTLE_TICK, true);
|
||||
events.Repeat(1s);
|
||||
case EVENT_VINE_GRIP_MOVEMENT:
|
||||
DoCastSelf(SPELL_VINE_GRIP_MOVEMENT);
|
||||
break;
|
||||
case EVENT_VINE_GRIP:
|
||||
DoCastAOE(SPELL_VINE_GRIP_MOVEMENT, true);
|
||||
events.Repeat(4s);
|
||||
case EVENT_VINE_GRIP_KNOCKBACK:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 30.0f, true))
|
||||
DoCast(target, SPELL_VINE_GRIP_KNOCKBACK);
|
||||
break;
|
||||
case EVENT_ENTER_UNCOIL:
|
||||
EnterPhase(PHASE_UNCOIL);
|
||||
break;
|
||||
case EVENT_UNCOIL_DESPAWN:
|
||||
// Recombine the split snakes back into the boss
|
||||
case EVENT_RECOMBINE:
|
||||
DoCastSelf(SPELL_COMBINE_HEALTH, true);
|
||||
DoCastSelf(SPELL_ASSIMILATION, true);
|
||||
events.ScheduleEvent(EVENT_FINISH_RECOMBINE, 2s);
|
||||
break;
|
||||
case EVENT_FINISH_RECOMBINE:
|
||||
{
|
||||
std::list<Creature*> writhes;
|
||||
me->GetCreatureListWithEntryInGrid(writhes, NPC_UNCOILED_WRITHE, 60.0f);
|
||||
for (Creature* writhe : writhes)
|
||||
{
|
||||
writhe->CastSpell(writhe, SPELL_ASSIMILATION_2, true);
|
||||
writhe->CastSpell(writhe, SPELL_DESPAWN_SPLIT_SNAKES, true);
|
||||
writhe->DespawnOrUnsummon();
|
||||
}
|
||||
summons.DespawnEntry(NPC_UNCOILED_WRITHE);
|
||||
DoCastSelf(SPELL_REFORM_BOSS_COSMETIC, true);
|
||||
DoCastSelf(SPELL_REFORM_BOSS_COSMETIC_2, true);
|
||||
EnterPhase(PHASE_NORMAL);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -200,7 +213,7 @@ struct boss_the_writhing_coil : public BossAI
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING) && _phase == PHASE_NORMAL)
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING) && _phase != PHASE_UNCOIL)
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
@@ -211,43 +224,60 @@ struct boss_the_writhing_coil : public BossAI
|
||||
|
||||
private:
|
||||
uint8 _phase;
|
||||
bool _hasSplit;
|
||||
uint8 _toxicAtrophyCasts;
|
||||
};
|
||||
|
||||
// 262398 - Uncoiled Writhe
|
||||
enum WritheEvents
|
||||
{
|
||||
EVENT_WRITHE_TOXIC_ATROPHY = 1,
|
||||
EVENT_WRITHE_UNDERMINING,
|
||||
};
|
||||
|
||||
struct npc_uncoiled_writhe : public ScriptedAI
|
||||
{
|
||||
npc_uncoiled_writhe(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
void Reset() override
|
||||
void JustAppeared() override
|
||||
{
|
||||
ScriptedAI::Reset();
|
||||
DoCastSelf(SPELL_UNCOILED_WRITHE_IMMUNITY, true);
|
||||
DoCastSelf(SPELL_UNCOILED_WRITHE_UNCOIL, true);
|
||||
DoCastSelf(SPELL_UNCOILED, true);
|
||||
_events.ScheduleEvent(1, 8s);
|
||||
DoCastSelf(SPELL_SPLIT_HEALTH, true);
|
||||
DoCastSelf(SPELL_UNCOILED_WRITHE_IMMUNITY, true);
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* who) override
|
||||
{
|
||||
ScriptedAI::JustEngagedWith(who);
|
||||
_events.ScheduleEvent(1, 8s);
|
||||
_events.ScheduleEvent(EVENT_WRITHE_TOXIC_ATROPHY, 9s);
|
||||
_events.ScheduleEvent(EVENT_WRITHE_UNDERMINING, 13s);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
_events.Update(diff);
|
||||
|
||||
while (uint32 eventId = _events.ExecuteEvent())
|
||||
{
|
||||
if (eventId == 1)
|
||||
switch (eventId)
|
||||
{
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
|
||||
DoCast(target, urand(0, 1) ? SPELL_UNCOILED_WRITHE_TOXIC_ATROPHY : SPELL_UNCOILED_WRITHE_TOXIC_ATROPHY_2, true);
|
||||
_events.Repeat(10s);
|
||||
case EVENT_WRITHE_TOXIC_ATROPHY:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
|
||||
DoCast(target, SPELL_UNCOILED_WRITHE_TOXIC_ATROPHY);
|
||||
_events.Repeat(15s);
|
||||
break;
|
||||
case EVENT_WRITHE_UNDERMINING:
|
||||
DoCastSelf(SPELL_UNDERMINING, true);
|
||||
_events.Repeat(16s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -258,4 +288,4 @@ void AddSC_boss_the_writhing_coil()
|
||||
{
|
||||
RegisterAltarofFangsCreatureAI(boss_the_writhing_coil);
|
||||
RegisterAltarofFangsCreatureAI(npc_uncoiled_writhe);
|
||||
}
|
||||
}
|
||||
@@ -19,15 +19,14 @@
|
||||
#include "ScriptMgr.h"
|
||||
#include "altaroffangs.h"
|
||||
|
||||
enum ZuljanSpells
|
||||
enum ZuljanEvents
|
||||
{
|
||||
SPELL_BONESLICER = 1301413,
|
||||
SPELL_RITUAL_OF_THE_FANG = 1300876,
|
||||
SPELL_RITUAL_VENOM = 1300894,
|
||||
SPELL_AXEGRINDER = 1301111,
|
||||
SPELL_CHOP_DOWN = 1301350,
|
||||
SPELL_BLOODLETTING = 1301231,
|
||||
SPELL_AXEGRINDER_AURA = 1301114,
|
||||
EVENT_BLOODLETTING = 1,
|
||||
EVENT_RITUAL_OF_THE_FANG,
|
||||
EVENT_RITUAL_OF_THE_FANG_CAST,
|
||||
EVENT_AXEGRINDER,
|
||||
EVENT_CHOP_DOWN,
|
||||
EVENT_BONESLICER,
|
||||
};
|
||||
|
||||
enum ZuljanTexts
|
||||
@@ -36,82 +35,63 @@ enum ZuljanTexts
|
||||
SAY_DEATH = 1,
|
||||
};
|
||||
|
||||
enum events
|
||||
{
|
||||
EVENT_BONESLICER = 1,
|
||||
EVENT_RITUAL_OF_THE_FANG,
|
||||
EVENT_AXEGRINDER,
|
||||
EVENT_CHOP_DOWN,
|
||||
EVENT_BLOODLETTING,
|
||||
};
|
||||
|
||||
// 259447 - Zul'jan
|
||||
struct boss_zuljan : public BossAI
|
||||
{
|
||||
boss_zuljan(Creature* creature) : BossAI(creature, DATA_ZULJAN) { }
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
BossAI::Reset();
|
||||
me->RemoveAurasDueToSpell(SPELL_RITUAL_VENOM);
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* who) override
|
||||
{
|
||||
BossAI::JustEngagedWith(who);
|
||||
Talk(SAY_AGGRO);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
|
||||
StartCycle();
|
||||
}
|
||||
|
||||
void JustDied(Unit* killer) override
|
||||
{
|
||||
BossAI::JustDied(killer);
|
||||
Talk(SAY_DEATH);
|
||||
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_RITUAL_VENOM);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
|
||||
}
|
||||
|
||||
void EnterEvadeMode(EvadeReason /*why*/) override
|
||||
void StartCycle()
|
||||
{
|
||||
me->RemoveAllAuras();
|
||||
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_RITUAL_VENOM);
|
||||
_EnterEvadeMode();
|
||||
_DespawnAtEvade();
|
||||
}
|
||||
|
||||
void ScheduleTasks() override
|
||||
{
|
||||
events.ScheduleEvent(EVENT_CHOP_DOWN, 8s);
|
||||
events.ScheduleEvent(EVENT_BONESLICER, 13s);
|
||||
events.ScheduleEvent(EVENT_AXEGRINDER, 19s);
|
||||
events.ScheduleEvent(EVENT_BLOODLETTING, 26s);
|
||||
events.ScheduleEvent(EVENT_RITUAL_OF_THE_FANG, 40s);
|
||||
DoCastSelf(SPELL_ZULJAN_BLOODLETTING, true);
|
||||
events.ScheduleEvent(EVENT_RITUAL_OF_THE_FANG, 3s);
|
||||
events.ScheduleEvent(EVENT_AXEGRINDER, 18s);
|
||||
events.ScheduleEvent(EVENT_CHOP_DOWN, 30s);
|
||||
events.ScheduleEvent(EVENT_BONESLICER, 36s);
|
||||
events.ScheduleEvent(EVENT_BONESLICER, 52s);
|
||||
events.ScheduleEvent(EVENT_CHOP_DOWN, 60s);
|
||||
events.ScheduleEvent(EVENT_BLOODLETTING, 65s);
|
||||
}
|
||||
|
||||
void ExecuteEvent(uint32 eventId) override
|
||||
{
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_BLOODLETTING:
|
||||
StartCycle();
|
||||
break;
|
||||
case EVENT_RITUAL_OF_THE_FANG:
|
||||
DoCastSelf(SPELL_RITUAL_OF_THE_FANG);
|
||||
events.ScheduleEvent(EVENT_RITUAL_OF_THE_FANG_CAST, 1s);
|
||||
break;
|
||||
case EVENT_RITUAL_OF_THE_FANG_CAST:
|
||||
DoCastSelf(SPELL_RITUAL_OF_THE_FANG_2);
|
||||
break;
|
||||
case EVENT_AXEGRINDER:
|
||||
DoCastSelf(SPELL_AXEGRINDER);
|
||||
break;
|
||||
case EVENT_CHOP_DOWN:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::MinDistance, 0, 8.0f, true))
|
||||
DoCast(target, SPELL_CHOP_DOWN);
|
||||
break;
|
||||
case EVENT_BONESLICER:
|
||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
|
||||
DoCast(target, SPELL_BONESLICER);
|
||||
events.Repeat(Milliseconds(20500));
|
||||
break;
|
||||
case EVENT_RITUAL_OF_THE_FANG:
|
||||
DoCastAOE(SPELL_RITUAL_OF_THE_FANG);
|
||||
events.Repeat(60s);
|
||||
break;
|
||||
case EVENT_AXEGRINDER:
|
||||
DoCastAOE(SPELL_AXEGRINDER);
|
||||
events.Repeat(Milliseconds(20500));
|
||||
break;
|
||||
case EVENT_CHOP_DOWN:
|
||||
DoCastVictim(SPELL_CHOP_DOWN);
|
||||
events.Repeat(Milliseconds(20500));
|
||||
break;
|
||||
case EVENT_BLOODLETTING:
|
||||
DoCastVictim(SPELL_BLOODLETTING);
|
||||
events.Repeat(Milliseconds(20500));
|
||||
DoCastSelf(SPELL_BONESLICER_TRIGGER, true);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -122,4 +102,4 @@ struct boss_zuljan : public BossAI
|
||||
void AddSC_boss_zuljan()
|
||||
{
|
||||
RegisterAltarofFangsCreatureAI(boss_zuljan);
|
||||
}
|
||||
}
|
||||
@@ -128,6 +128,15 @@ enum DeathKnightSpells
|
||||
SPELL_DK_FORBIDDEN_KNOWLEDGE = 1256565,
|
||||
SPELL_DK_FORBIDDEN_SACRIFICE = 1256576,
|
||||
SPELL_DK_LESSER_GHOUL_BUFF = 1254252,
|
||||
SPELL_DK_FROZEN_DOMINION = 377226,
|
||||
SPELL_DK_FROZEN_DOMINION_MASTERY = 377253,
|
||||
SPELL_DK_REMORSELESS_WINTER = 196770,
|
||||
SPELL_DK_REMORSELESS_WINTER_DAMAGE = 196771,
|
||||
SPELL_DK_GLACIAL_ADVANCE = 194913,
|
||||
SPELL_DK_GLACIAL_ADVANCE_DAMAGE = 195975,
|
||||
SPELL_DK_OBLITERATE = 49020,
|
||||
SPELL_DK_RAZORICE = 51714,
|
||||
SPELL_DK_ARCTIC_ASSAULT = 456230,
|
||||
};
|
||||
|
||||
enum Misc
|
||||
@@ -1938,6 +1947,149 @@ class spell_dk_forbidden_sacrifice : public AuraScript
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
// 377226 - Frozen Dominion
|
||||
class spell_dk_frozen_dominion : public AuraScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_DK_FROZEN_DOMINION_MASTERY, SPELL_DK_REMORSELESS_WINTER_DAMAGE });
|
||||
}
|
||||
|
||||
bool CheckProc(ProcEventInfo& eventInfo)
|
||||
{
|
||||
Spell const* procSpell = eventInfo.GetProcSpell();
|
||||
return procSpell && procSpell->GetSpellInfo()->Id == SPELL_DK_REMORSELESS_WINTER_DAMAGE
|
||||
&& eventInfo.GetActionTarget();
|
||||
}
|
||||
|
||||
void HandleProc(AuraEffect* aurEff, ProcEventInfo& /*eventInfo*/)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
GetTarget()->CastSpell(GetTarget(), SPELL_DK_FROZEN_DOMINION_MASTERY, aurEff);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
DoCheckProc += AuraCheckProcFn(spell_dk_frozen_dominion::CheckProc);
|
||||
OnEffectProc += AuraEffectProcFn(spell_dk_frozen_dominion::HandleProc, EFFECT_1, SPELL_AURA_DUMMY);
|
||||
}
|
||||
};
|
||||
|
||||
// 51271 - Pillar of Frost
|
||||
class spell_dk_pillar_of_frost : public SpellScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_DK_FROZEN_DOMINION, SPELL_DK_REMORSELESS_WINTER });
|
||||
}
|
||||
|
||||
void HandleAfterCast()
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
AuraEffect const* frozenDominion = caster->GetAuraEffect(SPELL_DK_FROZEN_DOMINION, EFFECT_0);
|
||||
if (!frozenDominion)
|
||||
return;
|
||||
|
||||
caster->CastSpell(caster, SPELL_DK_REMORSELESS_WINTER, CastSpellExtraArgsInit{
|
||||
.TriggerFlags = TRIGGERED_FULL_MASK,
|
||||
.TriggeringSpell = GetSpell()
|
||||
});
|
||||
|
||||
if (Aura* remorselessWinter = caster->GetAura(SPELL_DK_REMORSELESS_WINTER))
|
||||
{
|
||||
int32 extraDuration = frozenDominion->GetAmount() * 100;
|
||||
remorselessWinter->SetMaxDuration(remorselessWinter->GetMaxDuration() + extraDuration);
|
||||
remorselessWinter->SetDuration(remorselessWinter->GetDuration() + extraDuration);
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
AfterCast += SpellCastFn(spell_dk_pillar_of_frost::HandleAfterCast);
|
||||
}
|
||||
};
|
||||
|
||||
// 456230 - Arctic Assault
|
||||
class spell_dk_arctic_assault : public AuraScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_DK_GLACIAL_ADVANCE_DAMAGE, SPELL_DK_OBLITERATE, SPELL_DK_FROST_SCYTHE });
|
||||
}
|
||||
|
||||
bool CheckProc(ProcEventInfo& eventInfo)
|
||||
{
|
||||
Spell const* procSpell = eventInfo.GetProcSpell();
|
||||
return procSpell && eventInfo.GetActionTarget()
|
||||
&& (procSpell->GetSpellInfo()->Id == SPELL_DK_OBLITERATE || procSpell->GetSpellInfo()->Id == SPELL_DK_FROST_SCYTHE);
|
||||
}
|
||||
|
||||
void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
GetTarget()->CastSpell(eventInfo.GetActionTarget(), SPELL_DK_GLACIAL_ADVANCE_DAMAGE, aurEff);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
DoCheckProc += AuraCheckProcFn(spell_dk_arctic_assault::CheckProc);
|
||||
OnEffectProc += AuraEffectProcFn(spell_dk_arctic_assault::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
|
||||
}
|
||||
};
|
||||
|
||||
// 194913 - Glacial Advance
|
||||
class spell_dk_glacial_advance : public SpellScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_DK_GLACIAL_ADVANCE_DAMAGE });
|
||||
}
|
||||
|
||||
void HandleDummy(SpellEffIndex effIndex)
|
||||
{
|
||||
PreventHitDefaultEffect(effIndex);
|
||||
|
||||
if (Unit* target = GetHitUnit())
|
||||
GetCaster()->CastSpell(target, SPELL_DK_GLACIAL_ADVANCE_DAMAGE, CastSpellExtraArgsInit{
|
||||
.TriggerFlags = TRIGGERED_FULL_MASK,
|
||||
.TriggeringSpell = GetSpell()
|
||||
});
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_dk_glacial_advance::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
|
||||
}
|
||||
};
|
||||
|
||||
// 195975 - Glacial Advance damage
|
||||
class spell_dk_glacial_advance_damage : public SpellScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_DK_ARCTIC_ASSAULT, SPELL_DK_RAZORICE });
|
||||
}
|
||||
|
||||
void HandleDamage(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
if (SpellInfo const* triggeringAura = GetSpell()->GetTriggeredByAuraSpell())
|
||||
if (triggeringAura->Id == SPELL_DK_ARCTIC_ASSAULT)
|
||||
SetHitDamage(CalculatePct(GetHitDamage(), triggeringAura->GetEffect(EFFECT_0).CalcValue(caster)));
|
||||
|
||||
caster->CastSpell(GetHitUnit(), SPELL_DK_RAZORICE, CastSpellExtraArgsInit{
|
||||
.TriggerFlags = TRIGGERED_FULL_MASK,
|
||||
.TriggeringSpell = GetSpell()
|
||||
});
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_dk_glacial_advance_damage::HandleDamage, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_deathknight_spell_scripts()
|
||||
{
|
||||
RegisterSpellScript(spell_dk_advantage_t10_4p);
|
||||
@@ -1994,6 +2146,11 @@ void AddSC_deathknight_spell_scripts()
|
||||
RegisterSpellScript(spell_dk_vestigial_shell);
|
||||
RegisterSpellScript(spell_dk_putrefy);
|
||||
RegisterSpellScript(spell_dk_forbidden_sacrifice);
|
||||
RegisterSpellScript(spell_dk_frozen_dominion);
|
||||
RegisterSpellScript(spell_dk_pillar_of_frost);
|
||||
RegisterSpellScript(spell_dk_arctic_assault);
|
||||
RegisterSpellScript(spell_dk_glacial_advance);
|
||||
RegisterSpellScript(spell_dk_glacial_advance_damage);
|
||||
|
||||
RegisterAreaTriggerAI(at_dk_death_and_decay);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user