From 732fd7a4c90236ec85ee44f2a43014ab6bcec56f Mon Sep 17 00:00:00 2001 From: Benau Date: Mon, 27 Aug 2018 13:49:52 +0800 Subject: [PATCH] Don't show timer warning if voting timeout is not default --- src/network/protocols/client_lobby.cpp | 13 ++++++++----- src/network/stk_host.cpp | 3 ++- src/network/stk_peer.cpp | 3 +++ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/network/protocols/client_lobby.cpp b/src/network/protocols/client_lobby.cpp index 94d4f7dad..89e611be3 100644 --- a/src/network/protocols/client_lobby.cpp +++ b/src/network/protocols/client_lobby.cpp @@ -216,11 +216,14 @@ void ClientLobby::addAllPlayers(Event* event) // time if (!STKHost::get()->getNetworkTimerSynchronizer()->isSynchronised()) { - core::stringw msg = _("Bad network connection is detected."); - MessageQueue::add(MessageQueue::MT_ERROR, msg); - Log::warn("ClientLobby", "Failed to synchronize timer before game " - "start, maybe you enter the game too quick? (at least 5 seconds " - "are required for synchronization."); + if (UserConfigParams::m_voting_timeout >= 10.0f) + { + core::stringw msg = _("Bad network connection is detected."); + MessageQueue::add(MessageQueue::MT_ERROR, msg); + Log::warn("ClientLobby", "Failed to synchronize timer before game " + "start, maybe you enter the game too quick? (at least 5 " + "seconds are required for synchronization."); + } STKHost::get()->getNetworkTimerSynchronizer()->enableForceSetTimer(); } diff --git a/src/network/stk_host.cpp b/src/network/stk_host.cpp index 29111f7bd..e3ebc9868 100644 --- a/src/network/stk_host.cpp +++ b/src/network/stk_host.cpp @@ -759,7 +759,8 @@ void STKHost::mainLoop() const unsigned ap = p.second->getAveragePing(); const unsigned max_ping = UserConfigParams::m_max_ping; if (UserConfigParams::m_kick_high_ping_players && - p.second->isValidated() && ap > max_ping) + p.second->isValidated() && + p.second->getConnectedTime() > 5.0f && ap > max_ping) { Log::info("STKHost", "%s with ping %d is higher than" " %d ms, kick.", diff --git a/src/network/stk_peer.cpp b/src/network/stk_peer.cpp index a38a6a853..03d50e50f 100644 --- a/src/network/stk_peer.cpp +++ b/src/network/stk_peer.cpp @@ -156,7 +156,10 @@ bool STKPeer::isSamePeer(const ENetPeer* peer) const uint32_t STKPeer::getPing() { if (getConnectedTime() < 3.0f) + { + m_average_ping.store(m_enet_peer->roundTripTime); return 0; + } if (NetworkConfig::get()->isServer()) { // Average ping in 5 seconds