Исходник Animlayer Resolver для лв

Why repost + there is already like 90 other posts with this.
 
nice "animlayer" resolver. you pasted the playbackrates and didnt even apply any values to any vars (placebo local data)
 
Щас вы ахуеете, я для вас сделаю так чтоб он работал (Это для самых маленьких которые не инклюдали в анимфиксе его)

В resolver.cpp под
C++:
Expand Collapse Copy
void resolver::reset(){

    player = nullptr;
    player_record = nullptr;

    side = false;
    fake = false;

    was_first_bruteforce = false;
    was_second_bruteforce = false;

    original_goal_feet_yaw = 0.0f;
    original_pitch = 0.0f;
}

Вставляем ЭТО
C++:
Expand Collapse Copy
void resolver::animlayer_resolver()
{
    if (!g_ctx.local()->is_alive())
        return;
    if (!player->is_player())
        return;

    float move_delta;
    float static_desync = 58.f;
    float low_desync = 30.f;
    float random_desync = math::random_float(-58, 58);

    int move_side;
    player_t* e;
    auto animstate = e->get_animation_state();
    float speed = player->m_vecVelocity().Length2D();
    if (player->m_fFlags() & FL_ONGROUND)
    {
        if (speed > 0.1f && (player_record->layers[6].m_flWeight * 1000.0f) == (player_record->layers[6].m_flWeight * 1000.0f))
        {
            if (player_record->layers[3].m_flWeight == 0.f && player_record->layers[3].m_flCycle == 0.f && player_record->layers[6].m_flWeight == 0.f)
            {
                auto move_delta = math::AngleDiff(player->m_angEyeAngles().y, original_goal_feet_yaw);
                move_side = (2 * (move_delta <= 0.0f) - 1) > 0.0f ? -1 : 1;
                math::normalize_yaw(player->m_angEyeAngles().y + move_side ? 58.f : -58.f);
            }
            else if (!(player_record->layers[12].m_flWeight * 10000.0f))
            {
                if (player_record->layers[6].m_flWeight * 10000.0f == int(player_record->layers[6].m_flWeight * 10000.0f))
                {
                    float delta_eye = abs(resolver_layers[0][6].m_flPlaybackRate - player_record->layers[6].m_flPlaybackRate);
                    float delta_negative = abs(resolver_layers[1][6].m_flPlaybackRate - player_record->layers[6].m_flPlaybackRate);
                    float delta_positive = abs(resolver_layers[2][6].m_flPlaybackRate - player_record->layers[6].m_flPlaybackRate);

                    if ((delta_eye * 10000.0f) != (delta_negative * 10000.0f)) {
                        if (move_delta <= delta_eye)
                            move_delta = delta_eye;
                        else if (move_delta > delta_eye)
                            move_delta = delta_negative;
                        else
                            move_delta = delta_positive;

                        if (!(move_delta * 1000.0f) || (delta_eye * 10000.0f) != (delta_negative * 10000.0f)) {
                            if (move_delta == delta_negative) {
                                move_side = -1;
                            }
                            else if (move_delta == delta_positive) {
                                move_side = 1;
                            }
                        }
                    }
                }
            }
      
        if (g_ctx.globals.missed_shots[player->EntIndex()] > 1)
        {
            switch (g_ctx.globals.missed_shots[player->EntIndex()] % 5)
            {
            case 0:
                animstate->m_flGoalFeetYaw = math::normalize_yaw(move_side ? player->m_angEyeAngles().y + static_desync : player->m_angEyeAngles().y - static_desync);
                break;
            case 1:
                animstate->m_flGoalFeetYaw = math::normalize_yaw(move_side ? player->m_angEyeAngles().y + low_desync : player->m_angEyeAngles().y - low_desync);
                break;

                //--Тут 3 рандома-и-они-нужны-на-всякий-случай--\\

            case 2:
                animstate->m_flGoalFeetYaw = math::normalize_yaw(move_side ? player->m_angEyeAngles().y + random_desync : player->m_angEyeAngles().y - random_desync);
                break;
            case 3:
                animstate->m_flGoalFeetYaw = math::normalize_yaw(move_side ? player->m_angEyeAngles().y + random_desync : player->m_angEyeAngles().y - random_desync);
                break;
            case 4:
                animstate->m_flGoalFeetYaw = math::normalize_yaw(move_side ? player->m_angEyeAngles().y + random_desync : player->m_angEyeAngles().y - random_desync);
                break;

                //----------------------------------------------\\
                }
            }
        }
    }
}

ДАЛЬШЕ ЗАХОДИМ В animation_system.h И НАХОДИМ class resolver, и там надо под
C++:
Expand Collapse Copy
    void initialize(player_t* e, adjust_data* record, const float& goal_feet_yaw, const float& pitch);
    void reset();
Вписать
C++:
Expand Collapse Copy
void animlayer_resolver();
И надо над public: вписать
C++:
Expand Collapse Copy
    AnimationLayer layers[13];
    AnimationLayer resolver_layers[3][13];

Дальше ЗАХОДИМ В animation_system.cpp жмём ctrl + f и ищем эту строку
C++:
Expand Collapse Copy
player_resolver[e->EntIndex()].initialize(e, record, previous_goal_feet_yaw[e->EntIndex()], e->m_angEyeAngles().x);
и под ней вставляем
C++:
Expand Collapse Copy
player_resolver[e->EntIndex()].animlayer_resolver();


Кстати @azazinc тут причастен

Гениально делать лееры без их апдейтов и инфы с анимфикса, откуда они будут брать положение то, с пустых анимлееров?)

Ещё гениально спастить IDE Nemesis, взяв от туда сихру лееров, которая работает через жопу эзотерика :NotLikeThis:
 
Щас вы ахуеете, я для вас сделаю так чтоб он работал (Это для самых маленьких которые не инклюдали в анимфиксе его)

В resolver.cpp под
C++:
Expand Collapse Copy
void resolver::reset(){

    player = nullptr;
    player_record = nullptr;

    side = false;
    fake = false;

    was_first_bruteforce = false;
    was_second_bruteforce = false;

    original_goal_feet_yaw = 0.0f;
    original_pitch = 0.0f;
}

Вставляем ЭТО
C++:
Expand Collapse Copy
void resolver::animlayer_resolver()
{
    if (!g_ctx.local()->is_alive())
        return;
    if (!player->is_player())
        return;

    float move_delta;
    float static_desync = 58.f;
    float low_desync = 30.f;
    float random_desync = math::random_float(-58, 58);

    int move_side;
    player_t* e;
    auto animstate = e->get_animation_state();
    float speed = player->m_vecVelocity().Length2D();
    if (player->m_fFlags() & FL_ONGROUND)
    {
        if (speed > 0.1f && (player_record->layers[6].m_flWeight * 1000.0f) == (player_record->layers[6].m_flWeight * 1000.0f))
        {
            if (player_record->layers[3].m_flWeight == 0.f && player_record->layers[3].m_flCycle == 0.f && player_record->layers[6].m_flWeight == 0.f)
            {
                auto move_delta = math::AngleDiff(player->m_angEyeAngles().y, original_goal_feet_yaw);
                move_side = (2 * (move_delta <= 0.0f) - 1) > 0.0f ? -1 : 1;
                math::normalize_yaw(player->m_angEyeAngles().y + move_side ? 58.f : -58.f);
            }
            else if (!(player_record->layers[12].m_flWeight * 10000.0f))
            {
                if (player_record->layers[6].m_flWeight * 10000.0f == int(player_record->layers[6].m_flWeight * 10000.0f))
                {
                    float delta_eye = abs(resolver_layers[0][6].m_flPlaybackRate - player_record->layers[6].m_flPlaybackRate);
                    float delta_negative = abs(resolver_layers[1][6].m_flPlaybackRate - player_record->layers[6].m_flPlaybackRate);
                    float delta_positive = abs(resolver_layers[2][6].m_flPlaybackRate - player_record->layers[6].m_flPlaybackRate);

                    if ((delta_eye * 10000.0f) != (delta_negative * 10000.0f)) {
                        if (move_delta <= delta_eye)
                            move_delta = delta_eye;
                        else if (move_delta > delta_eye)
                            move_delta = delta_negative;
                        else
                            move_delta = delta_positive;

                        if (!(move_delta * 1000.0f) || (delta_eye * 10000.0f) != (delta_negative * 10000.0f)) {
                            if (move_delta == delta_negative) {
                                move_side = -1;
                            }
                            else if (move_delta == delta_positive) {
                                move_side = 1;
                            }
                        }
                    }
                }
            }
       
        if (g_ctx.globals.missed_shots[player->EntIndex()] > 1)
        {
            switch (g_ctx.globals.missed_shots[player->EntIndex()] % 5)
            {
            case 0:
                animstate->m_flGoalFeetYaw = math::normalize_yaw(move_side ? player->m_angEyeAngles().y + static_desync : player->m_angEyeAngles().y - static_desync);
                break;
            case 1:
                animstate->m_flGoalFeetYaw = math::normalize_yaw(move_side ? player->m_angEyeAngles().y + low_desync : player->m_angEyeAngles().y - low_desync);
                break;

                //--Тут 3 рандома-и-они-нужны-на-всякий-случай--\\

            case 2:
                animstate->m_flGoalFeetYaw = math::normalize_yaw(move_side ? player->m_angEyeAngles().y + random_desync : player->m_angEyeAngles().y - random_desync);
                break;
            case 3:
                animstate->m_flGoalFeetYaw = math::normalize_yaw(move_side ? player->m_angEyeAngles().y + random_desync : player->m_angEyeAngles().y - random_desync);
                break;
            case 4:
                animstate->m_flGoalFeetYaw = math::normalize_yaw(move_side ? player->m_angEyeAngles().y + random_desync : player->m_angEyeAngles().y - random_desync);
                break;

                //----------------------------------------------\\
                }
            }
        }
    }
}

ДАЛЬШЕ ЗАХОДИМ В animation_system.h И НАХОДИМ class resolver, и там надо под
C++:
Expand Collapse Copy
    void initialize(player_t* e, adjust_data* record, const float& goal_feet_yaw, const float& pitch);
    void reset();
Вписать
C++:
Expand Collapse Copy
void animlayer_resolver();
И надо над public: вписать
C++:
Expand Collapse Copy
    AnimationLayer layers[13];
    AnimationLayer resolver_layers[3][13];

Дальше ЗАХОДИМ В animation_system.cpp жмём ctrl + f и ищем эту строку
C++:
Expand Collapse Copy
player_resolver[e->EntIndex()].initialize(e, record, previous_goal_feet_yaw[e->EntIndex()], e->m_angEyeAngles().x);
и под ней вставляем
C++:
Expand Collapse Copy
player_resolver[e->EntIndex()].animlayer_resolver();


Кстати @azazinc тут причастен
now your fake duck goes boing boing
 
Назад
Сверху Снизу