![]() |
Показать все 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. Текущее время 05:10. | Показать все 15 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024