True animation fix by sh1t paster's (still working)

main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
Дампили это с мега приватных читиков
А на деле гладиатор анимфикс (вроде чета добавили там)
Нашел в сурсе антарио в текстовом документе кек ( у меня в папке еще 100+ сурсов с хуйней )
кодили крутые человеки может даже шарклайзер :CoolCat:

// upd хайд снял что бы ржали все
 
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
Код:
 if (TIME_TO_TICKS(g_GlobalVars->m_flSimulationTime() - g_GlobalVars->m_OldSimulationTime() >= 1))
        {
панимаю
 
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
Вообщем нихуя он не смотрится , я тут ещо ресольвер нашел это вообще ржака
И кстаи анимификс рабочий можете юзать (нет)
 
t.me/lnk1181shop
Участник
Статус
Оффлайн
Регистрация
16 Авг 2019
Сообщения
492
Реакции[?]
413
Поинты[?]
1K
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
чо чо ну типо симтайм обновился чо не ясно то
только вот g_GlobalVars 0_______o
глобалварс наше всё !
Да я даже внимания не обратил, это практически не юзабельный код или это блять какаята антипаста слишком уж сложно
Ну хотя че гадать то может они создали переменную , инициализировали ее где нибуть , а потом просто передали ей тот же нетвар чи не
 
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
чо чо ну типо симтайм обновился чо не ясно то
Так это то ясно что симтайм смещяется , это правильнее назвать ChockedTime
Я тебе про сам детект (эксплойты и фейклаги так можно оч легко найти)
upd А смысл от этой проверки я не вижу, да и делать сетап бонес вне проверки это сверхразум !!!)))!!!
 
t.me/lnk1181shop
Участник
Статус
Оффлайн
Регистрация
16 Авг 2019
Сообщения
492
Реакции[?]
413
Поинты[?]
1K
Так это то ясно что симтайм смещяется , это правильнее назвать ChockedTime
Я тебе про сам детект (эксплойты и фейклаги так можно оч легко найти)
upd А смысл от этой проверки я не вижу, да и делать сетап бонес вне проверки это сверхразум !!!)))!!!
ну из за нее как бы анимации будут обновляться только при апдейте симтайма
а вообще это мем какой то -________-
 
Vortyk back
Забаненный
Статус
Оффлайн
Регистрация
15 Сен 2019
Сообщения
137
Реакции[?]
28
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Дампили это с мега приватных читиков
А на деле гладиатор анимфикс (вроде чета добавили там)
Нашел в сурсе антарио в текстовом документе кек ( у меня в папке еще 100+ сурсов с хуйней )
кодили крутые человеки может даже шарклайзер :CoolCat:
Скрытое содержимое
// upd хайд снял что бы ржали все
Кинь сурсы 100+ поугараю
 
Vortyk back
Забаненный
Статус
Оффлайн
Регистрация
15 Сен 2019
Сообщения
137
Реакции[?]
28
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
When it hit it hit.
Забаненный
Статус
Оффлайн
Регистрация
2 Апр 2019
Сообщения
131
Реакции[?]
66
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Sorry but thats not any kind of animations fix or close.
the callback of updatecanims are wrong 100%.
all that this post makes me belive is that you are trying to find REP by posting malicious/useless code.
 
t.me/lnk1181shop
Участник
Статус
Оффлайн
Регистрация
16 Авг 2019
Сообщения
492
Реакции[?]
413
Поинты[?]
1K
static auto host_timescale = g_CVar->FindVar(("host_timescale"));

g_GlobalVars->frametime = g_GlobalVars->interval_per_tick * host_timescale->GetFloat();
host timescale
nahuya a glavnoe zachem
if (player->GetAnimOverlays()[6].m_PlayBackRate == 0) // cho?
G::cmd->tick_count = player->interval_per_tick;
ну вот тут рял чо?
mojno ustanavlivat abs ugli btw
player->m_bClientSideAnimation() = true;

player->set_abs_angles(QAngle(0, animstate->goalfeetyaw, 0));
player->UpdateClientSideAnimation();

player->m_bClientSideAnimation() = false;

можно еще фиксить эиры, по типу когда реал на 3 бошки выше десинка
animstate + 0x110 = 0.0f;
player->m_iEFlags() &= ~0x1000;
в анимфиксе еще можно ресик вызвать, но нахуй надо
а в анимфиксе ничего плохого нет
if (TIME_TO_TICKS(g_GlobalVars->m_flSimulationTime() - g_GlobalVars->m_OldSimulationTime() >= 1))
вот это тоже вопрос нахуя а главное зачем ну да ладно
если лень делать анимфикс эт можно взять под основу
LNK1181 давай пизди меня палками если я где то сказал хуйню
nu vo pervih eto troll post

vo 2 kakoi voobsshe smisl v etoi line???
player->set_abs_angles(QAngle(0, animstate->goalfeetyaw, 0));
esli anim state update uze sam vse delaet
1589114468262.png...

menyaem zna4eniya anim_state a 4o
posmotri lu4she na 4 anim layer

player->m_iEFlags() &= ~0x1000;
ti voobsshe znaesh za4em eto delat ?????????

4tobi get_abs_velocity ne delal ni4ego s abs velocity
1589114805570.png1589114820266.png
i setup_velocity prinyal tvoe velocity
wok dev vot hookaet estimate_abs_velocity i menyaet tam
 
Эксперт
Статус
Оффлайн
Регистрация
17 Фев 2017
Сообщения
864
Реакции[?]
420
Поинты[?]
1K
Код:
 if (TIME_TO_TICKS(g_GlobalVars->m_flSimulationTime() - g_GlobalVars->m_OldSimulationTime() >= 1))
        {
панимаю
ваабщета эта фикс от новых авэшных антиамаф и тикбейз шифтоф. Такая шняга есть везде. Даже в рифке)
Толька этат фикс немножна неправильна сдилан. Он так
Код:
if (TIME_TO_TICKS(g_GlobalVars->m_flSimulationTime() - g_GlobalVars->m_OldSimulationTime() >= 1))
А должин быть фоть так:
Код:
if (TIME_TO_TICKS(g_GlobalVars->m_flSimulationTime() - g_GlobalVars->m_OldSimulationTime()) >= 1)
Кто в танке: положение скобачки))) влияет. Скобочку нада переместить таким образом, что бы результат сравнивался с TIME_TO_TICKS аля >= 1
Шо це дає? Це дає ніхуя. Особена в анимфиксе. Ну зато пофиксил эту проверку, анимфикс УЖЕ ЗАРАБОТУЕТ УЛЯ ЛААА.
П.С. Если хочишь шоб твая паста не стреляла в АА шифты, то цю проверочку нада сделать в рейджботе.

Например:

Код:
bool IsPlayerShiftingTickBaseOrInvalidCheatUserFuckThisShitIgnoreFreePastasUsers(c_cs_player* bitch)
{
    if (bitch != nullptr) // fuck nullptr's bitches
    {
      if (TIME_TO_TICKS(bitch->m_flSimulationTime() - bitch->m_OldSimulationTime()) >= 1) // fuck shifting tickbase bitches. WE DON'T SHOOT AT DT's ENTITIES.
      {
                                                                                  return false;
                                                         }
    }

    return true;
}

USAGE OF THIS PERFECT CODE:
Код:
bool ragebot(c_cs_player* player)
{
    bool haha = IsPlayerShiftingTickBaseOrInvalidCheatUserFuckThisShitIgnoreFreePastasUsers(player);
    if (haha)
        return; // avoid to shoot at bitch incorrect entity
}
Disclaimer: This is roflopost. But you still can use this hint for your perfecto-pasta.
 
Пользователь
Статус
Оффлайн
Регистрация
14 Янв 2018
Сообщения
387
Реакции[?]
91
Поинты[?]
0
Ого нихуя себе разработки, да это же анимфикс гуччи с двумя новыми строчками кода :roflanBuldiga:
 
t.me/lnk1181shop
Участник
Статус
Оффлайн
Регистрация
16 Авг 2019
Сообщения
492
Реакции[?]
413
Поинты[?]
1K
мер:

Код:
      if (TIME_TO_TICKS(bitch->m_flSimulationTime() - bitch->m_OldSimulationTime()) >= 1) // fuck shifting tickbase bitches. WE DON'T SHOOT AT DT's ENTITIES.
}
ti ze ponimaesh 4to esli 4elik shiftit
to simtime move nazad da
i kak bi old simtime budet bolshe 4em cur simtime
sledovatelno delta mezdu nimi budet -
 
Эксперт
Статус
Оффлайн
Регистрация
17 Фев 2017
Сообщения
864
Реакции[?]
420
Поинты[?]
1K
ti ze ponimaesh 4to esli 4elik shiftit
to simtime move nazad da
i kak bi old simtime budet bolshe 4em cur simtime
sledovatelno delta mezdu nimi budet -
Да я знаю. Просто я назвал функцию IsPlayerShiftingTickbase
Это означает, что если дельта между Сим Таймом и Олд Сим Таймом больше или равна одному, то челик НЕ ШИФТИТ.
В случае если nullptr или < 1 то делаем инвалид проверку. Если ноль то обновления не было или шифт слабенький.
Но все же, это поможет от антибекшута и шифт АА, но если чел с дабл тапом то ты по нему не будешь стрелять, это как то не то. Забектрекать его нельзя, в тебя летит 2 патрона. И что делать?
 
t.me/lnk1181shop
Участник
Статус
Оффлайн
Регистрация
16 Авг 2019
Сообщения
492
Реакции[?]
413
Поинты[?]
1K
Да я знаю. Просто я назвал функцию IsPlayerShiftingTickbase
Это означает, что если дельта между Сим Таймом и Олд Сим Таймом больше или равна одному, то челик НЕ ШИФТИТ.
В случае если nullptr или < 1 то делаем инвалид проверку. Если ноль то обновления не было или шифт слабенький.
Но все же, это поможет от антибекшута и шифт АА, но если чел с дабл тапом то ты по нему не будешь стрелять, это как то не то. Забектрекать его нельзя, в тебя летит 2 патрона. И что делать?
а хахах
я не заметил что там return false......
извиняюсь блинб
 
аллах велик
Забаненный
Статус
Оффлайн
Регистрация
24 Янв 2020
Сообщения
252
Реакции[?]
117
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
proper animfix
C++:
std::unique_ptr< c_animfix > animfix = std::make_unique< c_animfix >( );

void c_animfix::re_work( client_frame_stage_t stage ) {

    if ( !local_player || !local_player->get_anim_state( ) )
        return;

    if ( stage == client_frame_stage_t::frame_render_start )
        local_player->set_abs_angles( vec_t( 0.f, local_player->get_anim_state( )->goal_feet_yaw, 0.f ) );


    for ( int i = 1; i <= globals->max_clients; i++ ) {
        c_baseentity * entity = ( c_baseentity* ) entity_list->get_client_entity( i );

        if ( !entity->is_valid_player( ) )
            continue;


        static auto set_interpolation_flags = [ ] ( c_baseentity* e, int flag ) {
            const auto var_map = ( uintptr_t ) e + 36;
            const auto sz_var_map = *( int* ) ( var_map + 20 );

            for ( auto index = 0; index < sz_var_map; index++ )
                *( uintptr_t* ) ( ( *( uintptr_t* ) var_map ) + index * 12 ) = flag;
        };

        if ( stage == client_frame_stage_t::frame_net_update_postdataupdate_end )
            set_interpolation_flags( entity, 0 );


    }
}
void c_animfix::fix_local_player_animations( )
{
    if ( !local_player )
        return;

    static float sim_time;
    if ( sim_time != local_player->get_simulation_time( ) )
    {
        auto state = local_player->get_anim_state( ); if ( !state ) return;

        const float curtime = globals->curtime;
        const float frametime = globals->frametime;
        const float realtime = globals->real_time;
        const float absoluteframetime = globals->absolute_frametime;
        const float absoluteframestarttimestddev = globals->absolute_frame_start_time;
        const float interpolation_amount = globals->interpolation_amount;
        const float framecount = globals->frame_count;
        const float tickcount = globals->tickcount;

        static auto host_timescale = cvar->find_var( ( "host_timescale" ) );

        globals->curtime = local_player->get_simulation_time( );
        globals->real_time = local_player->get_simulation_time( );
        globals->frametime = globals->interval_per_tick * host_timescale->get_float( );
        globals->absolute_frametime = globals->interval_per_tick * host_timescale->get_float( );
        globals->absolute_frame_start_time = local_player->get_simulation_time( ) - globals->interval_per_tick * host_timescale->get_float( );
        globals->interpolation_amount = 0;
        globals->frame_count = time_to_ticks( local_player->get_simulation_time( ) );
        globals->tickcount = time_to_ticks( local_player->get_simulation_time( ) );

        int backup_flags = local_player->get_flags( );
        int backup_eflags = local_player->get_eflags( );

        animationlayer backup_layers [ 15 ];
        std::memcpy( backup_layers, local_player->get_anim_overlays( ), ( sizeof( animationlayer ) * 15 ) );

        if ( state->last_client_side_animation_update_framecount == globals->frame_count )
            state->last_client_side_animation_update_framecount = globals->frame_count - 1;

        local_player->get_clientside_animation( ) = true;
        local_player->update_clientside_animation( );
        local_player->get_clientside_animation( ) = false;


        float lby_delta = local_player->get_lby( ) - thirdperson->thirdperson_angle.y;
        lby_delta = std::remainderf( lby_delta, 360.f );
        lby_delta = std::clamp( lby_delta, -60.f, 60.f );

        float feet_yaw = std::remainderf( thirdperson->thirdperson_angle.y + lby_delta, 360.f );

        if ( feet_yaw < 0.f ) {
            feet_yaw += 360.f;
        }


        std::memcpy( local_player->get_anim_overlays( ), backup_layers, ( sizeof( animationlayer ) * 15 ) );

        c_config::get( ).dev.animstate [ local_player->get_index( ) ] = local_player->get_anim_state( );
        local_player->get_flags( ) = backup_flags;
        local_player->get_eflags( ) = backup_eflags;


        globals->curtime = curtime;
        globals->real_time = realtime;
        globals->frametime = frametime;
        globals->absolute_frametime = absoluteframetime;
        globals->absolute_frame_start_time = absoluteframestarttimestddev;
        globals->interpolation_amount = interpolation_amount;
        globals->frame_count = framecount;
        globals->tickcount = tickcount;
        sim_time = local_player->get_simulation_time( );
    }
    local_player->invalidate_bone_cache( );
    local_player->setup_bones( nullptr, -1, 0x7FF00, globals->curtime );
}

void c_animfix::update_animations( c_baseentity* entity ) /* thx to xsharcs*/
{
    auto state = entity->get_anim_state( ); if ( !state ) return;
    auto index = entity->get_index( );
    static float sim_time [ 65 ];

    if ( sim_time [ index ] != entity->get_simulation_time( ) )
    {
        const float curtime = globals->curtime;
        const float frametime = globals->frametime;
        static auto host_timescale = cvar->find_var( ( "host_timescale" ) );

        globals->frametime = globals->interval_per_tick * host_timescale->get_float( );
        globals->curtime = entity->get_simulation_time( ) + globals->interval_per_tick;

        vec_t backup_velocity = entity->get_velocity( );

        int backup_flags = entity->get_flags( );
        int backup_eflags = entity->get_eflags( );

        animationlayer backup_layers [ 15 ];
        std::memcpy( backup_layers, entity->get_anim_overlays( ), ( sizeof( animationlayer ) * 15 ) );

        state->on_ground?entity->get_flags( ) |= ( 1 << 0 ):entity->get_flags( ) &= ~( 1 << 0 );

        entity->get_eflags( ) &= ~0x1000;

        entity->get_abs_velocity( ) = entity->get_velocity( );
        entity->get_abs_velocity2( ) = entity->get_velocity( );
        entity->unkpasted( ) = 0x1;

        if ( state->last_client_side_animation_update_framecount == globals->frame_count )
            state->last_client_side_animation_update_framecount = globals->frame_count - 1;

        entity->update_clientside_animation( );

        float lby_delta = entity->get_lby( ) - entity->get_eyeangles( ).y;
        lby_delta = std::remainderf( lby_delta, 360.f );
        lby_delta = std::clamp( lby_delta, -60.f, 60.f );

        float feet_yaw = std::remainderf( entity->get_eyeangles( ).y + lby_delta, 360.f );

        if ( feet_yaw < 0.f ) {
            feet_yaw += 360.f;
        }

        static float pitch, yaw = 0.f;

        entity->get_anim_state( )->goal_feet_yaw = entity->get_anim_state( )->current_feet_yaw = feet_yaw;

        entity->get_anim_state( )->eye_angles_y = entity->get_anim_state( )->body_yaw = resolver->data [ entity->get_index( ) ].final_angle;

        std::memcpy( entity->get_anim_overlays( ), backup_layers, ( sizeof( animationlayer ) * 15 ) );

        entity->get_velocity( ) = backup_velocity;
        entity->get_flags( ) = backup_flags;
        entity->get_eflags( ) = backup_eflags;

        globals->curtime = curtime;
        globals->frametime = frametime;
        sim_time [ index ] = entity->get_simulation_time( );
    }

    entity->invalidate_bone_cache( );
    entity->setup_bones( nullptr, -1, 0x7FF00, globals->curtime );
}
 
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
proper animfix
C++:
std::unique_ptr< c_animfix > animfix = std::make_unique< c_animfix >( );

void c_animfix::re_work( client_frame_stage_t stage ) {

    if ( !local_player || !local_player->get_anim_state( ) )
        return;

    if ( stage == client_frame_stage_t::frame_render_start )
        local_player->set_abs_angles( vec_t( 0.f, local_player->get_anim_state( )->goal_feet_yaw, 0.f ) );


    for ( int i = 1; i <= globals->max_clients; i++ ) {
        c_baseentity * entity = ( c_baseentity* ) entity_list->get_client_entity( i );

        if ( !entity->is_valid_player( ) )
            continue;


        static auto set_interpolation_flags = [ ] ( c_baseentity* e, int flag ) {
            const auto var_map = ( uintptr_t ) e + 36;
            const auto sz_var_map = *( int* ) ( var_map + 20 );

            for ( auto index = 0; index < sz_var_map; index++ )
                *( uintptr_t* ) ( ( *( uintptr_t* ) var_map ) + index * 12 ) = flag;
        };

        if ( stage == client_frame_stage_t::frame_net_update_postdataupdate_end )
            set_interpolation_flags( entity, 0 );


    }
}
void c_animfix::fix_local_player_animations( )
{
    if ( !local_player )
        return;

    static float sim_time;
    if ( sim_time != local_player->get_simulation_time( ) )
    {
        auto state = local_player->get_anim_state( ); if ( !state ) return;

        const float curtime = globals->curtime;
        const float frametime = globals->frametime;
        const float realtime = globals->real_time;
        const float absoluteframetime = globals->absolute_frametime;
        const float absoluteframestarttimestddev = globals->absolute_frame_start_time;
        const float interpolation_amount = globals->interpolation_amount;
        const float framecount = globals->frame_count;
        const float tickcount = globals->tickcount;

        static auto host_timescale = cvar->find_var( ( "host_timescale" ) );

        globals->curtime = local_player->get_simulation_time( );
        globals->real_time = local_player->get_simulation_time( );
        globals->frametime = globals->interval_per_tick * host_timescale->get_float( );
        globals->absolute_frametime = globals->interval_per_tick * host_timescale->get_float( );
        globals->absolute_frame_start_time = local_player->get_simulation_time( ) - globals->interval_per_tick * host_timescale->get_float( );
        globals->interpolation_amount = 0;
        globals->frame_count = time_to_ticks( local_player->get_simulation_time( ) );
        globals->tickcount = time_to_ticks( local_player->get_simulation_time( ) );

        int backup_flags = local_player->get_flags( );
        int backup_eflags = local_player->get_eflags( );

        animationlayer backup_layers [ 15 ];
        std::memcpy( backup_layers, local_player->get_anim_overlays( ), ( sizeof( animationlayer ) * 15 ) );

        if ( state->last_client_side_animation_update_framecount == globals->frame_count )
            state->last_client_side_animation_update_framecount = globals->frame_count - 1;

        local_player->get_clientside_animation( ) = true;
        local_player->update_clientside_animation( );
        local_player->get_clientside_animation( ) = false;


        float lby_delta = local_player->get_lby( ) - thirdperson->thirdperson_angle.y;
        lby_delta = std::remainderf( lby_delta, 360.f );
        lby_delta = std::clamp( lby_delta, -60.f, 60.f );

        float feet_yaw = std::remainderf( thirdperson->thirdperson_angle.y + lby_delta, 360.f );

        if ( feet_yaw < 0.f ) {
            feet_yaw += 360.f;
        }


        std::memcpy( local_player->get_anim_overlays( ), backup_layers, ( sizeof( animationlayer ) * 15 ) );

        c_config::get( ).dev.animstate [ local_player->get_index( ) ] = local_player->get_anim_state( );
        local_player->get_flags( ) = backup_flags;
        local_player->get_eflags( ) = backup_eflags;


        globals->curtime = curtime;
        globals->real_time = realtime;
        globals->frametime = frametime;
        globals->absolute_frametime = absoluteframetime;
        globals->absolute_frame_start_time = absoluteframestarttimestddev;
        globals->interpolation_amount = interpolation_amount;
        globals->frame_count = framecount;
        globals->tickcount = tickcount;
        sim_time = local_player->get_simulation_time( );
    }
    local_player->invalidate_bone_cache( );
    local_player->setup_bones( nullptr, -1, 0x7FF00, globals->curtime );
}

void c_animfix::update_animations( c_baseentity* entity ) /* thx to xsharcs*/
{
    auto state = entity->get_anim_state( ); if ( !state ) return;
    auto index = entity->get_index( );
    static float sim_time [ 65 ];

    if ( sim_time [ index ] != entity->get_simulation_time( ) )
    {
        const float curtime = globals->curtime;
        const float frametime = globals->frametime;
        static auto host_timescale = cvar->find_var( ( "host_timescale" ) );

        globals->frametime = globals->interval_per_tick * host_timescale->get_float( );
        globals->curtime = entity->get_simulation_time( ) + globals->interval_per_tick;

        vec_t backup_velocity = entity->get_velocity( );

        int backup_flags = entity->get_flags( );
        int backup_eflags = entity->get_eflags( );

        animationlayer backup_layers [ 15 ];
        std::memcpy( backup_layers, entity->get_anim_overlays( ), ( sizeof( animationlayer ) * 15 ) );

        state->on_ground?entity->get_flags( ) |= ( 1 << 0 ):entity->get_flags( ) &= ~( 1 << 0 );

        entity->get_eflags( ) &= ~0x1000;

        entity->get_abs_velocity( ) = entity->get_velocity( );
        entity->get_abs_velocity2( ) = entity->get_velocity( );
        entity->unkpasted( ) = 0x1;

        if ( state->last_client_side_animation_update_framecount == globals->frame_count )
            state->last_client_side_animation_update_framecount = globals->frame_count - 1;

        entity->update_clientside_animation( );

        float lby_delta = entity->get_lby( ) - entity->get_eyeangles( ).y;
        lby_delta = std::remainderf( lby_delta, 360.f );
        lby_delta = std::clamp( lby_delta, -60.f, 60.f );

        float feet_yaw = std::remainderf( entity->get_eyeangles( ).y + lby_delta, 360.f );

        if ( feet_yaw < 0.f ) {
            feet_yaw += 360.f;
        }

        static float pitch, yaw = 0.f;

        entity->get_anim_state( )->goal_feet_yaw = entity->get_anim_state( )->current_feet_yaw = feet_yaw;

        entity->get_anim_state( )->eye_angles_y = entity->get_anim_state( )->body_yaw = resolver->data [ entity->get_index( ) ].final_angle;

        std::memcpy( entity->get_anim_overlays( ), backup_layers, ( sizeof( animationlayer ) * 15 ) );

        entity->get_velocity( ) = backup_velocity;
        entity->get_flags( ) = backup_flags;
        entity->get_eflags( ) = backup_eflags;

        globals->curtime = curtime;
        globals->frametime = frametime;
        sim_time [ index ] = entity->get_simulation_time( );
    }

    entity->invalidate_bone_cache( );
    entity->setup_bones( nullptr, -1, 0x7FF00, globals->curtime );
}
Похоже на бан
p.s wok reversed xD
LNK1181 что скажешь за этот код??
 
Сверху Снизу