--by exechack.cc CreateClientConVar("spy_pos_x", 10, true, false) CreateClientConVar("spy_pos_y", 10, true, false) local dists = {}; local function update() if dsframe and dsframe:IsValid() then local x,y=dsframe:GetPos() RunConsoleCommand("spy_pos_x",x) RunConsoleCommand("spy_pos_y",y) end dists = {} for k, v in next, player.GetAll() do if v:IsDormant() or not v:Alive() or LocalPlayer() == v then continue end dists[#dists + 1] = { v:GetPos():Distance(LocalPlayer():GetPos()), v } end table.sort(dists, function(a, b) return (a[1] < b[1]) end) return dists end update() timer.Create("obkak", 2, 0, update) dsframe = vgui.Create( "DFrame" ) dsframe:SetSize(266, 500 - 31) dsframe:SetPos(GetConVar("spy_pos_x"):GetFloat(),GetConVar("spy_pos_y"):GetFloat()) dsframe:SetTitle("обкакеры") dsframe.Paint = function(d, w, h) draw.RoundedBox(0, 0, 0, w, h, Color(25, 25, 25)) local x, y = d:GetPos() local poxa = 25 for i = 1, 3 do local pld = dists[i] if pld then local pld = dists[i][2] if pld and pld:IsValid() then pld:SetNoDraw(true) render.RenderView({ origin = pld:GetPos() + Vector(0, 0, 64), angles = pld:EyeAngles(), x = x + 3, y = y + poxa, w = 260, h = 145 }) pld:SetNoDraw(false) poxa = poxa + 145 + 3 end end end end