Вопрос Что нужно сделать с лв чтобы можно было юзать ресик на леерах

Пользователь
Статус
Оффлайн
Регистрация
9 Мар 2021
Сообщения
272
Реакции[?]
42
Поинты[?]
2K
объясняю, чтобы хитать с ресольвером на леерах в лв нужно что то сделать, только что?
 
Пользователь
Статус
Оффлайн
Регистрация
12 Окт 2018
Сообщения
281
Реакции[?]
62
Поинты[?]
11K
Анимлеер резольвер
Для логики нужна логика. А где взять логику? Имея логику, значит она у тебя уже есть, тебе не нужна 2-я логика, тк всего может быть 1 логика. У тебя есть логика? Если сказать что у тебя есть логика, напиши нам ресолвер на анимлеерах. Если нет у тебя логики, значит, ты нам не напишешь ресолвер на Анимлеерах. Логично? Да логично. Так как тут есть логика.
 
Пользователь
Статус
Оффлайн
Регистрация
9 Мар 2021
Сообщения
272
Реакции[?]
42
Поинты[?]
2K
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
хахапхпхпх, он есть, но вот проблема без него хитает лучше чем с ним и так только в лв (логика без лееров тоже есть)
Покажи как ты собираешь и юзаешь эти анимоверлеи...
 
Участник
Статус
Оффлайн
Регистрация
27 Фев 2019
Сообщения
1,125
Реакции[?]
395
Поинты[?]
50K
Для логики нужна логика. А где взять логику? Имея логику, значит она у тебя уже есть, тебе не нужна 2-я логика, тк всего может быть 1 логика. У тебя есть логика? Если сказать что у тебя есть логика, напиши нам ресолвер на анимлеерах. Если нет у тебя логики, значит, ты нам не напишешь ресолвер на Анимлеерах. Логично? Да логично. Так как тут есть логика.
В точности описал все вопросы на форуме по этой теме.

А по теме: есть уже разделы, где описывается принцип, видимо у тебя поиск сломался...
 
Пользователь
Статус
Оффлайн
Регистрация
9 Мар 2021
Сообщения
272
Реакции[?]
42
Поинты[?]
2K
В точности описал все вопросы на форуме по этой теме.

А по теме: есть уже разделы, где описывается принцип, видимо у тебя поиск сломался...
сломался, дай пожалуйста ссылочку хоть на одну тему
Покажи как ты собираешь и юзаешь эти анимоверлеи...
Код:
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;
            }
        }
типо такого, щас не дома точно не скажу
 
Забаненный
Статус
Оффлайн
Регистрация
28 Янв 2021
Сообщения
137
Реакции[?]
17
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
сломался, дай пожалуйста ссылочку хоть на одну тему

Код:
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;
            }
        }
типо такого, щас не дома точно не скажу
AnimationLayer layers[15];
AnimationLayer moveLayers[3][15];
Если ты будешь такие значения юзать, то у тебя вообще нхя не получится...
 
Пользователь
Статус
Оффлайн
Регистрация
9 Мар 2021
Сообщения
272
Реакции[?]
42
Поинты[?]
2K
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
сломался, дай пожалуйста ссылочку хоть на одну тему

Код:
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;
            }
        }
типо такого, щас не дома точно не скажу
абсолютно не правильно, ты даже лееры не собираешь....
АБСОЛЮТНО НЕ КАКИЕ,откуда он данные возьмет ? напрямую от структуры/класса??????
upd : В целом займись обучением не только игры ну и языка целиком...
 
Пользователь
Статус
Оффлайн
Регистрация
9 Мар 2021
Сообщения
272
Реакции[?]
42
Поинты[?]
2K
абсолютно не правильно, ты даже лееры не собираешь....
АБСОЛЮТНО НЕ КАКИЕ,откуда он данные возьмет ? напрямую от структуры/класса??????
upd : В целом займись обучением не только игры ну и языка целиком...
C++:
    if (player->m_fFlags() & FL_ONGROUND)
    {
        if (speed <= 1.1f)
        {
            if (speed > 1.0f && !moving)
            {
                if (resolver_adjust->previous_layers[3].m_flWeight == 0.0f && resolver_adjust->previous_layers[3].m_flCycle == 0.0f)
                {
                    float v53 = fabsf(resolver_adjust->previous_layers[6].m_flPlaybackRate - resolver_adjust->resolver_layers[0][6].m_flPlaybackRate);
                    float  v54 = fabsf(resolver_adjust->previous_layers[6].m_flPlaybackRate - resolver_adjust->resolver_layers[2][6].m_flPlaybackRate);
                    float  v55 = fabsf(resolver_adjust->previous_layers[6].m_flPlaybackRate - resolver_adjust->resolver_layers[1][6].m_flPlaybackRate);

                    if (v53 < v54 || v55 <= v55 || float(!v55 * 1000.0))
                    {
                        if (v54 > v55 || v53 >= v54 || float(v54 * 1000.0))
                        {
                            if ((v54 * 10000.f) != (v55 * 1000.0))
                            {
                                if (v53 <= v54)
                                    move_delta = v53;
                                else
                                    move_delta = v53;
                                if (move_delta > v55)
                                    move_delta = v54;

                                /*
                                @note - der grobe.
                                create animation layer a two matrixes and create !server goal feet yaw.
                                */

                                if (!(move_delta * 1000.f) && (v55 * 1000.f) != (v54 * 1000.f))
                                {
                                    if (move_delta == v55)
                                    {
                                //    v56 = -v56;
                                        v54 = v55;
                                    }
                                    else if (move_delta == v54)
                                    {
                                        v55 = v54;
                                    LABEL_51:
                                        auto delta_lby = AngleDiff(animstate->m_flEyeYaw, player->m_flLowerBodyYawTarget());
                                        if (abs(delta_lby) > 35.f)
                                                delta_lby = - delta_lby;

                                        goto LABEL_51;
                                    }
                                }
                            }
                        }
                    }
                }
        
            }
        }
    

        /*
        @note - der grobe.
        break adjust balance for try resolve player using desync balance or break lby.
        */

        else if (speed <= 0.1f)
        {
            if (resolver_adjust->previous_layers[3].m_flWeight == 1.0f && resolver_adjust->previous_layers[3].m_flWeightDeltaRate == 0.0f)
            {
                if (act == 979)
                {
                    auto delta_lby = AngleDiff(animstate->m_flEyeYaw, player->m_flLowerBodyYawTarget());
                    if (abs(delta_lby) > 35.f)
                        delta_lby = - delta_lby;
                }
                else
                {
                    v56 == -delta;
                }
            }
        }
    }
а так?
 
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
C++:
    if (player->m_fFlags() & FL_ONGROUND)
    {
        if (speed <= 1.1f)
        {
            if (speed > 1.0f && !moving)
            {
                if (resolver_adjust->previous_layers[3].m_flWeight == 0.0f && resolver_adjust->previous_layers[3].m_flCycle == 0.0f)
                {
                    float v53 = fabsf(resolver_adjust->previous_layers[6].m_flPlaybackRate - resolver_adjust->resolver_layers[0][6].m_flPlaybackRate);
                    float  v54 = fabsf(resolver_adjust->previous_layers[6].m_flPlaybackRate - resolver_adjust->resolver_layers[2][6].m_flPlaybackRate);
                    float  v55 = fabsf(resolver_adjust->previous_layers[6].m_flPlaybackRate - resolver_adjust->resolver_layers[1][6].m_flPlaybackRate);

                    if (v53 < v54 || v55 <= v55 || float(!v55 * 1000.0))
                    {
                        if (v54 > v55 || v53 >= v54 || float(v54 * 1000.0))
                        {
                            if ((v54 * 10000.f) != (v55 * 1000.0))
                            {
                                if (v53 <= v54)
                                    move_delta = v53;
                                else
                                    move_delta = v53;
                                if (move_delta > v55)
                                    move_delta = v54;

                                /*
                                @note - der grobe.
                                create animation layer a two matrixes and create !server goal feet yaw.
                                */

                                if (!(move_delta * 1000.f) && (v55 * 1000.f) != (v54 * 1000.f))
                                {
                                    if (move_delta == v55)
                                    {
                                //    v56 = -v56;
                                        v54 = v55;
                                    }
                                    else if (move_delta == v54)
                                    {
                                        v55 = v54;
                                    LABEL_51:
                                        auto delta_lby = AngleDiff(animstate->m_flEyeYaw, player->m_flLowerBodyYawTarget());
                                        if (abs(delta_lby) > 35.f)
                                                delta_lby = - delta_lby;

                                        goto LABEL_51;
                                    }
                                }
                            }
                        }
                    }
                }
       
            }
        }
   

        /*
        @note - der grobe.
        break adjust balance for try resolve player using desync balance or break lby.
        */

        else if (speed <= 0.1f)
        {
            if (resolver_adjust->previous_layers[3].m_flWeight == 1.0f && resolver_adjust->previous_layers[3].m_flWeightDeltaRate == 0.0f)
            {
                if (act == 979)
                {
                    auto delta_lby = AngleDiff(animstate->m_flEyeYaw, player->m_flLowerBodyYawTarget());
                    if (abs(delta_lby) > 35.f)
                        delta_lby = - delta_lby;
                }
                else
                {
                    v56 == -delta;
                }
            }
        }
    }
а так?
абсолютно не правильно, ты даже лееры не собираешь....
АБСОЛЮТНО НЕ КАКИЕ,откуда он данные возьмет ? напрямую от структуры/класса??????
upd : В целом займись обучением не только игры ну и языка целиком...
 
Пользователь
Статус
Оффлайн
Регистрация
9 Мар 2021
Сообщения
272
Реакции[?]
42
Поинты[?]
2K
можешь дать пример правильного кода, варианта исполнения такого ресика?
 
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
Участник
Статус
Оффлайн
Регистрация
27 Фев 2019
Сообщения
1,125
Реакции[?]
395
Поинты[?]
50K
Ну во-первых количество слоёв 13...
тобишь C_AnimationLayer layer[3][13];
то есть уже ошибка, во вторых тебе для каждого сайда нужно сторить и обновлять анимацию, тебе объяснили...
Научись пользоваться поиском.
 
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
Ну во-первых количество слоёв 13...
тобишь C_AnimationLayer layer[3][13];
то есть уже ошибка, во вторых тебе для каждого сайда нужно сторить и обновлять анимацию, тебе объяснили...
Научись пользоваться поиском.
Подчеркну кол-во слоев - 15 ( движок ),но в кс используется только 13.
Причём 13 это не конкретно слой а его кол-во в нумерации устанавливается на SetNumAnimLayers() и на OnReset().
А по поводу сайда ( тс'у ) как минимум анимируешь влево , записываешь лееры, делаешь сетап костей, ресторишь и по новой уже с другим сайдом..
 
Участник
Статус
Оффлайн
Регистрация
27 Фев 2019
Сообщения
1,125
Реакции[?]
395
Поинты[?]
50K
Подчеркну кол-во слоев - 15 ( движок ),но в кс используется только 13.
Причём 13 это не конкретно слой а его кол-во в нумерации устанавливается на SetNumAnimLayers() и на OnReset().
А по поводу сайда ( тс'у ) как минимум анимируешь влево , записываешь лееры, делаешь сетап костей, ресторишь и по новой уже с другим сайдом..
Я знаю, что 15, я акцентировал внимание на том, что в кс конкретно 13 слоёв, 12 из которых используются.
 
Пользователь
Статус
Оффлайн
Регистрация
9 Мар 2021
Сообщения
272
Реакции[?]
42
Поинты[?]
2K
Ну во-первых количество слоёв 13...
тобишь C_AnimationLayer layer[3][13];
то есть уже ошибка, во вторых тебе для каждого сайда нужно сторить и обновлять анимацию, тебе объяснили...
Научись пользоваться поиском.
в десинк випе это правильно сделано?
 
Пользователь
Статус
Оффлайн
Регистрация
19 Янв 2019
Сообщения
348
Реакции[?]
99
Поинты[?]
6K
Ресольвер на леерах = геморой 15 степени (движок очка), 13 степени по существу. Советую использовать другой метод
 
Начинающий
Статус
Оффлайн
Регистрация
28 Дек 2020
Сообщения
239
Реакции[?]
20
Поинты[?]
3K
что бы LW как минимум начал стрелять и более менее фиксить лееры нужно занятся animationsystem.cpp как минимум все 15е лееры поменять на 13 и в ресольвере тоже это указать , хотя в ресольвере по леерам лучше вообще юзать только 12 , 3 , 13 , 6 лееры не больше , в анимейшенсустем.h нужно в аджастмене прописать такие же лееры как и в ресике и в анимейшенсустем.cpp
чтоб вообще не парится просто все леерс [15] поменя на 13 или 12 , абсолютно везде и увидишь результат . PS если допустим поменял лееры в аниматионсустем.ссп то меня их и в аниматионсустем.h в аджаст классе иначе будет крашить
 
Последнее редактирование:
Сверху Снизу