From f08e9d323b91720fa46382d9f7c6670ae9afb129 Mon Sep 17 00:00:00 2001 From: megamage Date: Fri, 6 Feb 2009 15:40:48 -0600 Subject: [7235] New command: .reset achievements. Author: VladimirMangos --HG-- branch : trunk --- src/game/Level3.cpp | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'src/game/Level3.cpp') diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index f8c226110af..240e20ec2bf 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -4749,6 +4749,45 @@ bool ChatHandler::HandleListAurasCommand (const char * /*args*/) return true; } +bool ChatHandler::HandleResetAchievementsCommand (const char * args) +{ + char* pName = strtok((char*)args, ""); + Player *player = NULL; + uint64 guid = 0; + if (pName) + { + std::string name = extractPlayerNameFromLink(pName); + if(name.empty()) + { + SendSysMessage(LANG_PLAYER_NOT_FOUND); + SetSentErrorMessage(true); + return false; + } + + guid = objmgr.GetPlayerGUIDByName(name); + player = objmgr.GetPlayer(guid); + } + else + { + player = getSelectedPlayer(); + if(player) + guid = player->GetGUID(); + } + + if(!player && !guid) + { + SendSysMessage(LANG_NO_CHAR_SELECTED); + return true; + } + + if(player) + player->GetAchievementMgr().Reset(); + else if(guid) + AchievementMgr::DeleteFromDB(GUID_LOPART(guid)); + + return true; +} + bool ChatHandler::HandleResetHonorCommand (const char * args) { char* pName = strtok((char*)args, ""); -- cgit v1.2.3