Вопрос Расскажи про всё в ресольвере

anonymous
Забаненный
Статус
Оффлайн
Регистрация
18 Окт 2022
Сообщения
609
Реакции[?]
216
Поинты[?]
144K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Посмотреть вложение 231459шикарно, спасибо за такой крутой десинк ресольвер
Посмотреть вложение 231460просто шикарный ресольвер
Посмотреть вложение 231461я аж потёк
Если бы ты ещё понимал что этот код делает, было бы точно шикарно!
+ Спорим этот баян зарезольвит любую твою всратую луашку?
 
Эксперт
Статус
Оффлайн
Регистрация
30 Дек 2019
Сообщения
1,967
Реакции[?]
958
Поинты[?]
19K
Если бы ты ещё понимал что этот код делает, было бы точно шикарно!
+ Спорим этот баян зарезольвит любую твою всратую луашку?
давайте поворачивать игрока на 180, когда лимит 58, ты пожалуйста перестань кидать фейк ресольверы
 
anonymous
Забаненный
Статус
Оффлайн
Регистрация
18 Окт 2022
Сообщения
609
Реакции[?]
216
Поинты[?]
144K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
давайте поворачивать игрока на 180, когда лимит 58, ты пожалуйста перестань кидать фейк ресольверы
Причём тут lby desync, там лимит 58 да, но ответь мне пж, на сколько градусов backwards разворачивает? Хотя я совсем забыл, ты прав, против такого ждуна как ты, +180 мисснет, ибо ты будешь стоять на фейках выжидать как последний конч xD
 
Эксперт
Статус
Оффлайн
Регистрация
30 Дек 2019
Сообщения
1,967
Реакции[?]
958
Поинты[?]
19K
Участник
Статус
Оффлайн
Регистрация
27 Фев 2019
Сообщения
1,125
Реакции[?]
395
Поинты[?]
50K
Причём тут lby desync, там лимит 58 да, но ответь мне пж, на сколько градусов backwards разворачивает? Хотя я совсем забыл, ты прав, против такого ждуна как ты, +180 мисснет, ибо ты будешь стоять на фейках выжидать как последний конч xD
Если бы ты ещё понимал что этот код делает, было бы точно шикарно!
+ Спорим этот баян зарезольвит любую твою всратую луашку?
Что ты блять несёшь? Какие 180, ты вообще SetUpVelocity в принципе чекал или ты в 17-18 так и остался?
Ты не походу сам не понимаешь принцип работы ресольвера.
 
anonymous
Забаненный
Статус
Оффлайн
Регистрация
18 Окт 2022
Сообщения
609
Реакции[?]
216
Поинты[?]
144K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Что ты блять несёшь? Какие 180, ты вообще SetUpVelocity в принципе чекал или ты в 17-18 так и остался?
Ты не походу сам не понимаешь принцип работы ресольвера.
Глянул SetupVelocity, там код анимаций (layers, m_arrPoseParameters), походу мы о разном говорим, я не думаю что тс сам будет ребилдить систему анимаций, а простой резолвер по углам против твоего кряка как раз чётко сработает)
 
Участник
Статус
Оффлайн
Регистрация
27 Фев 2019
Сообщения
1,125
Реакции[?]
395
Поинты[?]
50K
Глянул SetupVelocity, там код анимаций (layers, m_arrPoseParameters), походу мы о разном говорим, я не думаю что тс сам будет ребилдить систему анимаций, а простой резолвер по углам против твоего кряка как раз чётко сработает)
Что ты блять несёшь?
Ты походу даже не смотрел SetUpVelocity, либо ты под чем-то. При чём тут поз параметры и лееры??? Я тебе говорил конкретно о расчёте фитява.
Зачем ему ребилдить систему анимаций? Я тебе разве на это указал?? Блять, ты походу сам не соображаешь, что советуешь тс'y бля.
Против кряка? Да твой ресольвер бля даже твой мозг не заресольвит. Два угла для ресольвинга (m_flMinBodyYaw, m_flMaxBodyYaw) тебе вполне хватит, а не ту хуйню, что ты скинул, сказав что оно "чётко сработает". А теперь отправляю тебя ещё раз посмотреть, как работает анимирование в игре, иначе ты будешь послан нахуй.
 
anonymous
Забаненный
Статус
Оффлайн
Регистрация
18 Окт 2022
Сообщения
609
Реакции[?]
216
Поинты[?]
144K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Что ты блять несёшь?
Ты походу даже не смотрел SetUpVelocity, либо ты под чем-то. При чём тут поз параметры и лееры??? Я тебе говорил конкретно о расчёте фитява.
Зачем ему ребилдить систему анимаций? Я тебе разве на это указал?? Блять, ты походу сам не соображаешь, что советуешь тс'y бля.
Против кряка? Да твой ресольвер бля даже твой мозг не заресольвит. Два угла для ресольвинга (m_flMinBodyYaw, m_flMaxBodyYaw) тебе вполне хватит, а не ту хуйню, что ты скинул, сказав что оно "чётко сработает". А теперь отправляю тебя ещё раз посмотреть, как работает анимирование в игре, иначе ты будешь послан нахуй.
SetupVelocity к тому что ты написал никак не относится, точнее относится как и весь движок в совокупности, но конкретно здесь не о чем не говорит! загугли вообще как переводится слово velocity.
После того как тебе порвало анус, до меня наконец дошло что ты имел ввиду, я думал тс хочет узнать как работает резолвер и скинул ему вантаповский, там коменты норм, можно почитать вникнуть, щас перечитал тса он спрашивал про feet_yaw, соррян, но эта хрень только к LBY(десинкам) относится

Код:
void CLBYResolver::Think(c_base_entity* pEnt)
{
    float     flFirstDelta  = 0.f;
    float     flSecondDelta = 0.f;
    float     flThirdDelta  = 0.f;
    int         iWay          = 0.f;
    int         iSide         = 0.f;
  
    enum AnimLayer_t : uint16_t
    {
        AIMMATRIX              = 0,
        WEAPON_ACTION          = 1,
        WEAPON_ACTION_RECROUCH = 2,
        ADJUST                 = 3,
        MOVEMENT_JUMP_OR_FALL  = 4,
        MOVEMENT_LAND_OR_CLIMB = 5,
        MOVEMENT_MOVE          = 6,
        MOVEMENT_STRAFECHANGE  = 7,
        WHOLE_BODY             = 8,
        FLASHED                = 9,
        FLINCH                 = 0xA,
        ALIVELOOP              = 0xB,
        LEAN                   = 0xC,
        COUNT                  = 0xD
    };
  
    bool bValidPlayer = pEnt->IsAlive() && !pEnt->IsDormant() && pEnt->GetTeam() != g_ctx.pLocal->GetTeam() && pEnt != g_ctx.pLocal;
  
    // Invalid target? Reset data.
    if (!bValidPlayer)
    {
        flFirstDelta  = 0.f;
        flSecondDelta = 0.f;
        flThirdDelta  = 0.f;
        iWay          = 0;
        iSide         = 0;
        return;
    }
  
    const float flVelocity = pEnt->GetVelocity().length();
    const bool  bHasLBY    = pEnt->GetAnimLayer(AnimLayer_t::ADJUST).m_flWeight == 0.0f && pEnt->GetAnimLayer(AnimLayer_t::ADJUST).m_flCycle == 0.0f;
    printf("bHasLBY: %i%s", bHasLBY, "\n");
  
    if (flVelocity <= 0.1f)
    {
        if (bHasLBY)
        {
            pEnt->GetEyeAngles().y = pEnt->GetEyeAngles().y;
            iWay  = 1;
            iSide = 2 * (Math::AngleDifference(pEnt->GetEyeAngles().y, pEnt->GetAnimState()->goal_feet_yaw) <= 0.0f) - 1;
        }
    }
    else if (!(pEnt->GetAnimLayer(AnimLayer_t::LEAN).m_flWeight * 1000.0f) &&
             (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flWeight * 1000.0f) == (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flWeight * 1000.0f))
    {
        flFirstDelta  = (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate - pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate);
        flSecondDelta = (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate - pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate);
        flThirdDelta  = (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate - pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate);
        if (flFirstDelta < flSecondDelta || flThirdDelta <= flSecondDelta || (flSecondDelta * 1000.0f))
        {
            if (flFirstDelta >= flThirdDelta && flSecondDelta > flThirdDelta && !(flThirdDelta * 1000.0f))
            {
                iWay  = 1;
                iSide = 1;
            }
        }
        else
        {
            iWay  = 1;
            iSide = -1;
        }
    }
  
    printf("LBY Side: %i%s", iSide, "\n");
  
    switch (uSide)
    {
        case LBYSide_t::LEFT:
            pEnt->GetAnimState()->m_goal_feet_yaw = pEnt->GetAnimState()->m_goal_feet_yaw - 58.f;
            break;
        case LBYSide_t::RIGHT:
            pEnt->GetAnimState()->m_goal_feet_yaw = pEnt->GetAnimState()->m_goal_feet_yaw + 58.f;
            break;
        // Unknown.
        default:
            return;
            break;
    }
}
 
Нефор
Забаненный
Статус
Оффлайн
Регистрация
9 Ноя 2018
Сообщения
1,042
Реакции[?]
663
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
SetupVelocity к тому что ты написал никак не относится, точнее относится как и весь движок в совокупности, но конкретно здесь не о чем не говорит! загугли вообще как переводится слово velocity.
После того как тебе порвало анус, до меня наконец дошло что ты имел ввиду, я думал тс хочет узнать как работает резолвер и скинул ему вантаповский, там коменты норм, можно почитать вникнуть, щас перечитал тса он спрашивал про feet_yaw, соррян, но эта хрень только к LBY(десинкам) относится

Код:
void CLBYResolver::Think(c_base_entity* pEnt)
{
    float     flFirstDelta  = 0.f;
    float     flSecondDelta = 0.f;
    float     flThirdDelta  = 0.f;
    int         iWay          = 0.f;
    int         iSide         = 0.f;
 
    enum AnimLayer_t : uint16_t
    {
        AIMMATRIX              = 0,
        WEAPON_ACTION          = 1,
        WEAPON_ACTION_RECROUCH = 2,
        ADJUST                 = 3,
        MOVEMENT_JUMP_OR_FALL  = 4,
        MOVEMENT_LAND_OR_CLIMB = 5,
        MOVEMENT_MOVE          = 6,
        MOVEMENT_STRAFECHANGE  = 7,
        WHOLE_BODY             = 8,
        FLASHED                = 9,
        FLINCH                 = 0xA,
        ALIVELOOP              = 0xB,
        LEAN                   = 0xC,
        COUNT                  = 0xD
    };
 
    bool bValidPlayer = pEnt->IsAlive() && !pEnt->IsDormant() && pEnt->GetTeam() != g_ctx.pLocal->GetTeam() && pEnt != g_ctx.pLocal;
 
    // Invalid target? Reset data.
    if (!bValidPlayer)
    {
        flFirstDelta  = 0.f;
        flSecondDelta = 0.f;
        flThirdDelta  = 0.f;
        iWay          = 0;
        iSide         = 0;
        return;
    }
 
    const float flVelocity = pEnt->GetVelocity().length();
    const bool  bHasLBY    = pEnt->GetAnimLayer(AnimLayer_t::ADJUST).m_flWeight == 0.0f && pEnt->GetAnimLayer(AnimLayer_t::ADJUST).m_flCycle == 0.0f;
    printf("bHasLBY: %i%s", bHasLBY, "\n");
 
    if (flVelocity <= 0.1f)
    {
        if (bHasLBY)
        {
            pEnt->GetEyeAngles().y = pEnt->GetEyeAngles().y;
            iWay  = 1;
            iSide = 2 * (Math::AngleDifference(pEnt->GetEyeAngles().y, pEnt->GetAnimState()->goal_feet_yaw) <= 0.0f) - 1;
        }
    }
    else if (!(pEnt->GetAnimLayer(AnimLayer_t::LEAN).m_flWeight * 1000.0f) &&
             (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flWeight * 1000.0f) == (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flWeight * 1000.0f))
    {
        flFirstDelta  = (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate - pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate);
        flSecondDelta = (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate - pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate);
        flThirdDelta  = (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate - pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate);
  }
код неправильная хуйня, так ты еще и одинаковые значения сравниваешь и от друг друга отнимаешь, это пиздец
 
Участник
Статус
Оффлайн
Регистрация
27 Фев 2019
Сообщения
1,125
Реакции[?]
395
Поинты[?]
50K
SetupVelocity к тому что ты написал никак не относится, точнее относится как и весь движок в совокупности, но конкретно здесь не о чем не говорит! загугли вообще как переводится слово velocity.
После того как тебе порвало анус, до меня наконец дошло что ты имел ввиду, я думал тс хочет узнать как работает резолвер и скинул ему вантаповский, там коменты норм, можно почитать вникнуть, щас перечитал тса он спрашивал про feet_yaw, соррян, но эта хрень только к LBY(десинкам) относится

Код:
void CLBYResolver::Think(c_base_entity* pEnt)
{
    float     flFirstDelta  = 0.f;
    float     flSecondDelta = 0.f;
    float     flThirdDelta  = 0.f;
    int         iWay          = 0.f;
    int         iSide         = 0.f;
 
    enum AnimLayer_t : uint16_t
    {
        AIMMATRIX              = 0,
        WEAPON_ACTION          = 1,
        WEAPON_ACTION_RECROUCH = 2,
        ADJUST                 = 3,
        MOVEMENT_JUMP_OR_FALL  = 4,
        MOVEMENT_LAND_OR_CLIMB = 5,
        MOVEMENT_MOVE          = 6,
        MOVEMENT_STRAFECHANGE  = 7,
        WHOLE_BODY             = 8,
        FLASHED                = 9,
        FLINCH                 = 0xA,
        ALIVELOOP              = 0xB,
        LEAN                   = 0xC,
        COUNT                  = 0xD
    };
 
    bool bValidPlayer = pEnt->IsAlive() && !pEnt->IsDormant() && pEnt->GetTeam() != g_ctx.pLocal->GetTeam() && pEnt != g_ctx.pLocal;
 
    // Invalid target? Reset data.
    if (!bValidPlayer)
    {
        flFirstDelta  = 0.f;
        flSecondDelta = 0.f;
        flThirdDelta  = 0.f;
        iWay          = 0;
        iSide         = 0;
        return;
    }
 
    const float flVelocity = pEnt->GetVelocity().length();
    const bool  bHasLBY    = pEnt->GetAnimLayer(AnimLayer_t::ADJUST).m_flWeight == 0.0f && pEnt->GetAnimLayer(AnimLayer_t::ADJUST).m_flCycle == 0.0f;
    printf("bHasLBY: %i%s", bHasLBY, "\n");
 
    if (flVelocity <= 0.1f)
    {
        if (bHasLBY)
        {
            pEnt->GetEyeAngles().y = pEnt->GetEyeAngles().y;
            iWay  = 1;
            iSide = 2 * (Math::AngleDifference(pEnt->GetEyeAngles().y, pEnt->GetAnimState()->goal_feet_yaw) <= 0.0f) - 1;
        }
    }
    else if (!(pEnt->GetAnimLayer(AnimLayer_t::LEAN).m_flWeight * 1000.0f) &&
             (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flWeight * 1000.0f) == (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flWeight * 1000.0f))
    {
        flFirstDelta  = (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate - pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate);
        flSecondDelta = (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate - pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate);
        flThirdDelta  = (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate - pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate);
        if (flFirstDelta < flSecondDelta || flThirdDelta <= flSecondDelta || (flSecondDelta * 1000.0f))
        {
            if (flFirstDelta >= flThirdDelta && flSecondDelta > flThirdDelta && !(flThirdDelta * 1000.0f))
            {
                iWay  = 1;
                iSide = 1;
            }
        }
        else
        {
            iWay  = 1;
            iSide = -1;
        }
    }
 
    printf("LBY Side: %i%s", iSide, "\n");
 
    switch (uSide)
    {
        case LBYSide_t::LEFT:
            pEnt->GetAnimState()->m_goal_feet_yaw = pEnt->GetAnimState()->m_goal_feet_yaw - 58.f;
            break;
        case LBYSide_t::RIGHT:
            pEnt->GetAnimState()->m_goal_feet_yaw = pEnt->GetAnimState()->m_goal_feet_yaw + 58.f;
            break;
        // Unknown.
        default:
            return;
            break;
    }
}
Сука ХЪАВЫХЪАХЪВЫХЪАХЪЫЪХАВЫ, что ты ему за неправильную хуйню скинул, это блять можно даже по пунктам разобрать и понять, что ты в принципе даже в данной теме толком не разбираешься.

Первый момент, ты текущий угол глаз к текущему углу глаз приравнять решил? Гений!
1671174999538.png
ебучая проверка, которая нахуя никому не нужна:
else if (!(pEnt->GetAnimLayer(AnimLayer_t::LEAN).m_flWeight * 1000.0f) &&
             (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flWeight * 1000.0f) == (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flWeight * 1000.0f))
Опять же таки ненужная проверка, которая хуй пойми как работает.

Так ещё и сверяешь со своим же значением, гений не иначе.

Гениальные математические расчёты:
flFirstDelta  = (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate - pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate);
        flSecondDelta = (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate - pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate);
        flThirdDelta  = (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate - pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate);
Да ты гений математики! И что же у нас получится в результате трёх вычитаний? Правильно, нихуя. Пиздуй учить матешу.

Тут без комментариев, ты вообще не читал SetUpVelocity, и к Update анимаций даже не прикасался.
1671175190107.png
SetupVelocity к тому что ты написал никак не относится, точнее относится как и весь движок в совокупности, но конкретно здесь не о чем не говорит! загугли вообще как переводится слово velocity.
После того как тебе порвало анус, до меня наконец дошло что ты имел ввиду, я думал тс хочет узнать как работает резолвер и скинул ему вантаповский, там коменты норм, можно почитать вникнуть, щас перечитал тса он спрашивал про feet_yaw, соррян, но эта хрень только к LBY(десинкам) относится

Код:
void CLBYResolver::Think(c_base_entity* pEnt)
{
    float     flFirstDelta  = 0.f;
    float     flSecondDelta = 0.f;
    float     flThirdDelta  = 0.f;
    int         iWay          = 0.f;
    int         iSide         = 0.f;
 
    enum AnimLayer_t : uint16_t
    {
        AIMMATRIX              = 0,
        WEAPON_ACTION          = 1,
        WEAPON_ACTION_RECROUCH = 2,
        ADJUST                 = 3,
        MOVEMENT_JUMP_OR_FALL  = 4,
        MOVEMENT_LAND_OR_CLIMB = 5,
        MOVEMENT_MOVE          = 6,
        MOVEMENT_STRAFECHANGE  = 7,
        WHOLE_BODY             = 8,
        FLASHED                = 9,
        FLINCH                 = 0xA,
        ALIVELOOP              = 0xB,
        LEAN                   = 0xC,
        COUNT                  = 0xD
    };
 
    bool bValidPlayer = pEnt->IsAlive() && !pEnt->IsDormant() && pEnt->GetTeam() != g_ctx.pLocal->GetTeam() && pEnt != g_ctx.pLocal;
 
    // Invalid target? Reset data.
    if (!bValidPlayer)
    {
        flFirstDelta  = 0.f;
        flSecondDelta = 0.f;
        flThirdDelta  = 0.f;
        iWay          = 0;
        iSide         = 0;
        return;
    }
 
    const float flVelocity = pEnt->GetVelocity().length();
    const bool  bHasLBY    = pEnt->GetAnimLayer(AnimLayer_t::ADJUST).m_flWeight == 0.0f && pEnt->GetAnimLayer(AnimLayer_t::ADJUST).m_flCycle == 0.0f;
    printf("bHasLBY: %i%s", bHasLBY, "\n");
 
    if (flVelocity <= 0.1f)
    {
        if (bHasLBY)
        {
            pEnt->GetEyeAngles().y = pEnt->GetEyeAngles().y;
            iWay  = 1;
            iSide = 2 * (Math::AngleDifference(pEnt->GetEyeAngles().y, pEnt->GetAnimState()->goal_feet_yaw) <= 0.0f) - 1;
        }
    }
    else if (!(pEnt->GetAnimLayer(AnimLayer_t::LEAN).m_flWeight * 1000.0f) &&
             (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flWeight * 1000.0f) == (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flWeight * 1000.0f))
    {
        flFirstDelta  = (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate - pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate);
        flSecondDelta = (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate - pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate);
        flThirdDelta  = (pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate - pEnt->GetAnimLayer(AnimLayer_t::MOVEMENT_MOVE).m_flPlaybackRate);
        if (flFirstDelta < flSecondDelta || flThirdDelta <= flSecondDelta || (flSecondDelta * 1000.0f))
        {
            if (flFirstDelta >= flThirdDelta && flSecondDelta > flThirdDelta && !(flThirdDelta * 1000.0f))
            {
                iWay  = 1;
                iSide = 1;
            }
        }
        else
        {
            iWay  = 1;
            iSide = -1;
        }
    }
 
    printf("LBY Side: %i%s", iSide, "\n");
 
    switch (uSide)
    {
        case LBYSide_t::LEFT:
            pEnt->GetAnimState()->m_goal_feet_yaw = pEnt->GetAnimState()->m_goal_feet_yaw - 58.f;
            break;
        case LBYSide_t::RIGHT:
            pEnt->GetAnimState()->m_goal_feet_yaw = pEnt->GetAnimState()->m_goal_feet_yaw + 58.f;
            break;
        // Unknown.
        default:
            return;
            break;
    }
}
SetupVelocity к тому что ты написал никак не относится, точнее относится как и весь движок в совокупности, но конкретно здесь не о чем не говорит! загугли вообще как переводится слово velocity.
1671175413093.png
by valve
 
Эксперт
Статус
Оффлайн
Регистрация
30 Дек 2019
Сообщения
1,967
Реакции[?]
958
Поинты[?]
19K
if (flVelocity <= 0.1f) { if (bHasLBY) { pEnt->GetEyeAngles().y = pEnt->GetEyeAngles().y; iWay = 1; iSide = 2 * (Math::AngleDifference(pEnt->GetEyeAngles().y, pEnt->GetAnimState()->goal_feet_yaw) <= 0.0f) - 1; } }
ты даже в самом простом проебался,
Пожалуйста, авторизуйтесь для просмотра ссылки.
предлагаю посмотреть при каких условиях игра ставит adjustlayer и лбу(
Пожалуйста, авторизуйтесь для просмотра ссылки.
)
 
Забаненный
Статус
Оффлайн
Регистрация
18 Дек 2022
Сообщения
16
Реакции[?]
5
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
18 Дек 2022
Сообщения
16
Реакции[?]
5
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
18 Дек 2022
Сообщения
16
Реакции[?]
5
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ты даже в самом простом проебался,
Пожалуйста, авторизуйтесь для просмотра ссылки.
предлагаю посмотреть при каких условиях игра ставит adjustlayer и лбу(
Пожалуйста, авторизуйтесь для просмотра ссылки.
)
also u again wrong
reference:
Пожалуйста, авторизуйтесь для просмотра ссылки.
upd: well, more precisely, a little wrong, you correctly pointed out the conditions under which bAdjustBalance is activated, but you forgot about one more ref for this is above
 
Содер
Участник
Статус
Оффлайн
Регистрация
23 Мар 2021
Сообщения
572
Реакции[?]
228
Поинты[?]
18K
1. Ресольвер на основе движений: этот тип ресольвера анализирует направление движения игрока и использует его для определения направления взгляда.
C++:
void ResolveMovement(C_BasePlayer* player, Vector& angles) {

    if (player->GetVelocity().Length2D() < 0.1f) {

        return;

    }

  

    float yaw_delta = player->GetLowerBodyYawTarget() - player->GetAbsAngles().yaw;

    if (yaw_delta > 180.0f) {

        yaw_delta -= 360.0f;

    } else if (yaw_delta < -180.0f) {

        yaw_delta += 360.0f;

    }

  

    bool is_moving_left = yaw_delta > 0.0f;

    bool is_moving_right = yaw_delta < 0.0f;

  

    if (is_moving_left || is_moving_right) {

        angles.yaw = player->GetLowerBodyYawTarget();

    }

}
В этом коде мы анализируем скорость движения игрока. Если скорость меньше 0.1f, мы выходим из функции. Затем мы считаем разницу между целевым направлением нижней части тела игрока (lower body yaw target) и текущим направлением взгляда. Если разница больше 180 градусов, мы вычитаем 360 из нее, если меньше -180, мы прибавляем 360. Затем мы определяем, смотрит ли игрок влево или вправо, и если это так, мы устанавливаем целевое направление нижней части тела.

2. Ресольвер на основе анимаций: этот тип ресольвера использует информацию об анимациях игрока для определения направления взгляда.
C++:
void ResolveAnimation(C_BasePlayer* player, Vector& angles) {

    if (player->GetSequenceActivity(player->GetSequence()) == ACT_CSGO_IDLE_TURN_BALANCEADJUST) {

        angles.yaw = player->GetLowerBodyYawTarget();

    }

}
В этом коде мы проверяем текущую анимацию игрока. Если она равна ACT_CSGO_IDLE_TURN_BALANCEADJUST, что соответствует анимации поворота в месте, мы устанавливаем целевое направление нижней части тела игрока (lower body yaw target) в качестве направления взгляда. Этот реcольвер может быть эффективен, когда игрок вращается.


3. Ресольвер на основе рандома: этот тип ресольвера использует случайное направление взгляда для обмана античита и улучшения степени устойчивости чита.
C++:
void ResolveRandom(C_BasePlayer* player, Vector& angles) {

    angles.yaw = rand() % 360;

}
Этот реcольвер устанавливает случайное значение в диапазоне от 0 до 359 в качестве целевого направления взгляда. Этот ресольвер может быть использован как средство для обмана врага, но может быть также неэффективен, так как он не учитывает реальные движения игрока и предполагает, что игрок смотрит в случайное направление.

4. Ресольвер на основе выстрела: этот тип ресольвера анализирует местоположение выстрела и использует его для определения направления взгляда игрока.
C++:
void ResolveShot(C_BasePlayer* player, Vector& angles) {

    if (!player->IsShooting()) {

        return;

    }

  

    angles.yaw = player->GetLowerBodyYawTarget();

}
В этом коде мы проверяем, стреляет ли игрок. Если это так, мы устанавливаем целевое направление нижней части тела игрока (lower body yaw target) в качестве направления взгляда. Этот реcольвер может быть эффективен, когда игрок стреляет, так как в момент выстрела игрок обычно поворачивается в сторону цели. Однако стоит отметить, что этот реcольвер может быть не эффективен, если игрок использует "quick peek"

Существует также множество других типов ресольверов. Выбор типа зависит от ваших целей и требований к читу.
 
Начинающий
Статус
Оффлайн
Регистрация
25 Окт 2022
Сообщения
35
Реакции[?]
6
Поинты[?]
0
1. Ресольвер на основе движений: этот тип ресольвера анализирует направление движения игрока и использует его для определения направления взгляда.
C++:
void ResolveMovement(C_BasePlayer* player, Vector& angles) {

    if (player->GetVelocity().Length2D() < 0.1f) {

        return;

    }



    float yaw_delta = player->GetLowerBodyYawTarget() - player->GetAbsAngles().yaw;

    if (yaw_delta > 180.0f) {

        yaw_delta -= 360.0f;

    } else if (yaw_delta < -180.0f) {

        yaw_delta += 360.0f;

    }



    bool is_moving_left = yaw_delta > 0.0f;

    bool is_moving_right = yaw_delta < 0.0f;



    if (is_moving_left || is_moving_right) {

        angles.yaw = player->GetLowerBodyYawTarget();

    }

}
В этом коде мы анализируем скорость движения игрока. Если скорость меньше 0.1f, мы выходим из функции. Затем мы считаем разницу между целевым направлением нижней части тела игрока (lower body yaw target) и текущим направлением взгляда. Если разница больше 180 градусов, мы вычитаем 360 из нее, если меньше -180, мы прибавляем 360. Затем мы определяем, смотрит ли игрок влево или вправо, и если это так, мы устанавливаем целевое направление нижней части тела.

2. Ресольвер на основе анимаций: этот тип ресольвера использует информацию об анимациях игрока для определения направления взгляда.
C++:
void ResolveAnimation(C_BasePlayer* player, Vector& angles) {

    if (player->GetSequenceActivity(player->GetSequence()) == ACT_CSGO_IDLE_TURN_BALANCEADJUST) {

        angles.yaw = player->GetLowerBodyYawTarget();

    }

}
В этом коде мы проверяем текущую анимацию игрока. Если она равна ACT_CSGO_IDLE_TURN_BALANCEADJUST, что соответствует анимации поворота в месте, мы устанавливаем целевое направление нижней части тела игрока (lower body yaw target) в качестве направления взгляда. Этот реcольвер может быть эффективен, когда игрок вращается.


3. Ресольвер на основе рандома: этот тип ресольвера использует случайное направление взгляда для обмана античита и улучшения степени устойчивости чита.
C++:
void ResolveRandom(C_BasePlayer* player, Vector& angles) {

    angles.yaw = rand() % 360;

}
Этот реcольвер устанавливает случайное значение в диапазоне от 0 до 359 в качестве целевого направления взгляда. Этот ресольвер может быть использован как средство для обмана врага, но может быть также неэффективен, так как он не учитывает реальные движения игрока и предполагает, что игрок смотрит в случайное направление.

4. Ресольвер на основе выстрела: этот тип ресольвера анализирует местоположение выстрела и использует его для определения направления взгляда игрока.
C++:
void ResolveShot(C_BasePlayer* player, Vector& angles) {

    if (!player->IsShooting()) {

        return;

    }



    angles.yaw = player->GetLowerBodyYawTarget();

}
В этом коде мы проверяем, стреляет ли игрок. Если это так, мы устанавливаем целевое направление нижней части тела игрока (lower body yaw target) в качестве направления взгляда. Этот реcольвер может быть эффективен, когда игрок стреляет, так как в момент выстрела игрок обычно поворачивается в сторону цели. Однако стоит отметить, что этот реcольвер может быть не эффективен, если игрок использует "quick peek"

Существует также множество других типов ресольверов. Выбор типа зависит от ваших целей и требований к читу.
Огромное спс
Но всеравно не понятно откуда из первого ресольва 360,180 итд
А точнее поч вычитать поч прибавлять
 
Участник
Статус
Оффлайн
Регистрация
27 Фев 2019
Сообщения
1,125
Реакции[?]
395
Поинты[?]
50K
1. Ресольвер на основе движений: этот тип ресольвера анализирует направление движения игрока и использует его для определения направления взгляда.
C++:
void ResolveMovement(C_BasePlayer* player, Vector& angles) {

    if (player->GetVelocity().Length2D() < 0.1f) {

        return;

    }

 

    float yaw_delta = player->GetLowerBodyYawTarget() - player->GetAbsAngles().yaw;

    if (yaw_delta > 180.0f) {

        yaw_delta -= 360.0f;

    } else if (yaw_delta < -180.0f) {

        yaw_delta += 360.0f;

    }

 

    bool is_moving_left = yaw_delta > 0.0f;

    bool is_moving_right = yaw_delta < 0.0f;

 

    if (is_moving_left || is_moving_right) {

        angles.yaw = player->GetLowerBodyYawTarget();

    }

}
В этом коде мы анализируем скорость движения игрока. Если скорость меньше 0.1f, мы выходим из функции. Затем мы считаем разницу между целевым направлением нижней части тела игрока (lower body yaw target) и текущим направлением взгляда. Если разница больше 180 градусов, мы вычитаем 360 из нее, если меньше -180, мы прибавляем 360. Затем мы определяем, смотрит ли игрок влево или вправо, и если это так, мы устанавливаем целевое направление нижней части тела.

2. Ресольвер на основе анимаций: этот тип ресольвера использует информацию об анимациях игрока для определения направления взгляда.
C++:
void ResolveAnimation(C_BasePlayer* player, Vector& angles) {

    if (player->GetSequenceActivity(player->GetSequence()) == ACT_CSGO_IDLE_TURN_BALANCEADJUST) {

        angles.yaw = player->GetLowerBodyYawTarget();

    }

}
В этом коде мы проверяем текущую анимацию игрока. Если она равна ACT_CSGO_IDLE_TURN_BALANCEADJUST, что соответствует анимации поворота в месте, мы устанавливаем целевое направление нижней части тела игрока (lower body yaw target) в качестве направления взгляда. Этот реcольвер может быть эффективен, когда игрок вращается.


3. Ресольвер на основе рандома: этот тип ресольвера использует случайное направление взгляда для обмана античита и улучшения степени устойчивости чита.
C++:
void ResolveRandom(C_BasePlayer* player, Vector& angles) {

    angles.yaw = rand() % 360;

}
Этот реcольвер устанавливает случайное значение в диапазоне от 0 до 359 в качестве целевого направления взгляда. Этот ресольвер может быть использован как средство для обмана врага, но может быть также неэффективен, так как он не учитывает реальные движения игрока и предполагает, что игрок смотрит в случайное направление.

4. Ресольвер на основе выстрела: этот тип ресольвера анализирует местоположение выстрела и использует его для определения направления взгляда игрока.
C++:
void ResolveShot(C_BasePlayer* player, Vector& angles) {

    if (!player->IsShooting()) {

        return;

    }

 

    angles.yaw = player->GetLowerBodyYawTarget();

}
В этом коде мы проверяем, стреляет ли игрок. Если это так, мы устанавливаем целевое направление нижней части тела игрока (lower body yaw target) в качестве направления взгляда. Этот реcольвер может быть эффективен, когда игрок стреляет, так как в момент выстрела игрок обычно поворачивается в сторону цели. Однако стоит отметить, что этот реcольвер может быть не эффективен, если игрок использует "quick peek"

Существует также множество других типов ресольверов. Выбор типа зависит от ваших целей и требований к читу.
Ты несёшь какую-то дичь
 
Пользователь
Статус
Оффлайн
Регистрация
13 Сен 2021
Сообщения
625
Реакции[?]
117
Поинты[?]
44K
Вот вы все спорите, а ТСу теперь это всё разбирать, кто прав а кто нет...
Живи, ТС.
 
Сверху Снизу