diff options
| author | savander <savander.pl@gmail.com> | 2014-09-27 00:34:35 +0200 |
|---|---|---|
| committer | savander <savander.pl@gmail.com> | 2014-09-27 00:34:35 +0200 |
| commit | 2a54f759145f86fce4ad2a333de6d9cd911d8861 (patch) | |
| tree | 8509c538c26ddae9c493fbaed33a8380508d7caf /src/game/server/gamemodes | |
| parent | 8c329ade7507d3f1641018f302bf2396af6a471a (diff) | |
| download | zcatch-2a54f759145f86fce4ad2a333de6d9cd911d8861.tar.gz zcatch-2a54f759145f86fce4ad2a333de6d9cd911d8861.zip | |
zCatch:Ranking
Diffstat (limited to 'src/game/server/gamemodes')
| -rw-r--r-- | src/game/server/gamemodes/zcatch.cpp | 20 | ||||
| -rw-r--r-- | src/game/server/gamemodes/zcatch.h | 3 |
2 files changed, 22 insertions, 1 deletions
diff --git a/src/game/server/gamemodes/zcatch.cpp b/src/game/server/gamemodes/zcatch.cpp index cd36d12f..6034d78a 100644 --- a/src/game/server/gamemodes/zcatch.cpp +++ b/src/game/server/gamemodes/zcatch.cpp @@ -248,6 +248,21 @@ void CGameController_zCatch::OnCharacterSpawn(class CCharacter *pChr) void CGameController_zCatch::EndRound() { + + //CheckWinner + int m_WinnerClientID = 0; + for(int i = 0; i < MAX_CLIENTS; i++) + { + if(GameServer()->m_apPlayers[i]) + { + if(GameServer()->m_apPlayers[i]->m_zCatchNumVictims) + m_WinnerClientID = GameServer()->m_apPlayers[i]->GetCID(); + } + } + +#if defined(CONF_SQL) + m_Ranking->SaveRanking(m_WinnerClientID); +#endif for(int i = 0; i < MAX_CLIENTS; i++) { if(GameServer()->m_apPlayers[i]) @@ -258,9 +273,13 @@ void CGameController_zCatch::EndRound() GameServer()->m_apPlayers[i]->SetTeamDirect(GameServer()->m_pController->ClampTeam(1)); char aBuf[128]; + str_format(aBuf, sizeof(aBuf), "Winner -- %s", Server()->ClientName(m_WinnerClientID)); + GameServer()->SendChatTarget(i, aBuf); str_format(aBuf, sizeof(aBuf), "Kills: %d | Deaths: %d", GameServer()->m_apPlayers[i]->m_Kills, GameServer()->m_apPlayers[i]->m_Deaths); GameServer()->SendChatTarget(i, aBuf); + + if(GameServer()->m_apPlayers[i]->m_TicksSpec != 0 || GameServer()->m_apPlayers[i]->m_TicksIngame != 0) { double TimeInSpec = (GameServer()->m_apPlayers[i]->m_TicksSpec * 100.0) / (GameServer()->m_apPlayers[i]->m_TicksIngame + GameServer()->m_apPlayers[i]->m_TicksSpec); @@ -280,6 +299,7 @@ void CGameController_zCatch::EndRound() GameServer()->m_World.m_Paused = true; m_GameOverTick = Server()->Tick(); m_SuddenDeath = 0; + } bool CGameController_zCatch::CanChangeTeam(CPlayer *pPlayer, int JoinTeam) diff --git a/src/game/server/gamemodes/zcatch.h b/src/game/server/gamemodes/zcatch.h index 4f110a03..9602c75c 100644 --- a/src/game/server/gamemodes/zcatch.h +++ b/src/game/server/gamemodes/zcatch.h @@ -6,11 +6,12 @@ #define GAME_SERVER_GAMEMODES_ZCATCH_H #include <game/server/gamecontroller.h> +#include "../ranking.h" class CGameController_zCatch: public IGameController { int m_OldMode; - + CRanking *m_Ranking; public: CGameController_zCatch(class CGameContext *pGameServer); virtual void Tick(); |