aboutsummaryrefslogtreecommitdiff
path: root/src/game/Level3.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-02-06 15:40:48 -0600
committermegamage <none@none>2009-02-06 15:40:48 -0600
commitf08e9d323b91720fa46382d9f7c6670ae9afb129 (patch)
tree31e647e33e80f9edf5b26f13d75b6b52510a041d /src/game/Level3.cpp
parente920c9d1abb165f533dc9563a27e342cc93e100d (diff)
[7235] New command: .reset achievements. Author: VladimirMangos
--HG-- branch : trunk
Diffstat (limited to 'src/game/Level3.cpp')
-rw-r--r--src/game/Level3.cpp39
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, "");