diff options
author | megamage <none@none> | 2009-02-06 15:40:48 -0600 |
---|---|---|
committer | megamage <none@none> | 2009-02-06 15:40:48 -0600 |
commit | f08e9d323b91720fa46382d9f7c6670ae9afb129 (patch) | |
tree | 31e647e33e80f9edf5b26f13d75b6b52510a041d /src/game/Level3.cpp | |
parent | e920c9d1abb165f533dc9563a27e342cc93e100d (diff) |
[7235] New command: .reset achievements. Author: VladimirMangos
--HG--
branch : trunk
Diffstat (limited to 'src/game/Level3.cpp')
-rw-r--r-- | src/game/Level3.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
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, ""); |