diff options
author | Stijn Buys <ingar@osirion.org> | 2008-11-01 13:33:18 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-11-01 13:33:18 +0000 |
commit | 83d6c17799c4d448a67ab5cdad02954282fa5c94 (patch) | |
tree | 2d76abb9bb501491f78e07822ed52e8302fdd247 /src/core/gameserver.cc | |
parent | a6bceed80f1b4315f23656efeceb6fe02cc7641c (diff) |
server-side model loading, initial @dock function
Diffstat (limited to 'src/core/gameserver.cc')
-rw-r--r-- | src/core/gameserver.cc | 20 |
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 '"); |