diff --git a/Source/Framework/Constants/AchievementConst.cs b/Source/Framework/Constants/AchievementConst.cs index 0c6440425..ec5aea4bd 100644 --- a/Source/Framework/Constants/AchievementConst.cs +++ b/Source/Framework/Constants/AchievementConst.cs @@ -215,7 +215,7 @@ namespace Framework.Constants TimeInRange = 109, // Nyi, Packed Time Between Asset And Secondaryasset RewardedQuest = 110, CompletedQuest = 111, - CompletedQuestObjective = 112, // Nyi, Questobjectiveid + CompletedQuestObjective = 112, // Questobjectiveid ExploredArea = 113, ItemCountIncludingBank = 114, //Unk115 = 115, // Nyi diff --git a/Source/Game/Achievements/CriteriaHandler.cs b/Source/Game/Achievements/CriteriaHandler.cs index b0213df1f..3d72f3a35 100644 --- a/Source/Game/Achievements/CriteriaHandler.cs +++ b/Source/Game/Achievements/CriteriaHandler.cs @@ -1680,6 +1680,16 @@ namespace Game.Achievements if (referencePlayer.GetQuestStatus(reqValue) != QuestStatus.Complete) return false; break; + case CriteriaAdditionalCondition.CompletedQuestObjective: // 112 + { + QuestObjective objective = Global.ObjectMgr.GetQuestObjective(reqValue); + if (objective == null) + return false; + + if (referencePlayer.GetQuestRewardStatus(objective.QuestID) || !referencePlayer.IsQuestObjectiveComplete(objective)) + return false; + break; + } case CriteriaAdditionalCondition.ExploredArea: // 113 { AreaTableRecord areaTable = CliDB.AreaTableStorage.LookupByKey(reqValue);