Sidebar

[HUD]PB HEALTH HUD

HAWK0044

New member
Jan 25, 2009
891
7
0
[HUD]PB HEALTH HUD

Привет всем вот решил написать подобие хелсы из пб (без чувака :) , т.к нет его спратов ) вобщем приступим!
Работа только на клиенте , открываем healh.cpp
находим CHudHealth::VidInit в теле функции есть переменная m_HUD_cross , меняем её значение на:
Code:
	m_HUD_cross = gHUD.GetSpriteIndex( "new_heal" );

Далее спускаемся ниже до функции Draw , там в теле ищем:
Code:
// Only draw health if we have the suit.
	if (gHUD.m_iWeaponBits & (1<<(WEAPON_SUIT)))
приводим всё это к такому виду:
Code:
	// 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 и ищем там:
Code:
int CHud :: DrawHudNumber
нашли? ок. спускаемся до конца функции , послее неё допишем еще одну:
Code:
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 после строки
Code:
int DrawHudNumber(int x, int y, int iFlags, int iNumber, int r, int g, int b );
вставляем:
Code:
	int DrawHudMiniNumber(int x, int y, int iNumber);

так... Далее в этом же файле после:
Code:
	int m_HUD_number_0;
вставляем:
Code:
	int m_HUD_number_cs_mini_0;

теперь идём в hud.cpp , там находим:
Code:
m_HUD_number_0 = GetSpriteIndex( "number_0" );
строкой ниже пишем:
Code:
	m_HUD_number_cs_mini_0 = GetSpriteIndex( "cs_number_mini_0" );



вот и всё. осталось дописать в hud.txt (sprites папка)
вот это:
Code:
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
и еще:
Code:
new_heal		640 heal_hud 	0	0	64	128
этот спрайт ниже!

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

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

Attachments

Last edited:
  • Like
Reactions: Somano and MSteam

HAWK0044

New member
Jan 25, 2009
891
7
0
2 Pops:
ха! а я про репу вообще забыл :)

[ADDED=HAWK0044]1296592202[/ADDED]
а вот еще накодил полосочку под патроны, завтра тутор напишу!


Пишите отзывы!
 
Last edited:

Game Server

CSM TV

Page QR Code

QR Code

Donate Campaign

Total amount
$0.00
Goal
$25.00

Latest profile posts

TestUser wrote on TRUP@C's profile.
Master?
TestUser wrote on TRUP@C's profile.
Hello Father

Members online

No members online now.

Discord