diff options
author | Heihachi <gamehacker953@gmail.com> | 2014-11-11 00:58:13 +0000 |
---|---|---|
committer | DDuarte <dnpd.dd@gmail.com> | 2014-11-11 00:58:13 +0000 |
commit | 87fb23d8aba5893246bc5216bfb90fe267e5a257 (patch) | |
tree | 9c95b016fbfbd19bf70990becebc92a0d28cc10f /src | |
parent | 9c55d9fdebb821ac102a2b7e7a2a1ef0b92ac26c (diff) |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Accounts/RBAC.h | 1 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_modify.cpp | 32 |
2 files changed, 33 insertions, 0 deletions
diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h index d398efaeef2..650bd998028 100644 --- a/src/server/game/Accounts/RBAC.h +++ b/src/server/game/Accounts/RBAC.h @@ -701,6 +701,7 @@ enum RBACPermissions RBAC_PERM_COMMAND_INSTANCE_SET_BOSS_STATE = 795, RBAC_PERM_COMMAND_INSTANCE_GET_BOSS_STATE = 796, RBAC_PERM_COMMAND_PVPSTATS = 797, + RBAC_PERM_COMMAND_MODIFY_XP = 798, // custom permissions 1000+ RBAC_PERM_MAX 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() |