From 2a54f759145f86fce4ad2a333de6d9cd911d8861 Mon Sep 17 00:00:00 2001 From: savander Date: Sat, 27 Sep 2014 00:34:35 +0200 Subject: zCatch:Ranking --- src/game/server/gamemodes/zcatch.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/game/server/gamemodes/zcatch.cpp') 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) -- cgit 1.4.1