first commit
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
local function RX(x) return x * (ScrW() / 1920) end
|
||||
local function RY(y) return y * (ScrH() / 1080) end
|
||||
|
||||
|
||||
local ds = {
|
||||
active = false,
|
||||
startTime = 0,
|
||||
duration = 0,
|
||||
killerName = "Inconnu",
|
||||
}
|
||||
|
||||
|
||||
local CFG = bladw_deathscreen and bladw_deathscreen.Config or {}
|
||||
local deathscreen = nil
|
||||
|
||||
local function closeDeathscreen()
|
||||
if IsValid(deathscreen) then deathscreen:Remove() end
|
||||
end
|
||||
|
||||
local function openDeathscreen()
|
||||
|
||||
local sw, sh = ScrW(), ScrH()
|
||||
|
||||
deathscreen = vgui.Create("DFrame")
|
||||
deathscreen:SetSize(sw, sh)
|
||||
deathscreen:SetPos(0, 0)
|
||||
deathscreen:SetTitle("")
|
||||
deathscreen:ShowCloseButton(false)
|
||||
deathscreen.Paint = function(self, w, h)
|
||||
draw.RoundedBox(0, 0, 0, w, h, Color(0, 0, 0, 253))
|
||||
|
||||
draw.SimpleText("TU ES MORT TROP TÔT.", "bladw_text_Bold", w / 2, h / 2.7, Color(76, 119, 227), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
|
||||
draw.SimpleText("TUÉ PAR ".. ds.killerName, "bladw_text_Regular", w / 2, h / 2.4, Color(255, 255, 255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
|
||||
|
||||
-- Barre de progression
|
||||
local barW = w * 0.47 -- largeur totale de la barre
|
||||
local barH = 12 -- épaisseur
|
||||
local barX = (w - barW) / 2 -- centrée
|
||||
local barY = h / 1.6 -- position verticale
|
||||
|
||||
local elapsed = CurTime() - ds.startTime
|
||||
local progress = math.Clamp(elapsed / ds.duration, 0, 1)
|
||||
local filledW = barW * progress
|
||||
|
||||
-- Fond gris (temps restant)
|
||||
draw.RoundedBox(barH / 2, barX, barY, barW, barH, Color(60, 60, 60))
|
||||
|
||||
-- Remplissage bleu (temps écoulé)
|
||||
if filledW > 0 then
|
||||
draw.RoundedBox(barH / 2, barX, barY, filledW, barH, Color(76, 119, 227))
|
||||
end
|
||||
|
||||
-- Curseur blanc
|
||||
local cursorR = 8
|
||||
local cursorX = barX + filledW
|
||||
local cursorY = barY + barH / 2
|
||||
draw.RoundedBox(cursorR, cursorX - cursorR, cursorY - cursorR, cursorR * 2, cursorR * 2, Color(255, 255, 255, 255))
|
||||
|
||||
local remaining = ds.duration - (CurTime() - ds.startTime)
|
||||
|
||||
if ds.active and remaining <= 0 then
|
||||
draw.SimpleText("Cliquez pour réapparaître.", "bladw_text2", w / 2, h / 1.47, Color(255,255,255), TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM)
|
||||
else
|
||||
draw.SimpleText("PATIENTEZ JUSQU'A CE QU'UN MEDECIN VOUS STABILISE. LES MEDECINS SONT EN ROUTE", "bladw_text2", w / 2, h / 1.47, Color(255,255,255), TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
net.Receive("bladw_deathscreen_open", function()
|
||||
ds.duration = net.ReadUInt(16)
|
||||
ds.killerName = net.ReadString()
|
||||
ds.startTime = CurTime()
|
||||
ds.active = true
|
||||
openDeathscreen()
|
||||
end)
|
||||
|
||||
net.Receive("bladw_deathscreen_close", function()
|
||||
ds.active = false
|
||||
closeDeathscreen()
|
||||
end)
|
||||
|
||||
hook.Add("HUDShouldDraw", "bladw_ds_hidehud", function(name)
|
||||
if not ds.active then return end
|
||||
return false
|
||||
end)
|
||||
Reference in New Issue
Block a user