HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > aiment
Как присвоить
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
ILZM
LAW

Дата регистрации: Oct 2011
Проживает: Mega City One
Сообщений: 301

Рейтинг



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?)

Сообщить модератору | | IP: Записан
Сообщение: 126048

Старое сообщение 12-10-2013 13:55
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



модели аттачатся на сервере. Ставишь 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'

Сообщить модератору | | IP: Записан
Сообщение: 126051

Старое сообщение 12-10-2013 15:08
-
ILZM
LAW

Дата регистрации: Oct 2011
Проживает: Mega City One
Сообщений: 301

Рейтинг



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

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 )

Сообщить модератору | | IP: Записан
Сообщение: 126052

Старое сообщение 12-10-2013 15:20
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



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

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 126055

Старое сообщение 12-10-2013 16:33
-
ILZM
LAW

Дата регистрации: Oct 2011
Проживает: Mega City One
Сообщений: 301

Рейтинг



Почему, если вызвать анимацию у присоединенной модели без вызова анимации у основной модели, то ничего не происходит?)
Примечание:
В 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
, то эта анимация проигралась. Вотъ.

Сообщить модератору | | IP: Записан
Сообщение: 126067

Старое сообщение 13-10-2013 15:29
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 10:53. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > aiment
Как присвоить
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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