Core/Quest: Do not allow quests to be turned in if the player no longer satisfies level/skill/reputation requirements.
Port From (https://github.com/TrinityCore/TrinityCore/commit/925aaecbc0997a8fa3dea8de25f12258f889ffad)
This commit is contained in:
@@ -527,6 +527,10 @@ namespace Game.Entities
|
|||||||
|
|
||||||
public bool CanRewardQuest(Quest quest, bool msg)
|
public bool CanRewardQuest(Quest quest, bool msg)
|
||||||
{
|
{
|
||||||
|
// quest is disabled
|
||||||
|
if (Global.DisableMgr.IsDisabledFor(DisableType.Quest, quest.Id, this))
|
||||||
|
return false;
|
||||||
|
|
||||||
// not auto complete quest and not completed quest (only cheating case, then ignore without message)
|
// not auto complete quest and not completed quest (only cheating case, then ignore without message)
|
||||||
if (!quest.IsDFQuest() && !quest.IsAutoComplete() && GetQuestStatus(quest.Id) != QuestStatus.Complete)
|
if (!quest.IsDFQuest() && !quest.IsAutoComplete() && GetQuestStatus(quest.Id) != QuestStatus.Complete)
|
||||||
return false;
|
return false;
|
||||||
@@ -535,6 +539,10 @@ namespace Game.Entities
|
|||||||
if (!SatisfyQuestDay(quest, true) || !SatisfyQuestWeek(quest, true) || !SatisfyQuestMonth(quest, true) || !SatisfyQuestSeasonal(quest, true))
|
if (!SatisfyQuestDay(quest, true) || !SatisfyQuestWeek(quest, true) || !SatisfyQuestMonth(quest, true) || !SatisfyQuestSeasonal(quest, true))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
// player no longer satisfies the quest's requirements (skill level etc.)
|
||||||
|
if (!SatisfyQuestLevel(quest, true) || !SatisfyQuestSkill(quest, true) || !SatisfyQuestReputation(quest, true))
|
||||||
|
return false;
|
||||||
|
|
||||||
// rewarded and not repeatable quest (only cheating case, then ignore without message)
|
// rewarded and not repeatable quest (only cheating case, then ignore without message)
|
||||||
if (GetQuestRewardStatus(quest.Id))
|
if (GetQuestRewardStatus(quest.Id))
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user