Allow repeatable Vanilla quests to give rewards

This commit is contained in:
郑佩茹
2022-09-16 22:14:30 -06:00
parent 3fe8b8f8a7
commit c552a84d4d
3 changed files with 28 additions and 5 deletions

View File

@@ -216,3 +216,15 @@ IndividualProgression.SimpleConfigOverride = 1
# #
IndividualProgression.QuestMoneyAtLevelCap = 1 IndividualProgression.QuestMoneyAtLevelCap = 1
#
# IndividualProgression.RepeatableVanillaQuestsXP
# Description: Some repeatable quests in Vanilla gave XP every time they were turned in.
# Enable this feature to allow these quests to have the Vanilla behavior and give XP each turn in.
# Disable to have the WotLK behavior and only grant XP once.
#
# Default: 1 - Enabled
# 0 - Disabled
#
#
IndividualProgression.RepeatableVanillaQuestsXP = 1

View File

@@ -402,6 +402,7 @@ private:
sIndividualProgression->progressionLimit = sConfigMgr->GetOption<uint8>("IndividualProgression.ProgressionLimit", 0); sIndividualProgression->progressionLimit = sConfigMgr->GetOption<uint8>("IndividualProgression.ProgressionLimit", 0);
sIndividualProgression->startingProgression = sConfigMgr->GetOption<uint8>("IndividualProgression.StartingProgression", 0); sIndividualProgression->startingProgression = sConfigMgr->GetOption<uint8>("IndividualProgression.StartingProgression", 0);
sIndividualProgression->questMoneyAtLevelCap = sConfigMgr->GetOption<bool>("IndividualProgression.QuestMoneyAtLevelCap", true); sIndividualProgression->questMoneyAtLevelCap = sConfigMgr->GetOption<bool>("IndividualProgression.QuestMoneyAtLevelCap", true);
sIndividualProgression->repeatableVanillaQuestsXp = sConfigMgr->GetOption<bool>("IndividualProgression.RepeatableVanillaQuestsXP", true);
} }
static void LoadXpValues() static void LoadXpValues()
@@ -706,6 +707,14 @@ public:
case MIGHT_OF_KALIMDOR: case MIGHT_OF_KALIMDOR:
sIndividualProgression->UpdateProgressionState(player, PROGRESSION_PRE_AQ); sIndividualProgression->UpdateProgressionState(player, PROGRESSION_PRE_AQ);
break; break;
case QUEST_MORROWGRAIN:
case QUEST_TROLL_NECKLACE:
if (sIndividualProgression->repeatableVanillaQuestsXp)
{
// Reset the quest status so the player can take it and receive rewards again
player->RemoveRewardedQuest(quest->GetQuestId());
}
break;
} }
} }

View File

@@ -51,7 +51,9 @@ enum BuffSpells
enum ProgressionQuestIDs enum ProgressionQuestIDs
{ {
MIGHT_OF_KALIMDOR = 8742 MIGHT_OF_KALIMDOR = 8742,
QUEST_MORROWGRAIN = 3803,
QUEST_TROLL_NECKLACE = 2881
}; };
enum ProgressionMaps enum ProgressionMaps
@@ -115,7 +117,7 @@ public:
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; bool enabled, questXpFix, hunterPetLevelFix, requirePreAQQuests, enforceGroupRules, fishingFix, simpleConfigOverride, questMoneyAtLevelCap, repeatableVanillaQuestsXp;
int progressionLimit, startingProgression; int progressionLimit, startingProgression;
bool hasPassedProgression(Player* player, ProgressionState state) const; bool hasPassedProgression(Player* player, ProgressionState state) const;