Вопрос Backtrack source

Тьомчик
Участник
Статус
Оффлайн
Регистрация
30 Июн 2020
Сообщения
731
Реакции[?]
150
Поинты[?]
58K
Как написать бектрек? (Токо без роликов masterlosera15)
И есть ли уже готовый нормальный чтобы спастить и нихуя не делать? :FailFish:
 
Участник
Статус
Оффлайн
Регистрация
19 Апр 2020
Сообщения
1,179
Реакции[?]
314
Поинты[?]
152K
Как написать бектрек? (Токо без роликов masterlosera15)
И есть ли уже готовый нормальный чтобы спастить и нихуя не делать? :FailFish:
бекапишь рекорд потом ctx.cmd->tick_count = TIME_TO_TICKS(best_target.best_point.record->m_flSimulationTime + LagCompensation->GetLerpTime());
 
Эксперт
Статус
Оффлайн
Регистрация
29 Мар 2021
Сообщения
1,596
Реакции[?]
605
Поинты[?]
46K
бектрек обеспечиваешь не ты а сервер, по сути всё что ты делаешь это эмулируешь поведение сервера на клиенте и во время выстрела хуяришь cmd->tick_count = ticks[player_that_youre_shooting].at(the_closest_point_in_the_array).tick;
 
Забаненный
Статус
Оффлайн
Регистрация
2 Авг 2023
Сообщения
5
Реакции[?]
1
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как написать бектрек? (Токо без роликов masterlosera15)
И есть ли уже готовый нормальный чтобы спастить и нихуя не делать? :FailFish:
так вот чтобы сделать бектрек тебе нужна систем лаг рекордов, потом проверяешь лагрекорд на валидность т.е

C++:
bool c_lag_record::valid( )
{
    float correct = 0.f;
    
    /* in + out */
    correct += g_ctx.m_latency;
    
    correct += g_ctx.m_lerp;
    
    /* check bounds */
    correct = std::clamp( correct, 0.f, g_ctx.sv_maxunlag->get_float( ) );
    
    /* make sure ur client curtime is set correctly */
    float delta_time = correct - ( valve::g_global_vars->m_cur_time - m_sim_time );
    
    if ( std::fabs( delta_time ) > 0.2f )
        return false;
    
    return true;
}
simplest impl how to get last record for aim_bot
C++:
c_lag_record c_aim_bot::get_last_record( )
{
    if ( m_data->m_records.empty( ) )
        return nullptr;
    
    for ( auto i = 0; < m_data->m_records.size( ); ++i )
    {
        auto record = m_data->m_records.at( i );
        if ( !record->valid( ) )
            continue;
        
        return record;
    }
    
    return nullptr;
}
позже после
C++:
cmd->m_buttons |= valve::e_buttons::in_attack;
устанавливаешь тиккаунт
C++:
cmd->m_tick_count = valve::to_ticks( best_record->m_sim_time + g_ctx.m_lerp );
have a nice day!
 
Эксперт
Статус
Оффлайн
Регистрация
30 Дек 2019
Сообщения
1,967
Реакции[?]
958
Поинты[?]
19K
так вот чтобы сделать бектрек тебе нужна систем лаг рекордов, потом проверяешь лагрекорд на валидность т.е

C++:
bool c_lag_record::valid( )
{
    float correct = 0.f;

    /* in + out */
    correct += g_ctx.m_latency;

    correct += g_ctx.m_lerp;

    /* check bounds */
    correct = std::clamp( correct, 0.f, g_ctx.sv_maxunlag->get_float( ) );

    /* make sure ur client curtime is set correctly */
    float delta_time = correct - ( valve::g_global_vars->m_cur_time - m_sim_time );

    if ( std::fabs( delta_time ) > 0.2f )
        return false;

    return true;
}
simplest impl how to get last record for aim_bot
C++:
c_lag_record c_aim_bot::get_last_record( )
{
    if ( m_data->m_records.empty( ) )
        return nullptr;

    for ( auto i = 0; < m_data->m_records.size( ); ++i )
    {
        auto record = m_data->m_records.at( i );
        if ( !record->valid( ) )
            continue;
 
        return record;
    }

    return nullptr;
}
позже после
C++:
cmd->m_buttons |= valve::e_buttons::in_attack;
устанавливаешь тиккаунт
C++:
cmd->m_tick_count = valve::to_ticks( best_record->m_sim_time + g_ctx.m_lerp );
have a nice day!
димончик, а с чем ты размер вектора сравниваешь то?1691287013193.pngи чем тебя range for не устроил?
float delta_time = correct - ( valve::g_global_vars->m_cur_time - m_sim_time );
да и тут не cur_time, а ticks2time( local->tickbase() ) должно быть
ваще то только OUT ( server.dll -> FF D0 D9 5C 24 1C F3 0F 10 44 24 ? F3 0F 11 44 24 )
EDIT: насчёт latency я не прав, я забыл что это сервер.длл, brainlag случился, забыл фейклаги выключить, сори
 
Последнее редактирование:
kitty.
Пользователь
Статус
Оффлайн
Регистрация
17 Окт 2021
Сообщения
282
Реакции[?]
111
Поинты[?]
17K
да и тут не cur_time, а ticks2time( local->tickbase() ) должно быть
я тебе секрет открою, твой cur_time и так равен local->tickbase(), потому что аимбот вызывается после eng_pred start и до eng pred end, если ты используешь функцию valid чисто в аимботе и не меняешь тикбейз после того как присвоил его к cur_time(в предикшене), то смысла в использовании local->tickbase() в этой функции особого нету
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Последнее редактирование:
Сверху Снизу