diff --git a/src/game/server/gamecontext.cpp b/src/game/server/gamecontext.cpp index 8bb560595..08e20a5c8 100644 --- a/src/game/server/gamecontext.cpp +++ b/src/game/server/gamecontext.cpp @@ -4078,8 +4078,10 @@ void CGameContext::OnSnap(int ClientID) pPlayer->Snap(ClientID); } - if(ClientID > -1) + if(ClientID > -1) { m_apPlayers[ClientID]->FakeSnap(); + m_apPlayers[ClientID]->m_SentSnaps++; + } m_World.Snap(ClientID); m_Events.Snap(ClientID); diff --git a/src/game/server/player.cpp b/src/game/server/player.cpp index d8e948ad8..fadcbec8c 100644 --- a/src/game/server/player.cpp +++ b/src/game/server/player.cpp @@ -158,7 +158,7 @@ static int PlayerFlags_SixToSeven(int Flags) void CPlayer::Tick() { - if(m_ScoreQueryResult != nullptr && m_ScoreQueryResult->m_Completed) + if(m_ScoreQueryResult != nullptr && m_ScoreQueryResult->m_Completed && m_SentSnaps >= 3) { ProcessScoreResult(*m_ScoreQueryResult); m_ScoreQueryResult = nullptr; diff --git a/src/game/server/player.h b/src/game/server/player.h index 8afed7816..cc1b4439d 100644 --- a/src/game/server/player.h +++ b/src/game/server/player.h @@ -80,6 +80,8 @@ public: // used for snapping to just update latency if the scoreboard is active int m_aCurLatency[MAX_CLIENTS]; + int m_SentSnaps = 0; + // used for spectator mode int m_SpectatorID;