summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorErik Schilling <ablu.erikschilling@googlemail.com>2011-12-04 05:40:18 +0800
committerErik Schilling <ablu.erikschilling@googlemail.com>2011-12-04 16:55:15 +0800
commit46d5fa9b5083163118e8bb4ed33943f5d51ee065 (patch)
tree69ecd39a3d96cfe6f78e48b64fb1aea1743f2f18 /src
parent05aa5c78d64033f9f10184f49081c68a951ae754 (diff)
downloadmanaserv-46d5fa9b5083163118e8bb4ed33943f5d51ee065.tar.gz
manaserv-46d5fa9b5083163118e8bb4ed33943f5d51ee065.tar.bz2
manaserv-46d5fa9b5083163118e8bb4ed33943f5d51ee065.tar.xz
manaserv-46d5fa9b5083163118e8bb4ed33943f5d51ee065.zip
Added @skills command which lists all skills
Reviewed-by: o11c.
Diffstat (limited to 'src')
-rw-r--r--src/game-server/commandhandler.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/game-server/commandhandler.cpp b/src/game-server/commandhandler.cpp
index a81af954..687457b4 100644
--- a/src/game-server/commandhandler.cpp
+++ b/src/game-server/commandhandler.cpp
@@ -78,6 +78,7 @@ static void handleLogsay(Character*, std::string&);
static void handleKillMonsters(Character*, std::string&);
static void handleCraft(Character*, std::string&);
static void handleGetPos(Character*, std::string&);
+static void handleSkills(Character*, std::string&);
static CmdRef const cmdRef[] =
{
@@ -139,6 +140,8 @@ static CmdRef const cmdRef[] =
"Crafts something.", &handleCraft},
{"getpos", "<character>",
"Gets the position of a character.", &handleGetPos},
+ {"skills", "<character>",
+ "Lists all skills and their values of a character", &handleSkills},
{NULL, NULL, NULL, NULL}
};
@@ -1438,6 +1441,44 @@ static void handleGetPos(Character *player, std::string &args)
say(str.str(), player);
}
+static void handleSkills(Character *player, std::string &args)
+{
+ std::string character = getArgument(args);
+ if (character.empty())
+ {
+ say("Invalid amount of arguments given.", player);
+ say("Usage: @skills <character>", player);
+ return;
+ }
+ Character *other;
+ if (character == "#")
+ other = player;
+ else
+ other = getPlayer(character);
+ if (!other)
+ {
+ say("Invalid character, or they are offline.", player);
+ return;
+ }
+
+ say("List of skills of player '" + other->getName() + "':", player);
+ std::map<int, int>::const_iterator it = other->getSkillBegin();
+ std::map<int, int>::const_iterator it_end = other->getSkillEnd();
+
+ if (it == it_end)
+ {
+ say("No skills available.", player);
+ return;
+ }
+
+ while (it != it_end)
+ {
+ std::stringstream str;
+ str << "Id: " << it->first << " value: " << it->second;
+ say(str.str(), player);
+ ++it;
+ }
+}
void CommandHandler::handleCommand(Character *player,
const std::string &command)
{