mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-25 06:36:24 +00:00
Core/Achiev: Warning if GM mode enabled (#1028)
* Core: Achievements warning if GM mode enabled Added a warning ingame and in console when you're a GM testing achievements (else it was confusing). Added an extra type check in UpdateAchievementCriteria, ported from TrinityCore.
This commit is contained in:
@@ -493,7 +493,17 @@ void AchievementMgr::Reset()
|
||||
|
||||
void AchievementMgr::ResetAchievementCriteria(AchievementCriteriaCondition condition, uint32 value, bool evenIfCriteriaComplete)
|
||||
{
|
||||
AchievementCriteriaEntryList const* achievementCriteriaList = sAchievementMgr->GetAchievementCriteriaByCondition(condition, value);
|
||||
// disable for gamemasters with GM-mode enabled
|
||||
if (m_player->IsGameMaster())
|
||||
{
|
||||
sLog->outString("Not available in GM mode.");
|
||||
ChatHandler(m_player->GetSession()).PSendSysMessage("Not available in GM mode");
|
||||
return;
|
||||
}
|
||||
|
||||
sLog->outDebug(LOG_FILTER_ACHIEVEMENTSYS, "AchievementMgr::ResetAchievementCriteria(%u, %u, %u)", condition, value, evenIfCriteriaComplete);
|
||||
|
||||
AchievementCriteriaEntryList const* achievementCriteriaList = sAchievementMgr->GetAchievementCriteriaByCondition(condition, value);
|
||||
if (!achievementCriteriaList)
|
||||
return;
|
||||
|
||||
@@ -745,13 +755,24 @@ static const uint32 achievIdForDungeon[][4] =
|
||||
*/
|
||||
void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, uint32 miscValue1 /*= 0*/, uint32 miscValue2 /*= 0*/, Unit* unit /*= NULL*/)
|
||||
{
|
||||
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
|
||||
sLog->outDebug(LOG_FILTER_ACHIEVEMENTSYS, "AchievementMgr::UpdateAchievementCriteria(%u, %u, %u)", type, miscValue1, miscValue2);
|
||||
#endif
|
||||
|
||||
// disable for gamemasters with GM-mode enabled
|
||||
if (m_player->IsGameMaster())
|
||||
{
|
||||
sLog->outString("Not available in GM mode.");
|
||||
ChatHandler(m_player->GetSession()).PSendSysMessage("Not available in GM mode");
|
||||
return;
|
||||
}
|
||||
|
||||
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
|
||||
if (type >= ACHIEVEMENT_CRITERIA_TYPE_TOTAL)
|
||||
{
|
||||
sLog->outDebug(LOG_FILTER_ACHIEVEMENTSYS, "UpdateAchievementCriteria: Wrong criteria type %u", type);
|
||||
return;
|
||||
}
|
||||
|
||||
sLog->outDebug(LOG_FILTER_ACHIEVEMENTSYS, "AchievementMgr::UpdateAchievementCriteria(%u, %u, %u)", type, miscValue1, miscValue2);
|
||||
#endif
|
||||
|
||||
AchievementCriteriaEntryList const* achievementCriteriaList = NULL;
|
||||
|
||||
@@ -2132,17 +2153,21 @@ void AchievementMgr::RemoveTimedAchievement(AchievementCriteriaTimedTypes type,
|
||||
|
||||
void AchievementMgr::CompletedAchievement(AchievementEntry const* achievement)
|
||||
{
|
||||
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
|
||||
sLog->outDetail("AchievementMgr::CompletedAchievement(%u)", achievement->ID);
|
||||
#endif
|
||||
|
||||
// disable for gamemasters with GM-mode enabled
|
||||
if (m_player->IsGameMaster())
|
||||
{
|
||||
sLog->outString("Not available in GM mode.");
|
||||
ChatHandler(m_player->GetSession()).PSendSysMessage("Not available in GM mode");
|
||||
return;
|
||||
}
|
||||
|
||||
if (achievement->flags & ACHIEVEMENT_FLAG_COUNTER || HasAchieved(achievement->ID))
|
||||
return;
|
||||
|
||||
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
|
||||
sLog->outDetail("AchievementMgr::CompletedAchievement(%u)", achievement->ID);
|
||||
#endif
|
||||
|
||||
SendAchievementEarned(achievement);
|
||||
CompletedAchievementData& ca = m_completedAchievements[achievement->ID];
|
||||
ca.date = time(NULL);
|
||||
|
||||
Reference in New Issue
Block a user