mirror of
https://github.com/ZhengPeiRu21/mod-individual-progression
synced 2025-11-29 23:44:51 +08:00
RDF Disable Holliday Exceptions
Added exceptions to Headless Horseman, Frost Lord Ahune, Coren Direbrew, and Crown Chemical Co.
This commit is contained in:
@@ -347,29 +347,34 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void OnQueueRandomDungeon(Player* player, uint32& rDungeonId) override
|
void OnQueueRandomDungeon(Player* player, uint32& rDungeonId) override
|
||||||
{
|
{
|
||||||
// Check if RDF is disabled in the context of Individual Progression
|
|
||||||
if (sConfigMgr->GetOption<bool>("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))
|
std::set<uint32> seasonalEventIds = { 285, 286, 287, 288 }; // Allow Headless Horseman, Frost Lord Ahune, Coren Direbrew, Crown Chemical Co.
|
||||||
{
|
bool isSeasonalEvent = (seasonalEventIds.find(rDungeonId) != seasonalEventIds.end());
|
||||||
rDungeonId = RDF_CLASSIC;
|
|
||||||
}
|
// Check if RDF is disabled in the context of Individual Progression
|
||||||
else if (rDungeonId == RDF_WRATH_OF_THE_LICH_KING && !sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5))
|
if (sConfigMgr->GetOption<bool>("IndividualProgression.DisableRDF", false) && !isSeasonalEvent)
|
||||||
{
|
{
|
||||||
rDungeonId = RDF_THE_BURNING_CRUSADE;
|
// Notify the player
|
||||||
}
|
player->GetSession()->SendNotification("The Random Dungeon feature is currently disabled by the Individual Progression module.");
|
||||||
else if (rDungeonId == RDF_WRATH_OF_THE_LICH_KING_HEROIC && !sIndividualProgression->hasPassedProgression(player, PROGRESSION_TBC_TIER_5))
|
rDungeonId = 1000; // Set dungeon ID to an invalid value to cancel the queuing
|
||||||
{
|
return;
|
||||||
rDungeonId = RDF_THE_BURNING_CRUSADE_HEROIC;
|
}
|
||||||
}
|
|
||||||
}
|
// 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
|
bool CanEquipItem(Player* player, uint8 /*slot*/, uint16& /*dest*/, Item* pItem, bool /*swap*/, bool /*not_loading*/) override
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user