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

@@ -188,7 +188,7 @@ IndividualProgression.SimpleConfigOverride = 1
#
#
IndividualProgression.ProgressionLimit = 0
IndividualProgression.ProgressionLimit = 0
#
# IndividualProgression.StartingProgression
# Description: If enabled, players will begin at this progression stage.
@@ -201,7 +201,7 @@ IndividualProgression.SimpleConfigOverride = 1
#
#
IndividualProgression.StartingProgression = 0
IndividualProgression.StartingProgression = 0
#
# IndividualProgression.QuestMoneyAtLevelCap
# Description: If enabled, players at the level cap for the current progression stage will receive
@@ -215,4 +215,16 @@ 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->startingProgression = sConfigMgr->GetOption<uint8>("IndividualProgression.StartingProgression", 0);
sIndividualProgression->questMoneyAtLevelCap = sConfigMgr->GetOption<bool>("IndividualProgression.QuestMoneyAtLevelCap", true);
sIndividualProgression->repeatableVanillaQuestsXp = sConfigMgr->GetOption<bool>("IndividualProgression.RepeatableVanillaQuestsXP", true);
}
static void LoadXpValues()
@@ -706,6 +707,14 @@ public:
case MIGHT_OF_KALIMDOR:
sIndividualProgression->UpdateProgressionState(player, PROGRESSION_PRE_AQ);
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
{
MIGHT_OF_KALIMDOR = 8742
MIGHT_OF_KALIMDOR = 8742,
QUEST_MORROWGRAIN = 3803,
QUEST_TROLL_NECKLACE = 2881
};
enum ProgressionMaps
@@ -115,7 +117,7 @@ public:
questXpMapType questXpMap;
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;
bool hasPassedProgression(Player* player, ProgressionState state) const;