![]() |
TrinityCore
|
#include <AchievementMgr.h>
Static Public Member Functions | |
| static void | DeleteFromDB (ObjectGuid lowguid) |
Private Types | |
| typedef std::map< uint32, uint32 > | TimedAchievementMap |
Private Attributes | |
| Player * | m_player |
| CriteriaProgressMap | m_criteriaProgress |
| CompletedAchievementMap | m_completedAchievements |
| TimedAchievementMap | m_timedAchievements |
| uint32 | m_achievementPoints |
Definition at line 283 of file AchievementMgr.h.
|
private |
Definition at line 325 of file AchievementMgr.h.
| AchievementMgr::AchievementMgr | ( | Player * | player | ) |
Definition at line 497 of file AchievementMgr.cpp.
| AchievementMgr::~AchievementMgr | ( | ) |
Definition at line 501 of file AchievementMgr.cpp.
|
private |
used by SMSG_RESPOND_INSPECT_ACHIEVEMENT and SMSG_ALL_ACHIEVEMENT_DATA
Definition at line 1617 of file AchievementMgr.cpp.
References ACHIEVEMENT_FLAG_HIDDEN, WorldPackets::Achievement::EarnedAchievement::Date, WorldPackets::Achievement::CriteriaProgress::Date, WorldPackets::Achievement::AllAchievements::Earned, WorldPackets::Achievement::CriteriaProgress::Flags, AchievementEntry::Flags, Object::GetGUID(), GetPlayer(), Player::GetSession(), WorldSession::GetTimezoneOffset(), WorldPackets::Achievement::EarnedAchievement::Id, WorldPackets::Achievement::CriteriaProgress::Id, m_completedAchievements, m_criteriaProgress, WorldPackets::Achievement::CriteriaProgress::Player, WorldPackets::Achievement::AllAchievements::Progress, WorldPackets::Achievement::CriteriaProgress::Quantity, sAchievementStore, WowTime::SetUtcTimeFromUnixTime(), WorldPackets::Achievement::CriteriaProgress::TimeFromCreate, and WorldPackets::Achievement::CriteriaProgress::TimeFromStart.
Referenced by SendAllAchievementData(), and SendRespondInspectAchievements().
|
private |
Definition at line 1653 of file AchievementMgr.cpp.
References ACHIEVEMENT_FACTION_ALLIANCE, ACHIEVEMENT_FACTION_HORDE, ACHIEVEMENT_FLAG_REALM_FIRST_KILL, ACHIEVEMENT_FLAG_REALM_FIRST_REACH, ALLIANCE, ConditionsSatisfied(), DISABLE_TYPE_ACHIEVEMENT_CRITERIA, AchievementEntry::Faction, AchievementEntry::Flags, AchievementGlobalMgr::GetCriteriaTypeString(), GetPlayer(), HORDE, AchievementEntry::ID, AchievementCriteriaEntry::ID, AchievementEntry::InstanceID, IsCompletedCriteria(), DisableMgr::IsDisabledFor(), rbac::RBAC_PERM_CANNOT_EARN_REALM_FIRST_ACHIEVEMENTS, RequirementsSatisfied(), TC_LOG_TRACE, and AchievementCriteriaEntry::Type.
Referenced by UpdateAchievementCriteria().
| void AchievementMgr::CheckAllAchievementCriteria | ( | ) |
called at player login. The player might have fulfilled some achievements when the achievement system wasn't working yet
Definition at line 767 of file AchievementMgr.cpp.
References ACHIEVEMENT_CRITERIA_TYPE_TOTAL, and UpdateAchievementCriteria().
Referenced by Player::LoadFromDB(), and Reset().
| void AchievementMgr::CompletedAchievement | ( | AchievementEntry const * | entry | ) |
Currently there's only one achievement that deals with gender-specific titles. Since no common attributes were found, (not even in titleRewardFlags field) we explicitly check by ID. Maybe in the future we could move the achievement_reward condition fields to the condition system.
Definition at line 1517 of file AchievementMgr.cpp.
References ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_ACHIEVEMENT, ACHIEVEMENT_CRITERIA_TYPE_EARN_ACHIEVEMENT_POINTS, ACHIEVEMENT_FLAG_COUNTER, ACHIEVEMENT_FLAG_REALM_FIRST_KILL, ACHIEVEMENT_FLAG_REALM_FIRST_REACH, MailDraft::AddItem(), ALLIANCE, AchievementReward::Body, CompletedAchievementData::changed, CharacterDatabase, Item::CreateItem(), CompletedAchievementData::date, AchievementEntry::Flags, GameTime::GetGameTime(), Object::GetGUID(), ObjectMgr::GetLocaleString(), WorldObject::GetName(), GetPlayer(), Player::GetSession(), WorldSession::GetSessionDbLocaleIndex(), Player::GetTeam(), HasAchieved(), WorldSession::HasPermission(), AchievementEntry::ID, Player::IsGameMaster(), AchievementReward::ItemId, LOCALE_enUS, m_achievementPoints, m_completedAchievements, m_player, MAIL_CREATURE, AchievementReward::MailTemplateId, AchievementEntry::Points, rbac::RBAC_PERM_CANNOT_EARN_ACHIEVEMENTS, sAchievementMgr, Item::SaveToDB(), sCharTitlesStore, SendAchievementEarned(), AchievementReward::SenderCreatureId, MailDraft::SendMailTo(), Player::SetTitle(), AchievementReward::Subject, TC_LOG_INFO, AchievementReward::TitleId, ObjectGuid::ToString(), and UpdateAchievementCriteria().
Referenced by Player::CompletedAchievement(), CompletedCriteriaFor(), and UpdateAchievementCriteria().
|
private |
Definition at line 1289 of file AchievementMgr.cpp.
References ACHIEVEMENT_FLAG_COUNTER, CompletedAchievement(), AchievementEntry::Flags, HasAchieved(), AchievementEntry::ID, and IsCompletedAchievement().
Referenced by UpdateAchievementCriteria().
|
private |
Definition at line 1703 of file AchievementMgr.cpp.
References ACHIEVEMENT_CRITERIA_CONDITION_BG_MAP, ACHIEVEMENT_CRITERIA_CONDITION_NOT_IN_GROUP, AchievementCriteriaEntry::AdditionalRequirements, Player::GetGroup(), WorldLocation::GetMapId(), and GetPlayer().
Referenced by CanUpdateCriteria().
|
static |
Definition at line 550 of file AchievementMgr.cpp.
References CHAR_DEL_CHAR_ACHIEVEMENT, CHAR_DEL_CHAR_ACHIEVEMENT_PROGRESS, CharacterDatabase, ObjectGuid::GetCounter(), and PreparedStatementBase::setUInt32().
Referenced by reset_commandscript::HandleResetAchievementsCommand(), and Reset().
|
inline |
Definition at line 305 of file AchievementMgr.h.
|
private |
Definition at line 1361 of file AchievementMgr.cpp.
References AchievementCriteriaEntry::ID, and m_criteriaProgress.
Referenced by IsCompletedAchievement(), IsCompletedCriteria(), SetCriteriaProgress(), and UpdateAchievementCriteria().
|
inline |
Definition at line 300 of file AchievementMgr.h.
Referenced by BuildAllDataPacket(), CanUpdateCriteria(), CompletedAchievement(), ConditionsSatisfied(), LoadFromDB(), RequirementsSatisfied(), SaveToDB(), SendAchievementEarned(), SendAllAchievementData(), SendCriteriaProgressRemoved(), SendCriteriaUpdate(), SendRespondInspectAchievements(), and UpdateAchievementCriteria().
| bool AchievementMgr::HasAchieved | ( | uint32 | achievementId | ) | const |
Definition at line 1648 of file AchievementMgr.cpp.
References m_completedAchievements.
Referenced by CompletedAchievement(), CompletedCriteriaFor(), Player::HasAchieved(), and ResetAchievementCriteria().
|
private |
Definition at line 1303 of file AchievementMgr.cpp.
References ACHIEVEMENT_FLAG_COUNTER, ACHIEVEMENT_FLAG_SUMM, CriteriaProgress::counter, AchievementEntry::Flags, GetCriteriaProgress(), AchievementEntry::ID, IsCompletedCriteria(), AchievementEntry::MinimumCriteria, sAchievementMgr, and AchievementEntry::SharesCriteria.
Referenced by CompletedCriteriaFor(), and UpdateAchievementCriteria().
|
private |
Definition at line 1165 of file AchievementMgr.cpp.
References ACHIEVEMENT_CRITERIA_TYPE_ACCEPTED_SUMMONINGS, ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, ACHIEVEMENT_CRITERIA_TYPE_BUY_BANK_SLOT, ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL, ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL2, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_ACHIEVEMENT, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST_COUNT, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE, ACHIEVEMENT_CRITERIA_TYPE_CREATE_AUCTION, ACHIEVEMENT_CRITERIA_TYPE_DAMAGE_DONE, ACHIEVEMENT_CRITERIA_TYPE_DEATH, ACHIEVEMENT_CRITERIA_TYPE_DEATH_AT_MAP, ACHIEVEMENT_CRITERIA_TYPE_DEATH_IN_DUNGEON, ACHIEVEMENT_CRITERIA_TYPE_DEATHS_FROM, ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE, ACHIEVEMENT_CRITERIA_TYPE_EARN_ACHIEVEMENT_POINTS, ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL, ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM, ACHIEVEMENT_CRITERIA_TYPE_EQUIP_ITEM, ACHIEVEMENT_CRITERIA_TYPE_EXPLORE_AREA, ACHIEVEMENT_CRITERIA_TYPE_FALL_WITHOUT_DYING, ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT, ACHIEVEMENT_CRITERIA_TYPE_FLIGHT_PATHS_TAKEN, ACHIEVEMENT_CRITERIA_TYPE_GAIN_AURA, ACHIEVEMENT_CRITERIA_TYPE_GAIN_EXALTED_REPUTATION, ACHIEVEMENT_CRITERIA_TYPE_GAIN_HONORED_REPUTATION, ACHIEVEMENT_CRITERIA_TYPE_GAIN_REPUTATION, ACHIEVEMENT_CRITERIA_TYPE_GAIN_REVERED_REPUTATION, ACHIEVEMENT_CRITERIA_TYPE_GET_KILLING_BLOWS, ACHIEVEMENT_CRITERIA_TYPE_GOLD_EARNED_BY_AUCTIONS, ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_AT_BARBER, ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_MAIL, ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_TALENTS, ACHIEVEMENT_CRITERIA_TYPE_HEALING_DONE, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_ARMOR, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_AUCTION_BID, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_AUCTION_SOLD, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEALTH, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_PERSONAL_RATING, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_SPELLPOWER, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_TEAM_RATING, ACHIEVEMENT_CRITERIA_TYPE_HK_CLASS, ACHIEVEMENT_CRITERIA_TYPE_HK_RACE, ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL, ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL_AT_AREA, ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE, ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE_TYPE, ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_CREATURE, ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_PLAYER, ACHIEVEMENT_CRITERIA_TYPE_KNOWN_FACTIONS, ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LEVEL, ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LINE, ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS, ACHIEVEMENT_CRITERIA_TYPE_LEARN_SPELL, ACHIEVEMENT_CRITERIA_TYPE_LOOT_EPIC_ITEM, ACHIEVEMENT_CRITERIA_TYPE_LOOT_ITEM, ACHIEVEMENT_CRITERIA_TYPE_LOOT_MONEY, ACHIEVEMENT_CRITERIA_TYPE_LOOT_TYPE, ACHIEVEMENT_CRITERIA_TYPE_LOSE_DUEL, ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD, ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_VENDORS, ACHIEVEMENT_CRITERIA_TYPE_NUMBER_OF_TALENT_RESETS, ACHIEVEMENT_CRITERIA_TYPE_ON_LOGIN, ACHIEVEMENT_CRITERIA_TYPE_OWN_ITEM, ACHIEVEMENT_CRITERIA_TYPE_QUEST_ABANDONED, ACHIEVEMENT_CRITERIA_TYPE_REACH_LEVEL, ACHIEVEMENT_CRITERIA_TYPE_REACH_SKILL_LEVEL, ACHIEVEMENT_CRITERIA_TYPE_RECEIVE_EPIC_ITEM, ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED, ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED_ON_LOOT, ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED, ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED_ON_LOOT, ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL, ACHIEVEMENT_CRITERIA_TYPE_USE_GAMEOBJECT, ACHIEVEMENT_CRITERIA_TYPE_USE_ITEM, ACHIEVEMENT_CRITERIA_TYPE_USE_LFD_TO_GROUP_WITH_PLAYERS, ACHIEVEMENT_CRITERIA_TYPE_VISIT_BARBER_SHOP, ACHIEVEMENT_CRITERIA_TYPE_WIN_ARENA, ACHIEVEMENT_CRITERIA_TYPE_WIN_BG, ACHIEVEMENT_CRITERIA_TYPE_WIN_DUEL, ACHIEVEMENT_CRITERIA_TYPE_WIN_RATED_ARENA, ACHIEVEMENT_CRITERIA_TYPE_WON_AUCTIONS, ACHIEVEMENT_FLAG_COUNTER, ACHIEVEMENT_FLAG_REALM_FIRST_KILL, ACHIEVEMENT_FLAG_REALM_FIRST_REACH, CriteriaProgress::counter, AchievementEntry::Flags, GetCriteriaProgress(), AchievementCriteriaEntry::Quantity, sAchievementMgr, and AchievementCriteriaEntry::Type.
Referenced by CanUpdateCriteria(), IsCompletedAchievement(), ResetAchievementCriteria(), SetCriteriaProgress(), StartTimedAchievement(), and UpdateAchievementCriteria().
| void AchievementMgr::LoadFromDB | ( | PreparedQueryResult | achievementResult, |
| PreparedQueryResult | criteriaResult | ||
| ) |
Definition at line 616 of file AchievementMgr.cpp.
References ALLIANCE, CriteriaProgress::changed, CompletedAchievementData::changed, CHAR_DEL_INVALID_ACHIEV_PROGRESS_CRITERIA, CharacterDatabase, CriteriaProgress::counter, CriteriaProgress::date, CompletedAchievementData::date, GameTime::GetGameTime(), GetPlayer(), Field::GetUInt16(), Field::GetUInt32(), m_achievementPoints, m_completedAchievements, m_criteriaProgress, AchievementEntry::Points, sAchievementCriteriaStore, sAchievementMgr, sAchievementStore, sCharTitlesStore, Player::SetTitle(), PreparedStatementBase::setUInt16(), AchievementCriteriaEntry::StartTimer, TC_LOG_ERROR, and Player::TeamForRace().
Referenced by Player::LoadFromDB().
|
private |
Definition at line 1439 of file AchievementMgr.cpp.
References AchievementCriteriaEntry::ID, m_criteriaProgress, and SendCriteriaProgressRemoved().
Referenced by RemoveTimedAchievement(), ResetAchievementCriteria(), and UpdateTimedAchievements().
| void AchievementMgr::RemoveTimedAchievement | ( | AchievementCriteriaTimedTypes | type, |
| uint32 | entry | ||
| ) |
Definition at line 1497 of file AchievementMgr.cpp.
References m_timedAchievements, RemoveCriteriaProgress(), and sAchievementMgr.
Referenced by Player::RemoveTimedAchievement().
|
private |
Definition at line 1728 of file AchievementMgr.cpp.
References ACHIEVEMENT_CRITERIA_CONDITION_BG_MAP, ACHIEVEMENT_CRITERIA_TYPE_ACCEPTED_SUMMONINGS, ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, ACHIEVEMENT_CRITERIA_TYPE_BUY_BANK_SLOT, ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL, ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL2, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_ACHIEVEMENT, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST_COUNT, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE, ACHIEVEMENT_CRITERIA_TYPE_CREATE_AUCTION, ACHIEVEMENT_CRITERIA_TYPE_DAMAGE_DONE, ACHIEVEMENT_CRITERIA_TYPE_DEATH, ACHIEVEMENT_CRITERIA_TYPE_DEATH_AT_MAP, ACHIEVEMENT_CRITERIA_TYPE_DEATH_IN_DUNGEON, ACHIEVEMENT_CRITERIA_TYPE_DEATHS_FROM, ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE, ACHIEVEMENT_CRITERIA_TYPE_EARN_ACHIEVEMENT_POINTS, ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL, ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM, ACHIEVEMENT_CRITERIA_TYPE_EQUIP_ITEM, ACHIEVEMENT_CRITERIA_TYPE_EXPLORE_AREA, ACHIEVEMENT_CRITERIA_TYPE_FALL_WITHOUT_DYING, ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT, ACHIEVEMENT_CRITERIA_TYPE_FLIGHT_PATHS_TAKEN, ACHIEVEMENT_CRITERIA_TYPE_GAIN_AURA, ACHIEVEMENT_CRITERIA_TYPE_GAIN_EXALTED_REPUTATION, ACHIEVEMENT_CRITERIA_TYPE_GAIN_HONORED_REPUTATION, ACHIEVEMENT_CRITERIA_TYPE_GAIN_REPUTATION, ACHIEVEMENT_CRITERIA_TYPE_GAIN_REVERED_REPUTATION, ACHIEVEMENT_CRITERIA_TYPE_GET_KILLING_BLOWS, ACHIEVEMENT_CRITERIA_TYPE_GOLD_EARNED_BY_AUCTIONS, ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_AT_BARBER, ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_MAIL, ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_TALENTS, ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_TRAVELLING, ACHIEVEMENT_CRITERIA_TYPE_HEALING_DONE, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_AUCTION_BID, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_AUCTION_SOLD, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEAL_CAST, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEALING_RECEIVED, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HIT_DEALT, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HIT_RECEIVED, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_PERSONAL_RATING, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_TEAM_RATING, ACHIEVEMENT_CRITERIA_TYPE_HK_CLASS, ACHIEVEMENT_CRITERIA_TYPE_HK_RACE, ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL, ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL_AT_AREA, ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE, ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE_TYPE, ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_CREATURE, ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_PLAYER, ACHIEVEMENT_CRITERIA_TYPE_KNOWN_FACTIONS, ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LEVEL, ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LINE, ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS, ACHIEVEMENT_CRITERIA_TYPE_LEARN_SPELL, ACHIEVEMENT_CRITERIA_TYPE_LOOT_EPIC_ITEM, ACHIEVEMENT_CRITERIA_TYPE_LOOT_ITEM, ACHIEVEMENT_CRITERIA_TYPE_LOOT_MONEY, ACHIEVEMENT_CRITERIA_TYPE_LOOT_TYPE, ACHIEVEMENT_CRITERIA_TYPE_LOSE_DUEL, ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD, ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_VENDORS, ACHIEVEMENT_CRITERIA_TYPE_NUMBER_OF_TALENT_RESETS, ACHIEVEMENT_CRITERIA_TYPE_ON_LOGIN, ACHIEVEMENT_CRITERIA_TYPE_OWN_ITEM, ACHIEVEMENT_CRITERIA_TYPE_QUEST_ABANDONED, ACHIEVEMENT_CRITERIA_TYPE_REACH_LEVEL, ACHIEVEMENT_CRITERIA_TYPE_REACH_SKILL_LEVEL, ACHIEVEMENT_CRITERIA_TYPE_RECEIVE_EPIC_ITEM, ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED, ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED_ON_LOOT, ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED, ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED_ON_LOOT, ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL, ACHIEVEMENT_CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED, ACHIEVEMENT_CRITERIA_TYPE_TOTAL_HEALING_RECEIVED, ACHIEVEMENT_CRITERIA_TYPE_USE_GAMEOBJECT, ACHIEVEMENT_CRITERIA_TYPE_USE_ITEM, ACHIEVEMENT_CRITERIA_TYPE_USE_LFD_TO_GROUP_WITH_PLAYERS, ACHIEVEMENT_CRITERIA_TYPE_VISIT_BARBER_SHOP, ACHIEVEMENT_CRITERIA_TYPE_WIN_ARENA, ACHIEVEMENT_CRITERIA_TYPE_WIN_BG, ACHIEVEMENT_CRITERIA_TYPE_WIN_DUEL, ACHIEVEMENT_CRITERIA_TYPE_WIN_RATED_ARENA, ACHIEVEMENT_CRITERIA_TYPE_WON_AUCTIONS, AchievementCriteriaEntry::AchievementID, achievIdByArenaSlot, AchievementCriteriaEntry::AdditionalRequirements, AreaTableEntry::AreaBit, AchievementCriteriaEntry::AreaID, WorldMapOverlayEntry::AreaID, AchievementCriteriaEntry::Asset, AchievementCriteriaEntry::ClassID, AchievementCriteriaEntry::CreatureID, AchievementCriteriaEntry::DamageType, AchievementCriteriaEntry::EmoteID, AchievementCriteriaEntry::FactionID, AchievementCriteriaEntry::GameObjectID, Battleground::GetArenaType(), Player::GetBattleground(), WorldObject::GetMap(), WorldLocation::GetMapId(), InstanceMap::GetMaxPlayers(), GetPlayer(), ItemTemplate::GetQuality(), ArenaTeam::GetSlotByType(), Object::GetTypeId(), Object::GetUInt32Value(), AchievementCriteriaEntry::GroupSize, AchievementEntry::ID, Battleground::isArena(), Map::IsDungeon(), Object::IsInWorld(), ITEM_QUALITY_EPIC, AchievementCriteriaEntry::ItemID, AchievementCriteriaEntry::ItemSlot, AchievementCriteriaEntry::LootType, m_completedAchievements, AchievementCriteriaEntry::MapID, MAX_ARENA_SLOT, AchievementCriteriaEntry::ObjectiveId, PLAYER_EXPLORED_ZONES_1, PLAYER_EXPLORED_ZONES_SIZE, AchievementCriteriaEntry::QuestID, AchievementCriteriaEntry::RaceID, AchievementCriteriaEntry::RollValue, sAreaTableStore, AchievementCriteriaEntry::SkillID, sMapMgr, sObjectMgr, AchievementCriteriaEntry::SpellID, sWorldMapOverlayStore, Map::ToInstanceMap(), AchievementCriteriaEntry::Type, TYPEID_PLAYER, AchievementCriteriaEntry::WorldMapOverlayID, and AchievementCriteriaEntry::ZoneID.
Referenced by CanUpdateCriteria().
| void AchievementMgr::Reset | ( | ) |
Definition at line 503 of file AchievementMgr.cpp.
References WorldPackets::Achievement::AchievementDeleted::AchievementID, CheckAllAchievementCriteria(), DeleteFromDB(), Object::GetGUID(), m_achievementPoints, m_completedAchievements, m_criteriaProgress, m_player, SendCriteriaProgressRemoved(), Player::SendDirectMessage(), and WorldPackets::Achievement::AchievementDeleted::Write().
Referenced by Player::ResetAchievements().
| void AchievementMgr::ResetAchievementCriteria | ( | AchievementCriteriaCondition | condition, |
| uint32 | value, | ||
| bool | evenIfCriteriaComplete | ||
| ) |
Definition at line 524 of file AchievementMgr.cpp.
References Player::GetSession(), HasAchieved(), WorldSession::HasPermission(), AchievementEntry::ID, IsCompletedCriteria(), Player::IsGameMaster(), m_player, rbac::RBAC_PERM_CANNOT_EARN_ACHIEVEMENTS, RemoveCriteriaProgress(), sAchievementMgr, sAchievementStore, and TC_LOG_DEBUG.
Referenced by Player::ResetAchievementCriteria().
| void AchievementMgr::SaveToDB | ( | CharacterDatabaseTransaction | trans | ) |
Definition at line 565 of file AchievementMgr.cpp.
References CHAR_DEL_CHAR_ACHIEVEMENT_BY_ACHIEVEMENT, CHAR_DEL_CHAR_ACHIEVEMENT_PROGRESS_BY_CRITERIA, CHAR_INS_CHAR_ACHIEVEMENT, CHAR_INS_CHAR_ACHIEVEMENT_PROGRESS, CharacterDatabase, ObjectGuid::GetCounter(), Object::GetGUID(), GetPlayer(), m_completedAchievements, m_criteriaProgress, PreparedStatementBase::setUInt16(), and PreparedStatementBase::setUInt32().
Referenced by Player::SaveToDB().
|
private |
Definition at line 680 of file AchievementMgr.cpp.
References ACHIEVEMENT_FLAG_HIDDEN, ACHIEVEMENT_FLAG_REALM_FIRST_KILL, ACHIEVEMENT_FLAG_REALM_FIRST_REACH, WorldPackets::Achievement::AchievementEarned::AchievementID, WorldPackets::Achievement::BroadcastAchievement::AchievementID, ALLIANCE, AT_LOGIN_FIRST, BROADCAST_TEXT_ACHIEVEMENT_EARNED, CHAT_MSG_ACHIEVEMENT, CHAT_MSG_GUILD_ACHIEVEMENT, WorldPackets::ServerPacket::Clear(), CONFIG_LISTEN_RANGE_SAY, WorldPackets::Achievement::BroadcastAchievement::DisplayLink, WorldPackets::Achievement::AchievementEarned::Earner, AchievementEntry::Flags, Object::GetGUID(), WorldObject::GetName(), GetPlayer(), Player::GetTeam(), GameTime::GetUtcWowTime(), HORDE, AchievementEntry::ID, WorldPackets::Achievement::AchievementEarned::Initial, Object::IsInWorld(), m_player, WorldPackets::Achievement::BroadcastAchievement::Name, WorldPackets::Achievement::BroadcastAchievement::PlayerGUID, sGuildMgr, sWorld, TC_LOG_DEBUG, WorldPackets::Achievement::AchievementEarned::Time, Cell::VisitWorldObjects(), WorldPackets::Achievement::AchievementEarned::Write(), and WorldPackets::Achievement::BroadcastAchievement::Write().
Referenced by CompletedAchievement().
| void AchievementMgr::SendAllAchievementData | ( | ) | const |
Definition at line 1599 of file AchievementMgr.cpp.
References BuildAllDataPacket(), WorldPackets::Achievement::AllAchievementData::Data, GetPlayer(), Player::SendDirectMessage(), and WorldPackets::Achievement::AllAchievementData::Write().
Referenced by Player::SendInitialPacketsBeforeAddToMap().
|
private |
Definition at line 757 of file AchievementMgr.cpp.
References WorldPackets::Achievement::CriteriaDeleted::CriteriaID, GetPlayer(), Player::SendDirectMessage(), and WorldPackets::Achievement::CriteriaDeleted::Write().
Referenced by RemoveCriteriaProgress(), and Reset().
|
private |
Definition at line 739 of file AchievementMgr.cpp.
References CriteriaProgress::counter, WorldPackets::Achievement::CriteriaUpdate::CreationTime, WorldPackets::Achievement::CriteriaUpdate::CriteriaID, WorldPackets::Achievement::CriteriaUpdate::CurrentTime, CriteriaProgress::date, WorldPackets::Achievement::CriteriaUpdate::ElapsedTime, WorldPackets::Achievement::CriteriaUpdate::Flags, Object::GetGUID(), GetPlayer(), Player::GetSession(), WorldSession::GetTimezoneOffset(), AchievementCriteriaEntry::ID, WorldPackets::Achievement::CriteriaUpdate::PlayerGUID, WorldPackets::Achievement::CriteriaUpdate::Quantity, Player::SendDirectMessage(), WowTime::SetUtcTimeFromUnixTime(), AchievementCriteriaEntry::StartTimer, and WorldPackets::Achievement::CriteriaUpdate::Write().
Referenced by SetCriteriaProgress().
| void AchievementMgr::SendRespondInspectAchievements | ( | Player * | player | ) | const |
Definition at line 1606 of file AchievementMgr.cpp.
References BuildAllDataPacket(), WorldPackets::Achievement::RespondInspectAchievements::Data, Object::GetGUID(), GetPlayer(), WorldPackets::Achievement::RespondInspectAchievements::Player, Player::SendDirectMessage(), and WorldPackets::Achievement::RespondInspectAchievements::Write().
Referenced by Player::SendRespondInspectAchievements().
|
private |
Definition at line 1371 of file AchievementMgr.cpp.
References AchievementCriteriaEntry::AchievementID, CriteriaProgress::changed, CriteriaProgress::counter, CriteriaProgress::date, GetCriteriaProgress(), GameTime::GetGameTime(), Object::GetGUID(), AchievementCriteriaEntry::ID, IN_MILLISECONDS, IsCompletedCriteria(), m_criteriaProgress, m_player, m_timedAchievements, PROGRESS_ACCUMULATE, PROGRESS_HIGHEST, PROGRESS_SET, sAchievementStore, SendCriteriaUpdate(), AchievementCriteriaEntry::StartTimer, TC_LOG_DEBUG, and ObjectGuid::ToString().
Referenced by StartTimedAchievement(), and UpdateAchievementCriteria().
| void AchievementMgr::StartTimedAchievement | ( | AchievementCriteriaTimedTypes | type, |
| uint32 | entry, | ||
| uint32 | timeLost = 0 |
||
| ) |
Definition at line 1475 of file AchievementMgr.cpp.
References IN_MILLISECONDS, IsCompletedCriteria(), m_timedAchievements, PROGRESS_SET, sAchievementMgr, sAchievementStore, and SetCriteriaProgress().
Referenced by Player::StartTimedAchievement().
| void AchievementMgr::UpdateAchievementCriteria | ( | AchievementCriteriaTypes | type, |
| uint32 | miscValue1 = 0, |
||
| uint32 | miscValue2 = 0, |
||
| WorldObject * | ref = nullptr |
||
| ) |
this function will be called whenever the user might have done a criteria relevant action
Definition at line 779 of file AchievementMgr.cpp.
References ACHIEVEMENT_CRITERIA_CONDITION_NO_LOSE, ACHIEVEMENT_CRITERIA_TYPE_ACCEPTED_SUMMONINGS, ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE, ACHIEVEMENT_CRITERIA_TYPE_BUY_BANK_SLOT, ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL, ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL2, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_ACHIEVEMENT, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST_COUNT, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE, ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_RAID, ACHIEVEMENT_CRITERIA_TYPE_CREATE_AUCTION, ACHIEVEMENT_CRITERIA_TYPE_DAMAGE_DONE, ACHIEVEMENT_CRITERIA_TYPE_DEATH, ACHIEVEMENT_CRITERIA_TYPE_DEATH_AT_MAP, ACHIEVEMENT_CRITERIA_TYPE_DEATH_IN_DUNGEON, ACHIEVEMENT_CRITERIA_TYPE_DEATHS_FROM, ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE, ACHIEVEMENT_CRITERIA_TYPE_EARN_ACHIEVEMENT_POINTS, ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL, ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM, ACHIEVEMENT_CRITERIA_TYPE_EQUIP_ITEM, ACHIEVEMENT_CRITERIA_TYPE_EXPLORE_AREA, ACHIEVEMENT_CRITERIA_TYPE_FALL_WITHOUT_DYING, ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT, ACHIEVEMENT_CRITERIA_TYPE_FLIGHT_PATHS_TAKEN, ACHIEVEMENT_CRITERIA_TYPE_GAIN_AURA, ACHIEVEMENT_CRITERIA_TYPE_GAIN_EXALTED_REPUTATION, ACHIEVEMENT_CRITERIA_TYPE_GAIN_HONORED_REPUTATION, ACHIEVEMENT_CRITERIA_TYPE_GAIN_REPUTATION, ACHIEVEMENT_CRITERIA_TYPE_GAIN_REVERED_REPUTATION, ACHIEVEMENT_CRITERIA_TYPE_GET_KILLING_BLOWS, ACHIEVEMENT_CRITERIA_TYPE_GOLD_EARNED_BY_AUCTIONS, ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_AT_BARBER, ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_MAIL, ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_TALENTS, ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_TRAVELLING, ACHIEVEMENT_CRITERIA_TYPE_HEALING_DONE, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_ARMOR, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_AUCTION_BID, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_AUCTION_SOLD, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEAL_CAST, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEALING_RECEIVED, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEALTH, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HIT_DEALT, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HIT_RECEIVED, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_PERSONAL_RATING, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_POWER, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_RATING, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_SPELLPOWER, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_STAT, ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_TEAM_RATING, ACHIEVEMENT_CRITERIA_TYPE_HK_CLASS, ACHIEVEMENT_CRITERIA_TYPE_HK_RACE, ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL, ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL_AT_AREA, ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE, ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE_TYPE, ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_CREATURE, ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_PLAYER, ACHIEVEMENT_CRITERIA_TYPE_KNOWN_FACTIONS, ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LEVEL, ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LINE, ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS, ACHIEVEMENT_CRITERIA_TYPE_LEARN_SPELL, ACHIEVEMENT_CRITERIA_TYPE_LOOT_EPIC_ITEM, ACHIEVEMENT_CRITERIA_TYPE_LOOT_ITEM, ACHIEVEMENT_CRITERIA_TYPE_LOOT_MONEY, ACHIEVEMENT_CRITERIA_TYPE_LOOT_TYPE, ACHIEVEMENT_CRITERIA_TYPE_LOSE_DUEL, ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD, ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_VENDORS, ACHIEVEMENT_CRITERIA_TYPE_NUMBER_OF_TALENT_RESETS, ACHIEVEMENT_CRITERIA_TYPE_ON_LOGIN, ACHIEVEMENT_CRITERIA_TYPE_OWN_ITEM, ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK, ACHIEVEMENT_CRITERIA_TYPE_PLAY_ARENA, ACHIEVEMENT_CRITERIA_TYPE_QUEST_ABANDONED, ACHIEVEMENT_CRITERIA_TYPE_REACH_LEVEL, ACHIEVEMENT_CRITERIA_TYPE_REACH_SKILL_LEVEL, ACHIEVEMENT_CRITERIA_TYPE_RECEIVE_EPIC_ITEM, ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED, ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED_ON_LOOT, ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED, ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED_ON_LOOT, ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL, ACHIEVEMENT_CRITERIA_TYPE_TOTAL, ACHIEVEMENT_CRITERIA_TYPE_TOTAL_DAMAGE_RECEIVED, ACHIEVEMENT_CRITERIA_TYPE_TOTAL_HEALING_RECEIVED, ACHIEVEMENT_CRITERIA_TYPE_USE_GAMEOBJECT, ACHIEVEMENT_CRITERIA_TYPE_USE_ITEM, ACHIEVEMENT_CRITERIA_TYPE_USE_LFD_TO_GROUP_WITH_PLAYERS, ACHIEVEMENT_CRITERIA_TYPE_VISIT_BARBER_SHOP, ACHIEVEMENT_CRITERIA_TYPE_WIN_ARENA, ACHIEVEMENT_CRITERIA_TYPE_WIN_BG, ACHIEVEMENT_CRITERIA_TYPE_WIN_DUEL, ACHIEVEMENT_CRITERIA_TYPE_WIN_RATED_ARENA, ACHIEVEMENT_CRITERIA_TYPE_WON_AUCTIONS, ACHIEVEMENT_FLAG_SUMM, CanUpdateCriteria(), CompletedAchievement(), CompletedCriteriaFor(), CriteriaProgress::date, DAY, AchievementEntry::Flags, Player::GetArenaTeamId(), ItemTemplate::GetBaseItemLevel(), GetCriteriaProgress(), AchievementGlobalMgr::GetCriteriaTypeString(), Object::GetGUID(), ArenaTeam::GetMember(), WorldObject::GetName(), GetPlayer(), ReputationMgr::GetReputation(), Player::GetReputationMgr(), Player::getRewardedQuests(), Player::GetSession(), Player::GetSpellMap(), ArenaTeam::GetStats(), ArenaTeam::GetType(), Quest::GetZoneOrSort(), WorldSession::HasPermission(), AchievementEntry::ID, IsCompletedAchievement(), IsCompletedCriteria(), Player::IsGameMaster(), m_achievementPoints, m_player, MAX_ARENA_SLOT, AchievementCriteriaDataSet::Meets(), PLAYER_FIELD_LIFETIME_HONORABLE_KILLS, PROGRESS_ACCUMULATE, PROGRESS_HIGHEST, PROGRESS_SET, ArenaTeamStats::Rating, rbac::RBAC_PERM_CANNOT_EARN_ACHIEVEMENTS, sAchievementMgr, sAchievementStore, sArenaTeamMgr, SetCriteriaProgress(), sObjectMgr, sSpellMgr, sWorld, TC_LOG_DEBUG, and ObjectGuid::ToString().
Referenced by CheckAllAchievementCriteria(), CompletedAchievement(), and Player::UpdateAchievementCriteria().
| void AchievementMgr::UpdateTimedAchievements | ( | uint32 | timeDiff | ) |
Definition at line 1453 of file AchievementMgr.cpp.
References m_timedAchievements, RemoveCriteriaProgress(), and sAchievementCriteriaStore.
Referenced by Player::Update().
|
private |
Definition at line 327 of file AchievementMgr.h.
Referenced by CompletedAchievement(), LoadFromDB(), Reset(), and UpdateAchievementCriteria().
|
private |
Definition at line 324 of file AchievementMgr.h.
Referenced by BuildAllDataPacket(), CompletedAchievement(), HasAchieved(), LoadFromDB(), RequirementsSatisfied(), Reset(), and SaveToDB().
|
private |
Definition at line 323 of file AchievementMgr.h.
Referenced by BuildAllDataPacket(), GetCriteriaProgress(), LoadFromDB(), RemoveCriteriaProgress(), Reset(), SaveToDB(), and SetCriteriaProgress().
|
private |
Definition at line 322 of file AchievementMgr.h.
Referenced by CompletedAchievement(), Reset(), ResetAchievementCriteria(), SendAchievementEarned(), SetCriteriaProgress(), and UpdateAchievementCriteria().
|
private |
Definition at line 326 of file AchievementMgr.h.
Referenced by RemoveTimedAchievement(), SetCriteriaProgress(), StartTimedAchievement(), and UpdateTimedAchievements().