-
Автор темы
- #1
По сути исходный код ping индикатора уже давно есть в открытом доступе, но я нигде не видел абсолютно правильного индикатора. Под правильным я понимаю индикатор ping, значение которого совпадает со значением в net_graph. Для того чтобы его сделать, мне пришлось немного порыться в
Собственно сам код:
Пожалуйста, авторизуйтесь для просмотра ссылки.
.Собственно сам код:
C++:
// Получение начального значения ping.
auto nci = g_csgo.m_engine()->GetNetChannelInfo();
auto latency = nci && g_csgo.m_engine()->IsInGame() && !g_csgo.m_engine()->IsPlayingDemo() ? nci->GetAvgLatency(FLOW_OUTGOING) : 0.0f;
// Корректировка значения из source sdk 2013.
static auto cl_updaterate = g_csgo.m_cvar()->FindVar("cl_updaterate");
latency -= 0.5f / cl_updaterate->GetFloat();
// Финальная корректировка значения и приведение его в тип std::string.
auto ping = std::to_string((int)(max(0.0f, latency) * 1000.0f));
// Можете отрендерить сам инидикатор где вам удобно, здесь просто приведу пример.
render::get().text(fonts[INDICATORS], 50, 50, HFONT_CENTERED_X | HFONT_CENTERED_Y, "PING: %s ms", ping.c_str());
Последнее редактирование: