Показать все 10 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- CBaseAnimating (https://hlfx.ru/forum/showthread.php?threadid=5290)
CBaseAnimating
Собственно сабж. Как заморозить анимацию в текущем состоянии кадра и интерполяции? Если выставить pev->framerate = 0.0, то оно замораживается в первом кадре анимации.
Есть функция StopAnimation. Она как раз таки и выставляет pev->framerate = 0.0; Других способов не предусмотрено. А ты через эвент анимационный выставляй. Я так делал в римейке Кваки для зомбаков. Там же анимация падения-вставания - это одна анимация. И вот он упал и через какое-то время должен подняться. И я по эвенту - стопмашина. А потом ждём некоторое время и подымаем его.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Понял! А как на сервере получить позицию аттачмента? На клиенте есть IEngineStudio.StudioGetAttachment, а на сервере?
domded
У CBaseAnimating есть функция GetAttachment().
__________________
Мне кажется, что это немого не то. Что-то оно не учитывает пройденный путь.
При запуске анимации я делаю следующее
1 | ... |
2 | pev->sequence = iMySequence; |
3 | ResetSequenceInfo(); |
4 | GetAttachment( 0, prevPos, prevAng ); |
5 | SetThink( AnimThinkEnd ); |
6 | SetNextThink( flSeqLen ); // длина анимации |
7 | ... |
8 | void CMyAnimate::AnimThinkEnd( void ) |
9 | { |
10 | Vector nowPos, nowAng; |
11 | GetAttachment( 0, nowPos, nowAng ); |
12 | } |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Да, так оно и есть. Если поставить think на полную длину анимации, pev->frame в конце равен нулю, хотя визуально анимация остаётся в последнем кадре . А как отловить момент, когда на сервере pev->frame = 255.0, чтобы корректно получить новую позицию аттачмента именно во время 255.0?
Ну например в ResetSequenceInfo и там проверку на pev->frame >= 256.0f
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Получилось! Так же задам следующий вопрос тут, дабы не плодить темы:
Как передвинуть эту CBaseAnimating? У монстряков понятно, есть таски. А с CBaseAnimating как?
Пробую сделать
UTIL_MoveToOrigin( ENT( pev ), GetAbsOrigin() + Vector( 0.0, 0.0, 1.0 ), 36.0f, MOVE_STRAFE ) |
ноклип и велосити обычно достаточно. Ищи где ошибся, может где-то велосити в 0 сбрасывается.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Временная зона GMT. Текущее время 19:04. | Показать все 10 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024