diff options
author | Heihachi <gamehacker953@gmail.com> | 2014-11-11 00:45:30 +0000 |
---|---|---|
committer | DDuarte <dnpd.dd@gmail.com> | 2014-11-11 00:45:30 +0000 |
commit | 3e03e546d3106bf8930e30ab9c2008b0e696e125 (patch) | |
tree | db4aa605589d2adb57c0fc385aba05003ee8be79 /src | |
parent | fd0b96178174e624510a10f5bc27b60af406d901 (diff) |
Scripts/Commands: mod xp command
Closes #13476
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 f76898d6321..7001374d90a 100644 --- a/src/server/game/Accounts/RBAC.h +++ b/src/server/game/Accounts/RBAC.h @@ -692,6 +692,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 3c2f122324d..a8b839d7665 100644 --- a/src/server/scripts/Commands/cs_modify.cpp +++ b/src/server/scripts/Commands/cs_modify.cpp @@ -70,6 +70,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[] = @@ -1393,6 +1394,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() |