diff options
| author | savander <savander.pl@gmail.com> | 2014-09-28 23:57:36 +0200 |
|---|---|---|
| committer | savander <savander.pl@gmail.com> | 2014-09-28 23:57:36 +0200 |
| commit | 3affb938fba6dfe914e920ba8d44b780f74a1f62 (patch) | |
| tree | e219e48fe003d3c55f5a803affb4194e6ff02b75 | |
| parent | 2324eba7a9a026a3b0d821932024b9f5f3e4d61d (diff) | |
| download | zcatch-3affb938fba6dfe914e920ba8d44b780f74a1f62.tar.gz zcatch-3affb938fba6dfe914e920ba8d44b780f74a1f62.zip | |
zCatch: Ranking update
| -rw-r--r-- | src/game/server/gamemodes/zcatch.cpp | 6 | ||||
| -rw-r--r-- | src/game/server/gamemodes/zcatch.h | 1 | ||||
| -rw-r--r-- | src/game/server/ranking.cpp | 25 |
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 - |