|  | Показать все 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. Текущее время 11:39. | Показать все 10 сообщений этой темы на одной странице | 
  На основе vBulletin версии 2.3.0
  Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
  Дизайн и программирование: Crystice Softworks © 2005 - 2024