From 87fb23d8aba5893246bc5216bfb90fe267e5a257 Mon Sep 17 00:00:00 2001 From: Heihachi Date: Tue, 11 Nov 2014 00:58:13 +0000 Subject: Scripts/Commands: mod xp command Closes #13476 (cherry picked from commit 3e03e546d3106bf8930e30ab9c2008b0e696e125) Conflicts: sql/base/auth_database.sql src/server/scripts/Commands/cs_modify.cpp --- src/server/scripts/Commands/cs_modify.cpp | 32 +++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src/server/scripts/Commands') diff --git a/src/server/scripts/Commands/cs_modify.cpp b/src/server/scripts/Commands/cs_modify.cpp index 24283dca7ac..ee3b7ce124b 100644 --- a/src/server/scripts/Commands/cs_modify.cpp +++ b/src/server/scripts/Commands/cs_modify.cpp @@ -71,6 +71,7 @@ public: { "spell", rbac::RBAC_PERM_COMMAND_MODIFY_SPELL, false, &HandleModifySpellCommand, "", NULL }, { "standstate", rbac::RBAC_PERM_COMMAND_MODIFY_STANDSTATE, false, &HandleModifyStandStateCommand, "", NULL }, { "talentpoints", rbac::RBAC_PERM_COMMAND_MODIFY_TALENTPOINTS, false, &HandleModifyTalentCommand, "", NULL }, + { "xp", rbac::RBAC_PERM_COMMAND_MODIFY_XP, false, &HandleModifyXPCommand, "", NULL }, { NULL, 0, false, NULL, "", NULL } }; static ChatCommand commandTable[] = @@ -1399,6 +1400,37 @@ public: return true; } + + // mod xp command + static bool HandleModifyXPCommand(ChatHandler *handler, const char* args) + { + if (!*args) + return false; + + int32 xp = atoi((char*)args); + + if (xp < 1) + { + handler->SendSysMessage(LANG_BAD_VALUE); + handler->SetSentErrorMessage(true); + return false; + } + + Player* target = handler->getSelectedPlayerOrSelf(); + if (!target) + { + handler->SendSysMessage(LANG_NO_CHAR_SELECTED); + handler->SetSentErrorMessage(true); + return false; + } + + if (handler->HasLowerSecurity(target, ObjectGuid::Empty)) + return false; + + // we can run the command + target->GiveXP(xp, nullptr); + return true; + } }; void AddSC_modify_commandscript() -- cgit v1.2.3