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

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Нужна помощь с фапотькой (https://hlfx.ru/forum/showthread.php?threadid=3279)


Отправлено PLut 29-02-2012 в 21:21:

Arrow Нужна помощь с шапочкой

Вообщем надумал я сделать шлем, написал айтем, задал ему бит, чтобы можно было просто узнавать на сервере/клиенте есть ли у нас он. Только проблема в том, что когда я поднимаю шлем, то он рисуется у моего товарища (по-скольку у его модели игрока, как я понял, индекс 0). Собственно, это логично используя этот код:

C++ Source Code:
1
if (gHUD.m_iWeaponBits & (1<<(WEAPON_HELMET)))
2
{
3
  if (m_pRenderModel == IEngineStudio.SetupPlayerModel( 0 ))
4
  {
5
    cl_entity_t saveent = *m_pCurrentEntity;
6
 
7
    model_t *helmet = IEngineStudio.Mod_ForName("models/p_helmet.mdl", 1);
8
 
9
    m_pStudioHeader = (studiohdr_t *)IEngineStudio.Mod_Extradata(helmet);
10
    IEngineStudio.StudioSetHeader( m_pStudioHeader );
11
 
12
    StudioMergeBones(helmet);
13
 
14
    IEngineStudio.StudioSetupLighting (&lighting);
15
 
16
    StudioRenderModel( );
17
 
18
    StudioCalcAttachments( );
19
 
20
    *m_pCurrentEntity = saveent;
21
  }
22
}


Хочу спросить: как сделать правильно? Чтобы, когда поднимаешь шлем, то он рисовался на твоей бошке, а не на чужой
Спасибо за ответы заранее.

__________________
Base Defense on Steam, ModDB


Отправлено HAWK0044 01-03-2012 в 05:42:

проверяй текущего игрока ,вместо:
IEngineStudio.SetupPlayerModel( 0 ) вставь проверку на gEngfuncs.GetLocalPlayer->model что-то вроде этого
НО ты учти ,что он будет рисоваться только у тебя.


Отправлено marikcool 01-03-2012 в 06:11:

просто сменить body игроку или сделать атач нельзя?


Отправлено PLut 01-03-2012 в 06:43:

HAWK0044 Не вариант, соль в том, что это в мультиплеере нужно.
marikcool Как альтернативный вариант - body, а под атачем ты что имеешь в виду?

__________________
Base Defense on Steam, ModDB


Отправлено PomanoB 01-03-2012 в 06:54:

Как я знаю из амхх, надо создать энтити, назначить модельку шлема, поставить ей aiment на нужного игрока и MOVETYPE_FOLLOW


Отправлено PLut 01-03-2012 в 07:00:

PomanoB Спасибо, попробую.

__________________
Base Defense on Steam, ModDB


Отправлено Дядя Миша 01-03-2012 в 07:53:

Цитата:
PLut писал:
if (m_pRenderModel == IEngineStudio.SetupPlayerModel( 0 ))

какого ты туда ноль влепил?

__________________
My Projects: download page

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

Цитата:

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


Отправлено PLut 01-03-2012 в 07:59:

Дядя Миша У меня m_nPlayerIndex там.

__________________
Base Defense on Steam, ModDB


Отправлено Дядя Миша 01-03-2012 в 09:16:

Нет. У тебя там ноль.
Вообще шлем удобно рисовать на манер вьюмодели.

__________________
My Projects: download page

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

Цитата:

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


Отправлено PLut 01-03-2012 в 10:31:

Дядя Миша Мне не нужен шлем от первого лица, а нужен от третьего. Проверка у меня вообще бредовая, поэтому я и спрашиваю: как сделать правильно?

__________________
Base Defense on Steam, ModDB


Отправлено Дядя Миша 01-03-2012 в 12:10:

Если тебе нужен шлем от третьего лица - сделай модельку и шлем отдельным боди. Логично же?
А боди сам разошлется всем правильно.

__________________
My Projects: download page

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

Цитата:

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


Отправлено PLut 01-03-2012 в 19:42:

Всем спасибо, сделал шлем отдельным body.

__________________
Base Defense on Steam, ModDB


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

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