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

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=4271)


Отправлено ILZM 01-02-2014 в 19:31:

Индекс шминдекс...

Доброй ночи всем, надеюсь на вашу помощь).

Не получается вызвать функцию CalcSomething у NewEntity

C++ Source Code:
1
class CBaseNewEntity : public CBaseAnimating
2
{
3
  DECLARE_CLASS ( CBaseNewEntity ); // ???
4
public:
5
  void Spawn ( void );
6
  void CalcSomething ( void );
7
};
8
 
9
LINK_ENTITY_TO_CLASS ( NewEntity, CBaseNewEntity );
10
 
11
void CBaseNewEntity :: Spawn ( )
12
{
13
  SET_MODEL ( ENT ( pev ), NULL );
14
 
15
  pev->modelindex =	0;
16
 
17
  ResetSequenceInfo ( );
18
}
19
 
20
void CBaseNewEntity :: CalcSomething ( void )
21
{
22
  StudioFrameAdvance ( );
23
 
24
  ALERT ( at_console, "Calc" );
25
}


В функции

C++ Source Code:
1
BOOL CMP5 :: Deploy ( )
2
{
3
  ...
4
 
5
  CBaseNewEntity *pNewEntity = GetClassPtr ( ( CBaseNewEntity*) pev );
6
 
7
  pNewEntity->CalcSomething ( );
8
 
9
  return TRUE;
10
}


Где NewEntity создается в

C++ Source Code:
1
void CBasePlayer :: CreateNewEntity ( void )
2
{
3
  CBaseEntity *pEntity = CBaseEntity :: Create ( "NewEntity", Vector ( 0, 0, 0 ), Vector ( 0, 0, 0 ), edict ( ) );
4
 
5
  pev->euser4 = ENT ( pEntity );
6
 
7
  ALERT ( at_console, "NewEntity\n" );
8
}


Т. е. создется NewEntity, где его эдикт пихается в euser4 игрока. А у MP5 вызывается CalcSomething ( ). Проблема в том, что
C++ Source Code:
CBaseNewEntity *pNewEntity = GetClassPtr ( ( CBaseNewEntity*) pev );


- не получается получить pNewEntity.

Хотя мб получается получить?


Отправлено Дядя Миша 01-02-2014 в 19:38:

Ну а зачем ты ей pev суёшь? Суй NULL и автоматом зареспавнится новая.
Но спаун ей вручную вызовешь.

__________________
My Projects: download page

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

Цитата:

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


Отправлено ILZM 01-02-2014 в 19:40:

Мда уж, 200 просмотров, а никто не помог...

Добавлено 01-02-2014 в 23:40:

Дядя Миша , это же придется каждый раз заново спаунить?


Отправлено Дядя Миша 01-02-2014 в 19:53:

Ладно, начнём с самого начала. Что тебе вообще надо сделать?

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 01-02-2014 в 20:05:

C++ Source Code:
1
BOOL CMP5 :: Deploy ( )
2
{
3
  ...
4
 
5
  CBaseNewEntity *pNewEntity = (CBaseNewEntity*)CBaseEntity::Instance( m_pPlayer->pev->euser4 );
6
 
7
  pNewEntity->CalcSomething ( );
8
 
9
  return TRUE;
10
}

__________________

xaerox on Vivino


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

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