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:
3 | void Create_Test ( void ) |
9 | // Load it up with some bogus data |
10 | pViewMdl = GET_VIEWMODEL ( ); |
15 | hMdl = gEngfuncs.CL_LoadModel ( "models/v_tripmine.mdl", &iMdlIndex ); |
17 | pTest.curstate.aiment = pViewMdl->index; |
18 | pTest.curstate.movetype = MOVETYPE_FOLLOW; |
21 | pTest.curstate.modelindex = iMdlIndex; |
23 | gEngfuncs.CL_CreateVisibleEntity ( ET_NORMAL, &pTest ); |
C++ Source Code:
не подходит, т.к. нужно присоединить модели.
Если следовать этому коду, то, похоже, все правильно)
C++ Source Code:
1 | if( gEngfuncs.GetEntityByIndex( tr.child_entities[i]->curstate.aiment ) == e ) |
3 | // copy the parent origin for right frustum culling |
4 | tr.child_entities[i]->origin = e->origin; |
6 | RI.currententity = tr.child_entities[i]; |
7 | RI.currentmodel = RI.currententity->model; |
8 | gRenderfuncs.R_SetCurrentEntity( RI.currententity ); |
10 | DrawStudioModelInternal( RI.currententity, true ); |
Вопрос в том, что как правильно присвоить 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 ); |
3 | IEngineStudio.StudioSetHeader ( m_pStudioHeader ); |
5 | m_pCurrentEntity->curstate.sequence = pTest.curstate.sequence; |
7 | StudioMergeBones ( hMdl ); |
8 | StudioSetupLighting ( &lighting ); |
Появилась эта C++ Source Code:
m_pCurrentEntity->curstate.sequence = pViewMdl2.curstate.sequence; |
строка для того, чтобы у дочерней модели игралась анимация костей, которых нет у основной.
Т. е. если где-нибудь в другом месте написать просто C++ Source Code:
pTest.curstate.sequence = iAnim |
, то эта анимация проигралась. Вотъ.