buiducduy111
Dragon Quest
- 3/5/11
- 1,257
- 7
@KFL: Bạn biết cách show hud number chỉ mình với ... please!
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
^: Show SPR như bình thườngtrong HUD.txt có number_X còn gì
![]()
Dùng message của hl,hình như là AmmoX hay AmmoPickup gì đó
Thì copy tọa độ hud vào hud.txt rồi draw![]()

register_event("CurWeapon","event_CurWeapon","be","1=1")
event_CurWeapon(id)
{
new wpnId, Clip, Ammo
wpnId = get_user_weapon(id, Clip, Ammo)
if (wpnId == CSW_KNIFE) return PLUGIN_HANDLED
//add your code...please .. i want show Clip / Ammo by Sprite
}
// 100 || 10 | 1 ... Tạo độ của số 1 khác nhau
//Hay là phải viết nguyên 1 func để draw
// Ví dụ như : Show_Ammo(id, Number) .
// + Nếu Number < 10 thì draw thẳng số,
// + Nếu Number >=10 và < 100 Thì Lấy phần dư của (Number/10) rồi cho vào hàng đơn vị, lấy phần nguyên cho vào hàng chục
// + Nếu > 100 Thì....
// -- Ôi NO...Dài thế này ... các bác có cách nào draw thẳng không?
)
:
PHP:register_event("CurWeapon","event_CurWeapon","be","1=1") event_CurWeapon(id) { new wpnId, Clip, Ammo wpnId = get_user_weapon(id, Clip, Ammo) if (wpnId == CSW_KNIFE) return PLUGIN_HANDLED //add your code...please .. i want show Clip / Ammo by Sprite } // 100 || 10 | 1 ... Tạo độ của số 1 khác nhau //Hay là phải viết nguyên 1 func để draw // Ví dụ như : Show_Ammo(id, Number) . // + Nếu Number < 10 thì draw thẳng số, // + Nếu Number >=10 và < 100 Thì Lấy phần dư của (Number/10) rồi cho vào hàng đơn vị, lấy phần nguyên cho vào hàng chục // + Nếu > 100 Thì.... // -- Ôi NO...Dài thế này ... các bác có cách nào draw thẳng không?
Mở HLSDK, file hud_redraw.cpp, func CHud :: DrawHudNumber.
int CHud :: DrawHudNumber( int x, int y, int iFlags, int iNumber, int r, int g, int b)
{
int iWidth = GetSpriteRect(m_HUD_number_0).right - GetSpriteRect(m_HUD_number_0).left;
int k;
if (iNumber > 0)
{
// SPR_Draw 100's
if (iNumber >= 100)
{
k = iNumber/100;
SPR_Set(GetSprite(m_HUD_number_0 + k), r, g, b );
SPR_DrawAdditive( 0, x, y, &GetSpriteRect(m_HUD_number_0 + k));
x += iWidth;
}
else if (iFlags & (DHN_3DIGITS))
{
//SPR_DrawAdditive( 0, x, y, &rc );
x += iWidth;
}
// SPR_Draw 10's
if (iNumber >= 10)
{
k = (iNumber % 100)/10;
SPR_Set(GetSprite(m_HUD_number_0 + k), r, g, b );
SPR_DrawAdditive( 0, x, y, &GetSpriteRect(m_HUD_number_0 + k));
x += iWidth;
}
else if (iFlags & (DHN_3DIGITS | DHN_2DIGITS))
{
//SPR_DrawAdditive( 0, x, y, &rc );
x += iWidth;
}
// SPR_Draw ones
k = iNumber % 10;
SPR_Set(GetSprite(m_HUD_number_0 + k), r, g, b );
SPR_DrawAdditive(0, x, y, &GetSpriteRect(m_HUD_number_0 + k));
x += iWidth;
}
else if (iFlags & DHN_DRAWZERO)
{
SPR_Set(GetSprite(m_HUD_number_0), r, g, b );
// SPR_Draw 100's
if (iFlags & (DHN_3DIGITS))
{
//SPR_DrawAdditive( 0, x, y, &rc );
x += iWidth;
}
if (iFlags & (DHN_3DIGITS | DHN_2DIGITS))
{
//SPR_DrawAdditive( 0, x, y, &rc );
x += iWidth;
}
// SPR_Draw ones
SPR_DrawAdditive( 0, x, y, &GetSpriteRect(m_HUD_number_0));
x += iWidth;
}
return x;
}
PHP:int CHud :: DrawHudNumber( int x, int y, int iFlags, int iNumber, int r, int g, int b) { int iWidth = GetSpriteRect(m_HUD_number_0).right - GetSpriteRect(m_HUD_number_0).left; int k; if (iNumber > 0) { // SPR_Draw 100's if (iNumber >= 100) { k = iNumber/100; SPR_Set(GetSprite(m_HUD_number_0 + k), r, g, b ); SPR_DrawAdditive( 0, x, y, &GetSpriteRect(m_HUD_number_0 + k)); x += iWidth; } else if (iFlags & (DHN_3DIGITS)) { //SPR_DrawAdditive( 0, x, y, &rc ); x += iWidth; } // SPR_Draw 10's if (iNumber >= 10) { k = (iNumber % 100)/10; SPR_Set(GetSprite(m_HUD_number_0 + k), r, g, b ); SPR_DrawAdditive( 0, x, y, &GetSpriteRect(m_HUD_number_0 + k)); x += iWidth; } else if (iFlags & (DHN_3DIGITS | DHN_2DIGITS)) { //SPR_DrawAdditive( 0, x, y, &rc ); x += iWidth; } // SPR_Draw ones k = iNumber % 10; SPR_Set(GetSprite(m_HUD_number_0 + k), r, g, b ); SPR_DrawAdditive(0, x, y, &GetSpriteRect(m_HUD_number_0 + k)); x += iWidth; } else if (iFlags & DHN_DRAWZERO) { SPR_Set(GetSprite(m_HUD_number_0), r, g, b ); // SPR_Draw 100's if (iFlags & (DHN_3DIGITS)) { //SPR_DrawAdditive( 0, x, y, &rc ); x += iWidth; } if (iFlags & (DHN_3DIGITS | DHN_2DIGITS)) { //SPR_DrawAdditive( 0, x, y, &rc ); x += iWidth; } // SPR_Draw ones SPR_DrawAdditive( 0, x, y, &GetSpriteRect(m_HUD_number_0)); x += iWidth; } return x; }