diff options
| author | Meji <alvaro.megias@outlook.com> | 2024-02-03 22:03:55 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-03 22:03:55 +0100 |
| commit | 9fda9d0d490cef07291961e03710d09cbd8aea1f (patch) | |
| tree | 22c54977a5823f3475130f124bf531d51fa9cf50 /src | |
| parent | 7b88faf672ef664e23d0012cbe81612ff00eda3b (diff) | |
Core/Achievements: Fixed updating EarnAchievement criteria type for guilds and quest objectives (#29648)
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Achievements/AchievementMgr.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp | 5 | ||||
| -rw-r--r-- | src/server/game/Quests/QuestObjectiveCriteriaMgr.h | 2 |
3 files changed, 9 insertions, 2 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp index 306d57ebe28..64dd27d18e0 100644 --- a/src/server/game/Achievements/AchievementMgr.cpp +++ b/src/server/game/Achievements/AchievementMgr.cpp @@ -495,8 +495,8 @@ void PlayerAchievementMgr::CompletedAchievement(AchievementEntry const* achievem if (!(achievement->Flags & ACHIEVEMENT_FLAG_TRACKING_FLAG)) _achievementPoints += achievement->Points; - UpdateCriteria(CriteriaType::EarnAchievement, achievement->ID, 0, 0, nullptr, referencePlayer); - UpdateCriteria(CriteriaType::EarnAchievementPoints, achievement->Points, 0, 0, nullptr, referencePlayer); + referencePlayer->UpdateCriteria(CriteriaType::EarnAchievement, achievement->ID, 0, 0, nullptr); + referencePlayer->UpdateCriteria(CriteriaType::EarnAchievementPoints, achievement->Points, 0, 0, nullptr); sScriptMgr->OnAchievementCompleted(referencePlayer, achievement); diff --git a/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp b/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp index 798e90e6b26..42040cd0b09 100644 --- a/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp +++ b/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp @@ -310,3 +310,8 @@ CriteriaList const& QuestObjectiveCriteriaMgr::GetCriteriaByType(CriteriaType ty { return sCriteriaMgr->GetQuestObjectiveCriteriaByType(type); } + +bool QuestObjectiveCriteriaMgr::RequiredAchievementSatisfied(uint32 achievementId) const +{ + return _owner->HasAchieved(achievementId); +} diff --git a/src/server/game/Quests/QuestObjectiveCriteriaMgr.h b/src/server/game/Quests/QuestObjectiveCriteriaMgr.h index a263e153316..f3ba31c2ac1 100644 --- a/src/server/game/Quests/QuestObjectiveCriteriaMgr.h +++ b/src/server/game/Quests/QuestObjectiveCriteriaMgr.h @@ -56,6 +56,8 @@ protected: std::string GetOwnerInfo() const override; CriteriaList const& GetCriteriaByType(CriteriaType type, uint32 asset) const override; + bool RequiredAchievementSatisfied(uint32 achievementId) const override; + private: Player* _owner; std::unordered_set<uint32> _completedObjectives; |
