Sidebar

[HUD]PB HEALTH HUD

HAWK0044

New member
25.01.09
890
7
0
[HUD]PB HEALTH HUD

Привет всем вот решил написать подобие хелсы из пб (без чувака :) , т.к нет его спратов ) вобщем приступим!
Работа только на клиенте , открываем healh.cpp
находим CHudHealth::VidInit в теле функции есть переменная m_HUD_cross , меняем её значение на:
Код:
	m_HUD_cross = gHUD.GetSpriteIndex( "new_heal" );
Далее спускаемся ниже до функции Draw , там в теле ищем:
Код:
// Only draw health if we have the suit.
	if (gHUD.m_iWeaponBits & (1<<(WEAPON_SUIT)))
приводим всё это к такому виду:
Код:
	// Only draw health if we have the suit.
	if (gHUD.m_iWeaponBits & (1<<(WEAPON_SUIT)))
	{
		int scrx;
		int scry;

		scrx = ScreenHeight/4;
		scry = ScreenWidth/6;

		if (ScreenHeight >= 940)
		scrx = ScreenHeight/6;

		if (ScreenWidth >= 1279)
		scry = ScreenWidth/8;

		y = ScreenHeight - scrx;
		x = ScreenWidth - scry;

		SPR_Set(gHUD.GetSprite(m_HUD_cross), 255, 255, 255);
		SPR_Draw(0,x,y,&gHUD.GetSpriteRect(m_HUD_cross));

		x = ScreenWidth - scry  + 24;
		y = ScreenHeight - scrx + 96;

		gHUD.DrawHudMiniNumber(x, y, m_iHealth);

	}
далее:
идем в hud_redraw.cpp и ищем там:
Код:
int CHud :: DrawHudNumber
нашли? ок. спускаемся до конца функции , послее неё допишем еще одну:
Код:
int CHud :: DrawHudMiniNumber( int x, int y, int iNumber)
{
	int r,g,b;

	r=0;
	g=255;
	b=120;

	int iWidth = GetSpriteRect(m_HUD_number_cs_mini_0).right - GetSpriteRect(m_HUD_number_cs_mini_0).left;
	int k;
	
	if (iNumber > 0)
	{
		// SPR_Draw 100's
		if (iNumber >= 100)
		{
			 k = iNumber/100;
			SPR_Set(GetSprite(m_HUD_number_cs_mini_0 + k), r, g, b );
			SPR_DrawAdditive( 0, x, y, &GetSpriteRect(m_HUD_number_cs_mini_0 + k));
			x += iWidth;
		}


		// SPR_Draw 10's
		if (iNumber >= 10)
		{
			k = (iNumber % 100)/10;
			SPR_Set(GetSprite(m_HUD_number_cs_mini_0 + k), r, g, b );
			SPR_DrawAdditive( 0, x, y, &GetSpriteRect(m_HUD_number_cs_mini_0 + k));
			x += iWidth;
		}

		// SPR_Draw ones
		k = iNumber % 10;
		SPR_Set(GetSprite(m_HUD_number_cs_mini_0 + k), r, g, b );
		SPR_DrawAdditive(0,  x, y, &GetSpriteRect(m_HUD_number_cs_mini_0 + k));
		x += iWidth;
	} 

	return x;
}
написалии?едем дальше.
декларируем эту функцию в hud.h после строки
Код:
int DrawHudNumber(int x, int y, int iFlags, int iNumber, int r, int g, int b );
вставляем:
Код:
	int DrawHudMiniNumber(int x, int y, int iNumber);
так... Далее в этом же файле после:
Код:
	int m_HUD_number_0;
вставляем:
Код:
	int m_HUD_number_cs_mini_0;
теперь идём в hud.cpp , там находим:
Код:
m_HUD_number_0 = GetSpriteIndex( "number_0" );
строкой ниже пишем:
Код:
	m_HUD_number_cs_mini_0 = GetSpriteIndex( "cs_number_mini_0" );


вот и всё. осталось дописать в hud.txt (sprites папка)
вот это:
Код:
cs_number_mini_0		640 320hud2	0	0	12  16
cs_number_mini_1		640 320hud2	12	0	12  16
cs_number_mini_2		640 320hud2	24	0	12  16
cs_number_mini_3		640 320hud2	36	0	12  16
cs_number_mini_4		640 320hud2	48	0	12  16
cs_number_mini_5		640 320hud2	60	0	12  16
cs_number_mini_6		640 320hud2	72	0	12  16
cs_number_mini_7		640 320hud2	84	0	12  16
cs_number_mini_8		640 320hud2	96	0	12  16
cs_number_mini_9		640 320hud2	108	0	12  16
спрайт 320hud2 можно взять в папке valve/sprites
и еще:
Код:
new_heal		640 heal_hud 	0	0	64	128
этот спрайт ниже!

З.Ы тутор очень нужен новичкам! так как я сам пытался искать туторы работы с худом, но ничего не нашел , решил изучать сам.
З.ЫЫ скоро ждите тутор по динамическому(как в кс) и коллиматорному прицелу!

ой! переместите тему плиз в туторы
 

Вкладення

Останнє редагування:
  • Like
Reactions: Somano and MSteam

Pops

&#12524;&#12474;&#12499;&#12450;&#12531;
20.03.09
2 611
30
31
48
долб
Норма :drink: ,
дал в репу (шутка :tooth: )
 

HAWK0044

New member
25.01.09
890
7
0
2 Pops:
ха! а я про репу вообще забыл :)

Post automatically merged:

а вот еще накодил полосочку под патроны, завтра тутор напишу!


Пишите отзывы!
 
Останнє редагування:

Game Server

Доноры Красавчики

Користувачі онлайн

Немає користувачів онлайн.