Core/Quests: Correct criteria tree quest objective update conditions
Port From (https://github.com/TrinityCore/TrinityCore/commit/b37163b5e2aee2fe7a720559442cf85f3b0ccfbb)
This commit is contained in:
@@ -225,14 +225,10 @@ namespace Game
|
|||||||
|
|
||||||
void CompletedObjective(QuestObjective questObjective, Player referencePlayer)
|
void CompletedObjective(QuestObjective questObjective, Player referencePlayer)
|
||||||
{
|
{
|
||||||
// disable for gamemasters with GM-mode enabled
|
|
||||||
if (_owner.IsGameMaster())
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (HasCompletedObjective(questObjective))
|
if (HasCompletedObjective(questObjective))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
referencePlayer.KillCreditCriteriaTreeObjective(questObjective);
|
_owner.KillCreditCriteriaTreeObjective(questObjective);
|
||||||
|
|
||||||
Log.outInfo(LogFilter.Player, $"QuestObjectiveCriteriaMgr.CompletedObjective({questObjective.Id}). {GetOwnerInfo()}");
|
Log.outInfo(LogFilter.Player, $"QuestObjectiveCriteriaMgr.CompletedObjective({questObjective.Id}). {GetOwnerInfo()}");
|
||||||
|
|
||||||
@@ -281,6 +277,19 @@ namespace Game
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_owner.GetQuestStatus(objective.QuestID) != QuestStatus.Incomplete)
|
||||||
|
{
|
||||||
|
Log.outTrace(LogFilter.Achievement, $"QuestObjectiveCriteriaMgr.CanUpdateCriteriaTree: (Id: {criteria.Id} Type {criteria.Entry.Type} Quest Objective {objective.Id}) Not on quest");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Quest quest = Global.ObjectMgr.GetQuestTemplate(objective.QuestID);
|
||||||
|
if (_owner.GetGroup() && _owner.GetGroup().IsRaidGroup() && !quest.IsAllowedInRaid(referencePlayer.GetMap().GetDifficultyID()))
|
||||||
|
{
|
||||||
|
Log.outTrace(LogFilter.Achievement, $"QuestObjectiveCriteriaMgr.CanUpdateCriteriaTree: (Id: {criteria.Id} Type {criteria.Entry.Type} Quest Objective {objective.Id}) Quest cannot be completed in raid group");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return base.CanUpdateCriteriaTree(criteria, tree, referencePlayer);
|
return base.CanUpdateCriteriaTree(criteria, tree, referencePlayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user