![]()  | 
	Показать все 15 сообщений этой темы на одной странице  | 
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Добавление нового элемента на HUD (https://hlfx.ru/forum/showthread.php?threadid=598)
 Добавление нового элемента на HUD
Игра Half-Life 1
Промогите пожалуйста с таким вот вопросом... Мне надо добавить новый элемент на HUD. Интересно следеющее:
 
Сделай поиск какого-нибудь элемента, например, интерфейса поезда (train) в этих файлах. И сделай все по аналогии 
__________________
 
Ну я добавил новый класс в клиентскую часть, но элемент этот почему-то у меня не рисуется...
Скомпилилось без ошибок и в проект оно добавлено...
Ну вот функция Draw то ли не вызывается, то ли ещё что-то 
 
Я смотрел код train'а и там нету каких либо условий, что определяют отображаться или нет... Но ведь в игре-то train отображается не всегда отображается... 
Ну скажите пожалуйста, как зделать, чтоб та функция вызывалась 
Maxwel аналогично - посмотри, откуда она вызывается у других HUD'ов и сделай по аналогии. 
Да, там надо Init и VidInit вызвать. И конечно создать экземпляр твоего класса в CHud.
__________________
Ну я и вызываю.
В hud.cpp в процедуре CHud :: Init написал для этого строчку:
m_Timer.Init();  | 
m_Timer.VidInit();  | 
CHudTimer m_Timer;  | 
А это есть?
DECLARE_MESSAGE(m_Timer, Timer )  | 
__________________
Не забыл.
На сервере в player.cpp написал в процедуре UpdateClientData:
1  | MESSAGE_BEGIN( MSG_ONE, gmsgTimer, NULL, pev );  | 
2  | WRITE_BYTE( m_iTime );  | 
3  | WRITE_BYTE( 1 );  | 
4  | MESSAGE_END();  | 
int gmsgTimer = 0; | 
gmsgTimer = REG_USER_MSG("Timer", 2); | 

DECLARE_MESSAGE(m_Timer, Timer )  | 
Maxwel давай весь код твоего таймера на клиенте, поглядим...
__________________
Ну это только для теста пока ещё (просто я думаю сначала заставить его работать, а потом дописать полностью) должен походу рисовать внизу экрана в центре спрайт и заполненную область.
Естественно я дописал в hud.h
#include "timer.h"  | 
Maxwel а, ну все ясно. Надо ж, когда ты его включаешь, сообщить об этом худу 
 В ф-и MsgFunc_Timer сделай вот так:
1  | if (y = 0) | 
2  | { | 
3  |   if (m_bEnabled) | 
4  |   { | 
5  | m_iFlags &= ~HUD_ACTIVE;  | 
6  | m_bEnabled = FALSE;  | 
7  | }  | 
8  | }  | 
9  | else | 
10  | { | 
11  |   if (!m_bEnabled) | 
12  |   { | 
13  | m_iFlags |= HUD_ACTIVE;  | 
14  | m_bEnabled = TRUE;  | 
15  | }  | 
16  | }  | 
__________________
Так, теперь буду знать о флаге 
Теперь всё работает. XaeroX спасибо 
Maxwel кстати, там надо писать не
if (y = 0) | 
if (y == 0) | 

__________________
XaeroX да у меня уже всё работает, то был пробный код 
Maxwel ну я просто открыл эту тему сейчас, и мне глаза резануло 
__________________
| Временная зона GMT. Текущее время 04:22. | Показать все 15 сообщений этой темы на одной странице  | 
  На основе vBulletin версии 2.3.0
  Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
  Дизайн и программирование: Crystice Softworks © 2005 - 2024