[AMX] Tổng hợp Code, Plug do Mem chế hoặc giới thiệu

  • Thread starter Thread starter Orpheus
  • Ngày gửi Ngày gửi
@KFL: Bạn biết cách show hud number chỉ mình với ... please!
 
^: Show SPR như bình thường:|trong 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:|
 
Mấy bác cho em hỏi: em mới chỉnh đạn cây súng 51 lên 200 viên mà nó hiện co 1 trăm mấy à ! Làm sao để sữa cái này ạ (Dùng Plugin hay là gì ???<cũng có thể là metahook :))>)
NOTE: Chỉ luôn cái hiện Overview chỗ radar luôn càng tốt :D
 
Thì copy tọa độ hud vào hud.txt rồi draw:|

:((

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?
 
Plugin: Lasermine (Loại mới nha :)))
--->Cái này dành cho Zombie Plague
Công dụng: Zombie đi vào cái đường sáng sẽ bị mất máu liên tục cho đến chết (Cực nhanh)--> Bom này không nổ được chỉ làm mất máu Zombie thoy và nếu lỡ chân bắn 1 phát vào cái LM sẽ nổ ngay(ko chet ai cả)
BO cho vài tầm hình nhơ :)):
1327671512551956384_574_574.jpg

13276715111372188299_574_574.jpg

Download :http://forums.alliedmods.net/attachment.php?attachmentid=73193&d=1284134744
Nguồn Alliedmods (Link bài viết gốc :http://forums.alliedmods.net/showthread.php?p=1160016#post1160016)
 

Attachments

  • 1327671512551956384_574_574.jpg
    1327671512551956384_574_574.jpg
    54.5 KB · Đọc: 0
Chỉnh sửa cuối:
^
ôi zời ơi. Cái này có từ thời cố nội rồi :|. ngay cả cái lm đang sài cũng có chức năng đó. 1 lm có 2 mode lận. Tripmine và 1 mode nữa tên gì quên rồi. Tripmine là nổ còn lại là gây dmg :|
 
Ô ô vậy hả. Chắc tại tui chưa tìm hiểu kĩ (<Mà cho cái Overview lên chỗ radar làm thế nào>(Metahook thì phải mà ko biết thêm thế nào @@!))
=> Chỉnh Tripmine như thế nào ạ :)
 
Chỉnh sửa cuối:
mở file cvar lên có cái dòng là
Mã:
zp_ltm_mode 1 //0 lasermine, 1 tripmine (Recommended)

tự hiểu nhá =.="
 
ồ ồ cảm ơn bác Dias nhé, làm được rồi (Cái này thầy từ lúc mởi down về tới giờ :)))
 
:((

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?

Ai giúp em vụ này với ! ...............................
 
Mở HLSDK, file hud_redraw.cpp, func CHud :: DrawHudNumber.
 
Bác Dias cho em hỏi tiếp : là cái weapon maxclip ấy chỉnh xong thoát ra vô lại nó lại để như mặc định là sao ạ ( Nói chung là nó ko lưu lại được )
Cái bpammo luôn :(
 
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;
}
 
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;
}

Include file.inc nào vào bạn mình tìm hết rồi, đều báo không có GetSpriteRect, SPR_DrawAdditive,SPR_Set
 
Cái này là C++ chứ có phải AMX đâu:|ngồi xem code này và hiểu cách draw number thôi chứ:|
 
Back
Top