diff --git a/src/server/gamerules_ctf.h b/src/server/gamerules_ctf.h index 57fb522..d3441f9 100644 --- a/src/server/gamerules_ctf.h +++ b/src/server/gamerules_ctf.h @@ -23,6 +23,7 @@ class OP4CTFRules:HLMultiplayerRules virtual void PlayerDeath(NSClientPlayer); virtual void PlayerConnect(NSClientPlayer); virtual void PlayerDisconnect(NSClientPlayer); + virtual bool ConsoleCommand(NSClientPlayer, string); nonvirtual void CharacterSpawn(NSClientPlayer, string); nonvirtual void CaptureFlag(NSClientPlayer); diff --git a/src/server/gamerules_ctf.qc b/src/server/gamerules_ctf.qc index b25c00c..cad832b 100644 --- a/src/server/gamerules_ctf.qc +++ b/src/server/gamerules_ctf.qc @@ -73,6 +73,35 @@ OP4CTFRules::PlayerSpawn(NSClientPlayer pp) CharacterSpawn(pp, pl.m_oldModel); } +void CSEv_TeamJoin_f(float); +void CSEv_ClassJoin_f(float); + +bool +OP4CTFRules::ConsoleCommand(NSClientPlayer pp, string cmd) +{ + static void OP4CTFRules_BotJoin(void) { + float tag = (random() < 0.5) ? 1 : 2; + CSEv_TeamJoin_f(tag); + CSEv_ClassJoin_f(0); + } + + tokenize(cmd); + + switch (argv(0)) { + case "bot_add": + entity bot_ent = Bot_AddQuick(); + if (bot_ent) { + bot_ent.think = OP4CTFRules_BotJoin; + bot_ent.nextthink = time; + } + break; + default: + return (false); + } + + return (true); +} + void OP4CTFRules::CharacterSpawn(NSClientPlayer playerEnt, string playerModel) {