HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Добавление нового элемента на HUD
Надо добавить новый элемент на HUD, но я не знаю как..
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Maxwel
Software Engineer

Дата регистрации: Apr 2007
Проживает: Черкассы
Сообщений: 34
Возраст: 33

Рейтинг



Question Добавление нового элемента на HUD

Игра Half-Life 1

Промогите пожалуйста с таким вот вопросом... Мне надо добавить новый элемент на HUD. Интересно следеющее:


  1. В каких файлах на клиенте прописать новый элемент?
    Собственно знаю, что это надо писать куда-то в hud.cpp, hud.h, hud_msg.cpp + ещё свой cpp с этим элементом добавить. Но не могу понять, что и куда писать.
  2. Как прицепить новый MESSAGE для этого элемента HUD? В смысле где его обьявить?
    Нужно для того, чтобы этот элемент мог получать данные с сервера.
  3. Что на сервере надо прописать, чтобы этот MESSAGE можно было вызвать?

Ну вот надо так создать полноценный элемент HUD. Расскажите пожалуйста, от куда начинать и где заканчивать. Очень прошу

Сообщить модератору | | IP: Записан
Сообщение: 12273

Старое сообщение 05-04-2007 12:59
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34515
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Сделай поиск какого-нибудь элемента, например, интерфейса поезда (train) в этих файлах. И сделай все по аналогии

__________________

Сообщить модератору | | IP: Записан
Сообщение: 12274

Старое сообщение 05-04-2007 15:55
-
Maxwel
Software Engineer

Дата регистрации: Apr 2007
Проживает: Черкассы
Сообщений: 34
Возраст: 33

Рейтинг



Unhappy

Ну я добавил новый класс в клиентскую часть, но элемент этот почему-то у меня не рисуется...
Скомпилилось без ошибок и в проект оно добавлено...
Ну вот функция Draw то ли не вызывается, то ли ещё что-то

Я смотрел код train'а и там нету каких либо условий, что определяют отображаться или нет... Но ведь в игре-то train отображается не всегда отображается...

Ну скажите пожалуйста, как зделать, чтоб та функция вызывалась

Сообщить модератору | | IP: Записан
Сообщение: 12289

Старое сообщение 06-04-2007 15:47
- За что?
Government-Man
Призрак

Дата регистрации: Apr 2006
Проживает: N/A
Сообщений: 3507

Рейтинг



Награды
 
[1 награда]


Maxwel аналогично - посмотри, откуда она вызывается у других HUD'ов и сделай по аналогии.

Сообщить модератору | | IP: Записан
Сообщение: 12290

Старое сообщение 06-04-2007 16:31
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34515
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Да, там надо Init и VidInit вызвать. И конечно создать экземпляр твоего класса в CHud.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 12291

Старое сообщение 06-04-2007 16:56
-
Maxwel
Software Engineer

Дата регистрации: Apr 2007
Проживает: Черкассы
Сообщений: 34
Возраст: 33

Рейтинг



Ну я и вызываю.
В hud.cpp в процедуре CHud :: Init написал для этого строчку:

C++ Source Code:
m_Timer.Init();

в процедуре CHud :: VidInit написал:
C++ Source Code:
m_Timer.VidInit();


ну и собственно в hud.h в класс CHud вписал:
C++ Source Code:
CHudTimer	m_Timer;


Этого что не достаточно?

Сообщить модератору | | IP: Записан
Сообщение: 12293

Старое сообщение 06-04-2007 19:53
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34515
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


А это есть?

C++ Source Code:
DECLARE_MESSAGE(m_Timer, Timer )


И на сервере REG_USER_MSG не забыл?

__________________

Сообщить модератору | | IP: Записан
Сообщение: 12303

Старое сообщение 07-04-2007 04:40
-
Maxwel
Software Engineer

Дата регистрации: Apr 2007
Проживает: Черкассы
Сообщений: 34
Возраст: 33

Рейтинг



Не забыл.
На сервере в player.cpp написал в процедуре UpdateClientData:

C++ Source Code:
1
MESSAGE_BEGIN( MSG_ONE, gmsgTimer, NULL, pev );
2
WRITE_BYTE( m_iTime );
3
WRITE_BYTE( 1 );
4
MESSAGE_END();


И эти строчки
C++ Source Code:
int gmsgTimer = 0;

C++ Source Code:
gmsgTimer = REG_USER_MSG("Timer", 2);

тоже есть.
А оно всё равно не рисуется

Добавлено сегодня в 12:30:

Цитата:
XaeroX писал:
А это есть?
C++ Source Code:
DECLARE_MESSAGE(m_Timer, Timer )


Есть.

Сообщить модератору | | IP: Записан
Сообщение: 12308

Старое сообщение 07-04-2007 09:30
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34515
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Maxwel давай весь код твоего таймера на клиенте, поглядим...

__________________

Сообщить модератору | | IP: Записан
Сообщение: 12309

Старое сообщение 07-04-2007 09:36
-
Maxwel
Software Engineer

Дата регистрации: Apr 2007
Проживает: Черкассы
Сообщений: 34
Возраст: 33

Рейтинг



Ну это только для теста пока ещё (просто я думаю сначала заставить его работать, а потом дописать полностью) должен походу рисовать внизу экрана в центре спрайт и заполненную область.
Естественно я дописал в hud.h

C++ Source Code:
#include "timer.h"

Вложение: timer.rar (0.8 кб)
Этот файл был скачан 455 раз.
XaeroX проверил это вложение на вирусы 07-04-2007 в 10:01

Сообщить модератору | | IP: Записан
Сообщение: 12310

Старое сообщение 07-04-2007 09:45
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34515
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Maxwel а, ну все ясно. Надо ж, когда ты его включаешь, сообщить об этом худу В ф-и MsgFunc_Timer сделай вот так:

C++ Source Code:
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
}

__________________

Сообщить модератору | | IP: Записан
Сообщение: 12312

Старое сообщение 07-04-2007 10:11
-
Maxwel
Software Engineer

Дата регистрации: Apr 2007
Проживает: Черкассы
Сообщений: 34
Возраст: 33

Рейтинг



Так, теперь буду знать о флаге
Теперь всё работает. XaeroX спасибо

Сообщить модератору | | IP: Записан
Сообщение: 12327

Старое сообщение 07-04-2007 15:22
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34515
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Maxwel кстати, там надо писать не

C++ Source Code:
if (y = 0)
а
C++ Source Code:
if (y == 0)
Но это так, к слову

__________________

Сообщить модератору | | IP: Записан
Сообщение: 12432

Старое сообщение 15-04-2007 14:44
-
Maxwel
Software Engineer

Дата регистрации: Apr 2007
Проживает: Черкассы
Сообщений: 34
Возраст: 33

Рейтинг



XaeroX да у меня уже всё работает, то был пробный код

Сообщить модератору | | IP: Записан
Сообщение: 12433

Старое сообщение 15-04-2007 14:47
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34515
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Maxwel ну я просто открыл эту тему сейчас, и мне глаза резануло

__________________

Сообщить модератору | | IP: Записан
Сообщение: 12434

Старое сообщение 15-04-2007 15:04
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 01:57. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Добавление нового элемента на HUD
Надо добавить новый элемент на HUD, но я не знаю как..
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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