HLFX.Ru Forum Страницы (3): « 1 2 [3]
Показать все 39 сообщений этой темы на одной странице

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


Отправлено [)r0n 17-03-2011 в 07:08:

и в третий раз спрошу:

Цитата:
[)r0n писал:
Как правильно "словить" на клиенте мою строку, чтобы в tri.pp можно было ей воспользоваться?


Отправлено KiQ 17-03-2011 в 08:14:

[)r0n насколько я помню сообщения ловятся в hud.cpp По крайней мере там можно посмотреть, как это делается.

__________________
-Brain is dead-


Отправлено [)r0n 20-03-2011 в 09:02:

Чтобы новую тему не создавать спрошу тут:
Как в SOHL реализовано, что игрок не может юзать энтити сквозь стены? Подскажите где конкретно искать этот код.


Отправлено Дядя Миша 20-03-2011 в 10:40:

[)r0n в player.cpp ключевое слово FCAP_ONLYDIRECT_USE.
Там просто делается траселайн, в отличие от стандартного подхода, где идет поиск в заданной сфере.

__________________
My Projects: download page

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

Цитата:

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


Отправлено [)r0n 22-03-2011 в 03:56:

Дядя Миша, спасибо, все успешно "своровалось"

Теперь еще один ворпос:
Один щедрый человек поделился когда-то кодом hud-а из paranoia. Все сделал как описано в туторе, новый hud появляется, но при этом старый hud от half-life никуда не делся, кто-нибудь знает как от него избавиться?

А вот и сам тутор:

HUD этот из Paranoia взят, картинки я перерисовал под свой мод.
Потом напишу тутор как сделать такой HUD, там несложно, берешь из паранойи VGUI_HUD.h, VGUI_HUD.cpp и добавляешь в свой проект. Потом идешь в vgui_teamfortressviewport.h и там к аналогичным строкам добавляешь

C++ Source Code:
class CHud2; // 1nf


потом идешь в class TeamFortressViewport : public Panel
и во втором public добавляешь:

C++ Source Code:
CHud2* m_pHud2; // 1nfnite


потом идешь в vgui_teamfortressviewport.cpp и добавляешь инклуд:

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


потом ищешь

C++ Source Code:
TeamFortressViewport::TeamFortressViewport(int x,int y,int wide,int tall) : Panel(x,y,wide,tall), m_SchemeManager(wide,tall)


и там в конце функции добавляешь

C++ Source Code:
1
// 1nf start
2
m_pHud2 = new CHud2();
3
m_pHud2->setParent(this);
4
m_pHud2->setVisible(true);


потом идешь в Initialize и там добавляешь

C++ Source Code:
if (m_pHud2)
  m_pHud2->Initialize(); // 1nf


С этим файлом все.

Дальше идешь в hud.cpp и там

C++ Source Code:
#include "vgui_hud.h"
#include "vgui_TeamFortressViewport.h"


дальше идем в Init и там добавляем перед

C++ Source Code:
GetClientVoiceMgr()->Init(&g_VoiceStatusHelper, (vgui::Panel**)&gViewPort);


вот это:

C++ Source Code:
Hud2Init(); // 1nf


С этим файлом все.

Идем в health.cpp и добавляем:

C++ Source Code:
#include "vgui_TeamFortressViewport.h" // 1nf
#include "vgui_hud.h" // 1nf


потом заменяем

C++ Source Code:
int CHudHealth:: MsgFunc_Health(const char *pszName,  int iSize, void *pbuf )


на эту:

C++ Source Code:
1
int CHudHealth:: MsgFunc_Health(const char *pszName,  int iSize, void *pbuf )
2
{
3
  // TODO: update local health data
4
  BEGIN_READ( pbuf, iSize );
5
  int x = READ_BYTE();
6
 
7
  m_iFlags |= HUD_ACTIVE;
8
 
9
  // Only update the fade if we've changed health
10
  if (x != m_iHealth)
11
  {
12
    m_fFade = FADE_TIME;
13
    m_iHealth = x;
14
  }
15
 
16
  gViewPort->m_pHud2->UpdateHealth(x); // buz
17
 
18
  return 1;
19
}


Далее идем в battery.cpp и опять же добавляем:

C++ Source Code:
#include "vgui_TeamFortressViewport.h" // 1nf
#include "vgui_hud.h" // 1nf


дальше заменяем

C++ Source Code:
int CHudBattery:: MsgFunc_Battery(const char *pszName,  int iSize, void *pbuf )


на эту:

C++ Source Code:
1
int CHudBattery:: MsgFunc_Battery(const char *pszName,  int iSize, void *pbuf )
2
{
3
  m_iFlags |= HUD_ACTIVE;
4
 
5
 
6
  BEGIN_READ( pbuf, iSize );
7
  int x = READ_SHORT();
8
 
9
  if (x != m_iBat)
10
  {
11
    m_fFade = FADE_TIME;
12
    m_iBat = x;
13
  }
14
 
15
  gViewPort->m_pHud2->UpdateArmor(x); // 1nf
16
 
17
  return 1;
18
}


Все.
Теперь кладем картинки этого худа в свой мод и наслаждаемся. Кстати, вот тебе архив с картинками из моего мода и vgui_hud. Из паранойи vgui_hud небери - там нужно будет еще кое-что делать, это уже будет касаться нетолько здоровья и брони, но еще и патронов и картинок оружия.


Отправлено FiEctro 22-03-2011 в 10:08:

[)r0n
return 0; где нить в функции отрисовки хада впихни. В той же параное подсмотри.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 22-03-2011 в 11:03:

Цитата:
[)r0n писал:
Все сделал как описано в туторе, новый hud появляется, но при этом старый hud от half-life никуда не делся, кто-нибудь знает как от него избавиться?

у вас обострение на почве не умения думать и пользоваться поиском?
две недели назад эта же самая тема подымалась.

__________________
My Projects: download page

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

Цитата:

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


Отправлено [)r0n 02-04-2011 в 14:22:

В халве, когда что-нибудь подбираешь с правой стороны экрана появляется спрайт. Как приподнять высоту появления спрайта? Просто, переделал худ, он немного выше стандартного и появляющиеся спрайты предметов налезают на худ.


Отправлено Дядя Миша 02-04-2011 в 14:52:

[)r0n гугли в ammohistory.cpp

__________________
My Projects: download page

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

Цитата:

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


Временная зона GMT. Текущее время 21:46. Страницы (3): « 1 2 [3]
Показать все 39 сообщений этой темы на одной странице

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