From a11fd7113eb62b5f71c792d894f33b71ab3a29c3 Mon Sep 17 00:00:00 2001 From: Dinkledork <118951051+Day36512@users.noreply.github.com> Date: Wed, 27 Sep 2023 11:42:51 -0600 Subject: [PATCH 1/6] Update naxx40_creatures.sql Movement type set to 0 for Scarab Corpse. Was set to wp path movement type, which is incorrect. --- sql/world/base/naxx40_creatures.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/world/base/naxx40_creatures.sql b/sql/world/base/naxx40_creatures.sql index 815d58e..3680007 100644 --- a/sql/world/base/naxx40_creatures.sql +++ b/sql/world/base/naxx40_creatures.sql @@ -83,7 +83,7 @@ REPLACE INTO `creature_template` (`entry`, `modelid1`, `name`, `subname`, `minle (351080, 16605, "Naxxramas Follower", "", 61, 61, 21, 1.0, 1.42857, 20.0, 1.0, 1, 0, 59.2, 2000, 1265, 1.0, 1.0, 8, 32832, 2048, 0, 7, 72, 0, 0, 0, 0, 0, 'SmartAI', 0, 1.0, 45.0, 10.0, 1.15, 1.0, 144, 1, 1023391482, 0, 0, ''), (351081, 16603, "Naxxramas Worshipper", "", 61, 61, 21, 1.0, 1.42857, 20.0, 1.0, 1, 0, 35.0, 2000, 1265, 1.0, 1.0, 8, 32832, 2048, 0, 7, 72, 0, 0, 0, 0, 0, 'SmartAI', 0, 1.0, 40.0, 10.0, 1.0, 1.0, 144, 1, 1023391482, 0, 0, ''), (351082, 14698, "Crypt Guard", "", 61, 61, 21, 1.0, 1.42857, 20.0, 1.0, 1, 0, 14.7, 1000, 1265, 1.0, 1.0, 1, 64, 2048, 0, 6, 72, 0, 0, 0, 0, 0, 'SmartAI', 0, 1.0, 65.0, 1.0, 1.15, 1.0, 144, 1, 1023391482, 0, 0, ''), -(351083, 10005, "Corpse Scarab", "", 60, 60, 21, 0.833332, 2.14286, 18.0, 1.0, 0, 0, 2.1, 1000, 1265, 1.0, 1.0, 1, 0, 2048, 0, 10, 72, 0, 0, 0, 0, 0, 'SmartAI', 2, 1.0, 2.0, 1.0, 0.7, 1.0, 188, 1, 1022042641, 0, 0, ''), +(351083, 10005, "Corpse Scarab", "", 60, 60, 21, 0.833332, 2.14286, 18.0, 1.0, 0, 0, 2.1, 1000, 1265, 1.0, 1.0, 1, 0, 2048, 0, 10, 72, 0, 0, 0, 0, 0, 'SmartAI', 0, 1.0, 2.0, 1.0, 0.7, 1.0, 188, 1, 1022042641, 0, 0, ''), (351084, 16539, "Deathknight Understudy", "", 60, 60, 21, 1.0, 1.42857, 20.0, 1.0, 1, 0, 45.5, 3500, 1265, 1.0, 1.0, 1, 32832, 2048, 0, 7, 72, 0, 0, 0, 0, 0, '', 0, 1.0, 30.0, 2.0, 2.0, 1.0, 144, 1, 1022049874, 0, 0, 'boss_razuvious_minion_40'), (351085, 2606, "Plagued Guardian", "", 61, 61, 21, 1.0, 1.42857, 20.0, 1.0, 1, 0, 24.25, 3000, 2000, 1.0, 1.0, 8, 0, 2048, 0, 6, 72, 0, 0, 0, 0, 0, 'SmartAI', 0, 1.0, 8.0, 18.0, 1.15, 1.0, 144, 1, 1015751184, 0, 0, ''), (351086, 7847, "Plagued Champion", "", 61, 61, 21, 0.888888, 1.42857, 20.0, 1.0, 1, 0, 26.85, 2000, 2000, 1.0, 1.0, 1, 64, 2048, 0, 6, 72, 0, 0, 0, 0, 0, 'SmartAI', 0, 1.0, 11.0, 1.0, 1.15, 1.0, 144, 1, 1015226896, 0, 0, ''), From fa7d7ed502563dee964a8bf27fcad912fb690b17 Mon Sep 17 00:00:00 2001 From: Dinkledork <118951051+Day36512@users.noreply.github.com> Date: Wed, 27 Sep 2023 18:02:54 -0600 Subject: [PATCH 2/6] RDF Disable Holliday Exceptions Added exceptions to Headless Horseman, Frost Lord Ahune, Coren Direbrew, and Crown Chemical Co. --- src/IndividualProgressionPlayer.cpp | 49 ++++++++++++++++------------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/src/IndividualProgressionPlayer.cpp b/src/IndividualProgressionPlayer.cpp index c8228fb..4227ff3 100644 --- a/src/IndividualProgressionPlayer.cpp +++ b/src/IndividualProgressionPlayer.cpp @@ -347,29 +347,34 @@ public: } void OnQueueRandomDungeon(Player* player, uint32& rDungeonId) override - { - // Check if RDF is disabled in the context of Individual Progression - if (sConfigMgr->GetOption("IndividualProgression.DisableRDF", false)) - { - // Notify the player - player->GetSession()->SendNotification("The Random Dungeon feature is currently disabled by the Individual Progression module."); - rDungeonId = 1000; // Set dungeon ID to an invalid value to cancel the queuing - return; - } + { - if (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_NAXX40)) - { - rDungeonId = RDF_CLASSIC; - } - else if (rDungeonId == RDF_WRATH_OF_THE_LICH_KING && !sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5)) - { - rDungeonId = RDF_THE_BURNING_CRUSADE; - } - else if (rDungeonId == RDF_WRATH_OF_THE_LICH_KING_HEROIC && !sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5)) - { - rDungeonId = RDF_THE_BURNING_CRUSADE_HEROIC; - } - } + std::set seasonalEventIds = { 285, 286, 287, 288 }; // Allow Headless Horseman, Frost Lord Ahune, Coren Direbrew, Crown Chemical Co. + bool isSeasonalEvent = (seasonalEventIds.find(rDungeonId) != seasonalEventIds.end()); + + // Check if RDF is disabled in the context of Individual Progression + if (sConfigMgr->GetOption("IndividualProgression.DisableRDF", false) && !isSeasonalEvent) + { + // Notify the player + player->GetSession()->SendNotification("The Random Dungeon feature is currently disabled by the Individual Progression module."); + rDungeonId = 1000; // Set dungeon ID to an invalid value to cancel the queuing + return; + } + + // Other logic for individual progression checks + if (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_NAXX40)) + { + rDungeonId = RDF_CLASSIC; + } + else if (rDungeonId == RDF_WRATH_OF_THE_LICH_KING && !sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5)) + { + rDungeonId = RDF_THE_BURNING_CRUSADE; + } + else if (rDungeonId == RDF_WRATH_OF_THE_LICH_KING_HEROIC && !sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5)) + { + rDungeonId = RDF_THE_BURNING_CRUSADE_HEROIC; + } +} bool CanEquipItem(Player* player, uint8 /*slot*/, uint16& /*dest*/, Item* pItem, bool /*swap*/, bool /*not_loading*/) override { From 4ad27208ff38ae6db8679d83489a311796177d86 Mon Sep 17 00:00:00 2001 From: Dinkledork <118951051+Day36512@users.noreply.github.com> Date: Wed, 27 Sep 2023 18:32:59 -0600 Subject: [PATCH 3/6] Undo RDF Holliday Commit --- src/IndividualProgressionPlayer.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/IndividualProgressionPlayer.cpp b/src/IndividualProgressionPlayer.cpp index 4227ff3..edef3d9 100644 --- a/src/IndividualProgressionPlayer.cpp +++ b/src/IndividualProgressionPlayer.cpp @@ -348,20 +348,14 @@ public: void OnQueueRandomDungeon(Player* player, uint32& rDungeonId) override { - - std::set seasonalEventIds = { 285, 286, 287, 288 }; // Allow Headless Horseman, Frost Lord Ahune, Coren Direbrew, Crown Chemical Co. - bool isSeasonalEvent = (seasonalEventIds.find(rDungeonId) != seasonalEventIds.end()); - // Check if RDF is disabled in the context of Individual Progression - if (sConfigMgr->GetOption("IndividualProgression.DisableRDF", false) && !isSeasonalEvent) + if (sConfigMgr->GetOption("IndividualProgression.DisableRDF", false)) { // Notify the player player->GetSession()->SendNotification("The Random Dungeon feature is currently disabled by the Individual Progression module."); rDungeonId = 1000; // Set dungeon ID to an invalid value to cancel the queuing return; } - - // Other logic for individual progression checks if (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_NAXX40)) { rDungeonId = RDF_CLASSIC; From 35e9f4dbdd8e1b1f48630bb9e2abf331449e0402 Mon Sep 17 00:00:00 2001 From: Dinkledork <118951051+Day36512@users.noreply.github.com> Date: Wed, 27 Sep 2023 18:55:14 -0600 Subject: [PATCH 4/6] Holiday Exceptions for Disable RDF Added Holiday events to the exception list. --- src/IndividualProgressionPlayer.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/IndividualProgressionPlayer.cpp b/src/IndividualProgressionPlayer.cpp index edef3d9..6a13745 100644 --- a/src/IndividualProgressionPlayer.cpp +++ b/src/IndividualProgressionPlayer.cpp @@ -347,15 +347,22 @@ public: } void OnQueueRandomDungeon(Player* player, uint32& rDungeonId) override +{ + // List of exceptions for seasonal event dungeons + std::set seasonalEventDungeons = { 285, 286, 287, 288 }; + if (seasonalEventDungeons.find(rDungeonId) != seasonalEventDungeons.end()) { + return; + } + // Check if RDF is disabled in the context of Individual Progression if (sConfigMgr->GetOption("IndividualProgression.DisableRDF", false)) { - // Notify the player player->GetSession()->SendNotification("The Random Dungeon feature is currently disabled by the Individual Progression module."); rDungeonId = 1000; // Set dungeon ID to an invalid value to cancel the queuing return; } + if (!sIndividualProgression->hasPassedProgression(player, PROGRESSION_NAXX40)) { rDungeonId = RDF_CLASSIC; From b3cb2bedaea91eb6dfc49db7934f3b618858a69a Mon Sep 17 00:00:00 2001 From: Dinkledork <118951051+Day36512@users.noreply.github.com> Date: Wed, 27 Sep 2023 19:08:20 -0600 Subject: [PATCH 5/6] Update boss_anubrekhan_40.cpp Ensures Corpse Scarabs engage in combat. --- src/naxx40Scripts/boss_anubrekhan_40.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/naxx40Scripts/boss_anubrekhan_40.cpp b/src/naxx40Scripts/boss_anubrekhan_40.cpp index 3301d71..fcaab47 100644 --- a/src/naxx40Scripts/boss_anubrekhan_40.cpp +++ b/src/naxx40Scripts/boss_anubrekhan_40.cpp @@ -94,7 +94,6 @@ public: me->SummonCreature(NPC_CRYPT_GUARD, 3299.086f, -3450.929f, 287.077f, 3.999f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000); } - void Reset() override { BossAI::Reset(); @@ -112,15 +111,19 @@ public: void JustSummoned(Creature* cr) override { - if (me->IsInCombat()) - { - cr->SetInCombatWithZone(); + if (me->IsInCombat()) + { + cr->SetInCombatWithZone(); // This line will set the creature in combat with the zone. if (cr->GetEntry() == NPC_CRYPT_GUARD) { - cr->AI()->Talk(EMOTE_SPAWN, me); + cr->AI()->Talk(EMOTE_SPAWN, me); } - } - summons.Summon(cr); + else if (cr->GetEntry() == NPC_CORPSE_SCARAB) // Explicitly check for Corpse Scarabs here. + { + cr->SetInCombatWithZone(); // Set the Corpse Scarabs in combat with the zone too. + } + } + summons.Summon(cr); } void SummonedCreatureDies(Creature* cr, Unit*) override From ba20397ea16db9fbeaa02d9a6c4b3d063106df1a Mon Sep 17 00:00:00 2001 From: Dinkledork <118951051+Day36512@users.noreply.github.com> Date: Thu, 28 Sep 2023 11:38:44 -0600 Subject: [PATCH 6/6] Update individualProgression.conf.dist --- conf/individualProgression.conf.dist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/individualProgression.conf.dist b/conf/individualProgression.conf.dist index 50c4571..39fd4e9 100644 --- a/conf/individualProgression.conf.dist +++ b/conf/individualProgression.conf.dist @@ -331,7 +331,7 @@ IndividualProgression.PvPGearRequirements = 1 # # IndividualProgression.DisableRDF # Description: Enable or disable the Random Dungeon Finder feature within the context of Individual Progression. -# Queing for specific dungeons will still be possible. (See worldserver.conf for total LFG removal). +# Queing for specific dungeons and Holiday Events will still be possible. (See worldserver.conf for total LFG removal). # Default: 0 - Enabled # 1 - Disabled #