mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
Implemented ACHIEVEMENT_CRITERIA_TYPE_EXPLORE_AREA
This commit is contained in:
parent
82898a7922
commit
333146baaf
2 changed files with 24 additions and 0 deletions
|
|
@ -534,6 +534,26 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
|
||||||
++counter;
|
++counter;
|
||||||
}
|
}
|
||||||
SetCriteriaProgress(achievementCriteria, counter);
|
SetCriteriaProgress(achievementCriteria, counter);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ACHIEVEMENT_CRITERIA_TYPE_EXPLORE_AREA:
|
||||||
|
{
|
||||||
|
WorldMapOverlayEntry const* worldOverlayEntry = sWorldMapOverlayStore.LookupEntry(achievementCriteria->explore_area.areaReference);
|
||||||
|
if(!worldOverlayEntry)
|
||||||
|
break;
|
||||||
|
|
||||||
|
AreaTableEntry const* areaTableEntry = GetAreaEntryByAreaID(worldOverlayEntry->areatableID);
|
||||||
|
|
||||||
|
if(!areaTableEntry)
|
||||||
|
break;
|
||||||
|
|
||||||
|
uint32 exploreFlag = areaTableEntry->exploreFlag;
|
||||||
|
uint32 playerIndexOffset = exploreFlag / 32;
|
||||||
|
uint32 mask = 1<< (exploreFlag % 32);
|
||||||
|
|
||||||
|
if(GetPlayer()->GetUInt32Value(PLAYER_EXPLORED_ZONES_1 + playerIndexOffset) & mask)
|
||||||
|
SetCriteriaProgress(achievementCriteria, 1);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -629,6 +649,8 @@ bool AchievementMgr::IsCompletedCriteria(AchievementCriteriaEntry const* achieve
|
||||||
return progress->counter >= achievementCriteria->gain_reputation.reputationAmount;
|
return progress->counter >= achievementCriteria->gain_reputation.reputationAmount;
|
||||||
case ACHIEVEMENT_CRITERIA_TYPE_GAIN_EXALTED_REPUTATION:
|
case ACHIEVEMENT_CRITERIA_TYPE_GAIN_EXALTED_REPUTATION:
|
||||||
return progress->counter >= achievementCriteria->gain_exalted_reputation.numberOfExaltedFactions;
|
return progress->counter >= achievementCriteria->gain_exalted_reputation.numberOfExaltedFactions;
|
||||||
|
case ACHIEVEMENT_CRITERIA_TYPE_EXPLORE_AREA:
|
||||||
|
return progress->counter >= 1;
|
||||||
|
|
||||||
// handle all statistic-only criteria here
|
// handle all statistic-only criteria here
|
||||||
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND:
|
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND:
|
||||||
|
|
|
||||||
|
|
@ -5318,6 +5318,8 @@ void Player::CheckExploreSystem()
|
||||||
{
|
{
|
||||||
SetUInt32Value(PLAYER_EXPLORED_ZONES_1 + offset, (uint32)(currFields | val));
|
SetUInt32Value(PLAYER_EXPLORED_ZONES_1 + offset, (uint32)(currFields | val));
|
||||||
|
|
||||||
|
GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_EXPLORE_AREA);
|
||||||
|
|
||||||
AreaTableEntry const *p = GetAreaEntryByAreaFlagAndMap(areaFlag,GetMapId());
|
AreaTableEntry const *p = GetAreaEntryByAreaFlagAndMap(areaFlag,GetMapId());
|
||||||
if(!p)
|
if(!p)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue