Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Как правильнее будет в анимфиксе?

С++
Участник
Участник
Статус
Оффлайн
Регистрация
27 Фев 2019
Сообщения
1,128
Реакции
393
1.
C++:
Expand Collapse Copy
void AnimFix(C_BaseEntity* pEnt)
{
    auto backup_curtime = g_pGlobalVars->curtime;
    auto backup_frametime = g_pGlobalVars->frametime;
    
    g_pGlobalVars->curtime = pEnt->GetSimulatiomTime();
    g_pGlobalVars->frametime = g_pGlobalVars->intervalPerTick;
    
    if (pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount == g_pGlobalVars->framecount)
        pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount = g_pGlobalVars->framecount - 1;
    
    pEnt->ClientAnimations(true);
    resolver(pEnt);
    pEnt->UpdateClientAnimations();
    pEnt->ClientAnimations(false);
    
    g_pGlobalVars->curtime = backup_curtime;
    g_pGlobalVars->frametime = backup_frametime;
    
    pEnt->invalidate_bone_cache();
    pEnt->setup_bones(nullptr, -1, 0x7FF00, g_pGlobalVars->curtime);
}

2.
C++:
Expand Collapse Copy
void AnimFix(C_BaseEntity* pEnt)
{
    auto backup_curtime = g_pGlobalVars->curtime;
    auto backup_frametime = g_pGlobalVars->frametime;
    
    pEnt->ClientAnimations(true);
    
    g_pGlobalVars->curtime = pEnt->GetSimulatiomTime();
    g_pGlobalVars->frametime = g_pGlobalVars->intervalPerTick;
    
    if (pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount == g_pGlobalVars->framecount)
        pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount = g_pGlobalVars->framecount - 1;
    
    resolver(pEnt);
    pEnt->UpdateClientAnimations();
    
    g_pGlobalVars->curtime = backup_curtime;
    g_pGlobalVars->frametime = backup_frametime;
    
    pEnt->invalidate_bone_cache();
    pEnt->setup_bones(nullptr, -1, 0x7FF00, g_pGlobalVars->curtime);
    
    pEnt->ClientAnimations(false);
}
 
1.
C++:
Expand Collapse Copy
void AnimFix(C_BaseEntity* pEnt)
{
    auto backup_curtime = g_pGlobalVars->curtime;
    auto backup_frametime = g_pGlobalVars->frametime;
   
    g_pGlobalVars->curtime = pEnt->GetSimulatiomTime();
    g_pGlobalVars->frametime = g_pGlobalVars->intervalPerTick;
   
    if (pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount == g_pGlobalVars->framecount)
        pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount = g_pGlobalVars->framecount - 1;
   
    pEnt->ClientAnimations(true);
    resolver(pEnt);
    pEnt->UpdateClientAnimations();
    pEnt->ClientAnimations(false);
   
    g_pGlobalVars->curtime = backup_curtime;
    g_pGlobalVars->frametime = backup_frametime;
   
    pEnt->invalidate_bone_cache();
    pEnt->setup_bones(nullptr, -1, 0x7FF00, g_pGlobalVars->curtime);
}

2.
C++:
Expand Collapse Copy
void AnimFix(C_BaseEntity* pEnt)
{
    auto backup_curtime = g_pGlobalVars->curtime;
    auto backup_frametime = g_pGlobalVars->frametime;
   
    pEnt->ClientAnimations(true);
   
    g_pGlobalVars->curtime = pEnt->GetSimulatiomTime();
    g_pGlobalVars->frametime = g_pGlobalVars->intervalPerTick;
   
    if (pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount == g_pGlobalVars->framecount)
        pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount = g_pGlobalVars->framecount - 1;
   
    resolver(pEnt);
    pEnt->UpdateClientAnimations();
   
    g_pGlobalVars->curtime = backup_curtime;
    g_pGlobalVars->frametime = backup_frametime;
   
    pEnt->invalidate_bone_cache();
    pEnt->setup_bones(nullptr, -1, 0x7FF00, g_pGlobalVars->curtime);
   
    pEnt->ClientAnimations(false);
}
Весь код неверный, ты какую блять анимацию то здесь фиксишь наркоман?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Два абсолютно безполезных кода, советую тебе первое выучить c++ и начать реверсить игру или хотя бы спрашивать у умных людей.
 
Последнее редактирование:
Два абсолютно безполезных кода, советую тебе первое выучить c++ и начать реверсить игру или хотя бы спрашивать у умных людей.
тебя кстати никто не спрашивал))0
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
1.
C++:
Expand Collapse Copy
void AnimFix(C_BaseEntity* pEnt)
{
    auto backup_curtime = g_pGlobalVars->curtime;
    auto backup_frametime = g_pGlobalVars->frametime;
  
    g_pGlobalVars->curtime = pEnt->GetSimulatiomTime();
    g_pGlobalVars->frametime = g_pGlobalVars->intervalPerTick;
  
    if (pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount == g_pGlobalVars->framecount)
        pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount = g_pGlobalVars->framecount - 1;
  
    pEnt->ClientAnimations(true);
    resolver(pEnt);
    pEnt->UpdateClientAnimations();
    pEnt->ClientAnimations(false);
  
    g_pGlobalVars->curtime = backup_curtime;
    g_pGlobalVars->frametime = backup_frametime;
  
    pEnt->invalidate_bone_cache();
    pEnt->setup_bones(nullptr, -1, 0x7FF00, g_pGlobalVars->curtime);
}

2.
C++:
Expand Collapse Copy
void AnimFix(C_BaseEntity* pEnt)
{
    auto backup_curtime = g_pGlobalVars->curtime;
    auto backup_frametime = g_pGlobalVars->frametime;
  
    pEnt->ClientAnimations(true);
  
    g_pGlobalVars->curtime = pEnt->GetSimulatiomTime();
    g_pGlobalVars->frametime = g_pGlobalVars->intervalPerTick;
  
    if (pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount == g_pGlobalVars->framecount)
        pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount = g_pGlobalVars->framecount - 1;
  
    resolver(pEnt);
    pEnt->UpdateClientAnimations();
  
    g_pGlobalVars->curtime = backup_curtime;
    g_pGlobalVars->frametime = backup_frametime;
  
    pEnt->invalidate_bone_cache();
    pEnt->setup_bones(nullptr, -1, 0x7FF00, g_pGlobalVars->curtime);
  
    pEnt->ClientAnimations(false);
}
Это только маленькая часть кода.
Гладиаторз закрывай сразу нах, это шляпа коня. Нормальный анимфикс в слитом зевсе ( там урезанная версия кряка вантапа, некоторые части придется дописать )
Но 99,9999999% югейма не то что не в силах спастить код зевса, они даже понять его не смогут ибо лама кодер все делает через лютые костыли и говнокод. ( А Ледасир все это пастит )


Я когда реверсил вт знатно офигел, думал приколясы с Идой. А оказалось это такой лютый говнокод что тебе и не снилось
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
Expand Collapse Copy
    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;
вот тебе анимфикс
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
Expand Collapse Copy
    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;
вот тебе анимфикс
ne nu ti zachem animation fix fatality silvaesh((
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Это только маленькая часть кода.
Гладиаторз закрывай сразу нах, это шляпа коня. Нормальный анимфикс в слитом зевсе ( там урезанная версия кряка вантапа, некоторые части придется дописать )
Но 99,9999999% югейма не то что не в силах спастить код зевса, они даже понять его не смогут ибо лама кодер все делает через лютые костыли и говнокод. ( А Ледасир все это пастит )


Я когда реверсил вт знатно офигел, думал приколясы с Идой. А оказалось это такой лютый говнокод что тебе и не снилось
Может быть лютые костыли и говнокод, но проблема в том что код работает, не важно как твой код сделан, важно то что он работает
 
C++:
Expand Collapse Copy
    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;
вот тебе анимфикс
Код:
Expand Collapse Copy
if ( sim_time != local_player->get_simulation_time( ) )


Дальше можно не читать
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Правильнее и без костылей будет вот так:

C++:
Expand Collapse Copy
if (pEnt->m_flOldSimulationTime() == pEnt->m_flSimulationTime())
    return;
Works fine for @Soufiw @llama and me
Код:
Expand Collapse Copy
if ( sim_time != local_player->get_simulation_time( ) )


Дальше можно не читать
C++:
Expand Collapse Copy
if (pEnt->m_flSimulationTime() > pEnt->m_flOldSimulationTime())
{
    // animfix
    // setupbones
}

тогда можно ли делать так?
 
1.
C++:
Expand Collapse Copy
void AnimFix(C_BaseEntity* pEnt)
{
    auto backup_curtime = g_pGlobalVars->curtime;
    auto backup_frametime = g_pGlobalVars->frametime;
  
    g_pGlobalVars->curtime = pEnt->GetSimulatiomTime();
    g_pGlobalVars->frametime = g_pGlobalVars->intervalPerTick;
  
    if (pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount == g_pGlobalVars->framecount)
        pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount = g_pGlobalVars->framecount - 1;
  
    pEnt->ClientAnimations(true);
    resolver(pEnt);
    pEnt->UpdateClientAnimations();
    pEnt->ClientAnimations(false);
  
    g_pGlobalVars->curtime = backup_curtime;
    g_pGlobalVars->frametime = backup_frametime;
  
    pEnt->invalidate_bone_cache();
    pEnt->setup_bones(nullptr, -1, 0x7FF00, g_pGlobalVars->curtime);
}

2.
C++:
Expand Collapse Copy
void AnimFix(C_BaseEntity* pEnt)
{
    auto backup_curtime = g_pGlobalVars->curtime;
    auto backup_frametime = g_pGlobalVars->frametime;
  
    pEnt->ClientAnimations(true);
  
    g_pGlobalVars->curtime = pEnt->GetSimulatiomTime();
    g_pGlobalVars->frametime = g_pGlobalVars->intervalPerTick;
  
    if (pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount == g_pGlobalVars->framecount)
        pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount = g_pGlobalVars->framecount - 1;
  
    resolver(pEnt);
    pEnt->UpdateClientAnimations();
  
    g_pGlobalVars->curtime = backup_curtime;
    g_pGlobalVars->frametime = backup_frametime;
  
    pEnt->invalidate_bone_cache();
    pEnt->setup_bones(nullptr, -1, 0x7FF00, g_pGlobalVars->curtime);
  
    pEnt->ClientAnimations(false);
}
Смеятся не буду, но скажу что оба ярый треш (бэкапить при клиентсайд тру слишком круто,да и код полностью почти не правильный)
Где брать,пастить анимфикс ? onetap.idb так делаю все лол
Гладиаторз анимфикс - хуйня и оутдатед, но само его построение и основной фикс думаю правильный
 
C++:
Expand Collapse Copy
if (pEnt->m_flSimulationTime() > pEnt->m_flOldSimulationTime())
{
    // animfix
    // setupbones
}

тогда можно ли делать так?
А зачем тебе проверять на чокедтайм?
Ты будешь фиксить анимации только при эксплойтах,фейклагах?
А что же будет при анчоке ?
 
Весь код неверный, ты какую блять анимацию то здесь фиксишь наркоман?
В основном тут как я увидел он пытается фиксить время как клиентсайд так и серверсайд
 
Правильнее и без костылей будет вот так:

C++:
Expand Collapse Copy
if (pEnt->m_flOldSimulationTime() == pEnt->m_flSimulationTime())
    return;
Works fine for @Soufiw @llama and me
Абсолютно не понимаешь как всё работает. Не надо тегать Соуфи, он бы такую херню в жизни бы не написал
UPD: Или ты изменил уже код или я дурак и не правильно увидел. Так уже правильно. Но надо учитывать ещё lerp и interpolation.
Если у тебя нет желания фиксить брик лаг комп то желательно сделать онли if (pEnt->m_flSimulationTime() > pEnt->m_flOldSimulationTime())
C++:
Expand Collapse Copy
if (pEnt->m_flSimulationTime() > pEnt->m_flOldSimulationTime())
{
    // animfix
    // setupbones
}

тогда можно ли делать так?
Код:
Expand Collapse Copy
if (pEnt->m_flSimulationTime() == pEnt->m_flOldSimulationTime())
return;

// do your animation fix

store global_vars

do some fixes

bupdateclientsideanim = true;
player->update_animations();
if (player != localplayer) bupdateclientsideanim = false;

restore your global_vars

setup bones

restore player animations
 
Последнее редактирование:
C++:
Expand Collapse Copy
void AnimFix(C_BaseEntity* pEnt)
{
    auto backup_curtime = g_pGlobalVars->curtime;
    auto backup_frametime = g_pGlobalVars->frametime;
  

  
    g_pGlobalVars->curtime = pEnt->GetSimulatiomTime();
    g_pGlobalVars->frametime = g_pGlobalVars->intervalPerTick;
  
    if (pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount == g_pGlobalVars->framecount)
        pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount = g_pGlobalVars->framecount - 1;
       pEnt->ClientAnimations(true);
        resolver(pEnt);
        pEnt->UpdateClientAnimations();
       if (player != g_LocalPlayer) // solpadoin style
       pEnt->ClientAnimations(false);

    g_pGlobalVars->curtime = backup_curtime;
    g_pGlobalVars->frametime = backup_frametime;
  
    pEnt->invalidate_bone_cache();
    pEnt->setup_bones(nullptr, -1, 0x7FF00, g_pGlobalVars->curtime);
  

}

Чуть подправил,но все равно трэш
 
C++:
Expand Collapse Copy
void AnimFix(C_BaseEntity* pEnt)
{
    auto backup_curtime = g_pGlobalVars->curtime;
    auto backup_frametime = g_pGlobalVars->frametime;
 

 
    g_pGlobalVars->curtime = pEnt->GetSimulatiomTime();
    g_pGlobalVars->frametime = g_pGlobalVars->intervalPerTick;
 
    if (pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount == g_pGlobalVars->framecount)
        pEnt->AnimState()->m_iLastClientSideUpdateAnimationFramecount = g_pGlobalVars->framecount - 1;
       pEnt->ClientAnimations(true);
        resolver(pEnt);
        pEnt->UpdateClientAnimations();
       if (player != g_LocalPlayer) // solpadoin style
       pEnt->ClientAnimations(false);

    g_pGlobalVars->curtime = backup_curtime;
    g_pGlobalVars->frametime = backup_frametime;
 
    pEnt->invalidate_bone_cache();
    pEnt->setup_bones(nullptr, -1, 0x7FF00, g_pGlobalVars->curtime);
 

}

Чуть подправил,но все равно трэш
Код:
Expand Collapse Copy
       if (player != g_LocalPlayer) // solpadoin style
       pEnt->ClientAnimations(false);

Это не Solpadoin style. У локал плеера всегда должен быть включен pEnt->ClientAnimations(true);
 
Назад
Сверху Снизу