Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-11-01 13:33:18 +0000
committerStijn Buys <ingar@osirion.org>2008-11-01 13:33:18 +0000
commit83d6c17799c4d448a67ab5cdad02954282fa5c94 (patch)
tree2d76abb9bb501491f78e07822ed52e8302fdd247 /src/core/gameserver.cc
parenta6bceed80f1b4315f23656efeceb6fe02cc7641c (diff)
server-side model loading, initial @dock function
Diffstat (limited to 'src/core/gameserver.cc')
-rw-r--r--src/core/gameserver.cc20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/core/gameserver.cc b/src/core/gameserver.cc
index 4da0be6..3268e38 100644
--- a/src/core/gameserver.cc
+++ b/src/core/gameserver.cc
@@ -178,11 +178,11 @@ GameServer::GameServer() : GameInterface()
func = Func::add("revoke_rcon", func_grant_rcon);
func->set_info("[player] revoke rcon rights");
*/
- /* -- player functions --*/
- func = Func::add("time", func_time, Func::Shared);
+ /* -- shared functions --*/
+ func = Func::add("time", func_time, true);
func->set_info("get the server uptime and current server localtime");
- func = Func::add("who", func_who, Func::Shared);
+ func = Func::add("who", func_who, true);
func->set_info("get a list of connected players");
if (!Cvar::sv_dedicated->value()) {
@@ -489,8 +489,16 @@ void GameServer::exec(Player *player, std::string const & cmdline)
args.assign(cmdline.substr(command.size()+1));
if ((function ->flags() & Func::Game) == Func::Game) {
- function->exec(player, args);
- return;
+ if ((function ->flags() & Func::Target) == Func::Target) {
+ unsigned int id = 0;
+ if ((cmdstream >> id)) {
+ Entity *entity = Entity::find(id);
+ if (entity)
+ function->exec(player, entity);
+ }
+ } else {
+ function->exec(player, args);
+ }
} else if ((function->flags() & Func::Shared) == Func::Shared) {
@@ -505,8 +513,8 @@ void GameServer::exec(Player *player, std::string const & cmdline)
// disable rcon buffering
console()->set_rcon(false);
- return;
}
+ return;
}
std::string message("Unknown command '");