mirror of
https://github.com/ZhengPeiRu21/mod-individual-progression
synced 2025-11-29 23:44:51 +08:00
Merge pull request #190 from Day36512/master
RDF Exceptions for Holidays and Crypt Scarab enhancements
This commit is contained in:
@@ -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
|
||||
#
|
||||
|
||||
@@ -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, ''),
|
||||
|
||||
@@ -347,29 +347,35 @@ public:
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
{
|
||||
// List of exceptions for seasonal event dungeons
|
||||
std::set<uint32> seasonalEventDungeons = { 285, 286, 287, 288 };
|
||||
if (seasonalEventDungeons.find(rDungeonId) != seasonalEventDungeons.end())
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
// Check if RDF is disabled in the context of Individual Progression
|
||||
if (sConfigMgr->GetOption<bool>("IndividualProgression.DisableRDF", false))
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
bool CanEquipItem(Player* player, uint8 /*slot*/, uint16& /*dest*/, Item* pItem, bool /*swap*/, bool /*not_loading*/) override
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user