WEAPON:DrawHUD
WEAPON:DrawHUD()
Açıklama
Bu hook, bu silah kullanımdayken ekrana çizim yapmanıza olanak tanır.
Eğer özel bir nişangâh çizmek istiyorsanız, bunun yerine WEAPON:DoDrawCrosshair kullanmayı düşünün.
Örnek
weapon_cs_base içinde tanımlandığı şekliyle, ek notlar içeren Weapon:DrawHud() örneği
function SWEP:DrawHUD()
-- Nişan alırken (ironsights) nişangâh olmaz
if ( self.Weapon:GetNWBool( "Ironsights" ) ) then return end
local x, y -- her zaman local olmalı
-- Eğer yerel oyuncuyu çiziyorsak, nişangâhı nişan aldıkları yere çizin
-- ekranın ortası yerine.
if ( self:GetOwner() == LocalPlayer() && self:GetOwner():ShouldDrawLocalPlayer() ) then
local tr = util.GetPlayerTrace( self:GetOwner() )
tr.mask = ( CONTENTS_SOLID+CONTENTS_MOVEABLE+CONTENTS_MONSTER+CONTENTS_WINDOW+CONTENTS_DEBRIS+CONTENTS_GRATE+CONTENTS_AUX ) -- Kamera/üçüncü şahıs modunda nişangâhı maskelemesi gereken enum'ları listeleyin
local trace = util.TraceLine( tr )
local coords = trace.HitPos:ToScreen()
x, y = coords.x, coords.y
else
x, y = ScrW() / 2.0, ScrH() / 2.0 -- Ekranın ortası
end
local scale = 10 * self.Primary.Cone
local LastShootTime = self.Weapon:GetNWFloat( "LastShootTime", 0 )
-- Nişangâhın boyutunu, silahımızı en son ne kadar zaman önce ateşlediğimize göre ölçeklendirin
scale = scale * (2 - math.Clamp( (CurTime() - LastShootTime) * 5, 0.0, 1.0 ))
-- R G B Alfa
surface.SetDrawColor( 0, 255, 0, 255 ) -- Çizdiğimiz çizgilerin rengini ayarlar
-- Bir nişangâh çizin
local gap = 40 * scale
local length = gap + 20 * scale
-- x1, y1, x2, y2
surface.DrawLine( x - length, y, x - gap, y ) -- Sol
surface.DrawLine( x + length, y, x + gap, y ) -- Sağ
surface.DrawLine( x, y - length, x, y - gap ) -- Üst
surface.DrawLine( x, y + length, x, y + gap ) -- Alt
end
Çıktı: Nişangâh için 4 çizgi çizer
Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord