Вопрос Is valid

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
12 Дек 2023
Сообщения
15
Реакции
17
уже сколько времени мучаюсь с isvalid и все не как не получается не понимаю в чем причина постоянно мисаю в не валидный тик мб кто нибудь что нибудь подскажет
Код:
Expand Collapse Copy
__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;
    }
 
уже сколько времени мучаюсь с isvalid и все не как не получается не понимаю в чем причина постоянно мисаю в не валидный тик мб кто нибудь что нибудь подскажет
Код:
Expand Collapse Copy
__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;
    }
Ну слушай тут все нормально, скорее всего дело в самом аиме, попробуй перестроить сам гет рекордов в аиме
 
уже сколько времени мучаюсь с isvalid и все не как не получается не понимаю в чем причина постоянно мисаю в не валидный тик мб кто нибудь что нибудь подскажет
Код:
Expand Collapse Copy
__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;
    }
перестать пастить код со всего подряд
C++:
Expand Collapse Copy
bool lag_record_t::valid( ) {
    if ( m_broke_lc
        || m_shifting )
        return false;
   
    // add latency + view interpolation latency see C_BaseEntity::GetInterpolationAmount() +
    // check bounds [0,sv_maxunlag]
    auto correct = std::clamp(
        g_networking->latency( ) + g_networking->lerp( ), 0.f,
        g_ctx->cvars( ).sv_maxunlag->get_float( )
    );
   
    auto tick_base = g_local_player->self( )->tick_base( );
    if ( g_exploits->next_shift_amount( ) > 0 )
        tick_base -= g_exploits->next_shift_amount( );
   
    // calculate difference between tick sent by player and our latency based tick
    auto delta_time = correct - ( valve::to_time( tick_base ) - m_sim_time );
   
    // difference between cmd time and latency is too big > 200ms, use time correction based on latency.
    if ( std::abs( delta_time ) > 0.2f )
        return false;
   
    auto server_tick = g_networking->server_tick( ) + g_networking->await_fake_duck_choke( );
    auto dead_time = valve::to_time( server_tick ) - g_ctx->cvars( ).sv_maxunlag->get_float( );
   
    if ( valve::to_ticks( m_sim_time + g_networking->lerp( ) ) < static_cast< int >( dead_time ) )
        return false;
   
    return true;
}
не понятно что за мемы с delta_time_min / delta_time_max
 
Последнее редактирование:
Назад
Сверху Снизу