Core/Achievements: Prevent ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL updates at login

Core/Achievements: Implemented ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL
Core/Achievements: Implemented ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL_AT_AREA
Core/Achievements: Implemented ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_TEAM_RATING
Core/Achievements: Implemented ACHIEVEMENT_CRITERIA_TYPE_REACH_TEAM_RATING
Core/Achievements: Implemented map id requirement for achievement criterias

Closes issue #4479.
Closes issue #4478.
Closes issue #4473.
Closes issue #4472.
Closes issue #4471.
Closes issue #4480.
Closes issue #2284.
Closes issue #4481.

--HG--
branch : trunk
This commit is contained in:
Shauren
2010-12-17 18:12:46 +01:00
parent 1cdeb4d057
commit b11e5bbf81
6 changed files with 94 additions and 21 deletions
@@ -663,7 +663,15 @@ void ArenaTeam::FinishGame(int32 mod)
if (int32(m_stats.rating) + mod < 0)
m_stats.rating = 0;
else
{
m_stats.rating += mod;
for (MemberList::iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
if (Player* member = ObjectAccessor::FindPlayer(itr->guid))
{
member->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_TEAM_RATING, m_stats.rating, m_Type);
member->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_REACH_TEAM_RATING, m_stats.rating, m_Type);
}
}
m_stats.games_week += 1;
m_stats.games_season += 1;