aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHeihachi <gamehacker953@gmail.com>2014-11-11 00:58:13 +0000
committerDDuarte <dnpd.dd@gmail.com>2014-11-11 00:58:13 +0000
commit87fb23d8aba5893246bc5216bfb90fe267e5a257 (patch)
tree9c95b016fbfbd19bf70990becebc92a0d28cc10f /src
parent9c55d9fdebb821ac102a2b7e7a2a1ef0b92ac26c (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.h1
-rw-r--r--src/server/scripts/Commands/cs_modify.cpp32
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()