diff --git a/sql/world/base/ipp_aware_npcs.sql b/sql/world/base/ipp_aware_npcs.sql index f051871..923cac0 100644 --- a/sql/world/base/ipp_aware_npcs.sql +++ b/sql/world/base/ipp_aware_npcs.sql @@ -2,6 +2,9 @@ UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_tbc' WHERE `entry` IN (16 UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_aq' WHERE `entry` IN (15293,15270,15306,15191,15181,15182,15306,15599,15282,15183,15194,15176,15270,16091,15701,15612,15613,15609,15540,15704,15693,15431,15903,15610,15180, 15499); +UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_naxx40' WHERE `entry` IN (11102, 16113, 16112, 16115, 16116, 16131, 16132, 16133, 16134, 16135, 16114, 16376, 16212, 16225, 16228, 16229, + 16256, 16283, 16284, 16378); + UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_wotlk' WHERE `entry` IN (29611, 27616, 27618, 27619, 27620, 27624, 34084); UPDATE `gameobject_template` SET `ScriptName` = 'gobject_ipp_tbc' WHERE `entry` IN (195141); \ No newline at end of file diff --git a/sql/world/base/zone_westfall.sql b/sql/world/base/zone_westfall.sql index 0161a0b..3eff2b7 100644 --- a/sql/world/base/zone_westfall.sql +++ b/sql/world/base/zone_westfall.sql @@ -1,11 +1,10 @@ --- Defias Messenger -UPDATE `creature_template` SET `minlevel`=14, `maxlevel`=15 WHERE `entry`=550; - --- Christopher Hewen -UPDATE `creature_template` SET `subname`='General Trade Goods Vendor', `minlevel`=30, `maxlevel`=30 WHERE `entry`=8934; - -- Gina MacGregor DELETE FROM `npc_vendor` WHERE `entry`=843 AND `item`=39354; -- Christopher Hewen -DELETE FROM `npc_vendor` WHERE `entry`=8934 AND `item` IN (10648, 14341, 18256, 30817, 39354); \ No newline at end of file +DELETE FROM `npc_vendor` WHERE `entry`=8934 AND `item` IN (10648, 14341, 18256, 30817, 39354); + +-- Restore Defias Pillager to original Fireball spell (was nerfed in 2.3) +DELETE FROM `creature_template_spell` WHERE `CreatureID`=589 AND `Index`=0; +INSERT INTO `creature_template_spell` (`CreatureID`, `Index`, `Spell`, `VerifiedBuild`) VALUES (589, 0, 19816, 12340); +UPDATE `smart_scripts` SET `action_param1` = 19816 WHERE `entryorguid`=589 AND `source_type`=0 AND `id`=2 AND `link`=0; \ No newline at end of file diff --git a/src/IndividualProgression.cpp b/src/IndividualProgression.cpp index 9124745..19d0732 100644 --- a/src/IndividualProgression.cpp +++ b/src/IndividualProgression.cpp @@ -137,6 +137,32 @@ public: } }; +class npc_ipp_naxx40 : public CreatureScript +{ +public: + npc_ipp_naxx40() : CreatureScript("npc_ipp_naxx40") { } + + struct npc_ipp_naxx40AI: ScriptedAI + { + npc_ipp_naxx40AI(Creature* creature) : ScriptedAI(creature) { }; + + bool CanBeSeen(Player const* player) override + { + if (player->IsGameMaster() || !enabled) + { + return true; + } + Player* target = ObjectAccessor::FindConnectedPlayer(player->GetGUID()); + return target->GetPlayerSetting("mod-individual-progression", SETTING_PROGRESSION_STATE).value >= PROGRESSION_BLACKWING_LAIR; + } + }; + + CreatureAI* GetAI(Creature* creature) const override + { + return new npc_ipp_naxx40AI(creature); + } +}; + class IndividualPlayerProgression_WorldScript : public WorldScript { @@ -648,6 +674,7 @@ void AddSC_mod_individual_progression() new IndividualPlayerProgression_WorldScript(); new IndividualPlayerProgression_PetScript(); new npc_ipp_aq(); + new npc_ipp_naxx40(); new npc_ipp_tbc(); new npc_ipp_wotlk(); new gobject_ipp_tbc();