Начинающий
- Статус
- Оффлайн
- Регистрация
- 12 Дек 2023
- Сообщения
- 15
- Реакции
- 17
уже сколько времени мучаюсь с isvalid и все не как не получается не понимаю в чем причина постоянно мисаю в не валидный тик мб кто нибудь что нибудь подскажет
Код:
__forceinline bool lag_record_t::valid() const
{
const auto& net_info = g_context->net_info();
auto maxunlag = g_context->cvars().m_sv_maxunlag->get_float();
auto latency = std::clamp(valve::to_time(net_info.m_latency.m_in + net_info.m_latency.m_out), 0.f, 1.f);
auto correct = std::clamp(latency + net_info.m_lerp, 0.f, maxunlag);
auto tick_base = valve::g_local_player->tick_base();
if (g_exploits->ticks_allowed() > 0)
{
auto delta_time_min = correct - (valve::to_time(tick_base) - valve::g_global_vars->m_interval_per_tick - m_sim_time);
auto delta_time_max = correct - (valve::to_time(tick_base) + valve::g_global_vars->m_interval_per_tick - m_sim_time);
if (std::fabs(delta_time_min) >= 0.2f || std::fabs(delta_time_max) >= 0.2f)
return false;
}
auto delta_time = correct - (valve::to_time(tick_base) - m_sim_time);
if (std::fabs(delta_time) >= 0.2f)
return false;
auto extra_choke = 0;
if (g_movement->should_fake_duck())
extra_choke = 14 - valve::g_client_state->m_choked_cmds;
auto server_tickcount = valve::g_global_vars->m_tick_count + latency + extra_choke;
auto dead_time = (int)(float)((float)((int)((float)((float)server_tickcount * valve::g_global_vars->m_interval_per_tick) - 0.2f) / valve::g_global_vars->m_interval_per_tick) + 0.5f);
if (valve::to_ticks(m_sim_time + net_info.m_lerp) < dead_time)
return false;
return true;
}