Add config option for Naxx40 Strath Entrance requirement

This commit is contained in:
郑佩茹
2023-03-21 09:32:28 -06:00
parent 6d21aac6b0
commit cb723a31f9
4 changed files with 15 additions and 2 deletions

View File

@@ -129,6 +129,17 @@ IndividualProgression.HunterPetLevelFix = 1
IndividualProgression.RequirePreAQQuests = 1 IndividualProgression.RequirePreAQQuests = 1
# #
# IndividualProgression.RequireNaxxStrathEntrance
# Description: If enabled, requires players to first enter Naxx 40 through the original beta entrance in the back of Stratholme
# before being able to use the teleportation crystal in EPL. This is consistent behavior with other Vanilla raids (MC, BL).
# If disabled, players can enter Naxx 40 through the crystal as soon as they are attuned and they have reached the correct
# progression level - no Stratholme run will be required.
# Default: 1 - Enabled
# 0 - Disabled
#
IndividualProgression.RequireNaxxStrathEntrance = 1
#
# #
# #
# IndividualProgression.MoltenCore.ManualRuneHandling # IndividualProgression.MoltenCore.ManualRuneHandling

View File

@@ -293,6 +293,7 @@ private:
sIndividualProgression->questXpFix = sConfigMgr->GetOption<bool>("IndividualProgression.QuestXPFix", true); sIndividualProgression->questXpFix = sConfigMgr->GetOption<bool>("IndividualProgression.QuestXPFix", true);
sIndividualProgression->hunterPetLevelFix = sConfigMgr->GetOption<bool>("IndividualProgression.HunterPetLevelFix", true); sIndividualProgression->hunterPetLevelFix = sConfigMgr->GetOption<bool>("IndividualProgression.HunterPetLevelFix", true);
sIndividualProgression->requirePreAQQuests = sConfigMgr->GetOption<bool>("IndividualProgression.RequirePreAQQuests", true); sIndividualProgression->requirePreAQQuests = sConfigMgr->GetOption<bool>("IndividualProgression.RequirePreAQQuests", true);
sIndividualProgression->requireNaxxStrath = sConfigMgr->GetOption<bool>("IndividualProgression.RequireNaxxStrathEntrance", true);
sIndividualProgression->enforceGroupRules = sConfigMgr->GetOption<bool>("IndividualProgression.EnforceGroupRules", true); sIndividualProgression->enforceGroupRules = sConfigMgr->GetOption<bool>("IndividualProgression.EnforceGroupRules", true);
sIndividualProgression->fishingFix = sConfigMgr->GetOption<bool>("IndividualProgression.FishingFix", true); sIndividualProgression->fishingFix = sConfigMgr->GetOption<bool>("IndividualProgression.FishingFix", true);
sIndividualProgression->simpleConfigOverride = sConfigMgr->GetOption<bool>("IndividualProgression.SimpleConfigOverride", true); sIndividualProgression->simpleConfigOverride = sConfigMgr->GetOption<bool>("IndividualProgression.SimpleConfigOverride", true);

View File

@@ -143,7 +143,7 @@ public:
std::map<uint32, uint8> customProgressionMap; std::map<uint32, uint8> customProgressionMap;
questXpMapType questXpMap; questXpMapType questXpMap;
float vanillaPowerAdjustment, vanillaHealthAdjustment, tbcPowerAdjustment, tbcHealthAdjustment, vanillaHealingAdjustment, tbcHealingAdjustment, previousGearTuning; float vanillaPowerAdjustment, vanillaHealthAdjustment, tbcPowerAdjustment, tbcHealthAdjustment, vanillaHealingAdjustment, tbcHealingAdjustment, previousGearTuning;
bool enabled, questXpFix, hunterPetLevelFix, requirePreAQQuests, enforceGroupRules, fishingFix, simpleConfigOverride, questMoneyAtLevelCap, repeatableVanillaQuestsXp, disableDefaultProgression, earlyDungeonSet2; bool enabled, questXpFix, hunterPetLevelFix, requirePreAQQuests, enforceGroupRules, fishingFix, simpleConfigOverride, questMoneyAtLevelCap, repeatableVanillaQuestsXp, disableDefaultProgression, earlyDungeonSet2, requireNaxxStrath;
int progressionLimit, startingProgression, tbcRacesProgressionLevel, deathKnightProgressionLevel, deathKnightStartingProgression; int progressionLimit, startingProgression, tbcRacesProgressionLevel, deathKnightProgressionLevel, deathKnightStartingProgression;
bool hasPassedProgression(Player* player, ProgressionState state) const; bool hasPassedProgression(Player* player, ProgressionState state) const;

View File

@@ -25,6 +25,7 @@
#include "ObjectMgr.h" #include "ObjectMgr.h"
#include "GameObjectAI.h" #include "GameObjectAI.h"
#include "naxxramas.h" #include "naxxramas.h"
#include "IndividualProgression.h"
const float HeiganPos[2] = {2796, -3707}; const float HeiganPos[2] = {2796, -3707};
const float HeiganEruptionSlope[3] = const float HeiganEruptionSlope[3] =
@@ -1354,7 +1355,7 @@ public:
bool OnGossipHello(Player* player, GameObject* go) override bool OnGossipHello(Player* player, GameObject* go) override
{ {
if (player->GetQuestStatus(NAXX40_ENTRANCE_FLAG) == QUEST_STATUS_REWARDED && isAttuned(player)) if ((!sIndividualProgression->requireNaxxStrath || player->GetQuestStatus(NAXX40_ENTRANCE_FLAG) == QUEST_STATUS_REWARDED) && isAttuned(player))
{ {
player->SetRaidDifficulty(RAID_DIFFICULTY_10MAN_HEROIC); player->SetRaidDifficulty(RAID_DIFFICULTY_10MAN_HEROIC);
player->TeleportTo(533, 3005.51f, -3434.64f, 304.195f, 6.2831f); player->TeleportTo(533, 3005.51f, -3434.64f, 304.195f, 6.2831f);