Исходник Resolver для legendware по леерам с фиксами из otcv2.idb

#include <resolver>
Начинающий
Статус
Оффлайн
Регистрация
10 Апр 2019
Сообщения
139
Реакции[?]
16
Поинты[?]
0
Короче строго не судите, попытался сделать что то годное. Получилось или нет, судите сами.
C++:
void resolver::resolve_yaw()
{

    float no_side = FLT_MAX;

    auto animstate = player->get_animation_state();

    AnimationLayer layers[15];
    AnimationLayer moveLayers[3][15];
    memcpy(moveLayers, player->get_animlayers(), sizeof(AnimationLayer) * 15);

    auto speed = player->m_vecVelocity().Length2D();
    int m_side;
  
        if (speed <= 0.1f)
        {
            auto delta = math::AngleDiff(player->m_angEyeAngles().y, player->get_animation_state()->m_flGoalFeetYaw);

            if (layers[3].m_flWeight == 0.0f && layers[3].m_flCycle == 0.0f)
            {
                resolving_way = (math::AngleDiff(player->get_animation_state()->m_flEyeYaw, player->get_animation_state()->m_flGoalFeetYaw) <= 0.0) - 1;
            }
        }

        if (int(layers[12].m_flWeight * 1000.0f) == int(layers[6].m_flWeight * 1000.0f))
        {
            float firstDelta = fabs(layers[6].m_flPlaybackRate - moveLayers[0][6].m_flPlaybackRate);

            float secondDelta = fabs(layers[6].m_flPlaybackRate - moveLayers[2][6].m_flPlaybackRate);

            float thirdDelta = fabs(layers[6].m_flPlaybackRate - moveLayers[1][6].m_flPlaybackRate);

            if (firstDelta < secondDelta || thirdDelta <= secondDelta || (secondDelta * 1000.0))
            {
                if (firstDelta >= thirdDelta && secondDelta > thirdDelta && !(thirdDelta * 1000.0))
                {
                    m_side= 1;
                }
            }
            else
            {
                m_side= -1;
            }
        }



    if (m_side= -1)
    {
    
        animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 60.f);
        switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
        {
        case 0:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 60.f);
            break;
        case 1:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 30.f);
            break;
        }

    
    }
    else if (m_side= 1)
    {
  
        animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 60.f);
        switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
        {
        case 0:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 60.f);
            break;
        case 1:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 30.f);
            break;
        }
    }


}
Рес в принципе не плохой
 
Забаненный
Статус
Оффлайн
Регистрация
31 Дек 2020
Сообщения
10
Реакции[?]
10
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
    AnimationLayer layers[15];
    AnimationLayer moveLayers[3][15];
    memcpy(moveLayers, player->get_animlayers(), sizeof(AnimationLayer) * 15);
Please learn C++
 
Начинающий
Статус
Оффлайн
Регистрация
9 Сен 2020
Сообщения
15
Реакции[?]
0
Поинты[?]
0
Короче строго не судите, попытался сделать что то годное. Получилось или нет, судите сами.
C++:
void resolver::resolve_yaw()
{

    float no_side = FLT_MAX;

    auto animstate = player->get_animation_state();

    AnimationLayer layers[15];
    AnimationLayer moveLayers[3][15];
    memcpy(moveLayers, player->get_animlayers(), sizeof(AnimationLayer) * 15);

    auto speed = player->m_vecVelocity().Length2D();
    int m_side;
  
        if (speed <= 0.1f)
        {
            auto delta = math::AngleDiff(player->m_angEyeAngles().y, player->get_animation_state()->m_flGoalFeetYaw);

            if (layers[3].m_flWeight == 0.0f && layers[3].m_flCycle == 0.0f)
            {
                resolving_way = (math::AngleDiff(player->get_animation_state()->m_flEyeYaw, player->get_animation_state()->m_flGoalFeetYaw) <= 0.0) - 1;
            }
        }

        if (int(layers[12].m_flWeight * 1000.0f) == int(layers[6].m_flWeight * 1000.0f))
        {
            float firstDelta = fabs(layers[6].m_flPlaybackRate - moveLayers[0][6].m_flPlaybackRate);

            float secondDelta = fabs(layers[6].m_flPlaybackRate - moveLayers[2][6].m_flPlaybackRate);

            float thirdDelta = fabs(layers[6].m_flPlaybackRate - moveLayers[1][6].m_flPlaybackRate);

            if (firstDelta < secondDelta || thirdDelta <= secondDelta || (secondDelta * 1000.0))
            {
                if (firstDelta >= thirdDelta && secondDelta > thirdDelta && !(thirdDelta * 1000.0))
                {
                    m_side= 1;
                }
            }
            else
            {
                m_side= -1;
            }
        }



    if (m_side= -1)
    {
    
        animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 60.f);
        switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
        {
        case 0:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 60.f);
            break;
        case 1:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 30.f);
            break;
        }

    
    }
    else if (m_side= 1)
    {
  
        animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 60.f);
        switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
        {
        case 0:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 60.f);
            break;
        case 1:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 30.f);
            break;
        }
    }


}
thanks for this release
 
Начинающий
Статус
Оффлайн
Регистрация
25 Апр 2020
Сообщения
18
Реакции[?]
5
Поинты[?]
3K
Ну у парня половина кода не правильно сделана. Хотя сама логика брута, уже есть прогресс. Но как минимум, ему следовало бы изучить С++.

Из-за того, что он присваивает сайды, вместо проверки на равенство, он ломает весь код. Я уже молчу о том, что он сравнивает вейт 12 леера с вейтом 6 леера, вместо того, что б нормально спастить.

Нафиг вы вообще пастите этот мусор, я спастил себе, ели попадает. Ну ладно там я, может я дурень и что-то не так сделал. Так в меня пандора тоже миссает в мувы постоянно, у которой такой же пащенный ресольвер.... Перестаньте пастить этот бред, обычный +- 60 рандом на мувы будет куда полезнее чем вот это вот все, даже если бы оно на 100% правильным.
Сравнивать вейт эта кринжуха)))
Короче строго не судите, попытался сделать что то годное. Получилось или нет, судите сами.
C++:
void resolver::resolve_yaw()
{

    float no_side = FLT_MAX;

    auto animstate = player->get_animation_state();

    AnimationLayer layers[15];
    AnimationLayer moveLayers[3][15];
    memcpy(moveLayers, player->get_animlayers(), sizeof(AnimationLayer) * 15);

    auto speed = player->m_vecVelocity().Length2D();
    int m_side;
  
        if (speed <= 0.1f)
        {
            auto delta = math::AngleDiff(player->m_angEyeAngles().y, player->get_animation_state()->m_flGoalFeetYaw);

            if (layers[3].m_flWeight == 0.0f && layers[3].m_flCycle == 0.0f)
            {
                resolving_way = (math::AngleDiff(player->get_animation_state()->m_flEyeYaw, player->get_animation_state()->m_flGoalFeetYaw) <= 0.0) - 1;
            }
        }

        if (int(layers[12].m_flWeight * 1000.0f) == int(layers[6].m_flWeight * 1000.0f))
        {
            float firstDelta = fabs(layers[6].m_flPlaybackRate - moveLayers[0][6].m_flPlaybackRate);

            float secondDelta = fabs(layers[6].m_flPlaybackRate - moveLayers[2][6].m_flPlaybackRate);

            float thirdDelta = fabs(layers[6].m_flPlaybackRate - moveLayers[1][6].m_flPlaybackRate);

            if (firstDelta < secondDelta || thirdDelta <= secondDelta || (secondDelta * 1000.0))
            {
                if (firstDelta >= thirdDelta && secondDelta > thirdDelta && !(thirdDelta * 1000.0))
                {
                    m_side= 1;
                }
            }
            else
            {
                m_side= -1;
            }
        }



    if (m_side= -1)
    {
    
        animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 60.f);
        switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
        {
        case 0:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 60.f);
            break;
        case 1:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 30.f);
            break;
        }

    
    }
    else if (m_side= 1)
    {
  
        animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 60.f);
        switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
        {
        case 0:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 60.f);
            break;
        case 1:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 30.f);
            break;
        }
    }


}
Я кнш всё понимаю и не хочу никого оскорбить, но если бы ты хоть чуть-чуть в сурсах порылся, понял бы, что анимлеер 3 по сути бесполезен. И зачем сравнивать вейт двух лееров?
 
Пользователь
Статус
Оффлайн
Регистрация
9 Мар 2021
Сообщения
272
Реакции[?]
42
Поинты[?]
2K
Короче строго не судите, попытался сделать что то годное. Получилось или нет, судите сами.
C++:
void resolver::resolve_yaw()
{

    float no_side = FLT_MAX;

    auto animstate = player->get_animation_state();

    AnimationLayer layers[15];
    AnimationLayer moveLayers[3][15];
    memcpy(moveLayers, player->get_animlayers(), sizeof(AnimationLayer) * 15);

    auto speed = player->m_vecVelocity().Length2D();
    int m_side;
  
        if (speed <= 0.1f)
        {
            auto delta = math::AngleDiff(player->m_angEyeAngles().y, player->get_animation_state()->m_flGoalFeetYaw);

            if (layers[3].m_flWeight == 0.0f && layers[3].m_flCycle == 0.0f)
            {
                resolving_way = (math::AngleDiff(player->get_animation_state()->m_flEyeYaw, player->get_animation_state()->m_flGoalFeetYaw) <= 0.0) - 1;
            }
        }

        if (int(layers[12].m_flWeight * 1000.0f) == int(layers[6].m_flWeight * 1000.0f))
        {
            float firstDelta = fabs(layers[6].m_flPlaybackRate - moveLayers[0][6].m_flPlaybackRate);

            float secondDelta = fabs(layers[6].m_flPlaybackRate - moveLayers[2][6].m_flPlaybackRate);

            float thirdDelta = fabs(layers[6].m_flPlaybackRate - moveLayers[1][6].m_flPlaybackRate);

            if (firstDelta < secondDelta || thirdDelta <= secondDelta || (secondDelta * 1000.0))
            {
                if (firstDelta >= thirdDelta && secondDelta > thirdDelta && !(thirdDelta * 1000.0))
                {
                    m_side= 1;
                }
            }
            else
            {
                m_side= -1;
            }
        }



    if (m_side= -1)
    {
    
        animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 60.f);
        switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
        {
        case 0:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 60.f);
            break;
        case 1:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 30.f);
            break;
        }

    
    }
    else if (m_side= 1)
    {
  
        animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 60.f);
        switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
        {
        case 0:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 60.f);
            break;
        case 1:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 30.f);
            break;
        }
    }


}
не правильная херня во всех частях кода
 
ЧВК EB_LAN
Эксперт
Статус
Оффлайн
Регистрация
26 Янв 2021
Сообщения
1,553
Реакции[?]
519
Поинты[?]
189K
Could you give me AngleDiff???
paste it in math.cpp
C++:
    float AngleDiff(float destAngle, float srcAngle)
    {
        float delta = std::remainderf(destAngle - srcAngle, 360.0f);

        if (delta < -180)
            delta += 360;
        else if (delta > 180)
            delta -= 360;

        return delta;
    }
Соррян парни что апнул старую юзлесс тему
 
Начинающий
Статус
Оффлайн
Регистрация
20 Июн 2021
Сообщения
7
Реакции[?]
0
Поинты[?]
0
Короче строго не судите, попытался сделать что то годное. Получилось или нет, судите сами.
C++:
void resolver::resolve_yaw()
{

    float no_side = FLT_MAX;

    auto animstate = player->get_animation_state();

    AnimationLayer layers[15];
    AnimationLayer moveLayers[3][15];
    memcpy(moveLayers, player->get_animlayers(), sizeof(AnimationLayer) * 15);

    auto speed = player->m_vecVelocity().Length2D();
    int m_side;
  
        if (speed <= 0.1f)
        {
            auto delta = math::AngleDiff(player->m_angEyeAngles().y, player->get_animation_state()->m_flGoalFeetYaw);

            if (layers[3].m_flWeight == 0.0f && layers[3].m_flCycle == 0.0f)
            {
                resolving_way = (math::AngleDiff(player->get_animation_state()->m_flEyeYaw, player->get_animation_state()->m_flGoalFeetYaw) <= 0.0) - 1;
            }
        }

        if (int(layers[12].m_flWeight * 1000.0f) == int(layers[6].m_flWeight * 1000.0f))
        {
            float firstDelta = fabs(layers[6].m_flPlaybackRate - moveLayers[0][6].m_flPlaybackRate);

            float secondDelta = fabs(layers[6].m_flPlaybackRate - moveLayers[2][6].m_flPlaybackRate);

            float thirdDelta = fabs(layers[6].m_flPlaybackRate - moveLayers[1][6].m_flPlaybackRate);

            if (firstDelta < secondDelta || thirdDelta <= secondDelta || (secondDelta * 1000.0))
            {
                if (firstDelta >= thirdDelta && secondDelta > thirdDelta && !(thirdDelta * 1000.0))
                {
                    m_side= 1;
                }
            }
            else
            {
                m_side= -1;
            }
        }



    if (m_side= -1)
    {
    
        animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 60.f);
        switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
        {
        case 0:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 60.f);
            break;
        case 1:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 30.f);
            break;
        }

    
    }
    else if (m_side= 1)
    {
  
        animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 60.f);
        switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
        {
        case 0:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y - 60.f);
            break;
        case 1:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(player->m_angEyeAngles().y + 30.f);
            break;
        }
    }


}
крутой еще и с вронг реверсом крутой

даже если это спастить все равно воркать не будет о_О
 
sapphire dev
Пользователь
Статус
Оффлайн
Регистрация
15 Мар 2018
Сообщения
188
Реакции[?]
124
Поинты[?]
36K
Неверлус в точности так же делает, молодец, рекомендую!
 
Забаненный
Статус
Оффлайн
Регистрация
18 Янв 2021
Сообщения
39
Реакции[?]
9
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сверху Снизу