HLFX.Ru Forum Страницы (3): « 1 [2] 3 »
Показать все 34 сообщений этой темы на одной странице

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)
2
{
3
  cl_entity_t saveent = *m_pCurrentEntity;
4
 
5
  model_t *pweaponmodel = IEngineStudio.GetModelByIndex( pplayer->weaponmodel );
6
 
7
  m_pStudioHeader = (studiohdr_t *)IEngineStudio.Mod_Extradata (pweaponmodel);
8
  IEngineStudio.StudioSetHeader( m_pStudioHeader );
9
 
10
  StudioMergeBones( pweaponmodel);
11
 
12
  IEngineStudio.StudioSetupLighting (&lighting);
13
 
14
  StudioRenderModel( );
15
 
16
  StudioCalcAttachments( );
17
 
18
  *m_pCurrentEntity = saveent;
19
}

И поменяйте
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]
Кстати, давно спросить хотел: а где Царь? Он же вроде тебе с кодом помогал?

__________________

xaerox on Vivino


Отправлено 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)
2
{
3
  mstudioseqdesc_t *pseqdesc = (mstudioseqdesc_t *)((byte *)m_pStudioHeader + m_pStudioHeader->seqindex) + m_pCurrentEntity->curstate.sequence;
4
 
5
  cl_entity_t saveent = *m_pCurrentEntity;
6
 
7
  model_t *pweaponmodel = IEngineStudio.GetModelByIndex( pplayer->weaponmodel );
8
 
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" ))
13
  {
14
    int iShootSequence = LookupSequence( "shoot" );
15
 
16
    if( iShootSequence != -1 )	// g-cont. plays shoot sequence on a pmodel
17
      m_pCurrentEntity->curstate.sequence = iShootSequence;
18
  }

Это измененная часть того условия. Адаптированная функция LookupSequence добавляется в класс CStudioModelRenderer
C++ Source Code:
1
int CStudioModelRenderer::LookupSequence( const char *label )
2
{
3
  if (!m_pStudioHeader)
4
    return 0;
5
 
6
  mstudioseqdesc_t	*pseqdesc;
7
 
8
  pseqdesc = (mstudioseqdesc_t *)((byte *)m_pStudioHeader + m_pStudioHeader->seqindex);
9
 
10
  for (int i = 0; i < m_pStudioHeader->numseq; i++)
11
  {
12
    if (!stricmp( pseqdesc[ i ].label, label ))
13
      return i;
14
  }
15
  return -1;
16
}


Добавлено 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:

Цитата:
Дядя Миша писал:
Царь умер...

Я, между прочим, серъёзно спрашиваю.

__________________

xaerox on Vivino


Отправлено Ghoul [BB] 09-05-2012 в 19:17:

Цитата:
XaeroX писал:
Ghoul [BB]
Кстати, давно спросить хотел: а где Царь? Он же вроде тебе с кодом помогал?


Царь. так уже не раз обсуждали. Свихнулся Царь. Поехал. как у нас говорят. На почве алкоголизма, изнуряющей работы и внутренних противоречий.


Отправлено XaeroX 09-05-2012 в 20:13:

Жуть какая. То есть он больше код не пишет?

__________________

xaerox on Vivino


Временная зона GMT. Текущее время 15:22. Страницы (3): « 1 [2] 3 »
Показать все 34 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024