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/server/scripts | |
| parent | fd0b96178174e624510a10f5bc27b60af406d901 (diff) | |
Scripts/Commands: mod xp command
Closes #13476
Diffstat (limited to 'src/server/scripts')
| -rw-r--r-- | src/server/scripts/Commands/cs_modify.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
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() |
