Вопрос Пустые рекорды

Статус
В этой теме нельзя размещать новые ответы.
Пользователь
Статус
Оффлайн
Регистрация
12 Июн 2019
Сообщения
865
Реакции[?]
126
Поинты[?]
0
Здрасьте всем,есть простой лаг-комп, вызываю его при FRAME_NET_UPDATE_END.Скриншоты с дебага есть внизу, при использовании их в рейдже пишет что рекорд невалид. Код проверки рекорда:
C++:
bool CLagCompensation::IsValid(float time)//тут типа m_record.fl_simtime
{
    auto network = I::Engine->GetNetChannelInfo();
    if (!network)
        return false;
    static CConVar* max_unlag = I::ConVar->FindVar(XorStr("sv_maxunlag"));
    float serverTime = G::pLocal->GetTickBase() * I::Globals->flIntervalPerTick;
    auto delta = std::clamp(network->GetLatency(FLOW_OUTGOING) + network->GetLatency(FLOW_INCOMING) + GetLerpTime(), 0.f, max_unlag->GetFloat()) - (serverTime - time);
    return std::fabsf(delta) <= 0.2f;
}
если же не использовать эту проверку, чит просто перестаёт сканить игроков.

1645472757627.png
C++:
for (auto i = 0; i < I::Globals->nMaxClients; i++) {
        auto player = I::ClientEntityList->Get<CBaseEntity>(i);

        if (!player || !player->IsAlive() || !player->IsPlayer() || !player->IsEnemy(G::pLocal))
            continue;

        auto update = m_records.at(i).empty() || (!m_records.at(i).empty() && player->GetSimulationTime() > m_records.at(i).front().m_sim_time);

        if (update && player->GetSimulationTime() <= player->GetOldSimulationTime())
            update = false;

        if (update) {
            m_records.at(i).emplace_front(CLagRecord(player));

            update_animations(&m_records.at(i).front());// тут пока пусто

           
        }

        while (m_records.at(i).size() > 32)
            m_records.at(i).pop_back();
    }
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу