diff options
| author | oy <Tom_Adams@web.de> | 2011-03-20 15:33:49 +0100 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2011-03-20 15:33:49 +0100 |
| commit | 96808a11451f2ccf22346253bd22f8f559207ac8 (patch) | |
| tree | a91ecb0ea18cff36e8515f234c5028c6c1c1b628 /src/engine/server | |
| parent | 2547bfa4fcc8916a47eceb9a929fe73c8a1d83b9 (diff) | |
| download | zcatch-96808a11451f2ccf22346253bd22f8f559207ac8.tar.gz zcatch-96808a11451f2ccf22346253bd22f8f559207ac8.zip | |
made it possible to just show the number of player slots of a server (instead of client ones). Closes #68
Diffstat (limited to 'src/engine/server')
| -rw-r--r-- | src/engine/server/server.cpp | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/src/engine/server/server.cpp b/src/engine/server/server.cpp index e2408a10..c3ba583b 100644 --- a/src/engine/server/server.cpp +++ b/src/engine/server/server.cpp @@ -911,11 +911,16 @@ void CServer::SendServerInfo(NETADDR *pAddr, int Token) char aBuf[128]; // count the players - int PlayerCount = 0; + int PlayerCount = 0, ClientCount = 0; for(int i = 0; i < MAX_CLIENTS; i++) { if(m_aClients[i].m_State != CClient::STATE_EMPTY) - PlayerCount++; + { + if(GameServer()->IsClientPlayer(i)) + PlayerCount++; + + ClientCount++; + } } p.Reset(); @@ -939,20 +944,22 @@ void CServer::SendServerInfo(NETADDR *pAddr, int Token) p.AddString(aBuf, 2); str_format(aBuf, sizeof(aBuf), "%d", PlayerCount); p.AddString(aBuf, 3); // num players - str_format(aBuf, sizeof(aBuf), "%d", m_NetServer.MaxClients()); p.AddString(aBuf, 3); // max players + str_format(aBuf, sizeof(aBuf), "%d", m_NetServer.MaxClients()-g_Config.m_SvSpectatorSlots); p.AddString(aBuf, 3); // max players + str_format(aBuf, sizeof(aBuf), "%d", ClientCount); p.AddString(aBuf, 3); // num clients + str_format(aBuf, sizeof(aBuf), "%d", m_NetServer.MaxClients()); p.AddString(aBuf, 3); // max clients for(i = 0; i < MAX_CLIENTS; i++) { if(m_aClients[i].m_State != CClient::STATE_EMPTY) { - p.AddString(ClientName(i), MAX_NAME_LENGTH); // player name - p.AddString(ClientClan(i), MAX_CLAN_LENGTH); // player clan - str_format(aBuf, sizeof(aBuf), "%d", m_aClients[i].m_Country); p.AddString(aBuf, 6); // player country - str_format(aBuf, sizeof(aBuf), "%d", m_aClients[i].m_Score); p.AddString(aBuf, 6); // player score + p.AddString(ClientName(i), MAX_NAME_LENGTH); // client name + p.AddString(ClientClan(i), MAX_CLAN_LENGTH); // client clan + str_format(aBuf, sizeof(aBuf), "%d", m_aClients[i].m_Country); p.AddString(aBuf, 6); // client country + str_format(aBuf, sizeof(aBuf), "%d", m_aClients[i].m_Score); p.AddString(aBuf, 6); // client score + str_format(aBuf, sizeof(aBuf), "%d", GameServer()->IsClientPlayer(i)?1:0); p.AddString(aBuf, 2); // is player? } } - Packet.m_ClientID = -1; Packet.m_Address = *pAddr; Packet.m_Flags = NETSENDFLAG_CONNLESS; |