Исходник Extrapolation from skeet reversed

Забаненный
Статус
Оффлайн
Регистрация
1 Ноя 2024
Сообщения
42
Реакции[?]
32
Поинты[?]
24K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
void LagCompensation::PlayerMove( LagRecord* record ) {
    vec3_t                start, end, normal;
    CGameTrace            trace;
    CTraceFilterWorldOnly filter;

    // define trace start.
    start = record->m_pred_origin;

    // move trace end one tick into the future using predicted velocity.
    end = start + ( record->m_pred_velocity * g_csgo.m_globals->m_interval );

    // trace.
    g_csgo.m_engine_trace->TraceRay( Ray( start, end, record->m_mins, record->m_maxs ), CONTENTS_SOLID, &filter, &trace );

    // we hit shit
    // we need to fix hit.
    if ( trace.m_fraction != 1.f ) {
        // fix sliding on planes.
        for ( int i{}; i < 2; ++i ) {
            if ( record->m_pred_velocity.length( ) == 0.f )
                break;

            record->m_pred_velocity -= trace.m_plane.m_normal * record->m_pred_velocity.dot( trace.m_plane.m_normal );

            float adjust = record->m_pred_velocity.dot( trace.m_plane.m_normal );
            if ( adjust < 0.f )
                record->m_pred_velocity -= ( trace.m_plane.m_normal * adjust );

            start = trace.m_endpos;
            end = start + ( record->m_pred_velocity * ( g_csgo.m_globals->m_interval * ( 1.f - trace.m_fraction ) ) );

            g_csgo.m_engine_trace->TraceRay( Ray( start, end, record->m_mins, record->m_maxs ), CONTENTS_SOLID, &filter, &trace );
            if ( trace.m_fraction == 1.f )
                break;
        }
    }

    // set new final origin.
    start = end = record->m_pred_origin = trace.m_endpos;

    // move endpos 2 units down.
    // this way we can check if we are in/on the ground.
    end.z -= 2.f;

    // trace.
    g_csgo.m_engine_trace->TraceRay( Ray( start, end, record->m_mins, record->m_maxs ), CONTENTS_SOLID, &filter, &trace );

    // strip onground flag.
    if ( trace.m_fraction == 1.f && trace.m_plane.m_normal.z < 0.7f )
        record->m_pred_flags &= ~FL_ONGROUND;

    // add back onground flag if we are onground.
    else
        record->m_pred_flags |= FL_ONGROUND;

    /*
    if ( ( LOBYTE( v216.m[ 0 ][ 1 ] ) & 1 ) != 0 && ( v308 & 1 ) == 0 )
    {
        if ( v327 )
            *( v327 + 289 ) = 1;
        v144 = *( ( anim_layers ^ *anim_layers_xor ) + player );
        v144[ 4 ].m_cycle = 0.0;
        v144[ 4 ].m_weight = 0.0;
        if ( v282 && ( v308 & 6 ) == 6 )
            v311 = v311 + 9.0;
    }
    */

    // s/o estk ^_^
    if ( record->m_pred_flags & FL_ONGROUND )
        record->m_layers[ 4 ].m_cycle = record->m_layers[ 4 ].m_weight = 0.f;
}
 
Забаненный
Статус
Оффлайн
Регистрация
1 Ноя 2024
Сообщения
42
Реакции[?]
32
Поинты[?]
24K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
22 Сен 2018
Сообщения
27
Реакции[?]
6
Поинты[?]
4K
does the if statement that's commented out have anything to do with the player ducking? how its written seems that way but haven't tried to look into reversing atm to try checking
 
Забаненный
Статус
Оффлайн
Регистрация
1 Ноя 2024
Сообщения
42
Реакции[?]
32
Поинты[?]
24K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Похожие темы
Сверху Снизу