mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 01:37:00 +00:00
[7619] Work under Achievement and AchievementCriteriaCompletion Flags
Remove wrong (not fully correct) check in IsCompletedAchievement Signed-off-by: DiSlord <dislord@nomail.com>
This commit is contained in:
parent
a787741a5a
commit
0f23722eb8
3 changed files with 18 additions and 19 deletions
|
|
@ -1107,8 +1107,7 @@ void AchievementMgr::CompletedCriteria(AchievementCriteriaEntry const* criteria,
|
||||||
if (m_completedAchievements.find(achievement->ID)!=m_completedAchievements.end())
|
if (m_completedAchievements.find(achievement->ID)!=m_completedAchievements.end())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if ((criteria->referredAchievement==achievement->ID && (criteria->completionFlag & ACHIEVEMENT_CRITERIA_COMPLETE_FLAG_ALL)) ||
|
if (IsCompletedAchievement(achievement))
|
||||||
IsCompletedAchievement(achievement))
|
|
||||||
CompletedAchievement(achievement);
|
CompletedAchievement(achievement);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1138,13 +1137,6 @@ bool AchievementMgr::IsCompletedAchievement(AchievementEntry const* entry)
|
||||||
else
|
else
|
||||||
completed_all = false;
|
completed_all = false;
|
||||||
|
|
||||||
if(achievmentForTestId == entry->ID) // not referenced achievement
|
|
||||||
{
|
|
||||||
// completed as single req. criteria
|
|
||||||
if(completed && criteria->completionFlag & ACHIEVEMENT_CRITERIA_COMPLETE_FLAG_ALL)
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// completed as have req. count of completed criterias
|
// completed as have req. count of completed criterias
|
||||||
if(achievmentForTestCount > 0 && achievmentForTestCount <= count)
|
if(achievmentForTestCount > 0 && achievmentForTestCount <= count)
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -42,13 +42,16 @@ enum AchievementFactionFlags
|
||||||
|
|
||||||
enum AchievementFlags
|
enum AchievementFlags
|
||||||
{
|
{
|
||||||
ACHIEVEMENT_FLAG_COUNTER = 0x00000001,
|
ACHIEVEMENT_FLAG_COUNTER = 0x00000001, // Just count statistic (never stop and complete)
|
||||||
ACHIEVEMENT_FLAG_REACH_LEVEL = 0x00000004,
|
ACHIEVEMENT_FLAG_UNK2 = 0x00000002, // not used
|
||||||
ACHIEVEMENT_FLAG_RERERED_MAX = 0x00000010, // displays the maximum criteria of a refered achievement
|
ACHIEVEMENT_FLAG_STORE_MAX_VALUE = 0x00000004, // Store only max value? used only in "Reach level xx"
|
||||||
ACHIEVEMENT_FLAG_MONEY_COUNTER = 0x00000020, // displays counter as money
|
ACHIEVEMENT_FLAG_SUMM = 0x00000008, // Use summ criteria value from all reqirements (and calculate max vale)
|
||||||
ACHIEVEMENT_FLAG_AVERAGE = 0x00000040,
|
ACHIEVEMENT_FLAG_MAX_USED = 0x00000010, // Show max criteria (and calculate max vale ??)
|
||||||
ACHIEVEMENT_FLAG_REALM_FIRST_REACH= 0x00000100,
|
ACHIEVEMENT_FLAG_REQ_COUNT = 0x00000020, // Use not zero req count (and calculate max vale)
|
||||||
ACHIEVEMENT_FLAG_REALM_FIRST_KILL = 0x00000200,
|
ACHIEVEMENT_FLAG_AVERANGE = 0x00000040, // Show as averange value (value / time_in_days) depend from other flag (by def use last criteria value)
|
||||||
|
ACHIEVEMENT_FLAG_BAR = 0x00000080, // Show as progress bar (value / max vale) depend from other flag (by def use last criteria value)
|
||||||
|
ACHIEVEMENT_FLAG_REALM_FIRST_REACH = 0x00000100, //
|
||||||
|
ACHIEVEMENT_FLAG_REALM_FIRST_KILL = 0x00000200, //
|
||||||
};
|
};
|
||||||
|
|
||||||
enum AchievementCriteriaCondition
|
enum AchievementCriteriaCondition
|
||||||
|
|
@ -64,8 +67,12 @@ enum AchievementCriteriaCondition
|
||||||
|
|
||||||
enum AchievementCriteriaCompletionFlags
|
enum AchievementCriteriaCompletionFlags
|
||||||
{
|
{
|
||||||
// some Achievements (like 698) have several criteria but only one has to be fulfilled. These are identified by this flag.
|
ACHIEVEMENT_CRITERIA_FLAG_SHOW_PROGRESS_BAR = 0x00000001, // Show progress as bar
|
||||||
ACHIEVEMENT_CRITERIA_COMPLETE_FLAG_ALL = 2,
|
ACHIEVEMENT_CRITERIA_FLAG_HIDE_CRITERIA = 0x00000002, // Not show criteria in client
|
||||||
|
ACHIEVEMENT_CRITERIA_FLAG_UNK3 = 0x00000004, // BG related??
|
||||||
|
ACHIEVEMENT_CRITERIA_FLAG_UNK4 = 0x00000008, //
|
||||||
|
ACHIEVEMENT_CRITERIA_FLAG_UNK5 = 0x00000010, // not used
|
||||||
|
ACHIEVEMENT_CRITERIA_FLAG_MONEY_COUNTER = 0x00000020, // Displays counter as money
|
||||||
};
|
};
|
||||||
|
|
||||||
enum AchievementCriteriaGroupFlags
|
enum AchievementCriteriaGroupFlags
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "7618"
|
#define REVISION_NR "7619"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue