Code:
local FloSpecVars = {
cvar = CreateClientConVar('flo_spec', 0, false, false),
watched = 0,
TEXT_WIDTH = 0,
TEXT_HEIGHT = 0,
BOX_LEFT_MARGIN = 20,
BOX_CORNER_RADIUS = 4,
BOX_PADDING = 10,
BOX_WIDTH = 0,
BOX_HEIGHT = 0,
BOX_X = 0,
BOX_Y = 0,
BOX_COLOUR = Color(0, 0, 0, 200),
TEXT_COLOUR = Color(255, 255, 0, 255)
}
surface.SetFont('flo_font')
FloSpecVars.TEXT_WIDTH, FloSpecVars.TEXT_HEIGHT = surface.GetTextSize('You are being watched.')
FloSpecVars.BOX_WIDTH = FloSpecVars.TEXT_WIDTH + 2 * FloSpecVars.BOX_PADDING
FloSpecVars.BOX_HEIGHT = FloSpecVars.TEXT_HEIGHT + (2 * FloSpecVars.BOX_PADDING)
FloSpecVars.BOX_X = FloSpecVars.BOX_LEFT_MARGIN
FloSpecVars.BOX_Y = (ScrH() / 2) - (FloSpecVars.BOX_HEIGHT / 2) + FloSpecVars.BOX_PADDING
cvars.AddChangeCallback('flo_spec', function()
if (FloSpecVars.cvar:GetInt() == 1) then
hook.Add('HUDPaint', 'flo_spec', function()
if (aliveLocal()) then
FloSpecVars.watched = false
for k, v in pairs(player.GetAll()) do
if (v != LocalPlayer() and v:GetObserverTarget() == LocalPlayer()) then
FloSpecVars.watched = true
break
end
end
draw****undedBox(
FloSpecVars.BOX_CORNER_RADIUS, FloSpecVars.BOX_X,FloSpecVars.BOX_Y, FloSpecVars.BOX_WIDTH, FloSpecVars.BOX_HEIGHT, FloSpecVars.BOX_COLOUR
)
draw.DrawText(
FloSpecVars.watched and 'You are being watched.' or 'You are a ghost.', 'flo_font', FloSpecVars.BOX_X + (FloSpecVars.BOX_WIDTH / 2), FloSpecVars.BOX_Y + FloSpecVars.BOX_PADDING, FloSpecVars.TEXT_COLOUR, TEXT_ALIGN_CENTER
)
end
end)
else
hook.Remove('HUDPaint', 'flo_spec')
end
end)
some stuff declared in another script