Написал idle-функцию для оружия, скомпилировал и сервер и клиент, положил в соответствующие папки мода. Но пушка проигрывает одну и ту же idle-анимацию, при этом заметно моргание в конце проигрывания, хотя переменной m_flTimeWeaponIdle я приравниваю соотношение Frames к FPS модели (модель v_desert_eagle из Опфора). Собственно, в чём подвох?
Ещё непонятно, почему в UTIL_SharedRandomFloat передаются 10 и 15. Если это диапозон, то почему он берется от 10 до 15, а сравнение идет с числами от 0 до 1? Копировал из магнума, а у него анимации проигрываются всегда.
Но осталась проблема моргания. Оказалось, в анимации нулевому фрейму соответствует предпоследний фрейм, а не последний. Уменьшил везде на единицу - однако моргание всё равно заметно. Есть ли способ исправить?
Сейчас кстати запустил опфор - там дигл тоже моргает при переходе с одной idle-анимации на другую.
есть конечно. Декомпилить модельку, и убрать флаг LOOP изо всех idle-анимаций. Проблема моргания происходит из-за того, что в халфе намеренно отключен блендинг между анимациями для viewmodel.
PLut писал: Зачем его отключили и как его включить?
отключили его затем, что 80% анимаций с ним смотрятся по идиотски, поскольку оружие в любой момент из режима idle может перейти в режим стрельбы. Включить его можно только в движке. Я включал в ксаше, но результат получился мерзкий, как я и говорил выше.
Кроме того оружие имеет особенности анимации, при котором основной animtime не используется, а вся анимация идет через latched.animtime - это так называемая авто-анимация valve - без внешней синхронизации.
Это тоже затрудняет использование блендинга.
Дядя Миша Просто я вспомнил монтировку в хл2, там после удара монтировка сначала возвращается не на свою прежнюю позицию, а потом плавно сдвигается в нужное место. И сделано это кодом.
Для чего нужна функция AddToPlayer и почему она прописана не у всех оружий? Например, у монтировки нет. И зачем вообще нужны эвенты (sc-файлы), если там прописано одно и то же? Можно ли от них вовсе избавиться?