about summary refs log tree commit diff
path: root/src/game/server/gamemodes
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/server/gamemodes')
-rw-r--r--src/game/server/gamemodes/zcatch.cpp20
-rw-r--r--src/game/server/gamemodes/zcatch.h3
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();