Исходник 6 Animlayer Rebuild

Эксперт
Статус
Оффлайн
Регистрация
17 Фев 2017
Сообщения
864
Реакции[?]
420
Поинты[?]
1K
C++:
void Animations::RebuiltLayer6( Player* player, LagComp::LagRecord_t::LayerData_t* layer_data ) {
    // rebuilt layer 6 calculations from csgo
    // links:
    // https://github.com/perilouswithadollarsign/cstrike15_src/blob/master/game/shared/cstrike15/csgo_playeranimstate.cpp#L1393
    // https://github.com/click4dylan/CSGO_AnimationCode_Reversed/blob/master/CCSGOPlayerAnimState_New.cpp#L2323

    auto m_pState = player->m_PlayerAnimState( );
    static const float CS_PLAYER_SPEED_RUN = 260.0f;

    // TODO: Find these members in the actual animstate struct
    auto m_flLastUpdateIncrement = *( float* )( ( DWORD )m_pState + 0x74 );
    auto m_flFootYaw = m_pState->goal_feet_yaw;
    auto m_flMoveYaw = m_pState->torso_yaw;
    auto m_vecVelocityNormalizedNonZero = *( vec3_t* )( ( DWORD )m_pState + 0xE0 );
    auto m_flInAirSmoothValue = *( float* )( ( DWORD )m_pState + 0x124 );
    AnimationData_t& m_AnimationData = m_animation_data[ player->index( ) ];

    char m_szDestination[ 64 ];
    sprintf_s( m_szDestination, XOR( "move_%s" ), m_pState->GetWeaponPrefix( ) );

    int m_nMoveSequence = player->LookupSequence( m_szDestination );
    if ( m_nMoveSequence == -1 )
    {
        m_nMoveSequence = player->LookupSequence( XOR( "move" ) );
    }

    // NOTE:
    // player->get<int>( 0x3984 ) is m_iMoveState
    if ( player->get<int>( 0x3984 ) != m_AnimationData.m_iMoveState )
        m_AnimationData.m_flMovePlaybackRate += 10.0f;

    m_AnimationData.m_iMoveState = player->get<int>( 0x3984 );

    float m_flMovementTimeDelta = *( float* )( ( DWORD )m_pState + 0x74 ) * 40.0f;

    if ( -m_AnimationData.m_flMovePlaybackRate <= m_flMovementTimeDelta )
    {
        if ( -m_flMovementTimeDelta <= -m_AnimationData.m_flMovePlaybackRate )
            m_AnimationData.m_flMovePlaybackRate = 0.0f;
        else
            m_AnimationData.m_flMovePlaybackRate = m_AnimationData.m_flMovePlaybackRate - m_flMovementTimeDelta;
    }
    else
    {
        m_AnimationData.m_flMovePlaybackRate = m_AnimationData.m_flMovePlaybackRate + m_flMovementTimeDelta;
    }

    m_AnimationData.m_flMovePlaybackRate = std::clamp( m_AnimationData.m_flMovePlaybackRate, 0.0f, 100.0f );

    float m_flDuckSpeedClamped = std::clamp( *( float* )( ( DWORD )m_pState + 0xFC ), 0.0f, 1.0f );
    float m_flRunSpeedClamped = std::clamp( *( float* )( ( DWORD )m_pState + 0xF8 ), 0.0f, 1.0f );

    float m_flSpeedWeight = ( ( m_flDuckSpeedClamped - m_flRunSpeedClamped ) * *( float* )( ( DWORD )m_pState + 0xA4 ) ) + m_flRunSpeedClamped;

    if ( m_flSpeedWeight < layer_data->m_flFeetWeight )
    {
        float v34 = std::clamp( m_AnimationData.m_flMovePlaybackRate * 0.01f, 0.0f, 1.0f );
        float m_flFeetWeightElapsed = ( ( v34 * 18.0f ) + 2.0f ) * *( float* )( ( DWORD )m_pState + 0x74 );
        if ( m_flSpeedWeight - layer_data->m_flFeetWeight <= m_flFeetWeightElapsed )
            layer_data->m_flFeetWeight = -m_flFeetWeightElapsed <= ( m_flSpeedWeight - layer_data->m_flFeetWeight ) ? m_flSpeedWeight : layer_data->m_flFeetWeight - m_flFeetWeightElapsed;
        else
            layer_data->m_flFeetWeight = m_flFeetWeightElapsed + layer_data->m_flFeetWeight;
    }
    else
    {
        layer_data->m_flFeetWeight = m_flSpeedWeight;
    }

    float m_flYaw = math::AngleNormalize( ( m_pState->torso_yaw + m_pState->goal_feet_yaw ) + 180.0f );
    ang_t m_angAngle = { 0.0f, m_flYaw, 0.0f };
    vec3_t m_vecDirection;
    math::AngleVectors( m_angAngle, &m_vecDirection );

    float m_flMovementSide = math::DotProduct( m_vecVelocityNormalizedNonZero, m_vecDirection );
    if ( m_flMovementSide < 0.0f )
        m_flMovementSide = -m_flMovementSide;

    float m_flNewFeetWeight = math::Bias( m_flMovementSide, 0.2f ) * layer_data->m_flFeetWeight;

    float m_flNewFeetWeightWithAirSmooth = m_flNewFeetWeight * m_flInAirSmoothValue;

    // m_flLayer5Weight looks a bit weird so i decided to name it m_flLayer5_Weight instead.
    float m_flLayer5_Weight = player->GetLayerWeight( 5 );

    float m_flNewWeight = 0.55f;
    if ( 1.0f - m_flLayer5_Weight > 0.55f )
        m_flNewWeight = 1.0f - m_flLayer5_Weight;

    float m_flNewFeetWeightLayerWeight = m_flNewWeight * m_flNewFeetWeightWithAirSmooth;
    float m_flFeetCycleRate = 0.0f;

    float m_flSpeed = std::fmin( player->m_vecVelocity( ).length( ), 260.f );
    if ( m_flSpeed > 0.00f )
    {
        float m_flSequenceCycleRate = player->GetSequenceCycleRate( player->GetModelPtr( ), m_nMoveSequence );

        float m_flSequenceMoveDist = player->GetSequenceMoveDist( player->GetModelPtr( ), m_nMoveSequence );
        m_flSequenceMoveDist *= 1.0f / ( 1.0f / m_flSequenceCycleRate );
        if ( m_flSequenceMoveDist <= 0.001f )
            m_flSequenceMoveDist = 0.001f;

        float m_flSpeedMultiplier = m_flSpeed / m_flSequenceMoveDist;
        m_flFeetCycleRate = ( 1.0f - ( m_pState->stop_to_full_running_fraction * 0.15f ) ) * ( m_flSpeedMultiplier * m_flSequenceCycleRate );
    }

    float m_flFeetCyclePlaybackRate = ( *( float* )( ( DWORD )m_pState + 0x74 ) * m_flFeetCycleRate );
    m_AnimationData.m_flPrimaryCycle = m_flFeetCyclePlaybackRate + m_AnimationData.m_flPrimaryCycle;

    // store possible information for resolving.
    layer_data->m_flMovementSide = m_flMovementSide;
    layer_data->m_angMoveYaw = m_angAngle;
    layer_data->m_vecDirection = m_vecDirection;
    layer_data->m_flFeetWeight = m_flNewFeetWeight;

    layer_data->m_nSequence = m_nMoveSequence;
    layer_data->m_flPlaybackRate = m_flFeetCyclePlaybackRate;
    layer_data->m_flCycle = m_AnimationData.m_flPrimaryCycle;
    layer_data->m_flWeight = std::clamp( m_flNewFeetWeightLayerWeight, 0.0f, 1.0f );
}
 
Эксперт
Статус
Оффлайн
Регистрация
17 Фев 2017
Сообщения
864
Реакции[?]
420
Поинты[?]
1K
Чел я просто не шарю, это резольвер?
Нет. Это ребилд 6 леера, что б лучше детектить десинки в движении. Почти что бесполезная хрень, максимум статики или простенькие джиттеры детектить будет легче
 
Начинающий
Статус
Оффлайн
Регистрация
12 Ноя 2020
Сообщения
4
Реакции[?]
3
Поинты[?]
0
Нет. Это ребилд 6 леера, что б лучше детектить десинки в движении. Почти что бесполезная хрень, максимум статики или простенькие джиттеры детектить будет легче
Нихуя себе, просто только учу) не знал
 
Забаненный
Статус
Оффлайн
Регистрация
17 Авг 2020
Сообщения
5
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Господи, почему сочники это лайкают, это полнейший паблик и юзлесс. Ну то, что всякие пастерАлмиры лайкнули это понятно. Это лежит в паблике уже год, ты этим ребилдом максимум поймаешь крайне хуевые десинки, это было актуально в середине 19-го, но не в конце 20-го точно. Я худею от пастеров..
 
Забаненный
Статус
Оффлайн
Регистрация
9 Окт 2020
Сообщения
18
Реакции[?]
1
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Надеюсь пастеры не додумаются как сделать из этого что-то годное...........
 
ставь чайник, зажигай плиту
Эксперт
Статус
Оффлайн
Регистрация
22 Май 2020
Сообщения
1,444
Реакции[?]
1,092
Поинты[?]
10K
Господи, почему сочники это лайкают, это полнейший паблик и юзлесс. Ну то, что всякие пастерАлмиры лайкнули это понятно. Это лежит в паблике уже год, ты этим ребилдом максимум поймаешь крайне хуевые десинки, это было актуально в середине 19-го, но не в конце 20-го точно. Я худею от пастеров..
Надеюсь пастеры не додумаются как сделать из этого что-то годное...........
вы оба ничего полезного для форума не сделали, так зачем что то говорите в сторону него?
 
Забаненный
Статус
Оффлайн
Регистрация
17 Авг 2020
Сообщения
5
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
вы оба ничего полезного для форума не сделали, так зачем что то говорите в сторону него?
Причем тут в сторону него, ты, прочитай мои слова еще раз, а потом говори. Если у тебя есть мозг и знания в читдеве, то посмотри на то, что он "слил" и подумай, что там может быть полезного. 6й анимлеер сам по себе юзлесс в 2020, а тут он еще и ребилднут не совсем правильно
 
ставь чайник, зажигай плиту
Эксперт
Статус
Оффлайн
Регистрация
22 Май 2020
Сообщения
1,444
Реакции[?]
1,092
Поинты[?]
10K
Причем тут в сторону него, ты, прочитай мои слова еще раз, а потом говори. Если у тебя есть мозг и знания в читдеве, то посмотри на то, что он "слил" и подумай, что там может быть полезного. 6й анимлеер сам по себе юзлесс в 2020, а тут он еще и ребилднут не совсем правильно
6 леер может быть полезным, если иметь минимальную граммовку мозга
 
купить дизайн: yougame.biz/threads/155999
Дизайнер
Статус
Оффлайн
Регистрация
19 Сен 2018
Сообщения
793
Реакции[?]
1,380
Поинты[?]
9K
Ну я конечно понимаю все понимаю, но смысл от этой темы, когда сурс ксго в паблике...
Да и почему только ребилд одного леера, или ты решил для каждого леера новую тему делать?
Зачем так же ты оставил дебаг принтф, и почему у тебя структура анимстейта настолько прикольная, что ты половину мемберов получаешь оффсетом........
 
Эксперт
Статус
Оффлайн
Регистрация
17 Фев 2017
Сообщения
864
Реакции[?]
420
Поинты[?]
1K
Причем тут в сторону него, ты, прочитай мои слова еще раз, а потом говори. Если у тебя есть мозг и знания в читдеве, то посмотри на то, что он "слил" и подумай, что там может быть полезного. 6й анимлеер сам по себе юзлесс в 2020, а тут он еще и ребилднут не совсем правильно
что не так?
 
Забаненный
Статус
Оффлайн
Регистрация
22 Июн 2020
Сообщения
97
Реакции[?]
38
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
void Animations::RebuiltLayer6( Player* player, LagComp::LagRecord_t::LayerData_t* layer_data ) {
    // rebuilt layer 6 calculations from csgo
    // links:
    // https://github.com/perilouswithadollarsign/cstrike15_src/blob/master/game/shared/cstrike15/csgo_playeranimstate.cpp#L1393
    // https://github.com/click4dylan/CSGO_AnimationCode_Reversed/blob/master/CCSGOPlayerAnimState_New.cpp#L2323

    auto m_pState = player->m_PlayerAnimState( );
    static const float CS_PLAYER_SPEED_RUN = 260.0f;

    // TODO: Find these members in the actual animstate struct
    auto m_flLastUpdateIncrement = *( float* )( ( DWORD )m_pState + 0x74 );
    auto m_flFootYaw = m_pState->goal_feet_yaw;
    auto m_flMoveYaw = m_pState->torso_yaw;
    auto m_vecVelocityNormalizedNonZero = *( vec3_t* )( ( DWORD )m_pState + 0xE0 );
    auto m_flInAirSmoothValue = *( float* )( ( DWORD )m_pState + 0x124 );
    AnimationData_t& m_AnimationData = m_animation_data[ player->index( ) ];

    char m_szDestination[ 64 ];
    sprintf_s( m_szDestination, XOR( "move_%s" ), m_pState->GetWeaponPrefix( ) );

    int m_nMoveSequence = player->LookupSequence( m_szDestination );
    if ( m_nMoveSequence == -1 )
    {
        m_nMoveSequence = player->LookupSequence( XOR( "move" ) );
    }

    // NOTE:
    // player->get<int>( 0x3984 ) is m_iMoveState
    if ( player->get<int>( 0x3984 ) != m_AnimationData.m_iMoveState )
        m_AnimationData.m_flMovePlaybackRate += 10.0f;

    m_AnimationData.m_iMoveState = player->get<int>( 0x3984 );

    float m_flMovementTimeDelta = *( float* )( ( DWORD )m_pState + 0x74 ) * 40.0f;

    if ( -m_AnimationData.m_flMovePlaybackRate <= m_flMovementTimeDelta )
    {
        if ( -m_flMovementTimeDelta <= -m_AnimationData.m_flMovePlaybackRate )
            m_AnimationData.m_flMovePlaybackRate = 0.0f;
        else
            m_AnimationData.m_flMovePlaybackRate = m_AnimationData.m_flMovePlaybackRate - m_flMovementTimeDelta;
    }
    else
    {
        m_AnimationData.m_flMovePlaybackRate = m_AnimationData.m_flMovePlaybackRate + m_flMovementTimeDelta;
    }

    m_AnimationData.m_flMovePlaybackRate = std::clamp( m_AnimationData.m_flMovePlaybackRate, 0.0f, 100.0f );

    float m_flDuckSpeedClamped = std::clamp( *( float* )( ( DWORD )m_pState + 0xFC ), 0.0f, 1.0f );
    float m_flRunSpeedClamped = std::clamp( *( float* )( ( DWORD )m_pState + 0xF8 ), 0.0f, 1.0f );

    float m_flSpeedWeight = ( ( m_flDuckSpeedClamped - m_flRunSpeedClamped ) * *( float* )( ( DWORD )m_pState + 0xA4 ) ) + m_flRunSpeedClamped;

    if ( m_flSpeedWeight < layer_data->m_flFeetWeight )
    {
        float v34 = std::clamp( m_AnimationData.m_flMovePlaybackRate * 0.01f, 0.0f, 1.0f );
        float m_flFeetWeightElapsed = ( ( v34 * 18.0f ) + 2.0f ) * *( float* )( ( DWORD )m_pState + 0x74 );
        if ( m_flSpeedWeight - layer_data->m_flFeetWeight <= m_flFeetWeightElapsed )
            layer_data->m_flFeetWeight = -m_flFeetWeightElapsed <= ( m_flSpeedWeight - layer_data->m_flFeetWeight ) ? m_flSpeedWeight : layer_data->m_flFeetWeight - m_flFeetWeightElapsed;
        else
            layer_data->m_flFeetWeight = m_flFeetWeightElapsed + layer_data->m_flFeetWeight;
    }
    else
    {
        layer_data->m_flFeetWeight = m_flSpeedWeight;
    }

    float m_flYaw = math::AngleNormalize( ( m_pState->torso_yaw + m_pState->goal_feet_yaw ) + 180.0f );
    ang_t m_angAngle = { 0.0f, m_flYaw, 0.0f };
    vec3_t m_vecDirection;
    math::AngleVectors( m_angAngle, &m_vecDirection );

    float m_flMovementSide = math::DotProduct( m_vecVelocityNormalizedNonZero, m_vecDirection );
    if ( m_flMovementSide < 0.0f )
        m_flMovementSide = -m_flMovementSide;

    float m_flNewFeetWeight = math::Bias( m_flMovementSide, 0.2f ) * layer_data->m_flFeetWeight;

    float m_flNewFeetWeightWithAirSmooth = m_flNewFeetWeight * m_flInAirSmoothValue;

    // m_flLayer5Weight looks a bit weird so i decided to name it m_flLayer5_Weight instead.
    float m_flLayer5_Weight = player->GetLayerWeight( 5 );

    float m_flNewWeight = 0.55f;
    if ( 1.0f - m_flLayer5_Weight > 0.55f )
        m_flNewWeight = 1.0f - m_flLayer5_Weight;

    float m_flNewFeetWeightLayerWeight = m_flNewWeight * m_flNewFeetWeightWithAirSmooth;
    float m_flFeetCycleRate = 0.0f;

    float m_flSpeed = std::fmin( player->m_vecVelocity( ).length( ), 260.f );
    if ( m_flSpeed > 0.00f )
    {
        float m_flSequenceCycleRate = player->GetSequenceCycleRate( player->GetModelPtr( ), m_nMoveSequence );

        float m_flSequenceMoveDist = player->GetSequenceMoveDist( player->GetModelPtr( ), m_nMoveSequence );
        m_flSequenceMoveDist *= 1.0f / ( 1.0f / m_flSequenceCycleRate );
        if ( m_flSequenceMoveDist <= 0.001f )
            m_flSequenceMoveDist = 0.001f;

        float m_flSpeedMultiplier = m_flSpeed / m_flSequenceMoveDist;
        m_flFeetCycleRate = ( 1.0f - ( m_pState->stop_to_full_running_fraction * 0.15f ) ) * ( m_flSpeedMultiplier * m_flSequenceCycleRate );
    }

    float m_flFeetCyclePlaybackRate = ( *( float* )( ( DWORD )m_pState + 0x74 ) * m_flFeetCycleRate );
    m_AnimationData.m_flPrimaryCycle = m_flFeetCyclePlaybackRate + m_AnimationData.m_flPrimaryCycle;

    // store possible information for resolving.
    layer_data->m_flMovementSide = m_flMovementSide;
    layer_data->m_angMoveYaw = m_angAngle;
    layer_data->m_vecDirection = m_vecDirection;
    layer_data->m_flFeetWeight = m_flNewFeetWeight;

    layer_data->m_nSequence = m_nMoveSequence;
    layer_data->m_flPlaybackRate = m_flFeetCyclePlaybackRate;
    layer_data->m_flCycle = m_AnimationData.m_flPrimaryCycle;
    layer_data->m_flWeight = std::clamp( m_flNewFeetWeightLayerWeight, 0.0f, 1.0f );
}
Хуйня, смысла в этом ровно 0. Сервер анимирует игрока на основе своих, т.е. правильных в последней инстанции данных, а у клиента они свои. Проще: Ты будешь анимировать чела на основе своих хуевых данных, так как все данные клиента априори хуйня и из-за этого рассинхрон будет еще больше.
C++:
    float m_flSpeed = std::fmin( player->m_vecVelocity( ).length( ), 260.f );
}
UPD: learncpp.com
 
Эксперт
Статус
Оффлайн
Регистрация
17 Фев 2017
Сообщения
864
Реакции[?]
420
Поинты[?]
1K
Хуйня, смысла в этом ровно 0. Сервер анимирует игрока на основе своих, т.е. правильных в последней инстанции данных, а у клиента они свои. Проще: Ты будешь анимировать чела на основе своих хуевых данных, так как все данные клиента априори хуйня и из-за этого рассинхрон будет еще больше.

UPD: learncpp.com
именно по этой причине все говорят про ребилд лееров, потому что это юзлес херня и ломает всё еще больше....

Пофиг, что все p2c ребилдят лееры....
 
Забаненный
Статус
Оффлайн
Регистрация
22 Июн 2020
Сообщения
97
Реакции[?]
38
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Пофиг, что все p2c ребилдят лееры....
Каво нахуй, где пруфы чел... Лееры вообще пизда как трудно ребилднуть, данные сука у сервера и клиента разные, и лееры соответственно будут на разных данных считаться.
 
Забаненный
Статус
Оффлайн
Регистрация
29 Окт 2019
Сообщения
31
Реакции[?]
9
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
L1ney:
IMG_20201127_153219.jpg
 
Эксперт
Статус
Оффлайн
Регистрация
17 Фев 2017
Сообщения
864
Реакции[?]
420
Поинты[?]
1K
Каво нахуй, где пруфы чел... Лееры вообще пизда как трудно ребилднуть, данные сука у сервера и клиента разные, и лееры соответственно будут на разных данных считаться.
если лееры разные, то каким боком возможно создать ресольвер на анимациях, ты вообще понимаешь, что за хрень ты пишешь? Даже на фейках использовались аним лееры что б ресольвить, и почему-то ни у кого не возникало вопросов. Просто что б минимализировать разницу, нужно получать лееры при апдейте инфы игрока, когда сервер отправляет клиенту данные. Инфа лееров там правильная, они, в отличии от анимстейта, нетворкед. То что это юзлес против современных p2c это да, я об этом раньше вас всех написал, прям в этом же топике. Пасты тапать сгодится
Иронично, что у нас так много умников, которые из раза в раз обсирают мои посты, но нет НИ ОДНОГО ру чита, который был ну хотя бы на уровне еексоми, я уже молчу про уровень неверлуза. Если бы действительно что-то знали и умели бы, смогли бы че нить получше легендвара сделать, а так вас уделал иммортал у которого ресольвер чистая параша и сделано на коленке, а большая часть софта куплена. Есть ледасир, которого я уважаю как реверсера, но как кодер он видимо не очень. Вот от него я бы послушал информацию, послушал бы от соуфи. А остальные - просто кучка чсв которые научились тыкать Ф5 в иде и пытаются показать себя знатоками, хотя по факту ниче не могут
 
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
22 Июн 2020
Сообщения
97
Реакции[?]
38
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
если лееры разные, то каким боком возможно создать ресольвер на анимациях, ты вообще понимаешь, что за хрень ты пишешь? Даже на фейках использовались аним лееры что б ресольвить, и почему-то ни у кого не возникало вопросов. Просто что б минимализировать разницу, нужно получать лееры при апдейте инфы игрока, когда сервер отправляет клиенту данные. Инфа лееров там правильная, они, в отличии от анимстейта, нетворкед. То что это юзлес против современных p2c это да, я об этом раньше вас всех написал, прям в этом же топике. Пасты тапать сгодится
Почему? Люди блять с головой не дружили. В твоем говно-коде лееры считаются от анимстейта, который в свою очередь на 100 процентов клиент сайд. В отличии от анимлееров, которые нетворкед, анимстейт считается на КЛИЕНТЕ => попытка ребилда на клиентских неверных данных.
 

Вложения

Забаненный
Статус
Оффлайн
Регистрация
29 Окт 2019
Сообщения
31
Реакции[?]
9
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
если лееры разные, то каким боком возможно создать ресольвер на анимациях, ты вообще понимаешь, что за хрень ты пишешь? Даже на фейках использовались аним лееры что б ресольвить, и почему-то ни у кого не возникало вопросов. Просто что б минимализировать разницу, нужно получать лееры при апдейте инфы игрока, когда сервер отправляет клиенту данные. Инфа лееров там правильная, они, в отличии от анимстейта, нетворкед. То что это юзлес против современных p2c это да, я об этом раньше вас всех написал, прям в этом же топике. Пасты тапать сгодится

Иронично, что у нас так много умников, которые из раза в раз обсирают мои посты, но нет НИ ОДНОГО ру чита, который был ну хотя бы на уровне еексоми, я уже молчу про уровень неверлуза. Если бы действительно что-то знали и умели бы, смогли бы че нить получше легендвара сделать, а так вас уделал иммортал у которого ресольвер чистая параша и сделано на коленке, а большая часть софта куплена. Есть ледасир, которого я уважаю как реверсера, но как кодер он видимо не очень. Вот от него я бы послушал информацию, послушал бы от соуфи. А остальные - просто кучка чсв которые научились тыкать Ф5 в иде и пытаются показать себя знатоками, хотя по факту ниче не могут
20201127_160851.jpg
 
Забаненный
Статус
Оффлайн
Регистрация
29 Окт 2019
Сообщения
31
Реакции[?]
9
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
если лееры разные, то каким боком возможно создать ресольвер на анимациях, ты вообще понимаешь, что за хрень ты пишешь? Даже на фейках использовались аним лееры что б ресольвить, и почему-то ни у кого не возникало вопросов. Просто что б минимализировать разницу, нужно получать лееры при апдейте инфы игрока, когда сервер отправляет клиенту данные. Инфа лееров там правильная, они, в отличии от анимстейта, нетворкед. То что это юзлес против современных p2c это да, я об этом раньше вас всех написал, прям в этом же топике. Пасты тапать сгодится

Иронично, что у нас так много умников, которые из раза в раз обсирают мои посты, но нет НИ ОДНОГО ру чита, который был ну хотя бы на уровне еексоми, я уже молчу про уровень неверлуза. Если бы действительно что-то знали и умели бы, смогли бы че нить получше легендвара сделать, а так вас уделал иммортал у которого ресольвер чистая параша и сделано на коленке, а большая часть софта куплена. Есть ледасир, которого я уважаю как реверсера, но как кодер он видимо не очень. Вот от него я бы послушал информацию, послушал бы от соуфи. А остальные - просто кучка чсв которые научились тыкать Ф5 в иде и пытаются показать себя знатоками, хотя по факту ниче не могут
1606483184492.png
пришел.
начнем с того, что ексоми содержит вантап в себе.
неверлуз не делался 1 неделю и у соуфива опыта в геймхакинге явно больше 2 лет. Хотя думаю я знаю еще одного крутого парня..
Ты не имеешь права называть Ледасиром так себе кодером, так как по сравнению с тобой он гений кодинга
ну сверху я скрин скинул на счет соуфива, слушай сколько влезит
и кстати для того что бы реверсить не достаточно нажать f5 клоун...
 
Сверху Снизу