diff options
| author | oy <Tom_Adams@web.de> | 2011-01-06 13:37:28 +0100 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2011-01-06 13:37:28 +0100 |
| commit | 1306b62ce2e7c3494326889788b0fbacd371a709 (patch) | |
| tree | 1f457e5a8c83397d33c5ed6d8d715705c6cf4c67 | |
| parent | 73010e7d2e501c08bcc10adf26c3c0084e5f6553 (diff) | |
| download | zcatch-1306b62ce2e7c3494326889788b0fbacd371a709.tar.gz zcatch-1306b62ce2e7c3494326889788b0fbacd371a709.zip | |
added command to move all players to a team. Closes #384
| -rw-r--r-- | src/game/client/gameclient.cpp | 1 | ||||
| -rw-r--r-- | src/game/server/gamecontext.cpp | 17 | ||||
| -rw-r--r-- | src/game/server/gamecontext.h | 1 |
3 files changed, 19 insertions, 0 deletions
diff --git a/src/game/client/gameclient.cpp b/src/game/client/gameclient.cpp index ceae1b5d..be791284 100644 --- a/src/game/client/gameclient.cpp +++ b/src/game/client/gameclient.cpp @@ -192,6 +192,7 @@ void CGameClient::OnConsoleInit() Console()->Register("broadcast", "r", CFGFLAG_SERVER, 0, 0, "Broadcast message"); Console()->Register("say", "r", CFGFLAG_SERVER, 0, 0, "Say in chat"); Console()->Register("set_team", "ii", CFGFLAG_SERVER, 0, 0, "Set team of player to team"); + Console()->Register("set_team_all", "i", CFGFLAG_SERVER, 0, 0, "Set team of all players to team"); Console()->Register("addvote", "r", CFGFLAG_SERVER, 0, 0, "Add a voting option"); Console()->Register("vote", "r", CFGFLAG_SERVER, 0, 0, "Force a vote to yes/no"); diff --git a/src/game/server/gamecontext.cpp b/src/game/server/gamecontext.cpp index 4f494f75..906b9801 100644 --- a/src/game/server/gamecontext.cpp +++ b/src/game/server/gamecontext.cpp @@ -904,6 +904,22 @@ void CGameContext::ConSetTeam(IConsole::IResult *pResult, void *pUserData) (void)pSelf->m_pController->CheckTeamBalance(); } +void CGameContext::ConSetTeamAll(IConsole::IResult *pResult, void *pUserData) +{ + CGameContext *pSelf = (CGameContext *)pUserData; + int Team = clamp(pResult->GetInteger(0), -1, 1); + + char aBuf[256]; + str_format(aBuf, sizeof(aBuf), "moved all clients to team %d", Team); + pSelf->Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "server", aBuf); + + for(int i = 0; i < MAX_CLIENTS; ++i) + if(pSelf->m_apPlayers[i]) + pSelf->m_apPlayers[i]->SetTeam(Team); + + (void)pSelf->m_pController->CheckTeamBalance(); +} + void CGameContext::ConAddVote(IConsole::IResult *pResult, void *pUserData) { CGameContext *pSelf = (CGameContext *)pUserData; @@ -992,6 +1008,7 @@ void CGameContext::OnConsoleInit() Console()->Register("broadcast", "r", CFGFLAG_SERVER, ConBroadcast, this, ""); Console()->Register("say", "r", CFGFLAG_SERVER, ConSay, this, ""); Console()->Register("set_team", "ii", CFGFLAG_SERVER, ConSetTeam, this, ""); + Console()->Register("set_team_all", "i", CFGFLAG_SERVER, ConSetTeamAll, this, ""); Console()->Register("addvote", "r", CFGFLAG_SERVER, ConAddVote, this, ""); Console()->Register("vote", "r", CFGFLAG_SERVER, ConVote, this, ""); diff --git a/src/game/server/gamecontext.h b/src/game/server/gamecontext.h index f2326af8..55ad520f 100644 --- a/src/game/server/gamecontext.h +++ b/src/game/server/gamecontext.h @@ -52,6 +52,7 @@ class CGameContext : public IGameServer static void ConBroadcast(IConsole::IResult *pResult, void *pUserData); static void ConSay(IConsole::IResult *pResult, void *pUserData); static void ConSetTeam(IConsole::IResult *pResult, void *pUserData); + static void ConSetTeamAll(IConsole::IResult *pResult, void *pUserData); static void ConAddVote(IConsole::IResult *pResult, void *pUserData); static void ConVote(IConsole::IResult *pResult, void *pUserData); static void ConchainSpecialMotdupdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData); |