mirror of
https://github.com/ZhengPeiRu21/mod-individual-progression
synced 2025-11-29 23:44:51 +08:00
Fix LFG Random Dungeon to choose appropriate dungeon for player's progression
This commit is contained in:
@@ -125,6 +125,16 @@ enum ProgressionState : uint8
|
||||
PROGRESSION_WOTLK_TIER_5 = 16 // Ruby Sanctum
|
||||
};
|
||||
|
||||
enum RandomDungeonIds : uint16
|
||||
{
|
||||
// Values from LFGDungeons.dbc
|
||||
RDF_CLASSIC = 258,
|
||||
RDF_THE_BURNING_CRUSADE = 259,
|
||||
RDF_THE_BURNING_CRUSADE_HEROIC = 260,
|
||||
RDF_WRATH_OF_THE_LICH_KING = 261,
|
||||
RDF_WRATH_OF_THE_LICH_KING_HEROIC = 262
|
||||
};
|
||||
|
||||
class IndividualProgression
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -323,6 +323,22 @@ public:
|
||||
player->RemoveAura(IPP_PHASE);
|
||||
}
|
||||
}
|
||||
|
||||
void OnQueueRandomDungeon(Player* player, uint32& rDungeonId) override
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
class IndividualPlayerProgression_AccountScript: public AccountScript
|
||||
|
||||
Reference in New Issue
Block a user