HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- weapon Attachment (https://hlfx.ru/forum/showthread.php?threadid=275)
Отправлено Дядя Миша 07-05-2012 в 16:46:
Цитата:
Trixon писал:
Проблема в том, что гильзы выпадают с того МЕСТА, с которого я включаю thirdperson
ну логично )))))
В тхирдперсоне виевмодель не рисуется и её аттачменты не обновляются.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Trixon 07-05-2012 в 16:54:
Как это исправить? 
Рисуется p_ модель. Как к ней обратиться и считать её аттачменты?
__________________
HL:WE
Отправлено Ghoul [BB] 07-05-2012 в 18:09:
Мдя, насущная проблема- ка считать аттачменты из p_модели оружия???
в частности, модель игрока - она главная, модель оружия - второстепенная. И вот с главной модели мы аттачи видим, с второстепенной нет
Отправлено Дядя Миша 07-05-2012 в 18:38:
Цитата:
Trixon писал:
Рисуется p_ модель. Как к ней обратиться и считать её аттачменты?
у p_модели нету аттачментов. Аттачменты берутся из модельки игрока.
Там на этот случай сразу несколько штук.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Ghoul [BB] 07-05-2012 в 19:11:
я знаю, что нет. Но добавить модели аттачменты и скомпилировать - пара минут. Ну, от силы 5...
Важно ЗАСТАВИТЬ игру видеть потом эти аттачменты. В Каунтер-страйк, начиная с самых ранних версий, это сделали: маззлфлеш крепился к модели оружия, что в руках thirdperson, а на модели игрока они были постольку-поскольку...
Отправлено Дядя Миша 07-05-2012 в 20:01:
Цитата:
Ghoul [BB] писал:
Важно ЗАСТАВИТЬ игру видеть потом эти аттачменты
да игре без разницы вообщем-то. Ну надо с p-модели, не вопрос, берите с p-модели.
Добавлено 07-05-2012 в 23:57:
Только придумайте куда сохранять посчитанные аттачменты. Впринципе их можно писать прямо в плеерскую энтить.
Добавлено 08-05-2012 в 00:01:
Собственно, я хызы почему вы такую простую вещь так долго одолеть не можете?
Вот в этом коде, в StudioModelRenderer найдите функцию StudioDrawPlayer и там участок
C++ Source Code:
1 | if (pplayer->weaponmodel) |
3 | cl_entity_t saveent = *m_pCurrentEntity; |
5 | model_t *pweaponmodel = IEngineStudio.GetModelByIndex( pplayer->weaponmodel ); |
7 | m_pStudioHeader = (studiohdr_t *)IEngineStudio.Mod_Extradata (pweaponmodel); |
8 | IEngineStudio.StudioSetHeader( m_pStudioHeader ); |
10 | StudioMergeBones( pweaponmodel); |
12 | IEngineStudio.StudioSetupLighting (&lighting); |
16 | StudioCalcAttachments( ); |
18 | *m_pCurrentEntity = saveent; |
И поменяйте
StudioCalcAttachments()
и
*m_pCurrentEntity = saveent;
местами. Должно помочь. Я правда сам не пробывал.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Ghoul [BB] 08-05-2012 в 18:56:
Ну что же, попробуем.
В принципе, задумка такова, чтобы не только "видеть" аттачмены (это первый шаг), но потом и из самой P_модели вызывать эвент (ну, как от модели для первого лица), само собой, иё надо будет анимировать.. Например, щоб работали крутящиеся стволы у мини-пушки, хроноцептра. Били лучи дисплейсера или можно было подрисовать выхлоп газов сзади рокет-лончера. (аля Крайзис)
Отправлено Дядя Миша 08-05-2012 в 20:15:
ай, вы делайте, я вам потом интересную плюшку покажу - как анимации на p-моделях проигрывать 
В TFC такое есть, да и в моём римейке кваки, если присмотреться.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Ghoul [BB] 08-05-2012 в 23:33:
Нет, Дядя Миша, этот метод НЕ работает...
Отправлено XaeroX 08-05-2012 в 23:39:
Ghoul [BB]
Кстати, давно спросить хотел: а где Царь? Он же вроде тебе с кодом помогал?
__________________
Отправлено Ghoul [BB] 09-05-2012 в 01:17:
Хотя... мой косяк. Не поправил саму модельку игрока. Всё пашет.. акбэ.. по предварительным оценкам...
А как теперь анимировать модели-то?
Отправлено Дядя Миша 09-05-2012 в 07:02:
XaeroX Царь умер...
Добавлено 09-05-2012 в 11:00:
Цитата:
Ghoul [BB] писал:
А как теперь анимировать модели-то?
Очень просто.
C++ Source Code:
1 | if (pplayer->weaponmodel) |
3 | mstudioseqdesc_t *pseqdesc = (mstudioseqdesc_t *)((byte *)m_pStudioHeader + m_pStudioHeader->seqindex) + m_pCurrentEntity->curstate.sequence; |
5 | cl_entity_t saveent = *m_pCurrentEntity; |
7 | model_t *pweaponmodel = IEngineStudio.GetModelByIndex( pplayer->weaponmodel ); |
9 | m_pStudioHeader = (studiohdr_t *)IEngineStudio.Mod_Extradata (pweaponmodel); |
10 | IEngineStudio.StudioSetHeader( m_pStudioHeader ); |
11 | // FIXME: use stristr instead |
12 | if( strstr( pseqdesc->label, "shoot" )) |
14 | int iShootSequence = LookupSequence( "shoot" ); |
16 | if( iShootSequence != -1 ) // g-cont. plays shoot sequence on a pmodel |
17 | m_pCurrentEntity->curstate.sequence = iShootSequence; |
Это измененная часть того условия. Адаптированная функция LookupSequence добавляется в класс CStudioModelRenderer
C++ Source Code:
1 | int CStudioModelRenderer::LookupSequence( const char *label ) |
6 | mstudioseqdesc_t *pseqdesc; |
8 | pseqdesc = (mstudioseqdesc_t *)((byte *)m_pStudioHeader + m_pStudioHeader->seqindex); |
10 | for (int i = 0; i < m_pStudioHeader->numseq; i++) |
12 | if (!stricmp( pseqdesc[ i ].label, label )) |
Добавлено 09-05-2012 в 11:02:
ЗЫ, Разумеется анимация стрельбы у p_модели должна называться "shoot".
По аналогии можно сделать анимации на что угодно.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено XaeroX 09-05-2012 в 08:05:
Цитата:
Дядя Миша писал:
Царь умер...
Я, между прочим, серъёзно спрашиваю.__________________
Отправлено Ghoul [BB] 09-05-2012 в 19:17:
Цитата:
XaeroX писал:
Ghoul [BB]
Кстати, давно спросить хотел: а где Царь? Он же вроде тебе с кодом помогал?
Царь. так уже не раз обсуждали. Свихнулся Царь. Поехал. как у нас говорят. На почве алкоголизма, изнуряющей работы и внутренних противоречий.
Отправлено XaeroX 09-05-2012 в 20:13:
Жуть какая. То есть он больше код не пишет?
__________________