Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local PLUGIN = PLUGIN
- PLUGIN.name = "Fallout HUD"
- PLUGIN.author = "DontSleep"
- PLUGIN.description = "HUD Fallout New Vegas"
- function PLUGIN:ShouldDrawCrosshair(client, weapon)
- return false
- end
- function PLUGIN:ShouldHideBars()
- return true
- end
- function PLUGIN:CanDrawAmmoHUD(weapon)
- return false
- end
- local hide = {
- CHudHealth = true,
- CHudBattery = true,
- CHudAmmo = true,
- CHudSecondaryAmmo = true
- }
- local crosshairMat = Material("fonvui/hud/hud_crosshair.png")
- hook.Add("HUDPaint", "DrawCustomCrosshair", function()
- local x, y = ScrW() / 2, ScrH() / 2
- local size = 64
- surface.SetDrawColor(252,177,65,255)
- surface.SetMaterial(crosshairMat)
- surface.DrawTexturedRect(x - size/2, y - size/2, size, size)
- end)
- hook.Add("HUDShouldDraw", "HideDefaultHUD", function(name)
- if hide[name] then return false end
- end)
- hook.Add("HUDShouldDraw", "HideDefaultCrosshair", function(name)
- if name == "CHudCrosshair" then
- return false
- end
- end)
- hook.Add("HUDPaint", "DrawCustomHealthBar", function()
- local client = LocalPlayer()
- if (!IsValid(client)) then return end
- local hp = client:Health()
- local maxHp = client:GetMaxHealth()
- local w, h = 430, 250
- local x = ScrW() - w - 1450
- local y = ScrH() - h + 90
- local mat = Material("fonvui/hud/hud_left_main.png")
- surface.SetMaterial(mat)
- surface.SetDrawColor(252,177,65,255)
- surface.DrawTexturedRect(x, y, w , h)
- surface.SetFont("FalloutFont")
- surface.SetTextPos(x + 35, y + 3)
- surface.SetTextColor(252,177,65,255)
- surface.DrawText("HP")
- local mat = Material("fonvui/hud/hud_right_main.png")
- surface.SetMaterial(mat)
- surface.SetDrawColor(252,177,65,255)
- surface.DrawTexturedRect(x + 1430, y, w , h)
- surface.SetFont("FalloutFont")
- surface.SetTextPos(x + 1800, y + 3)
- surface.SetTextColor(252,177,65,255)
- surface.DrawText("AP")
- local compassMat = Material("fonvui/hud/compass.png")
- local compassW, compassH = 620, 600
- local drawW, drawH = 350, 45
- local compassX = x + 30
- local compassY = y + 80
- local yaw = LocalPlayer():EyeAngles().y
- yaw = math.NormalizeAngle(yaw)
- local u = ( 1 - (yaw / 360)) % 1
- local halfDrawU = (drawW / compassW) / 2
- local uStart = u - halfDrawU
- local uEnd = u + halfDrawU
- if uStart < 0 then uStart = uStart + 1 end
- if uEnd > 1 then uEnd = uEnd - 1 end
- surface.SetDrawColor(252, 177, 65, 255)
- surface.SetMaterial(compassMat)
- if uStart > uEnd then
- local leftUVWidth = 1 - uStart
- local leftPixelWidth = drawW * (leftUVWidth / (leftUVWidth + uEnd))
- surface.DrawTexturedRectUV(compassX, compassY, leftPixelWidth, drawH, uStart, 0, 1, 1)
- local rightPixelWidth = drawW - leftPixelWidth
- surface.DrawTexturedRectUV(compassX + leftPixelWidth, compassY, rightPixelWidth, drawH, 0, 0, uEnd, 1)
- else
- surface.DrawTexturedRectUV(compassX, compassY, drawW, drawH, uStart, 0, uEnd, 1)
- end
- local hpMat = Material("fonvui/hud/percent_hud.png")
- local hp = math.Clamp(LocalPlayer():Health() / LocalPlayer():GetMaxHealth(), 0, 1)
- local barX = x + 25
- local barY = y + 35
- local barW = w - 105
- local barH = h - 225
- local visibleW = barW * hp
- render.SetScissorRect(barX, barY, barX + visibleW, barY + barH, true)
- surface.SetMaterial(hpMat)
- surface.SetDrawColor(225, 225, 225)
- surface.DrawTexturedRect(barX, barY, barW, barH)
- render.SetScissorRect(0, 0, 0, 0, false)
- local hpMat = Material("fonvui/hud/percent_hud.png")
- local ply = LocalPlayer()
- local char = ply:GetCharacter()
- local stamina = ply:GetLocalVar("stm", 0)
- stamina = math.Clamp(stamina / 100, 0, 1)
- local rightX = x + 1482
- local barX = rightX + 25
- local barY = y + 35
- local barW = w - 105
- local barH = h - 225
- local visibleW = barW * stamina
- render.SetScissorRect(barX, barY, barX + visibleW, barY + barH, true)
- surface.SetMaterial(hpMat)
- surface.SetDrawColor(225, 225, 225)
- surface.DrawTexturedRect(barX, barY, barW, barH)
- render.SetScissorRect(0, 0, 0, 0, false)
- local ply = LocalPlayer()
- local wep = ply:GetActiveWeapon()
- if IsValid(wep) and wep:Clip1() >= 0 then
- local ammoInMag = wep:Clip1()
- local ammoReserve = ply:GetAmmoCount(wep:GetPrimaryAmmoType())
- local ammoText = string.format("%02d / %02d", ammoInMag, ammoReserve)
- surface.SetFont("FalloutFont")
- surface.SetTextColor(252, 177, 65, 255)
- local ammoX = x + 1690 + 30
- local ammoY = y + 80
- surface.SetTextPos(ammoX, ammoY)
- surface.DrawText(ammoText)
- end
- end)
- surface.CreateFont("FalloutFont", {
- font = "Monofonto",
- size = 34,
- weight = 500,
- antialias = true,
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement