Merge pull request #116 from Grimfeather/Scourge-Invasion

Scourge Invasion
This will be available during the Naxx phase.

Low level content outside the 6 major vanilla cities. Nothing at the TBC cities for now.
Azshara, Winterspring, Tanaris, Burning Steppes, Blasted Lands and Eastern Plaguelands are under constant attack.
Dungeon bosses: Sever, Balzaphon, Lady Falther'ess, Revanchion and Scorn
Quests in vanilla cities and at Light's Hope chapel.
This commit is contained in:
Grimfeather
2025-05-25 03:24:23 +02:00
committed by GitHub
6 changed files with 2469 additions and 21 deletions

376
sql/world/base/si.sql Normal file
View File

@@ -0,0 +1,376 @@
SET @IPPPHASE := 65536;
/*-- REMOVE EVENT 17 --*/
DELETE FROM `game_event_creature` WHERE `eventEntry` = 17;
DELETE FROM `game_event_gameobject` WHERE `eventEntry` = 17;
DELETE FROM `game_event_npcflag` WHERE `eventEntry` = 17;
DELETE FROM `game_event_npc_vendor` WHERE `eventEntry` = 17;
DELETE FROM `game_event` WHERE `eventEntry` = 17;
/* Friendship Bread and Freshly-Squeezed Lemonade */
-- Making these NPCs vendors, they will appear after the Naxx phase started.
-- Before Naxx they will be replaced with copies that do not sell these items.
DELETE FROM `npc_vendor` WHERE `entry` IN (2482, 3044, 4165, 5173, 5698, 15006) AND `item` IN (23160, 23161);
INSERT INTO `npc_vendor` (`entry`, `slot`, `item`, `maxcount`, `incrtime`, `ExtendedCost`, `VerifiedBuild`) VALUES
(2482, 0, 23160, 0, 0, 0, 0), -- Zarena Cromwind
(2482, 0, 23161, 0, 0, 0, 0),
(3044, 0, 23160, 0, 0, 0, 0), -- Miles Welsh
(3044, 0, 23161, 0, 0, 0, 0),
(4165, 0, 23160, 0, 0, 0, 0), -- Elissa Dumas
(4165, 0, 23161, 0, 0, 0, 0),
(5173, 0, 23160, 0, 0, 0, 0), -- Alexander Calder
(5173, 0, 23161, 0, 0, 0, 0),
(5698, 0, 23160, 0, 0, 0, 0), -- Joanna Whitehall
(5698, 0, 23161, 0, 0, 0, 0),
(15006, 0, 23160, 0, 0, 0, 0), -- Deze Snowbane
(15006, 0, 23161, 0, 0, 0, 0);
UPDATE `creature` SET `npcflag` = 179 WHERE `guid` = 1803;
UPDATE `creature` SET `npcflag` = 179 WHERE `guid` = 26771;
UPDATE `creature` SET `npcflag` = 129 WHERE `guid` = 38112;
UPDATE `creature` SET `npcflag` = 177 WHERE `guid` = 46320;
UPDATE `creature` SET `npcflag` = 1048705 WHERE `guid` = 208240;
UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_naxx40' WHERE `entry` IN (2482, 3044, 4165, 5173, 5698, 15006);
SET @Zarena := 102482;
SET @Miles := 103044;
SET @Elissa := 104165;
SET @Alexander := 105173;
SET @Joanna := 105698;
SET @Deze := 115006;
-- Create copies with script npc_ipp_pre_naxx40
DELETE FROM `creature_template` WHERE `entry` IN (@Zarena, @Miles, @Elissa, @Alexander, @Joanna, @Deze);
INSERT INTO `creature_template` (`entry`, `difficulty_entry_1`, `difficulty_entry_2`, `difficulty_entry_3`, `KillCredit1`, `KillCredit2`, `name`, `subname`, `IconName`, `gossip_menu_id`, `minlevel`, `maxlevel`, `exp`, `faction`, `npcflag`, `speed_walk`, `speed_run`, `speed_swim`, `speed_flight`, `detection_range`, `scale`, `rank`, `dmgschool`, `DamageModifier`, `BaseAttackTime`, `RangeAttackTime`, `BaseVariance`, `RangeVariance`, `unit_class`, `unit_flags`, `unit_flags2`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `trainer_class`, `trainer_race`, `type`, `type_flags`, `lootid`, `pickpocketloot`, `skinloot`, `PetSpellDataId`, `VehicleId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `HoverHeight`, `HealthModifier`, `ManaModifier`, `ArmorModifier`, `ExperienceModifier`, `RacialLeader`, `movementId`, `RegenHealth`, `mechanic_immune_mask`, `spell_school_immune_mask`, `flags_extra`, `ScriptName`, `VerifiedBuild`) VALUES
(@Zarena, 0, 0, 0, 0, 0, 'Zarena Cromwind', 'Superior Weaponsmith', NULL, 0, 43, 43, 0, 120, 4224, 1, 1.14286, 1, 1, 18, 1, 0, 0, 1, 2000, 2000, 1, 1, 1, 512, 2048, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 1, 1.2, 1, 1, 1, 0, 0, 1, 0, 0, 2, 'npc_ipp_pre_naxx40', 12340),
(@Miles, 0, 0, 0, 0, 0, 'Miles Welsh', 'Priest Trainer', NULL, 4533, 40, 40, 0, 68, 51, 1, 1.14286, 1, 1, 18, 1, 0, 0, 1.1, 2000, 2000, 1, 1, 1, 33280, 2048, 0, 0, 0, 0, 5, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 1, 1.15, 1, 1, 1, 0, 0, 1, 0, 0, 2, 'npc_ipp_pre_naxx40', 12340),
(@Elissa, 0, 0, 0, 0, 0, 'Elissa Dumas', 'Portal Trainer', NULL, 4821, 35, 35, 0, 80, 49, 1, 1.14286, 1, 1, 18, 1, 0, 0, 1.45, 2000, 2000, 1, 1, 8, 512, 2048, 0, 0, 0, 0, 8, 0, 7, 134217728, 0, 0, 0, 0, 0, 0, 0, '', 0, 1, 1.1, 1, 1.6, 1, 0, 0, 1, 0, 0, 2, 'npc_ipp_pre_naxx40', 12340),
(@Alexander, 0, 0, 0, 0, 0, 'Alexander Calder', 'Warlock Trainer', NULL, 4566, 60, 60, 0, 55, 51, 1, 1.14286, 1, 1, 18, 1, 0, 0, 1.05, 2000, 2000, 1, 1, 1, 512, 2048, 0, 0, 0, 0, 9, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 1, 1.35, 1, 2.4, 1, 0, 0, 1, 0, 0, 2, 'npc_ipp_pre_naxx40', 12340),
(@Joanna, 0, 0, 0, 0, 0, 'Joanna Whitehall', NULL, NULL, 8730, 40, 40, 0, 68, 1, 1, 1.14286, 1, 1, 18, 1, 0, 0, 1.1, 2000, 2000, 1, 1, 1, 37376, 2048, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 1, 1.15, 1, 1, 1, 0, 0, 1, 0, 0, 2, 'npc_ipp_pre_naxx40', 12340),
(@Deze, 0, 0, 0, 0, 0, 'Deze Snowbane', 'Arathi Basin Battlemaster', NULL, 6470, 61, 61, 0, 412, 1048577, 1, 1.14286, 1, 1, 20, 1, 1, 0, 5.1, 2000, 2000, 1, 1, 1, 832, 2048, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, '', 0, 1, 50, 1, 1.15, 1, 0, 0, 1, 0, 0, 2, 'npc_ipp_pre_naxx40', 12340);
DELETE FROM `creature_template_addon` WHERE `entry` IN (@Elissa, @Alexander);
INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
(@Elissa, 0, 0, 0, 1, 0, 0, NULL),
(@Alexander, 0, 0, 0, 1, 0, 0, NULL);
DELETE FROM `creature_template_locale` WHERE `entry` IN (@Zarena, @Miles, @Elissa, @Alexander, @Joanna, @Deze);
INSERT INTO `creature_template_locale` (`entry`, `locale`, `Name`, `Title`, `VerifiedBuild`) VALUES
(@Zarena, 'deDE', 'Zarena Stahlwind', 'šberragende Waffenschmiedin', 18019),
(@Zarena, 'esES', 'Zarena Cromvento', 'Forjadora de armas superior', 18019),
(@Zarena, 'esMX', 'Zarena Cromvento', 'Forjadora de armas superior', 18019),
(@Zarena, 'frFR', 'Zarena Cromwind', 'Excellente fabricante d\'armes', 18019),
(@Zarena, 'koKR', ' ', ' ', 18019),
(@Zarena, 'ruRU', 'Зарена Кромвинд', 'Опытная оружейница', 18019),
(@Zarena, 'zhCN', '·', '', 18019),
(@Zarena, 'zhTW', '·', '', 18019),
(@Miles, 'deDE', 'Miles Welsch', 'Priesterlehrer', 18019),
(@Miles, 'esES', 'Miles Welsh', 'Instructor de sacerdotes', 18019),
(@Miles, 'esMX', 'Miles Welsh', 'Instructor de sacerdotes', 18019),
(@Miles, 'frFR', 'Miles Welsh', 'MaŒtre des prˆtres', 18019),
(@Miles, 'koKR', ' ', ' ', 18019),
(@Miles, 'ruRU', 'Майлз Уэльш', 'Наставник жрецов', 18019),
(@Miles, 'zhCN', '·', '', 18019),
(@Miles, 'zhTW', '·', '', 18019),
(@Elissa, 'deDE', 'Elissa Dumas', 'Portallehrerin', 18019),
(@Elissa, 'esES', 'Elissa Dumas', 'Instructora de portal', 18019),
(@Elissa, 'esMX', 'Elissa Dumas', 'Instructora de portal', 18019),
(@Elissa, 'frFR', 'Elissa Dumas', 'MaŒtre des portails', 18019),
(@Elissa, 'koKR', ' ', ' ', 18019),
(@Elissa, 'ruRU', 'Элисса Дюма', 'Изучение порталов', 18019),
(@Elissa, 'zhCN', '·', '', 18019),
(@Elissa, 'zhTW', '·', '', 18019),
(@Alexander, 'deDE', 'Alexander Calder', 'Hexenmeisterlehrer', 18019),
(@Alexander, 'esES', 'Alexander Calder', 'Instructor de brujos', 18019),
(@Alexander, 'esMX', 'Alexander Calder', 'Instructor de brujos', 18019),
(@Alexander, 'frFR', 'Alexander Calder', 'MaŒtre des dmonistes', 18019),
(@Alexander, 'koKR', ' ', ' ', 18019),
(@Alexander, 'ruRU', 'Александр Кальдер', 'Наставник чернокнижников', 18019),
(@Alexander, 'zhCN', '·', '', 18019),
(@Alexander, 'zhTW', '·', '', 18019),
(@Joanna, 'deDE', 'Joanna Weiáhall', '', 18019),
(@Joanna, 'esES', 'Joanna Whitehall', '', 18019),
(@Joanna, 'esMX', 'Joanna Whitehall', '', 18019),
(@Joanna, 'frFR', 'Joanna Blancmanoir', '', 18019),
(@Joanna, 'koKR', ' ', '', 18019),
(@Joanna, 'ruRU', 'Джоанна Вайтхолл', '', 18019),
(@Joanna, 'zhCN', '·怀', '', 18019),
(@Joanna, 'zhTW', '·', '', 18019),
(@Deze, 'deDE', 'Deze Schneefluch', 'Kampfmeisterin des Arathibeckens', 18019),
(@Deze, 'esES', 'Deze Delirion¡veo', 'Maestra de batalla de la Cuenca de Arathi', 18019),
(@Deze, 'esMX', 'Deze Delirion¡veo', 'Maestra de batalla de la Cuenca de Arathi', 18019),
(@Deze, 'frFR', 'Deze Plaie-des-neiges', 'MaŒtre de guerre du bassin Arathi', 18019),
(@Deze, 'koKR', ' ', ' ', 18019),
(@Deze, 'ruRU', 'Дези Холодная', 'Военачальник Низины Арати', 18019),
(@Deze, 'zhCN', '·', '', 18019),
(@Deze, 'zhTW', '·', '', 18019);
DELETE FROM `creature_template_model` WHERE `CreatureID` IN (@Zarena, @Miles, @Elissa, @Alexander, @Joanna, @Deze);
INSERT INTO `creature_template_model` (`CreatureID`, `Idx`, `CreatureDisplayID`, `DisplayScale`, `Probability`, `VerifiedBuild`) VALUES
(@Zarena, 0, 4490, 1, 1, 12340),
(@Miles, 0, 2139, 1, 1, 12340),
(@Elissa, 0, 7669, 1, 1, 12340),
(@Alexander, 0, 3122, 1, 1, 12340),
(@Joanna, 0, 4052, 1, 1, 12340),
(@Deze, 0, 15112, 1, 1, 12340);
DELETE FROM `creature` WHERE `id1` IN (@Zarena, @Miles, @Elissa, @Alexander, @Joanna, @Deze);
INSERT INTO `creature` (`guid`, `id1`, `id2`, `id3`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`, `CreateObject`, `Comment`) VALUES
(602482, @Zarena, 0, 0, 0, 0, 0, 1, 1, 0, -14379.1, 412.672, 6.8203, 5.70723, 300, 0, 0, 2059, 0, 0, 0, 0, 0, '', 0, 0, NULL),
(603044, @Miles, 0, 0, 1, 0, 0, 1, 1, 1, -956.24, 252.418, 97.8755, 4.2237, 250, 0, 0, 1753, 0, 0, 0, 0, 0, '', 0, 0, NULL),
(604165, @Elissa, 0, 0, 1, 0, 0, 1, 1, 1, 9658.69, 2508.7, 1331.7, 2.25148, 300, 0, 0, 992, 2680, 0, 0, 0, 0, '', 0, 0, NULL),
(605173, @Alexander, 0, 0, 0, 0, 0, 1, 1, 1, -4608.55, -1109.55, 511.691, 1.69297, 490, 0, 0, 4120, 0, 0, 0, 0, 0, '', 0, 0, NULL),
(605698, @Joanna, 0, 0, 0, 0, 0, 1, 1, 1, 1653.56, 365.232, -60.6772, 0.977384, 300, 0, 0, 1753, 0, 0, 0, 0, 0, '', 0, 0, NULL),
(615006, @Deze, 0, 0, 1, 0, 0, 1, 1, 0, 2002.26, -4796.74, 56.8471, 3.00197, 600, 0, 0, 1, 0, 0, 0, 0, 0, '', NULL, 0, NULL);
DELETE FROM `creature_equip_template` WHERE `CreatureID` IN (@Miles, @Elissa, @Alexander, @Joanna, @Deze);
INSERT INTO `creature_equip_template` (`CreatureID`, `ID`, `ItemID1`, `ItemID2`, `ItemID3`, `VerifiedBuild`) VALUES
(@Miles, 1, 12786, 0, 0, 18019),
(@Elissa, 1, 2177, 0, 0, 18019),
(@Alexander, 1, 2559, 0, 0, 18019),
(@Joanna, 1, 2809, 0, 0, 18019),
(@Deze, 1, 10616, 19053, 0, 18019);
DELETE FROM `npc_vendor` WHERE `entry` IN (@Zarena);
INSERT INTO `npc_vendor` (`entry`, `slot`, `item`, `maxcount`, `incrtime`, `ExtendedCost`, `VerifiedBuild`) VALUES
(@Zarena, 0, 2520, 0, 0, 0, 0),
(@Zarena, 0, 2521, 0, 0, 0, 0),
(@Zarena, 0, 2522, 0, 0, 0, 0),
(@Zarena, 0, 2523, 0, 0, 0, 0),
(@Zarena, 0, 2524, 0, 0, 0, 0),
(@Zarena, 0, 2525, 0, 0, 0, 0),
(@Zarena, 0, 2526, 0, 0, 0, 0),
(@Zarena, 0, 2527, 0, 0, 0, 0),
(@Zarena, 0, 12163, 1, 7200, 0, 0),
(@Zarena, 0, 12251, 1, 3600, 0, 0),
(@Zarena, 0, 12252, 1, 43200, 0, 0);
DELETE FROM `battlemaster_entry` WHERE `entry` = @Deze;
INSERT INTO `battlemaster_entry` (`entry`, `bg_template`) VALUES (@Deze, 3);
/*-- Smart AI --*/
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` IN
(14682, 14684, 14686, 14690, 14697, 16136, 16141, 16230, 16298, 16299, 16379, 16380, 16422, 16423, 16437, 16438);
DELETE FROM `smart_scripts` WHERE `entryorguid` IN
(14682, 14684, 14686, 14690, 16136, 16141, 14697, 16230, 16298, 16299, 16379, 16380, 16422, 16423, 16437, 16438);
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`,
`event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`,
`action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`,
`target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(14682, 0, 0, 0, 0, 0, 100, 0, 3000, 10000, 8000, 20000, 0, 0, 11, 17745, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sever - In Combat - Cast Diseased Spit'),
(14682, 0, 1, 0, 0, 0, 100, 0, 15000, 18000, 135000, 138000, 0, 0, 11, 8269, 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sever - In Combat - Cast Enrage'),
(14684, 0, 0, 0, 0, 0, 100, 0, 2000, 5000, 12000, 15000, 0, 0, 11, 12542, 1, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 'Balzaphon - In Combat - Cast Fear'),
(14684, 0, 1, 0, 0, 0, 100, 0, 0, 1000, 3000, 4000, 0, 0, 11, 16799, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Balzaphon - In Combat - Cast Frostbolt'),
(14684, 0, 2, 0, 0, 0, 100, 0, 5000, 10000, 13000, 21000, 0, 0, 11, 8398, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Balzaphon - In Combat - Cast Frostbolt Volley'),
(14686, 0, 0, 0, 0, 0, 100, 0, 1000, 12000, 18000, 24000, 0, 0, 11, 17105, 0, 0, 0, 0, 0, 5, 30, 0, 0, 0, 0, 0, 0, 0, 'Lady Falther\'ess - In Combat - Cast Banshee Curse'),
(14686, 0, 1, 0, 0, 0, 100, 0, 4000, 15000, 15000, 25000, 0, 0, 11, 16838, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Lady Falther\'ess - In Combat - Cast Banshee Shriek'),
(14686, 0, 2, 0, 0, 0, 100, 0, 4000, 15000, 15000, 25000, 0, 0, 11, 22743, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Lady Falther\'ess - In Combat - Cast Ribbon of Souls'),
(14690, 0, 0, 0, 106, 0, 100, 0, 4000, 9000, 8000, 15000, 0, 10, 11, 14907, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Revanchion - In Combat - Cast Frost Nova'),
(14690, 0, 1, 0, 0, 0, 100, 0, 5000, 7000, 15000, 17000, 0, 0, 11, 15245, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Revanchion - In Combat - Cast Shadow Bolt Volley'),
--
(16230, 0, 0, 0, 11, 0, 100, 512, 0, 0, 0, 0, 0, 0, 2, 190, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cultist Engineer - On Respawn - Set Faction 190'),
(16230, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 36, 16230, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cultist Engineer - On Respawn - Set guid to Cultist Engineer'),
(16230, 0, 2, 0, 1, 0, 100, 0, 1000, 2000, 0, 0, 0, 0, 11, 47850, 3, 6, 0, 0, 0, 9, 16136, 0, 15, 1, 0, 0, 0, 0, 'Cultist Engineer - Out of Combat - Cast Scourge Beam'), -- wrong spell, visual incorrect
(16230, 0, 3, 4, 62, 0, 100, 0, 66000, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cultist Engineer - On Gossip Option 0 Selected - Say Line 1'),
(16230, 0, 4, 5, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 57, 22484, 8, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Cultist Engineer - On Gossip Option 0 Selected - Remove 8 Necrotic Runes'),
(16230, 0, 5, 6, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 36, 16143, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cultist Engineer - On Gossip Option 0 Selected - Set guid to Shadow of Doom'),
(16230, 0, 6, 7, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 142, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cultist Engineer - On Gossip Option 0 Selected - Set Health 100%'),
(16230, 0, 7, 8, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 2, 14, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cultist Engineer - On Gossip Option 0 Selected - Set Faction 14'),
(16230, 0, 8, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Cultist Engineer - On Gossip Option 0 Selected - Start Attacking'),
(16230, 0, 9, 0, 0, 0, 100, 0, 4000, 7000, 9000, 12000, 0, 0, 11, 16568, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Shadow of Doom - In Combat - Cast Mind Flay'),
(16230, 0, 10, 0, 0, 0, 100, 0, 2000, 5000, 12000, 15000, 0, 0, 11, 12542, 1, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 'Shadow of Doom - In Combat - Cast Fear'),
--
(14697, 0, 0, 0, 0, 0, 100, 0, 2000, 4000, 12000, 15000, 0, 0, 11, 16790, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Lumbering Horror - In Combat - Cast Knockdown'),
(14697, 0, 1, 0, 0, 0, 100, 0, 5000, 7000, 10000, 12000, 0, 0, 11, 55090, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Lumbering Horror - In Combat - Cast Scourge Strike'),
(14697, 0, 2, 0, 0, 0, 100, 0, 3200, 11900, 11500, 16100, 0, 0, 11, 5568, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Lumbering Horror - In Combat - Cast Trample'),
(16379, 0, 0, 0, 0, 0, 100, 0, 2000, 5000, 12000, 15000, 0, 0, 11, 16243, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Spirit of the Damned - In Combat - Cast Ribbon of Souls'),
(16379, 0, 1, 0, 0, 0, 100, 0, 5000, 7000, 10000, 12000, 0, 0, 11, 55090, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Spirit of the Damned - In Combat - Cast Scourge Strike'),
(16380, 0, 0, 0, 11, 0, 100, 1, 0, 0, 0, 0, 0, 0, 11, 32900, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Bone Witch - On Respawn - Cast Bone Shards'),
(16380, 0, 1, 0, 0, 0, 100, 0, 5000, 7000, 10000, 12000, 0, 0, 11, 55090, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Bone Witch - In Combat - Cast Scourge Strike'),
--
(16422, 0, 0, 0, 0, 0, 100, 0, 5000, 7000, 10000, 12000, 0, 0, 11, 55090, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Skeletal Soldier - In Combat - Cast Scourge Strike'),
(16423, 0, 0, 0, 0, 0, 100, 0, 5000, 7000, 10000, 12000, 0, 0, 11, 55090, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Spectral Apparition - In Combat - Cast Scourge Strike'),
(16437, 0, 0, 0, 0, 0, 100, 0, 5000, 7000, 10000, 12000, 0, 0, 11, 55090, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Spectral Spirit - In Combat - Cast Scourge Strike'),
(16438, 0, 0, 0, 0, 0, 100, 0, 5000, 7000, 10000, 12000, 0, 0, 11, 55090, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Skeletal Trooper - In Combat - Cast Scourge Strike'),
--
(16141, 0, 0, 0, 0, 0, 100, 0, 6000, 9000, 16000, 24000, 0, 0, 11, 7367, 33, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghoul Berserker - In Combat - Cast Infected Bite'),
(16141, 0, 1, 0, 0, 0, 100, 0, 5000, 7000, 10000, 12000, 0, 0, 11, 55090, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Ghoul Berserker - In Combat - Cast Scourge Strike'),
(16298, 0, 0, 0, 0, 0, 100, 0, 2000, 10000, 10000, 20000, 0, 0, 11, 13444, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Spectral Soldier - In Combat - Cast Sunder Armor'),
(16298, 0, 1, 0, 0, 0, 100, 0, 5000, 7000, 10000, 12000, 0, 0, 11, 55090, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Spectral Soldier - In Combat - Cast Scourge Strike'),
(16299, 0, 0, 0, 11, 0, 100, 1, 0, 0, 0, 0, 0, 0, 11, 32900, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Skeletal Shocktrooper - On Respawn - Cast Bone Shards'),
(16299, 0, 1, 0, 0, 0, 100, 0, 5000, 7000, 10000, 12000, 0, 0, 11, 55090, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Skeletal Shocktrooper - In Combat - Cast Scourge Strike'),
--
(16136, 0, 0, 0, 12, 0, 100, 0, 0, 0, 0, 0, 0, 40, 11, 28032, 0, 39, 0, 0, 0, 9, 16141, 0, 40, 2, 0, 0, 0, 0, 'Necrotic Shard - Ghoul Berserker - Cast Zap Crystal'), -- doesn't work yet
(16136, 0, 1, 0, 12, 0, 100, 0, 0, 0, 0, 0, 0, 40, 11, 28032, 0, 39, 0, 0, 0, 9, 16298, 0, 40, 2, 0, 0, 0, 0, 'Necrotic Shard - Spectral Soldier - Cast Zap Crystal'),
(16136, 0, 2, 0, 12, 0, 100, 0, 0, 0, 0, 0, 0, 40, 11, 28032, 0, 39, 0, 0, 0, 9, 16299, 0, 40, 2, 0, 0, 0, 0, 'Necrotic Shard - Skeletal Shocktrooper - Cast Zap Crystal');
/*-- Object and NPC Updates --*/
UPDATE `creature_template` SET `name` = 'Mouth of Kel\'Thuzad' WHERE `entry` = 16995;
-- Necrotic Shards 256+4
UPDATE `creature_template` SET `unit_flags` = 260 WHERE `entry` = 16136;
-- Cultist Engineer
UPDATE `creature_template` SET `gossip_menu_id` = 66000, `npcflag` = 1, `unit_flags` = 514, `flags_extra` = 4194304 WHERE `entry` = 16230;
-- Lumbering Horror, fix movement
UPDATE `creature_template` SET `unit_flags` = 0, `HealthModifier` = 5.4 WHERE `entry` = 14697;
-- Spirit of the Damned, Bone Witch
UPDATE `creature_template` SET `HealthModifier` = 5 WHERE `entry` IN (16379, 16380);
-- Ghoul Berserker, Spectral Soldier, Skeletal Shocktrooper
UPDATE `creature_template` SET `HealthModifier` = 2.7 WHERE `entry` IN (16141, 16298, 16299);
-- Necropolis Not selectable
UPDATE `gameobject_template_addon` SET `flags` = 16 WHERE `entry` IN (181154, 181215, 181223, 181373, 181374);
-- Shadow of Doom, fix Necrotic runes drop
UPDATE `creature_loot_template` SET `MinCount` = 30, `MaxCount` = 30 WHERE `Item` = 22484 AND `entry` = 16143;
DELETE FROM `creature_onkill_reputation` WHERE `creature_id` IN (16141, 16298, 16299, 14697, 16379, 16380, 16143);
INSERT INTO `creature_onkill_reputation` (`creature_id`, `RewOnKillRepFaction1`, `RewOnKillRepFaction2`,
`MaxStanding1`, `IsTeamAward1`, `RewOnKillRepValue1`, `MaxStanding2`, `IsTeamAward2`, `RewOnKillRepValue2`, `TeamDependent`) VALUES
(16141, 529, 0, 4, 0, 5, 0, 0, 0, 0),
(16298, 529, 0, 4, 0, 5, 0, 0, 0, 0),
(16299, 529, 0, 4, 0, 5, 0, 0, 0, 0),
(14697, 529, 0, 5, 0, 10, 0, 0, 0, 0),
(16379, 529, 0, 5, 0, 10, 0, 0, 0, 0),
(16380, 529, 0, 5, 0, 10, 0, 0, 0, 0),
(16143, 529, 0, 5, 0, 50, 0, 0, 0, 0);
/*-- Quests --*/
-- Lieutenants, Investigate the Scourge
UPDATE `quest_template` SET `AllowableRaces` = 1101 WHERE `ID` IN (9260, 9261, 9262); -- Stormwind, Ironforge, Darnassus, Exodar(12817)
UPDATE `quest_template` SET `AllowableRaces` = 690 WHERE `ID` IN (9263, 9264, 9265); -- Orgrimmar, Thunder Bluff, Undercity, Silvermoon(12816)
UPDATE `creature_template` SET `npcflag` = 2 WHERE `entry` IN (16478, 16484, 16490, 16493, 16494, 16495);
UPDATE `creature_template` SET `npcflag` = 0 WHERE `entry` IN (29441, 29442); -- there are no scourge outside Exodar and Silvermoon.
DELETE FROM `creature_queststarter` WHERE `quest` IN (9260, 9261, 9262, 9263, 9264, 9265); -- 12816, 12817
INSERT INTO `creature_queststarter` (`id`, `quest`) VALUES
(16478, 9260), -- Orrin
(16484, 9261), -- Nevell
(16490, 9264), -- Lisande
(16493, 9263), -- Dagel
(16494, 9265), -- Rukag
(16495, 9262); -- Beitha
-- (29441, 12816), -- Julek
-- (29442, 12817); -- Kregor
DELETE FROM `creature_questender` WHERE `quest` IN (9260, 9261, 9262, 9263, 9264, 9265); -- 12816, 12817
INSERT INTO `creature_questender` (`id`, `quest`) VALUES
(16478, 9260),
(16484, 9261),
(16490, 9264),
(16493, 9263),
(16494, 9265),
(16495, 9262);
-- (29441, 12816),
-- (29442, 12817);
-- Necrotic Crystal item quests
DELETE FROM `creature_questender` WHERE `quest` IN (9292, 9310);
INSERT INTO `creature_questender` (`id`, `quest`) VALUES
(16478, 9292),
(16494, 9310);
-- Argent Scout and Recruiter, Light's Hope Chapel
UPDATE `creature_template` SET `npcflag` = 2 WHERE `entry` IN (16241, 16255);
DELETE FROM `creature_queststarter` WHERE `quest` = 9154;
INSERT INTO `creature_queststarter` (`id`, `quest`) VALUES
(16241, 9154),
(16255, 9154);
DELETE FROM `creature_questender` WHERE `quest` = 9154;
INSERT INTO `creature_questender` (`id`, `quest`) VALUES
(16281, 9154);
-- Argent Quartermaster and Outfitter
UPDATE `creature_template` SET `npcflag` = 2 WHERE `entry` IN (16786, 16787);
DELETE FROM `npc_vendor` WHERE `entry` IN (16786, 16787); -- they aren't vendors in vanilla
DELETE FROM `creature_queststarter` WHERE `quest` IN
(9094, 9317, 9318, 9321, 9337, 9341, -- Alliance
9333, 9334, 9335, 9336, 9320, 9343); -- Horde
INSERT INTO `creature_queststarter` (`id`, `quest`) VALUES
(16786, 9094), (16786, 9317), (16786, 9318), (16786, 9321), (16786, 9337), (16786, 9341),
(16787, 9333), (16787, 9334), (16787, 9335), (16787, 9336), (16787, 9320), (16787, 9343);
DELETE FROM `creature_questender` WHERE `quest` IN
(9094, 9317, 9318, 9321, 9337, 9341, -- Alliance
9320, 9333, 9334, 9335, 9336, 9343); -- Horde
INSERT INTO `creature_questender` (`id`, `quest`) VALUES
(16786, 9094), (16786, 9317), (16786, 9318), (16786, 9321), (16786, 9337), (16786, 9341),
(16787, 9333), (16787, 9334), (16787, 9335), (16787, 9336), (16787, 9320), (16787, 9343);
UPDATE `quest_template` SET `QuestType` = 2, `AllowableRaces` = 1101 WHERE `ID` IN (9094, 9317, 9318, 9321, 9337, 9341);
UPDATE `quest_template` SET `QuestType` = 2, `AllowableRaces` = 690 WHERE `ID` IN (9333, 9334, 9335, 9336, 9320, 9343);
/**-- Text Updates --**/
UPDATE `quest_request_items` SET `CompletionText` = 'Have you investigated the invasion yet? There\'s no time for dawdling!' WHERE `ID` IN
(9260, 9261, 9262, 9263, 9264, 9265);
UPDATE `quest_request_items` SET `CompletionText` = 'You\'ve come to join our order, have you not?' WHERE `ID` = 9154;
-- Alliance Quartermaster and Horde Outfitter Quests
UPDATE `quest_template` SET `QuestDescription` = 'If you bring me thirty necrotic runes, I will give you your choice of hand protection in return. These should prove valuable in our fight against the undead Scourge.' WHERE `ID` IN (9094, 9333);
UPDATE `quest_template` SET `QuestDescription` = 'If you bring me eight necrotic runes from the Scourge invaders, I can give you a consecrated sharpening stone. It should be of great help in your battle against the minions of the Lich King.' WHERE `ID` IN (9317, 9335);
UPDATE `quest_template` SET `QuestDescription` = 'In exchange for the necrotic runes of the Scourge invaders, the Argent Dawn will give you one vial of blessed wizard oil.' WHERE `ID` IN (9318, 9334);
UPDATE `quest_template` SET `QuestDescription` = 'In addition to our other supplies, we also have a number of major healing potions you may find useful. I will give you one in exchange for fifteen necrotic runes.' WHERE `ID` IN (9321, 9336);
UPDATE `quest_template` SET `QuestDescription` = 'In addition to our other supplies, we also have a number of major mana potions you may find useful. I will give you one in exchange for fifteen necrotic runes.' WHERE `ID` IN (9320, 9337);
UPDATE `quest_template` SET `QuestDescription` = 'You have aided our cause greatly, $N. If you wish, I can make available the tabard of the Argent Dawn. We are proud to have you among our allies.' WHERE `ID` IN (9341, 9343);
DELETE FROM `quest_offer_reward` WHERE `ID` IN
(9094, 9317, 9318, 9321, 9337, 9341, -- Alliance
9320, 9333, 9334, 9335, 9336, 9343); -- Horde
INSERT INTO `quest_offer_reward` (`ID`, `Emote1`, `Emote2`, `Emote3`, `Emote4`, `EmoteDelay1`, `EmoteDelay2`, `EmoteDelay3`, `EmoteDelay4`, `RewardText`, `VerifiedBuild`) VALUES
(9094, 0, 0, 0, 0, 0, 0, 0, 0, 'You\'ve done well, $N. Take your pick of hand protection in thanks for your efforts.', NULL),
(9317, 0, 0, 0, 0, 0, 0, 0, 0, 'Thank you, $N. Here are your consecrated sharpening stones. Use them prudently.', NULL),
(9318, 0, 0, 0, 0, 0, 0, 0, 0, 'I hope that you will find these items useful in future battles.', NULL),
(9320, 0, 0, 0, 0, 0, 0, 0, 0, 'Here you are, $N. Be careful out there. Our numbers are not so large we can afford many battlefield casualties.', NULL),
(9321, 0, 0, 0, 0, 0, 0, 0, 0, 'Here you are, $N. Be careful out there. Our numbers are not so large we can afford many battlefield casualties.', NULL),
(9333, 0, 0, 0, 0, 0, 0, 0, 0, 'You\'ve done well, $N. Take your pick of hand protection in thanks for your efforts.', NULL),
(9334, 0, 0, 0, 0, 0, 0, 0, 0, 'I hope that you will find these items useful in future battles.', NULL),
(9335, 0, 0, 0, 0, 0, 0, 0, 0, 'Thank you, $N. Here are your consecrated sharpening stones. Use them prudently.', NULL),
(9336, 0, 0, 0, 0, 0, 0, 0, 0, 'Here you are, $N. Be careful out there. Our numbers are not so large we can afford many battlefield casualties.', NULL),
(9337, 0, 0, 0, 0, 0, 0, 0, 0, 'Here you are, $N. Be careful out there. Our numbers are not so large we can afford many battlefield casualties.', NULL),
(9341, 0, 0, 0, 0, 0, 0, 0, 0, 'Take this tabard and wear it proudly. Perhaps your deeds might inspire others to take up arms in support of our fight against the Scourge.', NULL),
(9343, 0, 0, 0, 0, 0, 0, 0, 0, 'Take this tabard and wear it proudly. Perhaps your deeds might inspire others to take up arms in support of our fight against the Scourge.', NULL);
DELETE FROM `npc_text` WHERE `ID` = 66000;
INSERT INTO `npc_text` (`ID`, `text0_0`, `text0_1`) VALUES
(66000, 'The cultist is in a deep trance...', 'The cultist is in a deep trance...');
DELETE FROM `gossip_menu` WHERE `MenuID` = 66000;
INSERT INTO `gossip_menu` (`MenuID`, `TextID`) VALUES (66000, 66000);
DELETE FROM `gossip_menu_option` WHERE `MenuID` = 66000;
INSERT INTO `gossip_menu_option` (`MenuID`, `OptionID`, `OptionIcon`, `OptionText`, `OptionBroadcastTextID`, `OptionType`, `OptionNpcFlag`,
`ActionMenuID`, `ActionPoiID`, `BoxCoded`, `BoxMoney`, `BoxText`, `BoxBroadcastTextID`, `VerifiedBuild`) VALUES
(66000, 0, 0, 'Use 8 necrotic runes and disrupt his ritual.', 0, 1, 1, 0, 0, 0, 0, NULL, 0, 0);
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 15 AND `SourceGroup` = 66000;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`,
`ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(15, 66000, 0, 0, 0, 2, 0, 22484, 8, 0, 0, 0, 0, '', 'Cultist Engineer - Show gossip only if the player has 8 Necrotic Runes');
DELETE FROM `creature_text` WHERE `CreatureID` = 16230 AND `GroupID` = 1;
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
(16230, 1, 0, 'These heroics mean nothing, $c. Your future is sealed and your soul is doomed to servitude!', 12, 0, 100, 0, 0, 0, 12421, 0, 'Cultist Engineer');

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,135 @@
/*-- SCOURCE INVASION - GAME OBJECTS --*/
SET @OGUID := 660000;
DELETE FROM `gameobject` WHERE `id` IN (181154, 181172, 181215, 181223, 181227, 181254, 181255, 181256, 181373, 181374, 190604, 190609, 190610);
INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`,
`rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `VerifiedBuild`) VALUES
-- Necropolis City
(@OGUID, 181172, 0, 1519, 1519, 1, 1, -9159.76953125, 345.552093505859375, 156.4009552001953125, 3.560472726821899414, 0, 0, -0.97814750671386718, 0.207912087440490722, 120, 255, 1, 46248), -- Stormwind
(@OGUID+1, 181172, 0, 1537, 1537, 1, 1, -5122.8037109375, -725, 505.466796875, 0.034906249493360519, 0, 0, 0.017452239990234375, 0.999847710132598876, 120, 255, 1, 46248), -- Ironforge
(@OGUID+2, 181172, 1, 1657, 0, 1, 1, 9972.625, 1993.2760009765625, 1406.1517333984375, 4.345870018005371093, 0, 0, -0.82412624359130859, 0.566406130790710449, 120, 255, 1, 46248), -- Darnassus
(@OGUID+3, 181172, 1, 1637, 1637, 1, 1, 1085.60595703125, -4346.095703125, 88.066192626953125, 3.804818391799926757, 0, 0, -0.94551849365234375, 0.325568377971649169, 120, 255, 1, 46248), -- Orgrimmar
(@OGUID+4, 181172, 0, 85, 159, 1, 1, 1869.017333984375, 266.873260498046875, 114.8150634765625, 0.541050612926483154, 0, 0, 0.267237663269042968, 0.96363067626953125, 120, 255, 1, 46248), -- Undercity
(@OGUID+5, 181172, 1, 1638, 1638, 1, 1, -1511.828125, 101.7222213745117187, 108.5687103271484375, 1.832594871520996093, 0, 0, 0.793353080749511718, 0.608761727809906005, 120, 255, 1, 46248), -- Thunder Bluff
-- (@OGUID+6, 181172, 530, 3524, 0, 1, 1, -4077.8564453125, -12036.9033203125, 125.0732421875, 3.560472726821899414, 0, 0, -0.97814750671386718, 0.207912087440490722, 120, 255, 1, 46248), -- Exodar
-- (@OGUID+7, 181172, 530, 3430, 3430, 1, 1, 9291.169921875, -7293.32373046875, 133.3386993408203125, 3.124123096466064453, 0, 0, 0.99996185302734375, 0.008734640665352344, 120, 255, 1, 46248), -- Silvermoon City
-- Necropolis
(@OGUID+8, 181154, 0, 139, 2268, 1, 1, 2101.685791015625, -4930.03271484375, 168.280731201171875, 1.047197580337524414, 0, 0, 0.5, 0.866025388240814208, 120, 255, 1, 46248),
(@OGUID+9, 181154, 0, 139, 0, 1, 1, 1766.673583984375, -3033.34375, 132.804443359375, 5.183629035949707031, 0, 0, -0.52249813079833984, 0.852640450000762939, 120, 255, 1, 46248),
(@OGUID+10, 181154, 0, 46, 250, 1, 1, -7733.71533203125, -2432.741455078125, 190.785552978515625, 2.67034769058227539, 0, 0, 0.972369194030761718, 0.233448356389999389, 120, 255, 1, 46248),
(@OGUID+11, 181154, 0, 46, 0, 1, 1, -8232.78125, -1099.85595703125, 201.48846435546875, 5.183629035949707031, 0, 0, -0.52249813079833984, 0.852640450000762939, 120, 255, 1, 46248),
(@OGUID+12, 181154, 1, 16, 878, 1, 1, 3299.553955078125, -4301.30029296875, 177.8075714111328125, 5.811946868896484375, 0, 0, -0.2334451675415039, 0.972369968891143798, 120, 255, 1, 46248),
(@OGUID+13, 181154, 1, 16, 1221, 1, 1, 3544.9775390625, -5610.2587890625, 67.1126861572265625, 2.827429771423339843, 0, 0, 0.987688064575195312, 0.156436234712600708, 120, 255, 1, 46248),
(@OGUID+14, 181215, 1, 440, 0, 1, 1, -7399.953125, -3733.060791015625, 61.05036163330078125, 5.811946868896484375, 0, 0, -0.2334451675415039, 0.972369968891143798, 120, 255, 1, 46248),
(@OGUID+15, 181215, 1, 440, 1939, 1, 1, -8333.6806640625, -3966.395751953125, 77.8482666015625, 1.378809213638305664, 0, 0, 0.636077880859375, 0.771624863147735595, 120, 255, 1, 46248),
(@OGUID+16, 181215, 1, 440, 983, 1, 1, -8633.2119140625, -2499.8212890625, 114.0166397094726562, 2.827429771423339843, 0, 0, 0.987688064575195312, 0.156436234712600708, 120, 255, 1, 46248),
(@OGUID+17, 181223, 0, 4, 1438, 1, 1, -11402.095703125, -3316.55029296875, 111.1883392333984375, 4.468043327331542968, 0, 0, -0.7880105972290039, 0.615661680698394775, 120, 255, 1, 46248),
(@OGUID+18, 181223, 1, 618, 0, 1, 1, 7755.751953125, -4030.913330078125, 786.49627685546875, 0.471238493919372558, 0, 0, 0.233445167541503906, 0.972369968891143798, 120, 255, 1, 46248),
(@OGUID+19, 181223, 1, 618, 0, 1, 1, 6646.68603515625, -3442.364501953125, 792.91644287109375, 4.869470596313476562, 0, 0, -0.64944744110107421, 0.760406434535980224, 120, 255, 1, 46248),
(@OGUID+20, 181373, 1, 618, 2250, 1, 1, 6184.28125, -4913.3193359375, 807.67633056640625, 6.09120035171508789, 0, 0, -0.09584522247314453, 0.995396256446838378, 120, 255, 1, 46248),
(@OGUID+21, 181374, 0, 4, 1438, 1, 1, -11233.9111328125, -2841.7744140625, 185.6030731201171875, 4.45059061050415039, 0, 0, -0.79335308074951171, 0.608761727809906005, 120, 255, 1, 46248),
-- Scourge Circles
(@OGUID+22, 181227, 0, 0, 0, 1, 1, -9183.83, 416.188, 89.9123, 0.401425, 0, 0, 0.199367, 0.979925, 120, 100, 1, 0),
(@OGUID+23, 181227, 1, 0, 0, 1, 1, 9948.02, 1932.39, 1328.69, 3.68265, 0, 0, -0.96363, 0.267241, 120, 100, 1, 0),
(@OGUID+24, 181227, 1, 0, 0, 1, 1, 9914.18, 1864.66, 1321.26, 2.91469, 0, 0, 0.993571, 0.113208, 120, 100, 1, 0),
(@OGUID+25, 181227, 1, 0, 0, 1, 1, -1545.47, 51.2859, 5.39412, 0.628317, 0, 0, 0.309016, 0.951057, 120, 100, 1, 0),
(@OGUID+26, 181227, 0, 0, 0, 1, 1, 1980.01, 305.231, 41.1893, 0.436332, 0, 0, 0.216439, 0.976296, 120, 100, 1, 0),
(@OGUID+27, 181227, 1, 0, 0, 1, 1, 1217.81, -4339.42, 20.8739, 4.01426, 0, 0, -0.906307, 0.422619, 120, 100, 1, 0),
(@OGUID+28, 181227, 1, 0, 0, 1, 1, 1169.62, -4320.03, 20.8739, 0.575957, 0, 0, 0.284015, 0.95882, 120, 100, 1, 0),
(@OGUID+29, 181227, 0, 0, 0, 1, 1, -9061.46, 349.666, 93.1098, 4.57276, 0, 0, -0.754709, 0.656059, 120, 100, 1, 0),
(@OGUID+30, 181227, 0, 0, 0, 1, 1, -5175.25, -588.093, 397.984, 2.51327, 0, 0, 0.951056, 0.309017, 120, 100, 1, 0),
(@OGUID+31, 181227, 0, 0, 0, 1, 1, -9218.1, 318.785, 73.865, 3.01941, 0, 0, 0.998135, 0.0610518, 120, 100, 1, 0),
(@OGUID+32, 181227, 0, 0, 0, 1, 1, -5163.2, -645.852, 396.992, 0.0523589, 0, 0, 0.0261765, 0.999657, 120, 100, 1, 0),
(@OGUID+33, 181227, 0, 0, 0, 1, 1, -9118.92, 330.1, 93.198, 3.00195, 0, 0, 0.997563, 0.0697661, 120, 100, 1, 0),
-- Argent Dawn Buffer Tent
(@OGUID+34, 181254, 0, 0, 0, 1, 1, -4926.4, -986.524, 501.455, 2.23402, 0, 0, 0.898793, 0.438373, 120, 100, 1, 0),
(@OGUID+35, 181254, 0, 0, 0, 1, 1, -4891.02, -951.788, 501.468, 2.61756, 0, 0, 0.96587, 0.259028, 120, 100, 1, 0),
(@OGUID+36, 181254, 1, 0, 0, 1, 1, 1587.87, -4417.88, 8.70726, 3.29869, 0, 0, -0.996917, 0.0784664, 120, 100, 1, 0),
(@OGUID+37, 181254, 1, 0, 0, 1, 1, -1277.02, 73.3942, 127.804, 6.0906, 0, 0, 0.67559, 0.737278, 120, 100, 1, 0),
(@OGUID+38, 181254, 1, 0, 0, 1, 1, 9921.07, 2521.54, 1318.1, 3.42085, 0, 0, -0.990268, 0.139175, 120, 100, 1, 0),
(@OGUID+39, 181254, 0, 0, 0, 1, 1, -8828.51, 644.644, 94.479, 3.71755, 0, 0, -0.958819, 0.284016, 120, 100, 1, 0),
(@OGUID+40, 181254, 0, 0, 0, 1, 1, 1583.41, 240.46, -62.0773, 3.03684, 0, 0, 0.998629, 0.0523532, 120, 100, 1, 0),
(@OGUID+41, 181254, 0, 0, 0, 1, 1, 2243.86, -5321.14, 82.1673, 1.48353, 0, 0, 0.67559, 0.737278, 120, 100, 1, 0),
-- (@OGUID+42, 181254, 530, 0, 0, 1, 1, 9522.53, -7353.31, 14.3144, 1.85005, 0, 0, 0.798635, 0.601815, 120, 255, 1, 49345),
-- Argent Dawn Buffer Crate
(@OGUID+43, 181255, 1, 0, 0, 1, 1, 9920.94, 2525.91, 1318.96, 1.23918, 0, 0, 0.580703, 0.814116, 120, 100, 1, 0),
(@OGUID+44, 181255, 1, 0, 0, 1, 1, 9920.85, 2526.06, 1318.47, 0.977383, 0, 0, 0.469471, 0.882948, 120, 100, 1, 0),
(@OGUID+45, 181255, 1, 0, 0, 1, 1, -1278.58, 78.1475, 129.083, 1.41372, 0, 0, 0.649447, 0.760406, 120, 100, 1, 0),
(@OGUID+46, 181255, 1, 0, 0, 1, 1, -1278.58, 78.1475, 128.517, 1.25664, 0, 0, 0.587785, 0.809017, 120, 100, 1, 0),
(@OGUID+47, 181255, 1, 0, 0, 1, 1, 1587.94, -4413.6, 8.88919, 2.86233, 0, 0, 0.990268, 0.139175, 120, 100, 1, 0),
(@OGUID+48, 181255, 1, 0, 0, 1, 1, 1588.21, -4413.59, 8.40226, 6.26573, 0, 0, -0.00872612, 0.999962, 120, 100, 1, 0),
(@OGUID+49, 181255, 0, 0, 0, 1, 1, -4894.13, -954.969, 501.461, 2.47793, 0, 0, 0.945448, 0.325773, 120, 100, 1, 0),
(@OGUID+50, 181255, 0, 0, 0, 1, 1, -4894.36, -954.946, 501.907, 2.63501, 0, 0, 0.968093, 0.250591, 120, 100, 1, 0),
(@OGUID+51, 181255, 0, 0, 0, 1, 1, -8824.93, 644.94, 94.3843, 1.95477, 0, 0, 0.829038, 0.559193, 120, 100, 1, 0),
(@OGUID+52, 181255, 0, 0, 0, 1, 1, 1582.24, 236.144, -62.0773, 0.087266, 0, 0, 0.0436192, 0.999048, 120, 100, 1, 0),
(@OGUID+53, 181255, 0, 0, 0, 1, 1, -4930.68, -988.202, 501.907, 2.25147, 0, 0, 0.902585, 0.430512, 120, 100, 1, 0),
(@OGUID+54, 181255, 0, 0, 0, 1, 1, -4930.49, -988.305, 501.455, 2.09439, 0, 0, 0.866025, 0.500001, 120, 100, 1, 0),
(@OGUID+55, 181255, 0, 0, 0, 1, 1, 1582.52, 236.04, -62.0773, 3.35105, 0, 0, -0.994521, 0.104535, 120, 100, 1, 0),
(@OGUID+56, 181255, 0, 0, 0, 1, 1, -8824.84, 644.905, 94.8185, 5.51524, 0, 0, -0.374606, 0.927184, 120, 100, 1, 0),
-- (@OGUID+57, 181255, 530, 0, 0, 1, 1, 9521.12, -7354.53, 14.768, 3.21142, 0, 0, -0.999391, 0.0349061, 120, 255, 1, 49345),
-- (@OGUID+58, 181255, 530, 0, 0, 1, 1, 9521.24, -7354.58, 14.3094, 0.261798, 0, 0, 0.130526, 0.991445, 120, 255, 1, 49345),
-- Argent Dawn Banner
(@OGUID+59, 181256, 0, 0, 0, 1, 1, 1582.02, 244.991, -62.0773, 2.19912, 0, 0, 0.891007, 0.453991, 120, 100, 1, 0),
(@OGUID+60, 181256, 0, 0, 0, 1, 1, 1580.11, 236.901, -62.0773, 3.6652, 0, 0, -0.965925, 0.258821, 120, 100, 1, 0),
(@OGUID+61, 181256, 1, 0, 0, 1, 1, -1274.04, 76.5484, 128.201, 0.872664, 0, 0, 0.422618, 0.906308, 120, 100, 1, 0),
(@OGUID+62, 181256, 1, 0, 0, 1, 1, -1275.52, 67.3279, 128.094, 4.51824, 0, 0, 0.861628, 0.507539, 120, 100, 1, 0),
(@OGUID+63, 181256, 1, 0, 0, 1, 1, 9918.63, 2525.05, 1317.79, 2.51327, 0, 0, 0.951056, 0.309017, 120, 100, 1, 0),
(@OGUID+64, 181256, 1, 0, 0, 1, 1, 1586.84, -4422.45, 8.26005, 3.22886, 0, 0, -0.999048, 0.0436193, 120, 100, 1, 0),
(@OGUID+65, 181256, 0, 0, 1, 1, 1, 1585.44, -4414.01, 8.08963, 3.3685, 0, 0, -0.993571, 0.113208, 120, 100, 1, 0),
(@OGUID+66, 181256, 0, 0, 1, 1, 1, -8833.52, 645.745, 95.3211, 3.90954, 0, 0, -0.927183, 0.374608, 120, 100, 1, 0),
(@OGUID+67, 181256, 0, 0, 0, 1, 1, -8829.5, 640.266, 94.3804, 3.71755, 0, 0, -0.958819, 0.284016, 120, 100, 1, 0),
(@OGUID+68, 181256, 0, 0, 0, 1, 1, -4891.85, -947.068, 501.468, 2.5652, 0, 0, 0.958758, 0.284223, 120, 100, 1, 0),
(@OGUID+69, 181256, 0, 0, 0, 1, 1, -4895.76, -953.432, 501.465, 2.61756, 0, 0, 0.96587, 0.259028, 120, 100, 1, 0),
(@OGUID+70, 181256, 0, 0, 0, 1, 1, -4925.42, -981.831, 501.466, 2.18166, 0, 0, 0.887011, 0.461749, 120, 100, 1, 0),
(@OGUID+71, 181256, 0, 0, 0, 1, 1, -4931.42, -986.271, 501.462, 2.23402, 0, 0, 0.898793, 0.438373, 120, 100, 1, 0),
(@OGUID+72, 181256, 1, 0, 0, 1, 1, 9920.85, 2516.86, 1317.96, 4.10152, 0, 0, -0.887011, 0.461749, 120, 100, 1, 0),
(@OGUID+73, 181256, 0, 0, 0, 1, 1, 2238.91, -5318.67, 82.1523, 1.55334, 0, 0, 0.700909, 0.713251, 120, 100, 1, 0),
(@OGUID+74, 181256, 0, 0, 0, 1, 1, 2248.47, -5318.94, 82.1143, 1.5708, 0, 0, 0.707107, 0.707107, 120, 100, 1, 0),
-- (@OGUID+75, 181256, 530, 0, 0, 1, 1, 9516.47, -7352.04, 14.3238, 1.83259, 0, 0, 0.793353, 0.608762, 120, 255, 1, 49345),
-- (@OGUID+76, 181256, 530, 0, 0, 1, 1, 9526.62, -7349.03, 14.3236, 1.81514, 0, 0, 0.788011, 0.615662, 120, 255, 1, 49345),
-- Scourge Circles at Necrotic Shards
(@OGUID+80, 181227, 0, 0, 0, 1, 1, -11183.3, -2985.49, 8.22008, 0.0105759, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+81, 181227, 0, 0, 0, 1, 1, -11027, -2784.69, 4.45958, 0.120533, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+82, 181227, 0, 0, 0, 1, 1, -11428.9, -2817.38, 0.400971, 0.0498445, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+83, 181227, 0, 0, 0, 1, 1, -11335.1, -3152.41, 6.70907, 0.120527, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+84, 181227, 0, 0, 0, 1, 1, -11250.1, -3345.52, 9.37404, 0.151919, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+85, 181227, 0, 0, 0, 1, 1, -11536.4, -3285.28, 8.95756, 6.21914, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+86, 181227, 1, 0, 0, 1, 1, -7245.77, -3545.09, 13.5838, 0.0139582, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+87, 181227, 1, 0, 0, 1, 1, -7328.72, -3973.92, 11.6769, 6.19504, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+88, 181227, 1, 0, 0, 1, 1, -7632.49, -3741.94, 21.1372, 0.0296614, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+89, 181227, 1, 0, 0, 1, 1, -8166.66, -3809.78, 15.0426, 0.149923, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+90, 181227, 1, 0, 0, 1, 1, -8502.24, -3827.75, 23.3705, 6.03021, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+91, 181227, 1, 0, 0, 1, 1, -8341.47, -4209.24, 13.1848, 0.210404, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+92, 181227, 1, 0, 0, 1, 1, -8535.1, -2303.86, 29.0594, 1.65162, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+93, 181227, 1, 0, 0, 1, 1, -8534.01, -2706.51, 19.9498, 5.97917, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+94, 181227, 1, 0, 0, 1, 1, -8828.01, -2605.84, 22.5, 1.73805, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+95, 181227, 1, 0, 0, 1, 1, 6279.14, -4775.33, 756.56, 6.18776, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+96, 181227, 1, 0, 0, 1, 1, 6037.82, -4767.76, 794.563, 6.22706, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+97, 181227, 1, 0, 0, 1, 1, 6089.27, -5049.38, 794.436, 6.05819, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+98, 181227, 1, 0, 0, 1, 1, 6786.42, -3600, 717.201, 6.26081, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+99, 181227, 1, 0, 0, 1, 1, 6740.59, -3350.17, 688.127, 0.0836567, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+100, 181227, 1, 0, 0, 1, 1, 6537.6, -3494.2, 643.377, 0.0365412, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+101, 181227, 1, 0, 0, 1, 1, 7936.67, -3867.96, 695.473, 6.21632, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+102, 181227, 1, 0, 0, 1, 1, 7690.48, -3868.19, 686.478, 6.27915, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+103, 181227, 1, 0, 0, 1, 1, 7823.39, -4214.1, 675.004, 6.2831, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+104, 181227, 1, 0, 0, 1, 1, 3515.43, -4149.34, 106.829, 0.0640161, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+105, 181227, 1, 0, 0, 1, 1, 3082.34, -4221.49, 96.8079, 6.26473, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+106, 181227, 1, 0, 0, 1, 1, 3339.13, -4524.28, 98.036, 0.225009, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+107, 181227, 1, 0, 0, 1, 1, 3664.72, -5539.18, 19.8522, 6.1901, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+108, 181227, 1, 0, 0, 1, 1, 3360.41, -5569.45, 10.587, 0.052212, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+109, 181227, 1, 0, 0, 1, 1, 3515.77, -5711.01, 4.73716, 6.22545, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+110, 181227, 0, 0, 0, 1, 1, -7722.25, -2234.68, 136.647, 6.20495, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+111, 181227, 0, 0, 0, 1, 1, -7593.51, -2592.69, 137.623, 6.26386, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+112, 181227, 0, 0, 0, 1, 1, -7984.3, -2434.14, 130.307, 6.16176, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+113, 181227, 0, 0, 0, 1, 1, -8028.92, -1000.55, 122.648, 0.00813007, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+114, 181227, 0, 0, 0, 1, 1, -8362.69, -976.306, 187.089, 0.0984673, 0, 0, 0, 0, 120, 100, 1, 0),
(@OGUID+115, 181227, 0, 0, 0, 1, 1, -8401.13, -1204.99, 187.317, 5.89863, 0, 0, 0, 0, 120, 100, 1, 0);

View File

@@ -76,15 +76,38 @@ enum ProgressionZones
enum ProgressionAreas
{
AREA_AZSHARA = 16,
AREA_THE_DARK_PORTAL = 72,
AREA_DREADMAUL_ROCK = 249,
AREA_RUINS_OF_THAURISSAN = 250,
AREA_BLACKROCK_MOUNTAIN = 254,
AREA_SERADANE = 356,
AREA_BOUGH_SHADOW = 438,
AREA_GROVE_OF_THE_ANCIENTS = 448,
AREA_WILDBEND_RIVER = 454,
AREA_TWILIGHT_GROVE = 856,
AREA_GADGETZAN = 976,
AREA_DREAM_BOUGH = 1111,
AREA_JADEMIR_LAKE = 1112,
AREA_THE_SHATTERED_STRAND = 1228,
AREA_SOUTHRIDGE_BEACH = 1231,
AREA_HALDARR_ENCAMPMENT = 1236,
AREA_DREADMAUL_HOLD = 1437,
AREA_DREADMAUL_POST = 1439,
AREA_SERPENTS_COIL = 1440,
AREA_VALLEY_OF_HEROES = 1611,
AREA_BROKEN_PILLAR = 1938,
AREA_ABYSSAL_SANDS = 1939,
AREA_TWILIGHT_VALE = 2077,
AREA_FROSTSABER_ROCK = 2241,
AREA_TIMBERMAW_POST = 2243,
AREA_MAZTHORIL = 2245,
AREA_ICE_THISTLE_HILLS = 2247,
AREA_THE_MARRIS_STEAD = 2260,
AREA_LIGHTS_HOPE = 2268,
AREA_DRACO_DAR = 2421,
AREA_RISE_OF_THE_DEFILER = 2517,
AREA_PESTILENT_SCAR = 2622,
AREA_HIVE_ASHI = 2742,
AREA_HIVE_ZORA = 2743,
AREA_HIVE_REGAL = 2744,

View File

@@ -97,6 +97,41 @@ public:
}
};
class gobject_ipp_si : public GameObjectScript
{
public:
gobject_ipp_si() : GameObjectScript("gobject_ipp_si") { }
struct gobject_ipp_siAI: GameObjectAI
{
explicit gobject_ipp_siAI(GameObject* object) : GameObjectAI(object) { };
bool CanBeSeen(Player const* player) override
{
if (player->IsGameMaster())
{
return true;
}
Player* target = ObjectAccessor::FindConnectedPlayer(player->GetGUID());
if (sIndividualProgression->hasPassedProgression(target, PROGRESSION_NAXX40))
{
return sIndividualProgression->isBeforeProgression(target, PROGRESSION_NAXX40);
}
else
{
return sIndividualProgression->hasPassedProgression(target, PROGRESSION_AQ);
}
}
};
GameObjectAI* GetAI(GameObject* object) const override
{
return new gobject_ipp_siAI(object);
}
};
class gobject_ipp_naxx40 : public GameObjectScript
{
public:
@@ -236,14 +271,49 @@ public:
}
};
class npc_ipp_aqwar : public CreatureScript
class npc_ipp_si : public CreatureScript
{
public:
npc_ipp_aqwar() : CreatureScript("npc_ipp_aqwar") { }
npc_ipp_si() : CreatureScript("npc_ipp_si") { }
struct npc_ipp_aqwarAI: ScriptedAI
struct npc_ipp_siAI: ScriptedAI
{
explicit npc_ipp_aqwarAI(Creature* creature) : ScriptedAI(creature) { };
explicit npc_ipp_siAI(Creature* creature) : ScriptedAI(creature) { };
bool CanBeSeen(Player const* player) override
{
if (player->IsGameMaster())
{
return true;
}
Player* target = ObjectAccessor::FindConnectedPlayer(player->GetGUID());
if (sIndividualProgression->hasPassedProgression(target, PROGRESSION_NAXX40))
{
return sIndividualProgression->isBeforeProgression(target, PROGRESSION_NAXX40);
}
else
{
return sIndividualProgression->hasPassedProgression(target, PROGRESSION_AQ);
}
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_ipp_siAI(creature);
}
};
class npc_ipp_pre_naxx40 : public CreatureScript
{
public:
npc_ipp_pre_naxx40() : CreatureScript("npc_ipp_pre_naxx40") { }
struct npc_ipp_pre_naxx40AI: ScriptedAI
{
explicit npc_ipp_pre_naxx40AI(Creature* creature) : ScriptedAI(creature) { };
bool CanBeSeen(Player const* player) override
{
@@ -251,23 +321,14 @@ public:
{
return true;
}
Player* target = ObjectAccessor::FindConnectedPlayer(player->GetGUID());
if (sIndividualProgression->hasPassedProgression(target, PROGRESSION_AQ_WAR))
{
return sIndividualProgression->isBeforeProgression(target, PROGRESSION_AQ_WAR);
}
else
{
return sIndividualProgression->hasPassedProgression(target, PROGRESSION_PRE_AQ);
}
return sIndividualProgression->isBeforeProgression(target, PROGRESSION_AQ);
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_ipp_aqwarAI(creature);
return new npc_ipp_pre_naxx40AI(creature);
}
};
@@ -538,15 +599,17 @@ public:
// Add all scripts in one
void AddSC_mod_individual_progression_awareness()
{
new gobject_ipp_preaq(); // wanted poster cenarion hold
new gobject_ipp_we(); // war effort supplies in cities
new gobject_ipp_aqwar(); // aq war crystals
new gobject_ipp_preaq(); // wanted poster Cenarion Hold
new gobject_ipp_we(); // War Effort supplies in cities
new gobject_ipp_aqwar(); // AQ war crystals
new gobject_ipp_si(); // Scourge Invasion
new gobject_ipp_naxx40();
new gobject_ipp_tbc();
new gobject_ipp_wotlk();
new npc_ipp_preaq(); // cenarion hold npcs
new npc_ipp_we(); // war effort npcs in cities
// new npc_ipp_aqwar(); // not used atm
new npc_ipp_preaq(); // Cenarion Hold NPCs
new npc_ipp_we(); // War Effort NPCs in cities
new npc_ipp_si(); // Scourge Invasion
new npc_ipp_pre_naxx40(); // Scourge Invasion
new npc_ipp_naxx40();
new npc_ipp_tbc();
new npc_ipp_tbc_pre_t4();

View File

@@ -471,6 +471,294 @@ public:
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_DUROTAR:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_ROCKTUSK_FARM:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_TIRISFAL_GLADES:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_RUINS_OF_LORDAERON:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_MULGORE:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_VALLEY_OF_HEROES:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_ELWYNN_FOREST:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_DUN_MOROGH:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_TELDRASSIL:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_EASTERN_PLAGUELANDS:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_PESTILENT_SCAR:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_THE_MARRIS_STEAD:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_BLASTED_LANDS:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_RISE_OF_THE_DEFILER:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_DREADMAUL_HOLD:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_DREADMAUL_POST:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_THE_DARK_PORTAL:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_SERPENTS_COIL:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_TANARIS:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_GADGETZAN:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_ABYSSAL_SANDS:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_BROKEN_PILLAR:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_WINTERSPRING:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_TIMBERMAW_POST:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_FROSTSABER_ROCK:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_ICE_THISTLE_HILLS:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_MAZTHORIL:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_AZSHARA:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_HALDARR_ENCAMPMENT:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_THE_SHATTERED_STRAND:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_SOUTHRIDGE_BEACH:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_BURNING_STEPPES:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_DRACO_DAR:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_BLACKROCK_MOUNTAIN:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_DREADMAUL_ROCK:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_RUINS_OF_THAURISSAN:
if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40)))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
}
break;
case AREA_LIGHTS_HOPE:
case AREA_ARGENT_TOURNAMENT_GROUNDS:
case AREA_ARGENT_SUNREAVER_PAVILION:
@@ -489,6 +777,45 @@ public:
}
break;
default:
uint32 mapid = player->GetMapId();
if (mapid == MAP_SHADOWFANG_KEEP && ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40))))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
break;
}
if (mapid == MAP_RAZORFEN_DOWNS && ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40))))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
break;
}
if (mapid == MAP_SCARLET_MONASTERY && ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40))))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
break;
}
if (mapid == MAP_STRATHOLME && ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40))))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
break;
}
if (mapid == MAP_DIRE_MAUL && ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_NAXX40))))
{
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
player->CastSpell(player, IPP_PHASE, false);
break;
}
player->RemoveAura(IPP_PHASE);
player->RemoveAura(IPP_PHASE_AQ);
}