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

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


Отправлено Scream 28-12-2007 в 17:34:

Как прикрутить к точечной энити отображаемый парамер?

Сидел лазал по коду и возникла мысль - как привинтить к энтити параметр, который вводился бы в хаммере и отображался бы в игре текстом, например при активации ентити?

Пробовал по аналогии с отображением названий поднятых оружий, но не выходит, оружие как я понял откликается в CBasePlayer, а например триггеры в CBaseTrigger и CBaseEntity, а там другая структура...
Помогие плз, подскажите правильное направление, хочется самому понять)))


ЗЫ
Кстати при использовании такого метода можно не пользоваться game_text и вставлять сколько угодно описаний, это было бы оч. удобно)


Отправлено Дядя Миша 28-12-2007 в 17:51:

Scream используй UTIL_HudMessageAll, её можно запускать из любого места.
Пример использования смотри все в той же game_text.


Отправлено ToMMuK 28-12-2007 в 18:08:

попутный вопрос... как зделать так чтобы он брал текс из файла например в энтите я напишу #Text1 а он из файла возмёт строчку #Text1???

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено Scream 28-12-2007 в 18:26:

C++ Source Code:
1
class CItemSecurity : public CItem
2
{
3
 
4
  inline	void	MessageSet( const char *pMessage ) { pev->message = ALLOC_STRING(pMessage); }
5
  inline	const char *MessageGet( void )	{ return STRING(pev->message); } // как я понял, задаётся чтение заданного сообщения
6
 
7
private:
8
 
9
  hudtextparms_t	m_textParms; // и параметры отображения
10
  void Spawn( void )
11
  {
12
    Precache( );
13
    SET_MODEL(ENT(pev), "models/w_security.mdl");
14
    CItem::Spawn( );
15
  }
16
  void Precache( void )
17
  {
18
    PRECACHE_MODEL ("models/w_security.mdl");
19
  }
20
  BOOL MyTouch( CBasePlayer *pPlayer )
21
  {
22
    pPlayer->m_rgItems[ITEM_SECURITY] += 1;
23
    return TRUE;
24
    UTIL_HudMessageAll( m_textParms, MessageGet() );
25
  }
26
};


То есть я обозначил параметры MessageGet и m_textParms, а как их теперь конкретизировать?)) Всмысле задаь прямо здесь же в классе?


Отправлено Дядя Миша 28-12-2007 в 20:59:

code:
BOOL MyTouch( CBasePlayer *pPlayer ) { pPlayer->m_rgItems[ITEM_SECURITY] += 1; return TRUE; UTIL_HudMessageAll( m_textParms, MessageGet() ); }

вот это работать не будет. надо так
code:
BOOL MyTouch( CBasePlayer *pPlayer ) { pPlayer->m_rgItems[ITEM_SECURITY] += 1; m_textParms.channel = 1; m_textParms.x = 320; m_textParms.y = 240; m_textParms.effect = 0; m_textParms.r1 = 255; m_textParms.g1 = 255; m_textParms.b1 = 255; m_textParms.a1 = 180; m_textParms.fadeinTime = 0.1; m_textParms.fadeoutTime = 0.1; m_textParms.holdTime = 5; m_textParms.fxTime = 0.1; UTIL_HudMessageAll( m_textParms, MessageGet() ); return TRUE; }

надеюсь принцип понятен


Отправлено Scream 28-12-2007 в 21:47:

Дядя Миша
Спасиб, а я никак не мог допереть, как задать textParms здесь, без задавания их в ентите в хаммере.

УРА! Теперь когда берёшь карточку автоматом отображается текст и нет возни с мульименеджером и геймтексом!)))


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

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