HLFX.Ru Forum
Показать все 5 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- aiment (https://hlfx.ru/forum/showthread.php?threadid=4124)


Отправлено ILZM 12-10-2013 в 13:55:

aiment

Есть функция, которая вызывается в самом конце V_CalcFirstPersonRefdef

C++ Source Code:
1
cl_entity_t    pTest;
2
 
3
void Create_Test ( void )
4
{
5
  cl_entity_t        *pViewMdl;
6
  int                     iMdlIndex;
7
  struct model_s	 *hMdl;
8
 
9
  // Load it up with some bogus data
10
  pViewMdl = GET_VIEWMODEL ( );
11
 
12
  if ( !pViewMdl )
13
    return;
14
 
15
  hMdl =  gEngfuncs.CL_LoadModel ( "models/v_tripmine.mdl", &iMdlIndex );
16
  //pTest= *pViewMdl;
17
  pTest.curstate.aiment =    pViewMdl->index;
18
  pTest.curstate.movetype = MOVETYPE_FOLLOW;
19
  pTest.player =	 0;
20
  pTest.model =	 hMdl;
21
  pTest.curstate.modelindex =   iMdlIndex;
22
 
23
  gEngfuncs.CL_CreateVisibleEntity ( ET_NORMAL, &pTest );
24
}


C++ Source Code:
pTest= *pViewMdl;
не подходит, т.к. нужно присоединить модели.

Если следовать этому коду, то, похоже, все правильно)
C++ Source Code:
1
if( gEngfuncs.GetEntityByIndex( tr.child_entities[i]->curstate.aiment ) == e )
2
{
3
  // copy the parent origin for right frustum culling
4
  tr.child_entities[i]->origin = e->origin;
5
 
6
  RI.currententity = tr.child_entities[i];
7
  RI.currentmodel = RI.currententity->model;
8
  gRenderfuncs.R_SetCurrentEntity( RI.currententity );
9
 
10
  DrawStudioModelInternal( RI.currententity, true );
11
}

Вопрос в том, что как правильно присвоить aiment? Чтобы модель pTest повторял pViewMdl?)


Отправлено Дядя Миша 12-10-2013 в 15:08:

модели аттачатся на сервере. Ставишь MOVETYPE_FOLLOW и записываешь entindex в pev->aiment.
Это я тебе скажу для чего надо. Например CTF - там на игрока цеплюятся флаги. Вот как раз через эту систему. Но можно не только флаг нацепить, а сколько угодно всего.

Добавлено 12-10-2013 в 19:08:

Да и всё равно задача непонятна.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ILZM 12-10-2013 в 15:20:

Клиентская энтити, а не серверная. Как на клиенте приаттачить?

C++ Source Code:
gEngfuncs.CL_CreateVisibleEntity ( ET_NORMAL, &pTest );

А то каждый почти кадр вызывается)

И, вообще, это хороший способ создания клиентской энтити?
C++ Source Code:
pTest.curstate.aiment =    pViewMdl->index;
pTest.curstate.movetype = MOVETYPE_FOLLOW;

Это не работает.

Добавлено 12-10-2013 в 19:20:

Условию точнее
C++ Source Code:
gEngfuncs.GetEntityByIndex( tr.child_entities[i]->curstate.aiment ) == e )


Отправлено Дядя Миша 12-10-2013 в 16:33:

да не сработает оно, т.к. у вьюмодели нет никакого индекса )))

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ILZM 13-10-2013 в 15:29:

Почему, если вызвать анимацию у присоединенной модели без вызова анимации у основной модели, то ничего не происходит?)
Примечание:
В StudioDrawModel

C++ Source Code:
1
m_pStudioHeader = ( studiohdr_t *) IEngineStudio.Mod_Extradata ( hMdl );
2
 
3
IEngineStudio.StudioSetHeader ( m_pStudioHeader );
4
 
5
m_pCurrentEntity->curstate.sequence = pTest.curstate.sequence;
6
 
7
StudioMergeBones ( hMdl );
8
StudioSetupLighting ( &lighting );

Появилась эта
C++ Source Code:
m_pCurrentEntity->curstate.sequence = pViewMdl2.curstate.sequence;
строка для того, чтобы у дочерней модели игралась анимация костей, которых нет у основной.
Т. е. если где-нибудь в другом месте написать просто
C++ Source Code:
pTest.curstate.sequence = iAnim
, то эта анимация проигралась. Вотъ.


Временная зона GMT. Текущее время 12:33.
Показать все 5 сообщений этой темы на одной странице

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