about summary refs log tree commit diff
diff options
context:
space:
mode:
authorsavander <savander.pl@gmail.com>2014-09-28 23:57:36 +0200
committersavander <savander.pl@gmail.com>2014-09-28 23:57:36 +0200
commit3affb938fba6dfe914e920ba8d44b780f74a1f62 (patch)
treee219e48fe003d3c55f5a803affb4194e6ff02b75
parent2324eba7a9a026a3b0d821932024b9f5f3e4d61d (diff)
downloadzcatch-3affb938fba6dfe914e920ba8d44b780f74a1f62.tar.gz
zcatch-3affb938fba6dfe914e920ba8d44b780f74a1f62.zip
zCatch: Ranking update
-rw-r--r--src/game/server/gamemodes/zcatch.cpp6
-rw-r--r--src/game/server/gamemodes/zcatch.h1
-rw-r--r--src/game/server/ranking.cpp25
3 files changed, 22 insertions, 10 deletions
diff --git a/src/game/server/gamemodes/zcatch.cpp b/src/game/server/gamemodes/zcatch.cpp
index 6034d78a..f30720c6 100644
--- a/src/game/server/gamemodes/zcatch.cpp
+++ b/src/game/server/gamemodes/zcatch.cpp
@@ -261,7 +261,7 @@ void CGameController_zCatch::EndRound()
 	}
 
 #if defined(CONF_SQL)
-	m_Ranking->SaveRanking(m_WinnerClientID);
+	GameServer()->m_Ranking->SaveRanking(m_WinnerClientID);
 #endif
 	for(int i = 0; i < MAX_CLIENTS; i++)
 	{
@@ -273,7 +273,9 @@ 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));
+				str_format(aBuf, sizeof(aBuf), "-----------------------------------");
+				GameServer()->SendChatTarget(i, aBuf);
+				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);
diff --git a/src/game/server/gamemodes/zcatch.h b/src/game/server/gamemodes/zcatch.h
index 9602c75c..1952614c 100644
--- a/src/game/server/gamemodes/zcatch.h
+++ b/src/game/server/gamemodes/zcatch.h
@@ -11,7 +11,6 @@
 class CGameController_zCatch: public IGameController
 {
 	int m_OldMode;
-	CRanking *m_Ranking;
 public:
 	CGameController_zCatch(class CGameContext *pGameServer);
 	virtual void Tick();
diff --git a/src/game/server/ranking.cpp b/src/game/server/ranking.cpp
index 1e990e34..0a8cfa9f 100644
--- a/src/game/server/ranking.cpp
+++ b/src/game/server/ranking.cpp
@@ -189,7 +189,7 @@ void CRanking::SaveRankingThread(void *pUser){
 		try
 		{
 			char aBuf[768];
-
+			char aBuf2[768];
 			// check strings
 			pData->m_pSqlData->ClearString(pData->m_aName);
 
@@ -198,23 +198,35 @@ void CRanking::SaveRankingThread(void *pUser){
 
 			if(pData->m_pSqlData->m_pResults->next())
 			{
-				str_format(aBuf, sizeof(aBuf), "SELECT Wins FROM zctach_ranks WHERE Name ='%s'",pData->m_aName);
+				str_format(aBuf, sizeof(aBuf), "SELECT Wins FROM zcatch_ranks WHERE Name ='%s'",pData->m_aName);
 				pData->m_pSqlData->m_pResults = pData->m_pSqlData->m_pStatement->executeQuery(aBuf);
 
 				if(pData->m_pSqlData->m_pResults->rowsCount() == 1){
 					pData->m_pSqlData->m_pResults->next();
+					int wins = (int)pData->m_pSqlData->m_pResults->getInt("Wins");
 
-					pData->m_pSqlData->GameServer()->SendChatTarget(pData->m_ClientID, aBuf);
-					str_format(aBuf, sizeof(aBuf), "INSERT INTO zcatch_ranks(Name, Wins) VALUES ('%s') ON duplicate key UPDATE Name=VALUES(Name), Wins=Wins+1;", pData->m_aName);
+					str_format(aBuf, sizeof(aBuf), "INSERT INTO zcatch_ranks(Name, Wins) VALUES ('%s', '%d') ON duplicate key UPDATE Name=VALUES(Name), Wins=Wins+1;", pData->m_aName, wins);
 					pData->m_pSqlData->m_pStatement->execute(aBuf);
+
+					if(wins == 1){
+						str_format(aBuf2, sizeof(aBuf), "Woah! You won for the first time! Now you have 1 win.");
+						pData->m_pSqlData->GameServer()->SendChatTarget(pData->m_ClientID, aBuf2);
+					}else{
+						str_format(aBuf2, sizeof(aBuf), "You're winner! Now you have %d wins!", wins);
+						pData->m_pSqlData->GameServer()->SendChatTarget(pData->m_ClientID, aBuf2);
+					}
 				}
+
+
 			}
 
-			pData->m_pSqlData->GameServer()->SendChatTarget(pData->m_ClientID, aBuf);
+
+
+
 			delete pData->m_pSqlData->m_pResults;
 
 			// if no entry found... create a new one
-			str_format(aBuf, sizeof(aBuf), "INSERT IGNORE INTO %s_race(Name, Wins2 VALUES ('%s', '1');",pData->m_aName);
+			str_format(aBuf, sizeof(aBuf), "INSERT IGNORE INTO zcatch_ranks(Name, Wins) VALUES ('%s', '1');",pData->m_aName);
 			pData->m_pSqlData->m_pStatement->execute(aBuf);
 
 			dbg_msg("SQL", "Updating rank done");
@@ -268,4 +280,3 @@ void CRanking::ClearString(char *pString, int size)
 	strcpy(pString,newString);
 }
 #endif
-