Crack Lua Solus UI | 4 themes

Начинающий
Статус
Оффлайн
Регистрация
6 Май 2020
Сообщения
67
Реакции[?]
25
Поинты[?]
0

Данный скрипт не проверялся модераторами, так как является кряком приватной LUA и в нём может присутствовать обфускация. Даже известные пользователи могут выложить вредоносный скрипт под видом крякнутого, поэтому любое использование исключительно на свой страх и риск.

Author: k1mbor
Миллион строчек, убогая драг система которая курсор тянет в середину объекта

code_language.lua:
local screen_size = EngineClient.GetScreenSize()
local windows_value = Menu.MultiCombo('Visuals', 'Visuals', 'Windows', {'Watermark', 'Spectators', 'Hotkey list', 'Anti-aimbot indication', 'Frequency update information'}, 0)
local custom_value = Menu.Combo('Visuals', 'Visuals', 'User/Cheat name', {'Default', 'Custom'}, 0)
local custom_user_name = Menu.TextBox('Visuals', 'Visuals', 'Custom User name', 64, Cheat.GetCheatUserName())
local custom_cheatname = Menu.TextBox('Visuals', 'Visuals', 'Custom Cheat name', 64, 'skeet.cc')
local avatar_pos = Menu.Combo('Visuals', 'Visuals', 'Avatars Position', {'Disabled', 'Left', 'Right'}, 0)
local keybinds_value = Menu.Combo('Visuals', 'Visuals', 'Keybinds Mode', {'Key State', 'Key State + Value'}, 0)

local windows_theme = Menu.Combo('Visuals', 'Settings', 'Windows Theme', {'Default', 'Rounded', 'Half-Round', 'Glow'}, 0)
local line_theme = Menu.Combo('Visuals', 'Settings', 'Line Theme', {'Static', 'Gradient', 'Fade'}, 0)
local theme = Menu.Combo('Visuals', 'Settings', 'Theme', {'Dark', 'Light'}, 0)
local accent_color = Menu.ColorEdit('Visuals', 'Settings', 'Accent Color', Color.RGBA(142, 165, 229, 255))
local width_value = Menu.SliderInt('Visuals', 'Settings', 'Min. Width', 145, 80, 165)
local alpha_slider = Menu.SliderInt('Visuals', 'Settings', 'Background Alpha', 222, 0, 255)
local background_blur = Menu.SwitchColor('Visuals', 'Settings', 'Blur Background', false, Color.RGBA(255, 255, 255, 255))
local keybinds_x = Menu.SliderInt('Visuals', 'Settings', 'x_pos', screen_size.x/2-250, 1, screen_size.x)
local keybinds_y = Menu.SliderInt('Visuals', 'Settings', 'y_pos', screen_size.y/2-50, 1, screen_size.y)
local spectators_x = Menu.SliderInt('Visuals', 'Settings', 'x_poss', screen_size.x/2-550, 1, screen_size.x)
local spectators_y = Menu.SliderInt('Visuals', 'Settings', 'y_poss', screen_size.y/2-50, 1, screen_size.y)

verdanar11 = Render.InitFont('Verdana', 11, {'r'})

jmp_ecx = Utils.PatternScan('engine.dll', 'FF E1')
fnGetModuleHandle = ffi.cast('uint32_t(__fastcall*)(unsigned int, unsigned int, const char*)', jmp_ecx)
fnGetProcAddress = ffi.cast('uint32_t(__fastcall*)(unsigned int, unsigned int, uint32_t, const char*)', jmp_ecx)

pGetProcAddress = ffi.cast('uint32_t**', ffi.cast('uint32_t', Utils.PatternScan('engine.dll', 'FF 15 ? ? ? ? A3 ? ? ? ? EB 05')) + 2)[0][0]
pGetModuleHandle = ffi.cast('uint32_t**', ffi.cast('uint32_t', Utils.PatternScan('engine.dll', 'FF 15 ? ? ? ? 85 C0 74 0B')) + 2)[0][0]
function BindExports(sModuleName, sFunctionName, sTypeOf)
    local ctype = ffi.typeof(sTypeOf)
    return function(...)
        return ffi.cast(ctype, jmp_ecx)(fnGetProcAddress(pGetProcAddress, 0, fnGetModuleHandle(pGetModuleHandle, 0, sModuleName), sFunctionName), 0, ...)
    end
end
fnEnumDisplaySettingsA = BindExports('user32.dll', 'EnumDisplaySettingsA', 'int(__fastcall*)(unsigned int, unsigned int, unsigned int, unsigned long, void*)');
pLpDevMode = ffi.new('struct { char pad_0[120]; unsigned long dmDisplayFrequency; char pad_2[32]; }[1]')
    
fnEnumDisplaySettingsA(0, 4294967295, pLpDevMode[0])

local frequency = pLpDevMode[0].dmDisplayFrequency

function lerp(time,a,b)
    return a * (1-time) + b * time
end

textSize = 0
cheatname = 'killaura'
user_name = Cheat.GetCheatUserName()
ffi.cdef[[
    typedef unsigned short WORD;

    typedef struct _SYSTEMTIME {
        WORD wYear;
        WORD wMonth;
        WORD wDayOfWeek;
        WORD wDay;
        WORD wHour;
        WORD wMinute;
        WORD wSecond;
        WORD wMilliseconds;
    }
    SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;

    void GetLocalTime(
        LPSYSTEMTIME lpSystemTime
    );
]]
function get_time()
    local systym_time = ffi.new('SYSTEMTIME')
    ffi.C.GetLocalTime(systym_time)

    return {
        hour = systym_time.wHour,
        minute = systym_time.wMinute,
        second = systym_time.wSecond,
        milliseconds = systym_time.wMilliseconds,
    }
end

function watermark()
    local time = get_time()
    if time.hour < 10 then time.hour = '0' .. time.hour end
    if time.minute < 10 then time.minute = '0' .. time.minute end
    if time.second < 10 then time.second = '0' .. time.second end
    local screen = EngineClient.GetScreenSize()
    local ticks = math.floor(1.0 / GlobalVars.interval_per_tick)

    local rightPadding = 12
    local var = screen.x - textSize - rightPadding

    local x = var - 18
    local y = 7
    local w = textSize + 20
    local h = 16
    
    local start_position = x - 22

    if custom_value:Get() == 0 then
        cheatname = 'killaura'
        user_name = Cheat.GetCheatUserName()
    else
        cheatname = custom_cheatname:Get()
        user_name = custom_user_name:Get()
        if custom_cheatname:Get() == '' then
            cheatname = 'killaura'
        end
        if custom_user_name:Get() == '' then
            user_name = Cheat.GetCheatUserName()
        end
    end
    local actual_time = ('%02d:%02d:%02d'):format(time.hour, time.minute, time.second)

    local suffix = ("%s"):format(cheatname)
    local nexttext = ('%s | %s | %s'):format(suffix, user_name, actual_time)
        
    if EngineClient.IsInGame() then
        local latency = EngineClient.GetNetChannelInfo():GetLatency(0)
        if latency == nil then latency = 0 end
        local latency_text = latency > 5 and (' | delay: %dms'):format(latency) or ''
        
        nexttext = ('%s | %s%s | %s'):format(suffix, user_name, latency_text, actual_time)
    end
    local text_size = Render.CalcTextSize(nexttext, 11, verdanar11)
    if background_blur:GetBool() then
        Render.Blur(Vector2.new(x+10,y+2+1),Vector2.new(x+textSize+20,h * 1.5 + 4), background_blur:GetColor(), windows_theme:Get() == 0 and 0 or 6)
    end
  
    if windows_theme:Get() == 0 then
        if line_theme:Get() == 0 then
            Render.BoxFilled(Vector2.new(x+10,y+1),Vector2.new(x+textSize+20,h-6), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b))
        elseif line_theme:Get() == 1 then
            Render.GradientBoxFilled(Vector2.new(x+10+(textSize/2),y+1),Vector2.new(x+textSize+20,h-6), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0))
            Render.GradientBoxFilled(Vector2.new(x+10,y+1), Vector2.new(x+(textSize+20)/2,h-6), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1))
        elseif line_theme:Get() == 2 then
            Render.GradientBoxFilled(Vector2.new(x+10+(textSize/2),y+1),Vector2.new(x+textSize+20,h-6), Color.RGBA(204, 18, 204, 255), Color.RGBA(255, 250, 0, 255), Color.RGBA(204, 18, 204, 255), Color.RGBA(255, 250, 0, 255))
            Render.GradientBoxFilled(Vector2.new(x+10,y+1), Vector2.new(x+(textSize+20)/2,h-6), Color.RGBA(0, 213, 255, 255), Color.RGBA(204, 18, 204, 255), Color.RGBA(0, 213, 255, 255), Color.RGBA(204, 18, 204, 255))
        end
        Render.BoxFilled(Vector2.new(x+10,y+2+1),Vector2.new(x+textSize+20,h * 1.5 + 4), theme:Get() == 0 and Color.RGBA(17, 17, 17, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()))
    elseif windows_theme:Get() == 1 then
        Render.BoxFilled(Vector2.new(x+10,y+2+1),Vector2.new(x+textSize+20,h * 1.5 + 4), theme:Get() == 0 and Color.RGBA(17, 17, 17, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()), 6)
        Render.Box(Vector2.new(x+9, y+1+1), Vector2.new(x+textSize+21, h * 1.5 + 5), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), 6)
    elseif windows_theme:Get() == 2 then
        Render.BoxFilled(Vector2.new(x+13,y+1),Vector2.new(x+textSize+17,h-6), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b))
        Render.BoxFilled(Vector2.new(x+10,y+2+1),Vector2.new(x+textSize+20,h * 1.5 + 4), theme:Get() == 0 and Color.RGBA(17, 17, 17, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()), 6)
        Render.Circle( -- right
            Vector2.new(x + textSize + 16, y + text_size.y - 4),
            5, 90, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), 2, 270, 370
        )

        Render.Circle( -- left
            Vector2.new(start_position + 36, y + text_size.y - 4),
            5, 90, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), 2, 270, 170
        )

        Render.GradientBoxFilled(
            Vector2.new(x + textSize + 22, y + text_size.y - 4),
            Vector2.new(x + textSize + 20, y + text_size.y + 3),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b)
        )

        Render.GradientBoxFilled(
            Vector2.new(start_position + 32, y + text_size.y - 4),
            Vector2.new(start_position + 32 - 2, y + text_size.y + 3),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0)
        )
    else
        renderer_window(x+10, y+2+1, x + textSize+20, y+2+1 + h + 2, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, alpha_slider:GetInt()/255), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), false, true)
    end

    
    Render.Text(nexttext, Vector2.new(var-2,13), theme:Get() == 0 and Color.RGBA(0, 0, 0, 180) or Color.RGBA(255, 255, 255, 180), 11, verdanar11)
    Render.Text(nexttext, Vector2.new(var-3,12), theme:Get() == 0 and Color.RGBA(255, 255, 255, 255) or Color.RGBA(0, 0, 0, 255), 11, verdanar11)
    --Render.Text(cheatname:sub(1, #cheatname / 2), Vector2.new(var-3,12), theme:Get() == 0 and Color.RGBA(255, 255, 255, 255) or Color.RGBA(0, 0, 0, 255), 11, verdanar11)
    local wide = Render.CalcTextSize(nexttext, 11, verdanar11)
    var = var + wide.x

    textSize = var - (screen.x - textSize - rightPadding)
end

current_choke = 0
ind_phase, ind_num, ind_time = 0, 0, 0
last_sent, current_choke = 0, 0
teleport = 0
last_origin = 0
breaking_lc = 0
function gram_create(value, count) local gram = { }; for i=1, count do gram[i] = value; end return gram; end
function gram_update(tab, value, forced) local new_tab = tab; if forced or new_tab[#new_tab] ~= value then table.insert(new_tab, value); table.remove(new_tab, 1); end; tab = new_tab; end
function get_average(tab) local elements, sum = 0, 0; for k, v in pairs(tab) do sum = sum + v; elements = elements + 1; end return sum / elements; end
gram_fyaw = gram_create(0, 2)
teleport_data = gram_create(0, 3)
avg = 0
gram_update(gram_fyaw, math.min(math.abs(AntiAim.GetCurrentRealRotation() - AntiAim.GetFakeRotation()), 58), true)

client = {}

client.data_call = {}

client.delay_call = function(time, fn)
    table.insert(client.data_call, {
        fn = fn,
        time = time,
        realtime = GlobalVars.realtime
    })

    function client_call_delay()
        for i, data in ipairs(client.data_call) do
            if data.realtime + data.time < GlobalVars.realtime then
                data.fn()
                data.realtime = GlobalVars.realtime
            end
        end
    end
end

client.delay_call(0.4, function() --Oh no cringe
    if not EngineClient.IsInGame() or not EngineClient.IsConnected() or EntityList.GetLocalPlayer() == nil then return end
    gram_update(gram_fyaw, math.min(math.abs(Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Angle', 'LBY Mode'):Get() == 1 and (AntiAim.GetCurrentRealRotation() - AntiAim.GetFakeRotation())/2 or (AntiAim.GetCurrentRealRotation() - AntiAim.GetFakeRotation())), 58), true)
    current_choke = ClientState.m_choked_commands
    avg = math.abs(GlobalVars.frametime*600)
end)

function update_choked()
    if not EngineClient.IsInGame() or not EngineClient.IsConnected() or EntityList.GetLocalPlayer() == nil then return end
    if ClientState.m_choked_commands == 0 then
        local m_origin = EntityList.GetLocalPlayer():GetProp('m_vecOrigin')
        
        if last_origin ~= nil then
            teleport = (m_origin-last_origin):Length2D()
        
            gram_update(teleport_data, teleport, true)
        end
        
        last_sent = current_choke
        last_origin = m_origin
    end

    breaking_lc =
        get_average(teleport_data) > 65 and 1 or
            (Exploits.GetCharge() > 0.7 and 2 or 0)
end

lag_data = gram_create(0, 90)

function get_color(number, max, i)
    local Colors = {
        { 255, 0, 0 },
        { 237, 27, 3 },
        { 235, 63, 6 },
        { 229, 104, 8 },
        { 228, 126, 10 },
        { 220, 169, 16 },
        { 213, 201, 19 },
        { 176, 205, 10 },
        { 124, 195, 13 }
    }
 
    function math.num(int, max, declspec)
        local int = (int > max and max or int)
        local tmp = max / int;
 
        if not declspec then declspec = max end
 
        local i = (declspec / tmp)
        i = (i >= 0 and math.floor(i + 0.5) or math.ceil(i - 0.5))
 
        return i
    end
 
    i = math.num(number, max, #Colors)
 
    return
        Colors[i <= 1 and 1 or i][1],
        Colors[i <= 1 and 1 or i][2],
        Colors[i <= 1 and 1 or i][3],
        i
end

function graphs() local a = {} function a:renderer_line(b, c, d) renderer_line(b.x, b.y, c.x, c.y, Color.new(d.r, d.g, d.b, d.a)) end function a:renderer_rectangle_filled(b, c, d) local e = c.x - b.x local f = c.y - b.y if e < 0 then if f < 0 then renderer_rectangle(c.x, c.y, -e, -f, Color.new(d.r, d.g, d.b, d.a)) else renderer_rectangle(c.x, b.y, -e, f, Color.new(d.r, d.g, d.b, d.a)) end else if f < 0 then renderer_rectangle(b.x, c.y, e, -f, Color.new(d.r, d.g, d.b, d.a)) else renderer_rectangle(b.x, b.y, e, f, Color.new(d.r, d.g, d.b, d.a)) end end end function a:renderer_rectangle_filled_gradient(b, c, g, h, i) local e = c.x - b.x local f = c.y - b.y if e < 0 then if f < 0 then renderer_gradient(c.x, c.y, -e, -f, Color.new(g.r,g.g,g.b,g.a), Color.new(h.r,h.g,h.b,h.a), i) else renderer_gradient(c.x, b.y, -e, f, Color.new(g.r,g.g,g.b,g.a), Color.new(h.r,h.g,h.b,h.a), i) end else if f < 0 then renderer_gradient(b.x, c.y, e, -f, Color.new(h.r,h.g,h.b,h.a), Color.new(g.r,g.g,g.b,g.a), i) else renderer_gradient(b.x, b.y, e, f, Color.new(h.r,h.g,h.b,h.a), Color.new(g.r,g.g,g.b,g.a), i) end end end function a:draw_histogram(j, k, l, m, n) local p = k k = 0 l = l - p local r = n.w_IO / (m - 1) local s = l - k for t = 1, m - 1 do local u = {(j[t] - p) / s, (j[t + 1] - p) / s} local v = { {x = math.floor(n.x_HZ + r * (t - 1)), y = math.floor(n.y_HZ + n.h_IO - n.h_IO * u[1])}, {x = math.floor(n.x_HZ + r * t), y = math.floor(n.y_HZ + n.h_IO)}, isZero = math.floor(n.y_HZ + n.h_IO) == math.floor(n.y_HZ + n.h_IO - n.h_IO * u[1]) } if n.sDrawBar == 'fill' then a:renderer_rectangle_filled( {x = v[1].x, y = v[1].y}, {x = v[2].x, y = v[2].y}, {r = n.clr_1[1], g = n.clr_1[2], b = n.clr_1[3], a = n.clr_1[4]} ) elseif n.sDrawBar == 'gradient_fadeout' then a:renderer_rectangle_filled_gradient( {x = v[1].x, y = v[1].y}, {x = v[2].x, y = v[2].y}, {r = n.clr_1[1], g = n.clr_1[2], b = n.clr_1[3], a = 0}, {r = n.clr_1[1], g = n.clr_1[2], b = n.clr_1[3], a = n.clr_1[4]}, false ) elseif n.sDrawBar == 'gradient_fadein' then a:renderer_rectangle_filled_gradient( {x = v[1].x, y = v[1].y}, {x = v[2].x, y = v[2].y}, {r = n.clr_1[1], g = n.clr_1[2], b = n.clr_1[3], a = n.clr_1[4]}, {r = n.clr_1[1], g = n.clr_1[2], b = n.clr_1[3], a = 0}, false ) else end if n.bDrawPeeks and not v.isZero then a:renderer_line( {x = v[1].x, y = v[1].y}, {x = v[2].x, y = v[1].y}, {r = n.clr_2[1], g = n.clr_2[2], b = n.clr_2[3], a = n.clr_2[4]} ) end end end return a end

function renderer_gradient(x,y,w,h,c1,c2,ishorizon)
    if ishorizon == true then
        Render.GradientBoxFilled(Vector2.new(x,y),Vector2.new(x+w,y+h),c1,c2,c1,c2)
    else
        Render.GradientBoxFilled(Vector2.new(x,y),Vector2.new(x+w,y+h),c1,c1,c2,c2)
    end
end

function renderer_fade(x, y, w, h, color, length, round)
    local r, g, b, a = color.r, color.g, color.b, color.a

    for i = 1, 10 do
        Render.Box(Vector2.new(x - i, y - i), Vector2.new(w + i, h + i), Color.new(r, g, b, (60 - (60 / length) * i) * (a / 255)), round)
        --Render.BoxFilled(Vector2.new(x,y),Vector2.new(x+w,y+h),c1,round)
    end
end

function renderer_window(x, y, w, h, color, shadow_color, outline_color, left, outline)
    local r, g, b, a = color.r, color.g, color.b, color.a
    local r1, g1, b1, a1 = shadow_color.r, shadow_color.g, shadow_color.b, shadow_color.a
    local r2, g2, b2, a2 = outline_color.r, outline_color.g, outline_color.b, outline_color.a

    --render.blur(x, y, w, h, 1)
    if background_blur:GetBool() then
        Render.Blur(Vector2.new(x, y), Vector2.new(w, h), Color.new(1,1,1, 1), 5)
    end
    if outline then
        Render.Circle(Vector2.new(x + 4, y + 4), 4, 4, Color.new(r, g, b, 1), 1, -175, -90)

        Render.BoxFilled(Vector2.new(x + 4, y), Vector2.new(w - 5, y+1), Color.new(r, g, b, 1))
        Render.Circle(Vector2.new(w - 4, y + 4), 4, 4, Color.new(r, g, b, 1), 1, 260, 370)

        Render.GradientBoxFilled(Vector2.new(x, y + 4), Vector2.new(x + 1, h - 6), Color.new(r, g, b, 1), Color.new(r, g, b, 1), Color.new(r, g, b, 0), Color.new(r, g, b, 0))
        Render.GradientBoxFilled(Vector2.new(w - 1, y + 4), Vector2.new(w, h - 6), Color.new(r, g, b, 1), Color.new(r, g, b, 1), Color.new(r, g, b, 0), Color.new(r, g, b, 0))
    end
    Render.Box(Vector2.new(x, y), Vector2.new(w, h), Color.new(r2, g2, b2, (80 / 255) * a2), 5)
    if left then
        Render.BoxFilled(Vector2.new(x, y + 4), Vector2.new(x+1, h - 5), Color.new(r, g, b, 1))

        Render.Circle(Vector2.new(x + 5, y + 5), 5, 12, Color.new(r, g, b, 1), 1, -90, -165)

        Render.Circle(Vector2.new(x + 5, h - 5), 5, 12, Color.new(r, g, b, 1), 1, -185, -255)

        Render.GradientBoxFilled(Vector2.new(x + 4, y), Vector2.new(x+20, y+1), Color.new(r, g, b, 1), Color.new(r, g, b, 0), Color.new(r, g, b, 1), Color.new(r, g, b, 0))
        Render.GradientBoxFilled(Vector2.new(x + 4, h - 1), Vector2.new(x+20, h), Color.new(r, g, b, 1), Color.new(r, g, b, 0), Color.new(r, g, b, 1), Color.new(r, g, b, 0))
    end
    
    Render.BoxFilled(Vector2.new(x+1, y+1), Vector2.new(w-1, h-1), theme:Get() == 0 and Color.new(0, 0, 0, a) or Color.new(0.93, 0.93, 0.93, a) , 5)
    
    renderer_fade(x, y, w, h, Color.new(r1, g1, b1, (120 / 255) * a1), 10, 10)
end

function renderer_rectangle(x,y,w,h,c1)
    if windows_theme:Get() == 0 then
        Render.BoxFilled(Vector2.new(x,y),Vector2.new(x+w,y+h),c1,windows_theme:Get() == 0 and 0 or 6)
    elseif windows_theme:Get() == 1 then
        Render.BoxFilled(Vector2.new(x,y),Vector2.new(x+w,y+h),c1,windows_theme:Get() == 0 and 0 or 6)
        Render.Box(Vector2.new(x-1, y-1), Vector2.new(x + w + 1, y + h + 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), 6)
    elseif windows_theme:Get() == 2 then
        Render.BoxFilled(Vector2.new(x,y),Vector2.new(x+w,y+h),c1,windows_theme:Get() == 0 and 0 or 6)
        Render.BoxFilled(Vector2.new(x+3,y),Vector2.new(x-3+w,y-2), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b))

        Render.Circle(Vector2.new(x + w - 4, y + h - 13.7), 5, 90, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), 2, 270, 370)

        Render.Circle(Vector2.new(x - 32 + 36, y + h - 13.7), 5, 90, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), 2, 270, 170)

        Render.GradientBoxFilled(Vector2.new(x + w + 2, y + h - 13.7), Vector2.new(x + w, y + h - 7), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b))

        Render.GradientBoxFilled(Vector2.new(x - 32 + 32, y + h - 13.7), Vector2.new(x - 32 + 32 - 2, y + h - 7), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0))
    end
end

function renderer_blur(x,y,w,h,c)
    Render.Blur(Vector2.new(x,y),Vector2.new(x+w,y+h), c, windows_theme:Get() == 0 and 0 or 6)
end

function renderer_text(x,y,cent,string,c1,font,size,alpha)
    Render.Text(string,Vector2.new(x+1,y+1),theme:Get() == 0 and Color.RGBA(0, 0, 0, alpha) or Color.RGBA(255, 255, 255, alpha),size,font,false,cent)
    Render.Text(string,Vector2.new(x,y),c1,size,font,false,cent)
end

function renderer_line(x,y,w,h,c1)
    Render.Line(Vector2.new(x, y), Vector2.new(w,h), c1)
end

formatting = (function(avg)
    if avg < 1 then return ('%.2f'):format(avg) end
    if avg < 10 then return ('%.1f'):format(avg) end
    return ('%d'):format(avg)
end)

fps_data = gram_create(0, 30)
g_frameRate, g_prev_frameRate, x_minus = 0, 0, 0
function solus_ui()
    if not EngineClient.IsInGame() or not EngineClient.IsConnected() or EntityList.GetLocalPlayer() == nil then return end
    local transp = alpha_slider:GetInt()
    local addr, nval = '', false
    local r, g, b = 150, 150, 150
        
    local fr = GlobalVars.frametime * 3.75
    local min_offset = 1200+math.max(0, get_average(teleport_data)-3800)
    local teleport_mt = math.abs(math.min(teleport-3800, min_offset) / min_offset * 100)
        
    if ind_num ~= teleport_mt and ind_time < GlobalVars.realtime then
        ind_time = GlobalVars.realtime + 0.005
        ind_num = ind_num + (ind_num > teleport_mt and -1 or 1)
    end
    ind_phase = ind_phase + (breaking_lc == 1 and fr or -fr)
    ind_phase = ind_phase > 1 and 1 or ind_phase
    ind_phase = ind_phase < 0 and 0 or ind_phase
    if breaking_lc == 2 then
        addr, ind_phase, ind_num = ' | SHIFTING', 0, 0
        r, g, b = 228, 126, 10
    elseif ind_phase > 0.1 then
        addr = ' | dst: \x20\x20\x20\x20\x20\x20\x20\x20\x20'
    end
    local text_FL = ('FL: %s%s'):format(
        (function()
            if tonumber(last_sent) < 10 then
                return '\x20\x20' .. last_sent
            end
            return last_sent
        end)(),
    addr)
    local h_FL, w_FL = 18, (windows_value:Get(4) and EntityList.GetLocalPlayer():IsAlive()) and Render.CalcTextSize(text_FL,11,verdanar11).x + 8 or -4
    local x_FL, y_FL = screen_size.x, (windows_value:Get(1) and 35 or 10) + (25*0)
        
    x_FL = x_FL - w_FL - 10
    if windows_value:Get(4) and EntityList.GetLocalPlayer():IsAlive() then
        if background_blur:GetBool() and windows_theme:Get() ~= 3 then
            renderer_blur(x_FL, y_FL, w_FL, h_FL, background_blur:GetColor())
        end

        renderer_rectangle(x_FL, y_FL, w_FL, h_FL, theme:Get() == 0 and Color.RGBA(17,17,17,transp) or Color.RGBA(237,237,237,transp))

        if windows_theme:Get() == 0 then
            renderer_gradient(x_FL, y_FL+h_FL, w_FL-w_FL/2, 1, theme:Get() == 0 and Color.RGBA(17,17,17,transp) or Color.RGBA(237,237,237,transp), Color.RGBA(r, g, b,255),true)
            renderer_gradient(x_FL + w_FL/2, y_FL + h_FL, w_FL - w_FL/2, 1, Color.RGBA(r, g, b,255), theme:Get() == 0 and Color.RGBA(17,17,17,transp) or Color.RGBA(237,237,237,transp),true)
        elseif windows_theme:Get() == 3 then
            renderer_window(x_FL, y_FL, x_FL+w_FL, y_FL+h_FL, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, transp/255), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), false, true)
        end
        if ind_phase > 0 then
            renderer_gradient(
                x_FL + w_FL - Render.CalcTextSize(' | dst: ', 11, verdanar11).x + 2,
                y_FL + 6, math.min(100, ind_num) / 100 * 24, 5,

                Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, ind_phase*220/255),
                Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, ind_phase * 25/255),

                true
            )
        end
        renderer_text(x_FL+4, y_FL + 2,false,text_FL,theme:Get() == 0 and Color.RGBA(255,255,255,255) or Color.RGBA(0, 0, 0, 255),verdanar11,11,120)
    end

    local add_text = ((get_average(gram_fyaw) > 0) and windows_theme:Get() ~= 3) and '\x20\x20\x20\x20\x20' or ''
    text_FI = ('%sFAKE (%.1f°) '):format(add_text, get_average(gram_fyaw))
    local h_FI, w_FI = 18, (windows_value:Get(4) and EntityList.GetLocalPlayer():IsAlive()) and Render.CalcTextSize(text_FI,11,verdanar11).x + 8 or 0
    
    local r,g,b = get_color(get_average(gram_fyaw),30)
    local dec = { math.ceil(r - (r/100 * 50)), math.ceil(g - (g/100 * 50)), math.ceil(b - (b/100 * 50)) }
    if (windows_value:Get(4) and EntityList.GetLocalPlayer():IsAlive()) then
        if background_blur:GetBool() and windows_theme:Get() ~= 3 then
            renderer_blur(x_FL - w_FI - 4, y_FL, w_FI, h_FI, background_blur:GetColor())
        end
        if windows_theme:Get() ~= 3 then
            renderer_gradient(x_FL - w_FI - 6, y_FL, 2, h_FI / 2,Color.RGBA(dec[1], dec[2], dec[3],0),Color.RGBA(r,g,b,255),false)
            renderer_gradient(x_FL - w_FI - 6, y_FL + h_FI / 2, 2, h_FI / 2,Color.RGBA(r,g,b,255),Color.RGBA(dec[1], dec[2], dec[3],0),false)
            renderer_gradient(x_FL - w_FI - 4, y_FL, w_FI / 2, h_FI,theme:Get() == 0 and Color.RGBA(17,17,17,math.floor(transp/20)) or Color.RGBA(237,237,237,math.floor(transp/20)),theme:Get() == 0 and Color.RGBA(17,17,17,transp) or Color.RGBA(237,237,237,transp),true)
            renderer_gradient(x_FL - w_FI - 4 + w_FI / 2, y_FL, w_FI / 2, h_FI,theme:Get() == 0 and Color.RGBA(17,17,17,transp) or Color.RGBA(237,237,237,transp),theme:Get() == 0 and Color.RGBA(17,17,17,math.floor(transp/20)) or Color.RGBA(237,237,237,math.floor(transp/20)),true)
            if get_average(gram_fyaw) > 0 then
                Render.Circle(Vector2.new(x_FL - w_FI + 6, y_FL + 8.5), 5, 32, Color.RGBA(89, 119, 239, 255), 2, 0, math.min(360, get_average(gram_fyaw)*6.21))
            end
        else
            renderer_window(x_FL - w_FI - 6, y_FL, x_FL - 6, y_FL+h_FI, Color.RGBA(r,g,b,transp), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), true, false)
        end

        renderer_text(x_FL - w_FI, y_FL + 2,false,text_FI,theme:Get() == 0 and Color.RGBA(255,255,255,255) or Color.RGBA(0, 0, 0, 255),verdanar11,11,120)
        
    end
 
    local text_HZ = ('%sms / %dhz'):format(formatting(avg), frequency)
 
    local h_HZ, w_HZ = 18, windows_value:Get(5) and Render.CalcTextSize(text_HZ,11,verdanar11).x+8 or -4
    local x_HZ, y_HZ = screen_size.x, (windows_value:Get(1) and 35 or 10) + (25*((windows_value:Get(4) and EntityList.GetLocalPlayer():IsAlive()) and 1 or 0))
 
    local x_HZ = x_HZ - w_HZ - 10
    if windows_value:Get(5) then
        local interp = { get_color(15-avg, 15) }

        if background_blur:GetBool() and windows_theme:Get() ~= 3 then
            renderer_blur(x_HZ, y_HZ, w_HZ, h_HZ, background_blur:GetColor())
        end
        renderer_rectangle(x_HZ, y_HZ, w_HZ, h_HZ, theme:Get() == 0 and Color.RGBA(17,17,17,transp) or Color.RGBA(237,237,237,transp))

        if windows_theme:Get() == 0 then
            renderer_gradient(x_HZ,y_HZ+h_HZ,w_HZ/2,1,theme:Get() == 0 and Color.RGBA(17,17,17,math.floor(transp/3)) or Color.RGBA(237,237,237,math.floor(transp/3)),Color.RGBA(interp[1], interp[2], interp[3], 255),true  )
            renderer_gradient(x_HZ + w_HZ/2, y_HZ+h_HZ, w_HZ-w_HZ/2, 1,Color.RGBA(interp[1], interp[2], interp[3], 255),theme:Get() == 0 and Color.RGBA(17,17,17,math.floor(transp/3)) or Color.RGBA(237,237,237,math.floor(transp/3)), true)
        elseif windows_theme:Get() == 3 then
            renderer_window(x_HZ, y_HZ, x_HZ+w_HZ, y_HZ+h_HZ, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, transp/255), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), false, true)
        end

        renderer_text(x_HZ+4, y_HZ + 2,false,text_HZ,theme:Get() == 0 and Color.RGBA(255,255,255,255) or Color.RGBA(0, 0, 0, 255),verdanar11,11,120)
    end
    g_frameRate = 0.9 * g_frameRate + (1.0 - 0.9) * GlobalVars.absoluteframetime
    gram_update(fps_data, math.abs(g_prev_frameRate-(1/g_frameRate)), true)
    g_prev_frameRate = 1/g_frameRate
    local g_nValues_t = {
        avg, 1, 3,
        get_average(fps_data)/4, 0
    }

    local min_value, max_value = math.min(unpack(g_nValues_t)), math.max(unpack(g_nValues_t))

    local text_IO_sub = '       '
    local text_IO = 'IO | ' ..  text_IO_sub
    local w_IE = Render.CalcTextSize(text_IO_sub,11,verdanar11).x+3
    local h_IO, w_IO = 18, Render.CalcTextSize(text_IO,11,verdanar11).x+8
    local graphics = graphs()
    if windows_theme:Get() == 0 then
        x_minus = 0
    elseif windows_theme:Get() == 1 then
        x_minus = 2
    elseif windows_theme:Get() == 2 then
        x_minus = 6
    else
        x_minus = 0
    end
    if windows_value:Get(5) then
        if background_blur:GetBool() and windows_theme:Get() ~= 3 then
            renderer_blur(x_HZ - x_minus - w_IO - 4, y_HZ, w_IO, h_IO, background_blur:GetColor())
        end
        renderer_rectangle(x_HZ - x_minus - w_IO - 4, y_HZ, w_IO, h_IO,theme:Get() == 0 and Color.RGBA(17,17,17,transp) or Color.RGBA(237,237,237,transp))
        
        if windows_theme:Get() == 3 then
            renderer_window(x_HZ - x_minus - w_IO - 4, y_HZ, x_HZ - x_minus - w_IO - 4+w_IO, y_HZ+h_IO, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, transp/255), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), true, false)
        end
        
        renderer_text(x_HZ - x_minus - w_IO, y_HZ + 2,false,text_IO,theme:Get() == 0 and Color.RGBA(255,255,255,255) or Color.RGBA(0, 0, 0, 255),verdanar11,11,120)
        graphics:draw_histogram(g_nValues_t, 0, max_value, #g_nValues_t, {
            x_HZ = x_HZ - x_minus - w_IO + 1 + w_IE,
            y_HZ = y_HZ + 4,
            w_IO = w_IO - w_IE - 9,
            h_IO = h_IO - 8,
    
            sDrawBar = 'gradient_fadein', -- 'none', 'fill', 'gradient_fadeout', 'gradient_fadein'
            bDrawPeeks = false,
            thickness = 1,
    
            clr_1 = { accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1 },
            clr_2 = { 0, 0.5, 1, 1 },
        })
    end
end

function Render.conteiner(x, y, w, h, name, font_size, font)
    local name_size = Render.CalcTextSize(name, font_size, font)
    if background_blur:GetBool() then
        Render.Blur(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), background_blur:GetColor(), windows_theme:Get() == 0 and 0 or 6)
    end

    if windows_theme:Get() == 0 then
        if line_theme:Get() == 0 then
            Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y - 2), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1))
        elseif line_theme:Get() == 1 then
            Render.GradientBoxFilled(Vector2.new(x + w/2, y), Vector2.new(x + w + 3, y - 2), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0))
            Render.GradientBoxFilled(Vector2.new(x, y), Vector2.new(x + (w + 3)/2, y - 2), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1))
        elseif line_theme:Get() == 2 then
            Render.GradientBoxFilled(Vector2.new(x + w/2, y), Vector2.new(x + w + 3, y - 2), Color.RGBA(204, 18, 204, 255), Color.RGBA(255, 250, 0, 255), Color.RGBA(204, 18, 204, 255), Color.RGBA(255, 250, 0, 255))
            Render.GradientBoxFilled(Vector2.new(x, y), Vector2.new(x + (w + 3)/2, y - 2), Color.RGBA(0, 213, 255, 255), Color.RGBA(204, 18, 204, 255), Color.RGBA(0, 213, 255, 255), Color.RGBA(204, 18, 204, 255))
        end

        Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), theme:Get() == 0 and Color.RGBA(18, 18, 18, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()))
    elseif windows_theme:Get() == 1 then
        Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), theme:Get() == 0 and Color.RGBA(18, 18, 18, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()), 6)
        Render.Box(Vector2.new(x-1, y-1), Vector2.new(x + w + 4, y + h + 3), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), 6)
    elseif windows_theme:Get() == 2 then
        Render.BoxFilled(Vector2.new(x+4,y),Vector2.new(x-1+w,y-2), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b))
        Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), theme:Get() == 0 and Color.RGBA(18, 18, 18, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()), 6)
        Render.Circle( -- right
            Vector2.new(x + w - 1, y + h - 12),
            5, 90, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), 2, 270, 370
        )

        Render.Circle( -- left
            Vector2.new(x - 32 + 36, y + h - 12),
            5, 90, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), 2, 270, 170
        )

        Render.GradientBoxFilled(
            Vector2.new(x + w + 5, y + h - 11),
            Vector2.new(x + w + 3, y + h - 7),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b)
        )

        Render.GradientBoxFilled(
            Vector2.new(x - 32 + 32, y + h - 11),
            Vector2.new(x - 32 + 32 - 2, y + h - 7),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0)
        )
    else
       -- renderer_fade(x, y, x + w + 3, y + h + 2 , Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, (120 / 255) * accent_color:GetColor().a), 10, 10)
        renderer_window(x, y, x + w + 3, y + h + 2, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, alpha_slider:GetInt()/255), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), false, true)
        --Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), theme:Get() == 0 and Color.RGBA(18, 18, 18, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()), 6)
    end
    Render.Text(name, Vector2.new(x+2 + w / 2 + 1 - name_size.x / 2, y + 3), theme:Get() == 0 and Color.RGBA(0, 0, 0, 180) or Color.RGBA(255, 255, 255, 180), font_size, font)
    Render.Text(name, Vector2.new(x+1 + w / 2 + 1 - name_size.x / 2, y + 2), theme:Get() == 0 and Color.RGBA(255, 255, 255, 255) or Color.RGBA(0, 0, 0, 255), font_size, font)
end

keybinds_x:SetVisible(false)
keybinds_y:SetVisible(false)
spectators_x:SetVisible(false)
spectators_y:SetVisible(false)

local g_players = { }
alpha_k = 1
data_k = {
    [''] = {alpha_k = 0}
}

drag_s = false
width_k = 0
width_ka = 0
alpha_s = 1
width_sa = 0
width_s = 0
dick = 0
data_s = {
    [''] = {alpha_s = 0}
}

function getsteam_id(steamid)
    return string.sub(tostring(ffi.new('uint64_t', 76561197960265728) + ffi.new('uint64_t', steamid)), 1, -4)
end

width_k = 0
width_ka = 0

function get_spectators(player)
    local buffer = { }

    local players = EntityList.GetPlayers()
    for tbl_idx, player_pointer in pairs(players) do
        if player_pointer:EntIndex() ~= player:EntIndex() then
            if not player_pointer:IsAlive() then
                local spectatingMode = player_pointer:GetProp('m_iObserverMode')
                local spectatingPlayer = player_pointer:GetProp('m_hObserverTarget')

                if spectatingPlayer then
                    if spectatingMode >= 4 or spectatingMode <= 5 then
                        local spectatingEntity = EntityList.GetClientEntityFromHandle(spectatingPlayer)
                        if spectatingEntity ~= nil and spectatingEntity:EntIndex() == player:EntIndex() then
                            local player_info = player_pointer:GetPlayerInfo()

                            table.insert(buffer, 1, {
                                ['id'] = player_info.iSteamID,
                                ['id64'] = getsteam_id(player_info.iSteamID),
                                ['name'] = player_pointer:GetName()
                            })
                        end
                    end
                end
            end
        end
    end

    return buffer
end

function getspectators()
    if not EngineClient.IsConnected() or EngineClient.GetLocalPlayer() == nil or EntityList.GetLocalPlayer() == nil then return end
    local local_player = EntityList.GetLocalPlayer()
    if local_player == nil then return end

    if local_player:IsAlive() then
        return get_spectators(local_player:GetPlayer())
    else
        local m_hObserverTarget = local_player:GetProp('m_hObserverTarget')
        if m_hObserverTarget then
            local targetEntity = EntityList.GetClientEntityFromHandle(m_hObserverTarget)
            if targetEntity ~= nil then
                return get_spectators(targetEntity:GetPlayer())
            end
        end
    end
end

function loadimages()
    if not EngineClient.IsConnected() or EntityList.GetLocalPlayer() == nil then return end
    local players = EntityList.GetPlayers()
    for tbl_idx, player_pointer in pairs(players) do
        local player_info = player_pointer:GetPlayerInfo()
        if g_players[player_info.iSteamID] == nil then
            g_players[player_info.iSteamID] = {
                ['downloaded'] = false,
                ['image'] = nil
            }

            Http.GetAsync(string.format('https://steamcommunity.com/profiles/%s/?xml=1', getsteam_id(player_info.iSteamID)), function(url_content)
                if player_info.fakeplayer then
                    ht4r = 'https://avatars.cloudflare.steamstatic.com/fef49e7fa7e1997310d705b2a6158ff8dc1cdfeb_medium.jpg'
                else
                    if url_content == nil then return end
                    link_start = string.find(url_content, '<avatarMedium>')
                    if link_start == nil then return end
                    link_end = string.find(url_content, '</avatarMedium>')
                    if link_end == nil then return end
                    ht4r = url_content:sub(link_start+23,link_end-4);
                end
                Http.GetAsync(ht4r, function(response)
                    local image = Render.LoadImage(response, Vector2.new(12, 12))

                    g_players[player_info.iSteamID].downloaded = true
                    g_players[player_info.iSteamID].image = image
                end)
            end)
        else
            if g_players[player_info.iSteamID].downloaded and g_players[player_info.iSteamID].image == nil then
                Http.GetAsync(string.format('https://steamcommunity.com/profiles/%s/?xml=1', getsteam_id(player_info.iSteamID)), function(url_content)
                    if player_info.fakeplayer then
                        ht4r = 'https://avatars.cloudflare.steamstatic.com/fef49e7fa7e1997310d705b2a6158ff8dc1cdfeb_medium.jpg'
                    else
                        if url_content == nil then return end
                        link_start = string.find(url_content, '<avatarMedium>')
                        if link_start == nil then return end
                        link_end = string.find(url_content, '</avatarMedium>')
                        if link_end == nil then return end
                        ht4r = url_content:sub(link_start+23,link_end-4);
                    end
                    Http.GetAsync(ht4r, function(response)
                        local image = Render.LoadImage(response, Vector2.new(12, 12))
                    
                        g_players[player_info.iSteamID].downloaded = true
                        g_players[player_info.iSteamID].image = image
                    end)
                end)
            end
        end
    end
end

function Render.conteiner(x, y, w, h, name, font_size, font)
    local name_size = Render.CalcTextSize(name, font_size, font)
    if background_blur:GetBool() then
        Render.Blur(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), background_blur:GetColor(), windows_theme:Get() == 0 and 0 or 6)
    end

    if windows_theme:Get() == 0 then
        if line_theme:Get() == 0 then
            Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y - 2), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1))
        elseif line_theme:Get() == 1 then
            Render.GradientBoxFilled(Vector2.new(x + w/2, y), Vector2.new(x + w + 3, y - 2), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0))
            Render.GradientBoxFilled(Vector2.new(x, y), Vector2.new(x + (w + 3)/2, y - 2), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1))
        elseif line_theme:Get() == 2 then
            Render.GradientBoxFilled(Vector2.new(x + w/2, y), Vector2.new(x + w + 3, y - 2), Color.RGBA(204, 18, 204, 255), Color.RGBA(255, 250, 0, 255), Color.RGBA(204, 18, 204, 255), Color.RGBA(255, 250, 0, 255))
            Render.GradientBoxFilled(Vector2.new(x, y), Vector2.new(x + (w + 3)/2, y - 2), Color.RGBA(0, 213, 255, 255), Color.RGBA(204, 18, 204, 255), Color.RGBA(0, 213, 255, 255), Color.RGBA(204, 18, 204, 255))
        end

        Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), theme:Get() == 0 and Color.RGBA(18, 18, 18, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()))
    elseif windows_theme:Get() == 1 then
        Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), theme:Get() == 0 and Color.RGBA(18, 18, 18, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()), 6)
        Render.Box(Vector2.new(x-1, y-1), Vector2.new(x + w + 4, y + h + 3), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), 6)
    elseif windows_theme:Get() == 2 then
        Render.BoxFilled(Vector2.new(x+4,y),Vector2.new(x-1+w,y-2), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b))
        Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), theme:Get() == 0 and Color.RGBA(18, 18, 18, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()), 6)
        Render.Circle( -- right
            Vector2.new(x + w - 1, y + h - 12),
            5, 90, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), 2, 270, 370
        )

        Render.Circle( -- left
            Vector2.new(x - 32 + 36, y + h - 12),
            5, 90, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), 2, 270, 170
        )

        Render.GradientBoxFilled(
            Vector2.new(x + w + 5, y + h - 11),
            Vector2.new(x + w + 3, y + h - 7),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b)
        )

        Render.GradientBoxFilled(
            Vector2.new(x - 32 + 32, y + h - 11),
            Vector2.new(x - 32 + 32 - 2, y + h - 7),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0)
        )
    else
       -- renderer_fade(x, y, x + w + 3, y + h + 2 , Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, (120 / 255) * accent_color:GetColor().a), 10, 10)
        renderer_window(x, y, x + w + 3, y + h + 2, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, alpha_slider:GetInt()/255), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), false, true)
        --Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), theme:Get() == 0 and Color.RGBA(18, 18, 18, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()), 6)
    end
    Render.Text(name, Vector2.new(x+2 + w / 2 + 1 - name_size.x / 2, y + 3), theme:Get() == 0 and Color.RGBA(0, 0, 0, 180) or Color.RGBA(255, 255, 255, 180), font_size, font)
    Render.Text(name, Vector2.new(x+1 + w / 2 + 1 - name_size.x / 2, y + 2), theme:Get() == 0 and Color.RGBA(255, 255, 255, 255) or Color.RGBA(0, 0, 0, 255), font_size, font)
end

function spec_solus()
    local spectators = getspectators()
    
    if not EngineClient.IsConnected() or spectators == nil or EntityList.GetLocalPlayer() == nil then return end
    loadimages()
    local add_y = 0
    local max_width = 0
    local active_spec = {}
    local frametime = GlobalVars.frametime * 16
    
    if spectators ~= nil then
        local currentIndex = 1
        if spectators ~= nil then
            for i = 1, #spectators do
                v = spectators[i]
                if g_players[v.id].downloaded then
                    local name_size = Render.CalcTextSize(v.name, 11, verdanar11)
                    if data_s[v.name] == nil then
                        data_s[v.name] = {alpha_s = 0}
                    end
                    data_s[v.name].alpha_s = lerp(frametime, data_s[v.name].alpha_s,dick < 1 and 1 or 0)
                    if avatar_pos:Get() == 0 then
                        Render.Text(v.name, Vector2.new(spectators_x:GetInt()+4+1, spectators_y:GetInt() + 22 + add_y), Color.new(0, 0, 0, data_s[v.name].alpha_s), 11, verdanar11)
                        Render.Text(v.name, Vector2.new(spectators_x:GetInt()+4, spectators_y:GetInt() + 21 + add_y), Color.new(1, 1, 1, data_s[v.name].alpha_s), 11, verdanar11)
                    elseif avatar_pos:Get() == 1 then
                        Render.Image(g_players[v.id].image, Vector2.new(spectators_x:GetInt()+4, spectators_y:GetInt() + 21 + add_y), Vector2.new(12, 12))
                        Render.Text(v.name, Vector2.new(spectators_x:GetInt()+22, spectators_y:GetInt() + 22 + add_y), Color.new(0, 0, 0, data_s[v.name].alpha_s), 11, verdanar11)
                        Render.Text(v.name, Vector2.new(spectators_x:GetInt()+22-1, spectators_y:GetInt() + 21 + add_y), Color.new(1, 1, 1, data_s[v.name].alpha_s), 11, verdanar11)
                    else
                        Render.Image(g_players[v.id].image, Vector2.new(spectators_x:GetInt()-13 + width_sa, spectators_y:GetInt() + 21 + add_y), Vector2.new(12, 12))
                        Render.Text(v.name, Vector2.new(spectators_x:GetInt()+4+1, spectators_y:GetInt() + 22 + add_y), Color.new(0, 0, 0, data_s[v.name].alpha_s), 11, verdanar11)
                        Render.Text(v.name, Vector2.new(spectators_x:GetInt()+4, spectators_y:GetInt() + 21 + add_y), Color.new(1, 1, 1, data_s[v.name].alpha_s), 11, verdanar11)
                    end

                    add_y = add_y + 17 * data_s[v.name].alpha_s
                    local width_s = name_size.x + 21
                    if width_s > width_value:Get()-11 then
                        if width_s > max_width then
                            max_width = width_s
                        end
                    end
                    if dick then
                        table.insert(active_spec, dick)
                    end

                    currentIndex = currentIndex + 1
                end
            end
        end
        
        local dick = #spectators
    end
    
    alpha_s = lerp(frametime,alpha_s, (Cheat.IsMenuVisible() or #active_spec > 0) and 1 or 0)
    width_sa = lerp(frametime,width_sa,math.max(max_width, width_value:Get()-11))
    if #active_spec > 0 or Cheat.IsMenuVisible() then
        Render.conteiner(spectators_x:GetInt(), spectators_y:GetInt(), width_sa, 16, 'spectators', 11, verdanar11)
        local mouse = Cheat.GetMousePos()
        if Cheat.IsKeyDown(1) and Cheat.IsMenuVisible() and drag == false then
            if mouse.x >= spectators_x:GetInt() and mouse.y >= spectators_y:GetInt() and mouse.x <= spectators_x:GetInt() + width_value:Get()-11 and mouse.y <= spectators_y:GetInt() + 18 or drag_s then
                if not drag_s then
                    drag_s = true
                else
                    spectators_x:SetInt(mouse.x - math.floor(width_sa / 2))
                    spectators_y:SetInt(mouse.y - 8)
                end
            end
        else
            drag_s = false
        end
    end
end
    
function getbinds()
    local binds = {}
    local cheatbinds = Cheat.GetBinds()
    
    for i = 1, #cheatbinds do
        table.insert(binds, 1, cheatbinds[i])
    end
    return binds
end

local keybind_names = {
    ['Double Tap'] = 'Double tap',
    ['Hide Shots'] = 'On shot anti-aim',
    ['Slow Walk'] = 'Slow motion',
    ['Edge Jump'] = 'Jump at edge',
    ['Fake Ping'] = 'Ping spike',
    ['Override Resolver'] = 'Resolver override',
    ['Fake Duck'] = 'Duck peek assist',
    ['Minimum Damage'] = 'Damage override',
    ['Auto Peek'] = 'Quick peek assist',
    ['Body Aim'] = 'Force body aim',
    ['Safe Points'] = 'Safe points',
    ['Yaw Base'] = 'Yaw base',
    ['Enable Thirdperson'] = 'Thirdperson',
    ['Manual Yaw Base'] = 'Yaw base',
}

function upper_to_lower(str)
    str1 = string.sub(str, 2, #str)
    str2 = string.sub(str, 1, 1)
    return str2:upper()..str1:lower()
end

function keybinds()
    local x_k, y_k = keybinds_x:GetInt(), keybinds_y:GetInt()
    local max_width = 0
    local frametime = GlobalVars.frametime * 16
    local add_y = 0
    local total_width = 66
    local active_binds = {}
    local bind = getbinds()
    for i = 1, #bind do
        local binds = bind[i]
        local bind_name = keybind_names[binds:GetName()] == nil and upper_to_lower(binds:GetName()) or keybind_names[binds:GetName()]

        local bind_state = binds:GetValue():lower()
        if keybinds_value:Get() == 0 then
            bind_state = binds:GetMode()
            if bind_state == 0 then
                bind_state = 'toggled'
            elseif bind_state == 1 then
                bind_state = 'holding'
            end
        elseif keybinds_value:Get() == 1 then
            if bind_state == 'on' then
              bind_state = binds:GetMode()
              if bind_state == 0 then
                  bind_state = 'toggled'
              elseif bind_state == 1 then
                  bind_state = 'holding'
              end
            end
        end
        
        if data_k[bind_name] == nil then
            data_k[bind_name] = {alpha_k = 0}
        end
        --if Cheat.IsMenuVisible() then
        --    bind_name = 'Menu toggled'
        --end
        data_k[bind_name].alpha_k = lerp(frametime, data_k[bind_name].alpha_k,binds:IsActive() and 1 or 0)
        local bind_state_size = Render.CalcTextSize(bind_state, 11, verdanar11)
        local bind_name_size = Render.CalcTextSize(bind_name, 11, verdanar11)

        Render.Text(bind_name, Vector2.new(x_k+4, y_k + 21 + add_y), Color.new(0, 0, 0, data_k[bind_name].alpha_k), 11, verdanar11)
        Render.Text('['..bind_state..']', Vector2.new(x_k+1 + (width_ka - bind_state_size.x - 8), y_k + 21 + add_y), Color.new(0, 0, 0, data_k[bind_name].alpha_k), 11, verdanar11)

        Render.Text(bind_name, Vector2.new(x_k+3, y_k + 20 + add_y), Color.new(1, 1, 1, data_k[bind_name].alpha_k), 11, verdanar11)
        Render.Text('['..bind_state..']', Vector2.new(x_k + (width_ka - bind_state_size.x- 8), y_k + 20 + add_y), Color.new(1, 1, 1, data_k[bind_name].alpha_k), 11, verdanar11)

        add_y = add_y + 16 * data_k[bind_name].alpha_k

        
        local width_k = bind_state_size.x + bind_name_size.x + 18
        if width_k > width_value:Get()-11 then
            if width_k > max_width then
                max_width = width_k
            end
        end
        if binds:IsActive() then
            table.insert(active_binds, binds)
        end
    end
    alpha_k = lerp(frametime,alpha_k, (Cheat.IsMenuVisible() or #active_binds > 0) and 1 or 0)
    width_ka = lerp(frametime,width_ka,math.max(max_width, width_value:Get()-11))

    if Cheat.IsMenuVisible() or #active_binds > 0 then
        Render.conteiner(x_k, y_k, width_ka, 16, 'keybinds', 11, verdanar11)

        local mouse = Cheat.GetMousePos()
        if Cheat.IsKeyDown(1) and Cheat.IsMenuVisible() and drag_s == false then
            if mouse.x >= x_k and mouse.y >= y_k and mouse.x <= x_k + width_ka and mouse.y <= y_k + 18 or drag then
                if not drag then
                    drag = true
                else
                    keybinds_x:SetInt(mouse.x - math.floor(width_ka / 2))
                    keybinds_y:SetInt(mouse.y - 8)
                end
            end
        else
            drag = false
        end
    end
end

Cheat.RegisterCallback('createmove', function()
    update_choked()
end)

Cheat.RegisterCallback('draw', function()
    client_call_delay()
    if windows_value:Get(3) then
        keybinds()
    end
    if windows_value:Get(1) then
        watermark()
    end
    if windows_value:Get(4) or windows_value:Get(5) then
        solus_ui()
    end
    if windows_value:Get(2) then
        spec_solus()
    end
end)

line_theme:SetVisible(windows_theme:Get() == 0 and windows_value:Get() ~= 0)
avatar_pos:SetVisible(windows_value:Get(2))
custom_cheatname:SetVisible(windows_value:Get(1) and custom_value:Get() == 1)
custom_user_name:SetVisible(windows_value:Get(1) and custom_value:Get() == 1)
custom_value:SetVisible(windows_value:Get(1))
keybinds_value:SetVisible(windows_value:Get(3))
windows_theme:SetVisible(windows_value:Get() ~= 0)
accent_color:SetVisible(windows_value:Get() ~= 0)
background_blur:SetVisible(windows_value:Get() ~= 0)
alpha_slider:SetVisible(windows_value:Get() ~= 0)
width_value:SetVisible(windows_value:Get(2) or windows_value:Get(3))
theme:SetVisible(windows_value:Get() ~= 0)

windows_theme:RegisterCallback(function()
    line_theme:SetVisible(windows_theme:Get() == 0 and windows_value:Get() ~= 0)
end)

windows_value:RegisterCallback(function()
    avatar_pos:SetVisible(windows_value:Get(2))
    custom_cheatname:SetVisible(windows_value:Get(1) and custom_value:Get() == 1)
    custom_user_name:SetVisible(windows_value:Get(1) and custom_value:Get() == 1)
    custom_value:SetVisible(windows_value:Get(1))
    keybinds_value:SetVisible(windows_value:Get(3))
    windows_theme:SetVisible(windows_value:Get() ~= 0)
    accent_color:SetVisible(windows_value:Get() ~= 0)
    background_blur:SetVisible(windows_value:Get() ~= 0)
    alpha_slider:SetVisible(windows_value:Get() ~= 0)
    theme:SetVisible(windows_value:Get() ~= 0)
    width_value:SetVisible(windows_value:Get(2) or windows_value:Get(3))
end)

custom_value:RegisterCallback(function()
    custom_cheatname:SetVisible(windows_value:Get(1) and custom_value:Get() == 1)
    custom_user_name:SetVisible(windows_value:Get(1) and custom_value:Get() == 1)
end)
 

Вложения

Пользователь
Статус
Оффлайн
Регистрация
10 Июл 2020
Сообщения
126
Реакции[?]
48
Поинты[?]
6K
когда уже юзеры этого форума научатся писать, для какого чита луашка?
 
Эксперт
Статус
Оффлайн
Регистрация
19 Дек 2018
Сообщения
2,957
Реакции[?]
491
Поинты[?]
1K
Author: k1mbor
Миллион строчек, убогая драг система которая курсор тянет в середину объекта

code_language.lua:
local screen_size = EngineClient.GetScreenSize()
local windows_value = Menu.MultiCombo('Visuals', 'Visuals', 'Windows', {'Watermark', 'Spectators', 'Hotkey list', 'Anti-aimbot indication', 'Frequency update information'}, 0)
local custom_value = Menu.Combo('Visuals', 'Visuals', 'User/Cheat name', {'Default', 'Custom'}, 0)
local custom_user_name = Menu.TextBox('Visuals', 'Visuals', 'Custom User name', 64, Cheat.GetCheatUserName())
local custom_cheatname = Menu.TextBox('Visuals', 'Visuals', 'Custom Cheat name', 64, 'skeet.cc')
local avatar_pos = Menu.Combo('Visuals', 'Visuals', 'Avatars Position', {'Disabled', 'Left', 'Right'}, 0)
local keybinds_value = Menu.Combo('Visuals', 'Visuals', 'Keybinds Mode', {'Key State', 'Key State + Value'}, 0)

local windows_theme = Menu.Combo('Visuals', 'Settings', 'Windows Theme', {'Default', 'Rounded', 'Half-Round', 'Glow'}, 0)
local line_theme = Menu.Combo('Visuals', 'Settings', 'Line Theme', {'Static', 'Gradient', 'Fade'}, 0)
local theme = Menu.Combo('Visuals', 'Settings', 'Theme', {'Dark', 'Light'}, 0)
local accent_color = Menu.ColorEdit('Visuals', 'Settings', 'Accent Color', Color.RGBA(142, 165, 229, 255))
local width_value = Menu.SliderInt('Visuals', 'Settings', 'Min. Width', 145, 80, 165)
local alpha_slider = Menu.SliderInt('Visuals', 'Settings', 'Background Alpha', 222, 0, 255)
local background_blur = Menu.SwitchColor('Visuals', 'Settings', 'Blur Background', false, Color.RGBA(255, 255, 255, 255))
local keybinds_x = Menu.SliderInt('Visuals', 'Settings', 'x_pos', screen_size.x/2-250, 1, screen_size.x)
local keybinds_y = Menu.SliderInt('Visuals', 'Settings', 'y_pos', screen_size.y/2-50, 1, screen_size.y)
local spectators_x = Menu.SliderInt('Visuals', 'Settings', 'x_poss', screen_size.x/2-550, 1, screen_size.x)
local spectators_y = Menu.SliderInt('Visuals', 'Settings', 'y_poss', screen_size.y/2-50, 1, screen_size.y)

verdanar11 = Render.InitFont('Verdana', 11, {'r'})

jmp_ecx = Utils.PatternScan('engine.dll', 'FF E1')
fnGetModuleHandle = ffi.cast('uint32_t(__fastcall*)(unsigned int, unsigned int, const char*)', jmp_ecx)
fnGetProcAddress = ffi.cast('uint32_t(__fastcall*)(unsigned int, unsigned int, uint32_t, const char*)', jmp_ecx)

pGetProcAddress = ffi.cast('uint32_t**', ffi.cast('uint32_t', Utils.PatternScan('engine.dll', 'FF 15 ? ? ? ? A3 ? ? ? ? EB 05')) + 2)[0][0]
pGetModuleHandle = ffi.cast('uint32_t**', ffi.cast('uint32_t', Utils.PatternScan('engine.dll', 'FF 15 ? ? ? ? 85 C0 74 0B')) + 2)[0][0]
function BindExports(sModuleName, sFunctionName, sTypeOf)
    local ctype = ffi.typeof(sTypeOf)
    return function(...)
        return ffi.cast(ctype, jmp_ecx)(fnGetProcAddress(pGetProcAddress, 0, fnGetModuleHandle(pGetModuleHandle, 0, sModuleName), sFunctionName), 0, ...)
    end
end
fnEnumDisplaySettingsA = BindExports('user32.dll', 'EnumDisplaySettingsA', 'int(__fastcall*)(unsigned int, unsigned int, unsigned int, unsigned long, void*)');
pLpDevMode = ffi.new('struct { char pad_0[120]; unsigned long dmDisplayFrequency; char pad_2[32]; }[1]')
   
fnEnumDisplaySettingsA(0, 4294967295, pLpDevMode[0])

local frequency = pLpDevMode[0].dmDisplayFrequency

function lerp(time,a,b)
    return a * (1-time) + b * time
end

textSize = 0
cheatname = 'killaura'
user_name = Cheat.GetCheatUserName()
ffi.cdef[[
    typedef unsigned short WORD;

    typedef struct _SYSTEMTIME {
        WORD wYear;
        WORD wMonth;
        WORD wDayOfWeek;
        WORD wDay;
        WORD wHour;
        WORD wMinute;
        WORD wSecond;
        WORD wMilliseconds;
    }
    SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;

    void GetLocalTime(
        LPSYSTEMTIME lpSystemTime
    );
]]
function get_time()
    local systym_time = ffi.new('SYSTEMTIME')
    ffi.C.GetLocalTime(systym_time)

    return {
        hour = systym_time.wHour,
        minute = systym_time.wMinute,
        second = systym_time.wSecond,
        milliseconds = systym_time.wMilliseconds,
    }
end

function watermark()
    local time = get_time()
    if time.hour < 10 then time.hour = '0' .. time.hour end
    if time.minute < 10 then time.minute = '0' .. time.minute end
    if time.second < 10 then time.second = '0' .. time.second end
    local screen = EngineClient.GetScreenSize()
    local ticks = math.floor(1.0 / GlobalVars.interval_per_tick)

    local rightPadding = 12
    local var = screen.x - textSize - rightPadding

    local x = var - 18
    local y = 7
    local w = textSize + 20
    local h = 16
   
    local start_position = x - 22

    if custom_value:Get() == 0 then
        cheatname = 'killaura'
        user_name = Cheat.GetCheatUserName()
    else
        cheatname = custom_cheatname:Get()
        user_name = custom_user_name:Get()
        if custom_cheatname:Get() == '' then
            cheatname = 'killaura'
        end
        if custom_user_name:Get() == '' then
            user_name = Cheat.GetCheatUserName()
        end
    end
    local actual_time = ('%02d:%02d:%02d'):format(time.hour, time.minute, time.second)

    local suffix = ("%s"):format(cheatname)
    local nexttext = ('%s | %s | %s'):format(suffix, user_name, actual_time)
       
    if EngineClient.IsInGame() then
        local latency = EngineClient.GetNetChannelInfo():GetLatency(0)
        if latency == nil then latency = 0 end
        local latency_text = latency > 5 and (' | delay: %dms'):format(latency) or ''
       
        nexttext = ('%s | %s%s | %s'):format(suffix, user_name, latency_text, actual_time)
    end
    local text_size = Render.CalcTextSize(nexttext, 11, verdanar11)
    if background_blur:GetBool() then
        Render.Blur(Vector2.new(x+10,y+2+1),Vector2.new(x+textSize+20,h * 1.5 + 4), background_blur:GetColor(), windows_theme:Get() == 0 and 0 or 6)
    end
 
    if windows_theme:Get() == 0 then
        if line_theme:Get() == 0 then
            Render.BoxFilled(Vector2.new(x+10,y+1),Vector2.new(x+textSize+20,h-6), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b))
        elseif line_theme:Get() == 1 then
            Render.GradientBoxFilled(Vector2.new(x+10+(textSize/2),y+1),Vector2.new(x+textSize+20,h-6), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0))
            Render.GradientBoxFilled(Vector2.new(x+10,y+1), Vector2.new(x+(textSize+20)/2,h-6), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1))
        elseif line_theme:Get() == 2 then
            Render.GradientBoxFilled(Vector2.new(x+10+(textSize/2),y+1),Vector2.new(x+textSize+20,h-6), Color.RGBA(204, 18, 204, 255), Color.RGBA(255, 250, 0, 255), Color.RGBA(204, 18, 204, 255), Color.RGBA(255, 250, 0, 255))
            Render.GradientBoxFilled(Vector2.new(x+10,y+1), Vector2.new(x+(textSize+20)/2,h-6), Color.RGBA(0, 213, 255, 255), Color.RGBA(204, 18, 204, 255), Color.RGBA(0, 213, 255, 255), Color.RGBA(204, 18, 204, 255))
        end
        Render.BoxFilled(Vector2.new(x+10,y+2+1),Vector2.new(x+textSize+20,h * 1.5 + 4), theme:Get() == 0 and Color.RGBA(17, 17, 17, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()))
    elseif windows_theme:Get() == 1 then
        Render.BoxFilled(Vector2.new(x+10,y+2+1),Vector2.new(x+textSize+20,h * 1.5 + 4), theme:Get() == 0 and Color.RGBA(17, 17, 17, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()), 6)
        Render.Box(Vector2.new(x+9, y+1+1), Vector2.new(x+textSize+21, h * 1.5 + 5), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), 6)
    elseif windows_theme:Get() == 2 then
        Render.BoxFilled(Vector2.new(x+13,y+1),Vector2.new(x+textSize+17,h-6), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b))
        Render.BoxFilled(Vector2.new(x+10,y+2+1),Vector2.new(x+textSize+20,h * 1.5 + 4), theme:Get() == 0 and Color.RGBA(17, 17, 17, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()), 6)
        Render.Circle( -- right
            Vector2.new(x + textSize + 16, y + text_size.y - 4),
            5, 90, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), 2, 270, 370
        )

        Render.Circle( -- left
            Vector2.new(start_position + 36, y + text_size.y - 4),
            5, 90, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), 2, 270, 170
        )

        Render.GradientBoxFilled(
            Vector2.new(x + textSize + 22, y + text_size.y - 4),
            Vector2.new(x + textSize + 20, y + text_size.y + 3),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b)
        )

        Render.GradientBoxFilled(
            Vector2.new(start_position + 32, y + text_size.y - 4),
            Vector2.new(start_position + 32 - 2, y + text_size.y + 3),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0)
        )
    else
        renderer_window(x+10, y+2+1, x + textSize+20, y+2+1 + h + 2, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, alpha_slider:GetInt()/255), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), false, true)
    end

   
    Render.Text(nexttext, Vector2.new(var-2,13), theme:Get() == 0 and Color.RGBA(0, 0, 0, 180) or Color.RGBA(255, 255, 255, 180), 11, verdanar11)
    Render.Text(nexttext, Vector2.new(var-3,12), theme:Get() == 0 and Color.RGBA(255, 255, 255, 255) or Color.RGBA(0, 0, 0, 255), 11, verdanar11)
    --Render.Text(cheatname:sub(1, #cheatname / 2), Vector2.new(var-3,12), theme:Get() == 0 and Color.RGBA(255, 255, 255, 255) or Color.RGBA(0, 0, 0, 255), 11, verdanar11)
    local wide = Render.CalcTextSize(nexttext, 11, verdanar11)
    var = var + wide.x

    textSize = var - (screen.x - textSize - rightPadding)
end

current_choke = 0
ind_phase, ind_num, ind_time = 0, 0, 0
last_sent, current_choke = 0, 0
teleport = 0
last_origin = 0
breaking_lc = 0
function gram_create(value, count) local gram = { }; for i=1, count do gram[i] = value; end return gram; end
function gram_update(tab, value, forced) local new_tab = tab; if forced or new_tab[#new_tab] ~= value then table.insert(new_tab, value); table.remove(new_tab, 1); end; tab = new_tab; end
function get_average(tab) local elements, sum = 0, 0; for k, v in pairs(tab) do sum = sum + v; elements = elements + 1; end return sum / elements; end
gram_fyaw = gram_create(0, 2)
teleport_data = gram_create(0, 3)
avg = 0
gram_update(gram_fyaw, math.min(math.abs(AntiAim.GetCurrentRealRotation() - AntiAim.GetFakeRotation()), 58), true)

client = {}

client.data_call = {}

client.delay_call = function(time, fn)
    table.insert(client.data_call, {
        fn = fn,
        time = time,
        realtime = GlobalVars.realtime
    })

    function client_call_delay()
        for i, data in ipairs(client.data_call) do
            if data.realtime + data.time < GlobalVars.realtime then
                data.fn()
                data.realtime = GlobalVars.realtime
            end
        end
    end
end

client.delay_call(0.4, function() --Oh no cringe
    if not EngineClient.IsInGame() or not EngineClient.IsConnected() or EntityList.GetLocalPlayer() == nil then return end
    gram_update(gram_fyaw, math.min(math.abs(Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Angle', 'LBY Mode'):Get() == 1 and (AntiAim.GetCurrentRealRotation() - AntiAim.GetFakeRotation())/2 or (AntiAim.GetCurrentRealRotation() - AntiAim.GetFakeRotation())), 58), true)
    current_choke = ClientState.m_choked_commands
    avg = math.abs(GlobalVars.frametime*600)
end)

function update_choked()
    if not EngineClient.IsInGame() or not EngineClient.IsConnected() or EntityList.GetLocalPlayer() == nil then return end
    if ClientState.m_choked_commands == 0 then
        local m_origin = EntityList.GetLocalPlayer():GetProp('m_vecOrigin')
       
        if last_origin ~= nil then
            teleport = (m_origin-last_origin):Length2D()
       
            gram_update(teleport_data, teleport, true)
        end
       
        last_sent = current_choke
        last_origin = m_origin
    end

    breaking_lc =
        get_average(teleport_data) > 65 and 1 or
            (Exploits.GetCharge() > 0.7 and 2 or 0)
end

lag_data = gram_create(0, 90)

function get_color(number, max, i)
    local Colors = {
        { 255, 0, 0 },
        { 237, 27, 3 },
        { 235, 63, 6 },
        { 229, 104, 8 },
        { 228, 126, 10 },
        { 220, 169, 16 },
        { 213, 201, 19 },
        { 176, 205, 10 },
        { 124, 195, 13 }
    }

    function math.num(int, max, declspec)
        local int = (int > max and max or int)
        local tmp = max / int;

        if not declspec then declspec = max end

        local i = (declspec / tmp)
        i = (i >= 0 and math.floor(i + 0.5) or math.ceil(i - 0.5))

        return i
    end

    i = math.num(number, max, #Colors)

    return
        Colors[i <= 1 and 1 or i][1],
        Colors[i <= 1 and 1 or i][2],
        Colors[i <= 1 and 1 or i][3],
        i
end

function graphs() local a = {} function a:renderer_line(b, c, d) renderer_line(b.x, b.y, c.x, c.y, Color.new(d.r, d.g, d.b, d.a)) end function a:renderer_rectangle_filled(b, c, d) local e = c.x - b.x local f = c.y - b.y if e < 0 then if f < 0 then renderer_rectangle(c.x, c.y, -e, -f, Color.new(d.r, d.g, d.b, d.a)) else renderer_rectangle(c.x, b.y, -e, f, Color.new(d.r, d.g, d.b, d.a)) end else if f < 0 then renderer_rectangle(b.x, c.y, e, -f, Color.new(d.r, d.g, d.b, d.a)) else renderer_rectangle(b.x, b.y, e, f, Color.new(d.r, d.g, d.b, d.a)) end end end function a:renderer_rectangle_filled_gradient(b, c, g, h, i) local e = c.x - b.x local f = c.y - b.y if e < 0 then if f < 0 then renderer_gradient(c.x, c.y, -e, -f, Color.new(g.r,g.g,g.b,g.a), Color.new(h.r,h.g,h.b,h.a), i) else renderer_gradient(c.x, b.y, -e, f, Color.new(g.r,g.g,g.b,g.a), Color.new(h.r,h.g,h.b,h.a), i) end else if f < 0 then renderer_gradient(b.x, c.y, e, -f, Color.new(h.r,h.g,h.b,h.a), Color.new(g.r,g.g,g.b,g.a), i) else renderer_gradient(b.x, b.y, e, f, Color.new(h.r,h.g,h.b,h.a), Color.new(g.r,g.g,g.b,g.a), i) end end end function a:draw_histogram(j, k, l, m, n) local p = k k = 0 l = l - p local r = n.w_IO / (m - 1) local s = l - k for t = 1, m - 1 do local u = {(j[t] - p) / s, (j[t + 1] - p) / s} local v = { {x = math.floor(n.x_HZ + r * (t - 1)), y = math.floor(n.y_HZ + n.h_IO - n.h_IO * u[1])}, {x = math.floor(n.x_HZ + r * t), y = math.floor(n.y_HZ + n.h_IO)}, isZero = math.floor(n.y_HZ + n.h_IO) == math.floor(n.y_HZ + n.h_IO - n.h_IO * u[1]) } if n.sDrawBar == 'fill' then a:renderer_rectangle_filled( {x = v[1].x, y = v[1].y}, {x = v[2].x, y = v[2].y}, {r = n.clr_1[1], g = n.clr_1[2], b = n.clr_1[3], a = n.clr_1[4]} ) elseif n.sDrawBar == 'gradient_fadeout' then a:renderer_rectangle_filled_gradient( {x = v[1].x, y = v[1].y}, {x = v[2].x, y = v[2].y}, {r = n.clr_1[1], g = n.clr_1[2], b = n.clr_1[3], a = 0}, {r = n.clr_1[1], g = n.clr_1[2], b = n.clr_1[3], a = n.clr_1[4]}, false ) elseif n.sDrawBar == 'gradient_fadein' then a:renderer_rectangle_filled_gradient( {x = v[1].x, y = v[1].y}, {x = v[2].x, y = v[2].y}, {r = n.clr_1[1], g = n.clr_1[2], b = n.clr_1[3], a = n.clr_1[4]}, {r = n.clr_1[1], g = n.clr_1[2], b = n.clr_1[3], a = 0}, false ) else end if n.bDrawPeeks and not v.isZero then a:renderer_line( {x = v[1].x, y = v[1].y}, {x = v[2].x, y = v[1].y}, {r = n.clr_2[1], g = n.clr_2[2], b = n.clr_2[3], a = n.clr_2[4]} ) end end end return a end

function renderer_gradient(x,y,w,h,c1,c2,ishorizon)
    if ishorizon == true then
        Render.GradientBoxFilled(Vector2.new(x,y),Vector2.new(x+w,y+h),c1,c2,c1,c2)
    else
        Render.GradientBoxFilled(Vector2.new(x,y),Vector2.new(x+w,y+h),c1,c1,c2,c2)
    end
end

function renderer_fade(x, y, w, h, color, length, round)
    local r, g, b, a = color.r, color.g, color.b, color.a

    for i = 1, 10 do
        Render.Box(Vector2.new(x - i, y - i), Vector2.new(w + i, h + i), Color.new(r, g, b, (60 - (60 / length) * i) * (a / 255)), round)
        --Render.BoxFilled(Vector2.new(x,y),Vector2.new(x+w,y+h),c1,round)
    end
end

function renderer_window(x, y, w, h, color, shadow_color, outline_color, left, outline)
    local r, g, b, a = color.r, color.g, color.b, color.a
    local r1, g1, b1, a1 = shadow_color.r, shadow_color.g, shadow_color.b, shadow_color.a
    local r2, g2, b2, a2 = outline_color.r, outline_color.g, outline_color.b, outline_color.a

    --render.blur(x, y, w, h, 1)
    if background_blur:GetBool() then
        Render.Blur(Vector2.new(x, y), Vector2.new(w, h), Color.new(1,1,1, 1), 5)
    end
    if outline then
        Render.Circle(Vector2.new(x + 4, y + 4), 4, 4, Color.new(r, g, b, 1), 1, -175, -90)

        Render.BoxFilled(Vector2.new(x + 4, y), Vector2.new(w - 5, y+1), Color.new(r, g, b, 1))
        Render.Circle(Vector2.new(w - 4, y + 4), 4, 4, Color.new(r, g, b, 1), 1, 260, 370)

        Render.GradientBoxFilled(Vector2.new(x, y + 4), Vector2.new(x + 1, h - 6), Color.new(r, g, b, 1), Color.new(r, g, b, 1), Color.new(r, g, b, 0), Color.new(r, g, b, 0))
        Render.GradientBoxFilled(Vector2.new(w - 1, y + 4), Vector2.new(w, h - 6), Color.new(r, g, b, 1), Color.new(r, g, b, 1), Color.new(r, g, b, 0), Color.new(r, g, b, 0))
    end
    Render.Box(Vector2.new(x, y), Vector2.new(w, h), Color.new(r2, g2, b2, (80 / 255) * a2), 5)
    if left then
        Render.BoxFilled(Vector2.new(x, y + 4), Vector2.new(x+1, h - 5), Color.new(r, g, b, 1))

        Render.Circle(Vector2.new(x + 5, y + 5), 5, 12, Color.new(r, g, b, 1), 1, -90, -165)

        Render.Circle(Vector2.new(x + 5, h - 5), 5, 12, Color.new(r, g, b, 1), 1, -185, -255)

        Render.GradientBoxFilled(Vector2.new(x + 4, y), Vector2.new(x+20, y+1), Color.new(r, g, b, 1), Color.new(r, g, b, 0), Color.new(r, g, b, 1), Color.new(r, g, b, 0))
        Render.GradientBoxFilled(Vector2.new(x + 4, h - 1), Vector2.new(x+20, h), Color.new(r, g, b, 1), Color.new(r, g, b, 0), Color.new(r, g, b, 1), Color.new(r, g, b, 0))
    end
   
    Render.BoxFilled(Vector2.new(x+1, y+1), Vector2.new(w-1, h-1), theme:Get() == 0 and Color.new(0, 0, 0, a) or Color.new(0.93, 0.93, 0.93, a) , 5)
   
    renderer_fade(x, y, w, h, Color.new(r1, g1, b1, (120 / 255) * a1), 10, 10)
end

function renderer_rectangle(x,y,w,h,c1)
    if windows_theme:Get() == 0 then
        Render.BoxFilled(Vector2.new(x,y),Vector2.new(x+w,y+h),c1,windows_theme:Get() == 0 and 0 or 6)
    elseif windows_theme:Get() == 1 then
        Render.BoxFilled(Vector2.new(x,y),Vector2.new(x+w,y+h),c1,windows_theme:Get() == 0 and 0 or 6)
        Render.Box(Vector2.new(x-1, y-1), Vector2.new(x + w + 1, y + h + 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), 6)
    elseif windows_theme:Get() == 2 then
        Render.BoxFilled(Vector2.new(x,y),Vector2.new(x+w,y+h),c1,windows_theme:Get() == 0 and 0 or 6)
        Render.BoxFilled(Vector2.new(x+3,y),Vector2.new(x-3+w,y-2), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b))

        Render.Circle(Vector2.new(x + w - 4, y + h - 13.7), 5, 90, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), 2, 270, 370)

        Render.Circle(Vector2.new(x - 32 + 36, y + h - 13.7), 5, 90, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), 2, 270, 170)

        Render.GradientBoxFilled(Vector2.new(x + w + 2, y + h - 13.7), Vector2.new(x + w, y + h - 7), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b))

        Render.GradientBoxFilled(Vector2.new(x - 32 + 32, y + h - 13.7), Vector2.new(x - 32 + 32 - 2, y + h - 7), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0))
    end
end

function renderer_blur(x,y,w,h,c)
    Render.Blur(Vector2.new(x,y),Vector2.new(x+w,y+h), c, windows_theme:Get() == 0 and 0 or 6)
end

function renderer_text(x,y,cent,string,c1,font,size,alpha)
    Render.Text(string,Vector2.new(x+1,y+1),theme:Get() == 0 and Color.RGBA(0, 0, 0, alpha) or Color.RGBA(255, 255, 255, alpha),size,font,false,cent)
    Render.Text(string,Vector2.new(x,y),c1,size,font,false,cent)
end

function renderer_line(x,y,w,h,c1)
    Render.Line(Vector2.new(x, y), Vector2.new(w,h), c1)
end

formatting = (function(avg)
    if avg < 1 then return ('%.2f'):format(avg) end
    if avg < 10 then return ('%.1f'):format(avg) end
    return ('%d'):format(avg)
end)

fps_data = gram_create(0, 30)
g_frameRate, g_prev_frameRate, x_minus = 0, 0, 0
function solus_ui()
    if not EngineClient.IsInGame() or not EngineClient.IsConnected() or EntityList.GetLocalPlayer() == nil then return end
    local transp = alpha_slider:GetInt()
    local addr, nval = '', false
    local r, g, b = 150, 150, 150
       
    local fr = GlobalVars.frametime * 3.75
    local min_offset = 1200+math.max(0, get_average(teleport_data)-3800)
    local teleport_mt = math.abs(math.min(teleport-3800, min_offset) / min_offset * 100)
       
    if ind_num ~= teleport_mt and ind_time < GlobalVars.realtime then
        ind_time = GlobalVars.realtime + 0.005
        ind_num = ind_num + (ind_num > teleport_mt and -1 or 1)
    end
    ind_phase = ind_phase + (breaking_lc == 1 and fr or -fr)
    ind_phase = ind_phase > 1 and 1 or ind_phase
    ind_phase = ind_phase < 0 and 0 or ind_phase
    if breaking_lc == 2 then
        addr, ind_phase, ind_num = ' | SHIFTING', 0, 0
        r, g, b = 228, 126, 10
    elseif ind_phase > 0.1 then
        addr = ' | dst: \x20\x20\x20\x20\x20\x20\x20\x20\x20'
    end
    local text_FL = ('FL: %s%s'):format(
        (function()
            if tonumber(last_sent) < 10 then
                return '\x20\x20' .. last_sent
            end
            return last_sent
        end)(),
    addr)
    local h_FL, w_FL = 18, (windows_value:Get(4) and EntityList.GetLocalPlayer():IsAlive()) and Render.CalcTextSize(text_FL,11,verdanar11).x + 8 or -4
    local x_FL, y_FL = screen_size.x, (windows_value:Get(1) and 35 or 10) + (25*0)
       
    x_FL = x_FL - w_FL - 10
    if windows_value:Get(4) and EntityList.GetLocalPlayer():IsAlive() then
        if background_blur:GetBool() and windows_theme:Get() ~= 3 then
            renderer_blur(x_FL, y_FL, w_FL, h_FL, background_blur:GetColor())
        end

        renderer_rectangle(x_FL, y_FL, w_FL, h_FL, theme:Get() == 0 and Color.RGBA(17,17,17,transp) or Color.RGBA(237,237,237,transp))

        if windows_theme:Get() == 0 then
            renderer_gradient(x_FL, y_FL+h_FL, w_FL-w_FL/2, 1, theme:Get() == 0 and Color.RGBA(17,17,17,transp) or Color.RGBA(237,237,237,transp), Color.RGBA(r, g, b,255),true)
            renderer_gradient(x_FL + w_FL/2, y_FL + h_FL, w_FL - w_FL/2, 1, Color.RGBA(r, g, b,255), theme:Get() == 0 and Color.RGBA(17,17,17,transp) or Color.RGBA(237,237,237,transp),true)
        elseif windows_theme:Get() == 3 then
            renderer_window(x_FL, y_FL, x_FL+w_FL, y_FL+h_FL, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, transp/255), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), false, true)
        end
        if ind_phase > 0 then
            renderer_gradient(
                x_FL + w_FL - Render.CalcTextSize(' | dst: ', 11, verdanar11).x + 2,
                y_FL + 6, math.min(100, ind_num) / 100 * 24, 5,

                Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, ind_phase*220/255),
                Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, ind_phase * 25/255),

                true
            )
        end
        renderer_text(x_FL+4, y_FL + 2,false,text_FL,theme:Get() == 0 and Color.RGBA(255,255,255,255) or Color.RGBA(0, 0, 0, 255),verdanar11,11,120)
    end

    local add_text = ((get_average(gram_fyaw) > 0) and windows_theme:Get() ~= 3) and '\x20\x20\x20\x20\x20' or ''
    text_FI = ('%sFAKE (%.1f°) '):format(add_text, get_average(gram_fyaw))
    local h_FI, w_FI = 18, (windows_value:Get(4) and EntityList.GetLocalPlayer():IsAlive()) and Render.CalcTextSize(text_FI,11,verdanar11).x + 8 or 0
   
    local r,g,b = get_color(get_average(gram_fyaw),30)
    local dec = { math.ceil(r - (r/100 * 50)), math.ceil(g - (g/100 * 50)), math.ceil(b - (b/100 * 50)) }
    if (windows_value:Get(4) and EntityList.GetLocalPlayer():IsAlive()) then
        if background_blur:GetBool() and windows_theme:Get() ~= 3 then
            renderer_blur(x_FL - w_FI - 4, y_FL, w_FI, h_FI, background_blur:GetColor())
        end
        if windows_theme:Get() ~= 3 then
            renderer_gradient(x_FL - w_FI - 6, y_FL, 2, h_FI / 2,Color.RGBA(dec[1], dec[2], dec[3],0),Color.RGBA(r,g,b,255),false)
            renderer_gradient(x_FL - w_FI - 6, y_FL + h_FI / 2, 2, h_FI / 2,Color.RGBA(r,g,b,255),Color.RGBA(dec[1], dec[2], dec[3],0),false)
            renderer_gradient(x_FL - w_FI - 4, y_FL, w_FI / 2, h_FI,theme:Get() == 0 and Color.RGBA(17,17,17,math.floor(transp/20)) or Color.RGBA(237,237,237,math.floor(transp/20)),theme:Get() == 0 and Color.RGBA(17,17,17,transp) or Color.RGBA(237,237,237,transp),true)
            renderer_gradient(x_FL - w_FI - 4 + w_FI / 2, y_FL, w_FI / 2, h_FI,theme:Get() == 0 and Color.RGBA(17,17,17,transp) or Color.RGBA(237,237,237,transp),theme:Get() == 0 and Color.RGBA(17,17,17,math.floor(transp/20)) or Color.RGBA(237,237,237,math.floor(transp/20)),true)
            if get_average(gram_fyaw) > 0 then
                Render.Circle(Vector2.new(x_FL - w_FI + 6, y_FL + 8.5), 5, 32, Color.RGBA(89, 119, 239, 255), 2, 0, math.min(360, get_average(gram_fyaw)*6.21))
            end
        else
            renderer_window(x_FL - w_FI - 6, y_FL, x_FL - 6, y_FL+h_FI, Color.RGBA(r,g,b,transp), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), true, false)
        end

        renderer_text(x_FL - w_FI, y_FL + 2,false,text_FI,theme:Get() == 0 and Color.RGBA(255,255,255,255) or Color.RGBA(0, 0, 0, 255),verdanar11,11,120)
       
    end

    local text_HZ = ('%sms / %dhz'):format(formatting(avg), frequency)

    local h_HZ, w_HZ = 18, windows_value:Get(5) and Render.CalcTextSize(text_HZ,11,verdanar11).x+8 or -4
    local x_HZ, y_HZ = screen_size.x, (windows_value:Get(1) and 35 or 10) + (25*((windows_value:Get(4) and EntityList.GetLocalPlayer():IsAlive()) and 1 or 0))

    local x_HZ = x_HZ - w_HZ - 10
    if windows_value:Get(5) then
        local interp = { get_color(15-avg, 15) }

        if background_blur:GetBool() and windows_theme:Get() ~= 3 then
            renderer_blur(x_HZ, y_HZ, w_HZ, h_HZ, background_blur:GetColor())
        end
        renderer_rectangle(x_HZ, y_HZ, w_HZ, h_HZ, theme:Get() == 0 and Color.RGBA(17,17,17,transp) or Color.RGBA(237,237,237,transp))

        if windows_theme:Get() == 0 then
            renderer_gradient(x_HZ,y_HZ+h_HZ,w_HZ/2,1,theme:Get() == 0 and Color.RGBA(17,17,17,math.floor(transp/3)) or Color.RGBA(237,237,237,math.floor(transp/3)),Color.RGBA(interp[1], interp[2], interp[3], 255),true  )
            renderer_gradient(x_HZ + w_HZ/2, y_HZ+h_HZ, w_HZ-w_HZ/2, 1,Color.RGBA(interp[1], interp[2], interp[3], 255),theme:Get() == 0 and Color.RGBA(17,17,17,math.floor(transp/3)) or Color.RGBA(237,237,237,math.floor(transp/3)), true)
        elseif windows_theme:Get() == 3 then
            renderer_window(x_HZ, y_HZ, x_HZ+w_HZ, y_HZ+h_HZ, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, transp/255), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), false, true)
        end

        renderer_text(x_HZ+4, y_HZ + 2,false,text_HZ,theme:Get() == 0 and Color.RGBA(255,255,255,255) or Color.RGBA(0, 0, 0, 255),verdanar11,11,120)
    end
    g_frameRate = 0.9 * g_frameRate + (1.0 - 0.9) * GlobalVars.absoluteframetime
    gram_update(fps_data, math.abs(g_prev_frameRate-(1/g_frameRate)), true)
    g_prev_frameRate = 1/g_frameRate
    local g_nValues_t = {
        avg, 1, 3,
        get_average(fps_data)/4, 0
    }

    local min_value, max_value = math.min(unpack(g_nValues_t)), math.max(unpack(g_nValues_t))

    local text_IO_sub = '       '
    local text_IO = 'IO | ' ..  text_IO_sub
    local w_IE = Render.CalcTextSize(text_IO_sub,11,verdanar11).x+3
    local h_IO, w_IO = 18, Render.CalcTextSize(text_IO,11,verdanar11).x+8
    local graphics = graphs()
    if windows_theme:Get() == 0 then
        x_minus = 0
    elseif windows_theme:Get() == 1 then
        x_minus = 2
    elseif windows_theme:Get() == 2 then
        x_minus = 6
    else
        x_minus = 0
    end
    if windows_value:Get(5) then
        if background_blur:GetBool() and windows_theme:Get() ~= 3 then
            renderer_blur(x_HZ - x_minus - w_IO - 4, y_HZ, w_IO, h_IO, background_blur:GetColor())
        end
        renderer_rectangle(x_HZ - x_minus - w_IO - 4, y_HZ, w_IO, h_IO,theme:Get() == 0 and Color.RGBA(17,17,17,transp) or Color.RGBA(237,237,237,transp))
       
        if windows_theme:Get() == 3 then
            renderer_window(x_HZ - x_minus - w_IO - 4, y_HZ, x_HZ - x_minus - w_IO - 4+w_IO, y_HZ+h_IO, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, transp/255), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), true, false)
        end
       
        renderer_text(x_HZ - x_minus - w_IO, y_HZ + 2,false,text_IO,theme:Get() == 0 and Color.RGBA(255,255,255,255) or Color.RGBA(0, 0, 0, 255),verdanar11,11,120)
        graphics:draw_histogram(g_nValues_t, 0, max_value, #g_nValues_t, {
            x_HZ = x_HZ - x_minus - w_IO + 1 + w_IE,
            y_HZ = y_HZ + 4,
            w_IO = w_IO - w_IE - 9,
            h_IO = h_IO - 8,
   
            sDrawBar = 'gradient_fadein', -- 'none', 'fill', 'gradient_fadeout', 'gradient_fadein'
            bDrawPeeks = false,
            thickness = 1,
   
            clr_1 = { accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1 },
            clr_2 = { 0, 0.5, 1, 1 },
        })
    end
end

function Render.conteiner(x, y, w, h, name, font_size, font)
    local name_size = Render.CalcTextSize(name, font_size, font)
    if background_blur:GetBool() then
        Render.Blur(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), background_blur:GetColor(), windows_theme:Get() == 0 and 0 or 6)
    end

    if windows_theme:Get() == 0 then
        if line_theme:Get() == 0 then
            Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y - 2), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1))
        elseif line_theme:Get() == 1 then
            Render.GradientBoxFilled(Vector2.new(x + w/2, y), Vector2.new(x + w + 3, y - 2), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0))
            Render.GradientBoxFilled(Vector2.new(x, y), Vector2.new(x + (w + 3)/2, y - 2), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1))
        elseif line_theme:Get() == 2 then
            Render.GradientBoxFilled(Vector2.new(x + w/2, y), Vector2.new(x + w + 3, y - 2), Color.RGBA(204, 18, 204, 255), Color.RGBA(255, 250, 0, 255), Color.RGBA(204, 18, 204, 255), Color.RGBA(255, 250, 0, 255))
            Render.GradientBoxFilled(Vector2.new(x, y), Vector2.new(x + (w + 3)/2, y - 2), Color.RGBA(0, 213, 255, 255), Color.RGBA(204, 18, 204, 255), Color.RGBA(0, 213, 255, 255), Color.RGBA(204, 18, 204, 255))
        end

        Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), theme:Get() == 0 and Color.RGBA(18, 18, 18, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()))
    elseif windows_theme:Get() == 1 then
        Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), theme:Get() == 0 and Color.RGBA(18, 18, 18, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()), 6)
        Render.Box(Vector2.new(x-1, y-1), Vector2.new(x + w + 4, y + h + 3), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), 6)
    elseif windows_theme:Get() == 2 then
        Render.BoxFilled(Vector2.new(x+4,y),Vector2.new(x-1+w,y-2), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b))
        Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), theme:Get() == 0 and Color.RGBA(18, 18, 18, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()), 6)
        Render.Circle( -- right
            Vector2.new(x + w - 1, y + h - 12),
            5, 90, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), 2, 270, 370
        )

        Render.Circle( -- left
            Vector2.new(x - 32 + 36, y + h - 12),
            5, 90, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), 2, 270, 170
        )

        Render.GradientBoxFilled(
            Vector2.new(x + w + 5, y + h - 11),
            Vector2.new(x + w + 3, y + h - 7),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b)
        )

        Render.GradientBoxFilled(
            Vector2.new(x - 32 + 32, y + h - 11),
            Vector2.new(x - 32 + 32 - 2, y + h - 7),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0)
        )
    else
       -- renderer_fade(x, y, x + w + 3, y + h + 2 , Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, (120 / 255) * accent_color:GetColor().a), 10, 10)
        renderer_window(x, y, x + w + 3, y + h + 2, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, alpha_slider:GetInt()/255), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), false, true)
        --Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), theme:Get() == 0 and Color.RGBA(18, 18, 18, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()), 6)
    end
    Render.Text(name, Vector2.new(x+2 + w / 2 + 1 - name_size.x / 2, y + 3), theme:Get() == 0 and Color.RGBA(0, 0, 0, 180) or Color.RGBA(255, 255, 255, 180), font_size, font)
    Render.Text(name, Vector2.new(x+1 + w / 2 + 1 - name_size.x / 2, y + 2), theme:Get() == 0 and Color.RGBA(255, 255, 255, 255) or Color.RGBA(0, 0, 0, 255), font_size, font)
end

keybinds_x:SetVisible(false)
keybinds_y:SetVisible(false)
spectators_x:SetVisible(false)
spectators_y:SetVisible(false)

local g_players = { }
alpha_k = 1
data_k = {
    [''] = {alpha_k = 0}
}

drag_s = false
width_k = 0
width_ka = 0
alpha_s = 1
width_sa = 0
width_s = 0
dick = 0
data_s = {
    [''] = {alpha_s = 0}
}

function getsteam_id(steamid)
    return string.sub(tostring(ffi.new('uint64_t', 76561197960265728) + ffi.new('uint64_t', steamid)), 1, -4)
end

width_k = 0
width_ka = 0

function get_spectators(player)
    local buffer = { }

    local players = EntityList.GetPlayers()
    for tbl_idx, player_pointer in pairs(players) do
        if player_pointer:EntIndex() ~= player:EntIndex() then
            if not player_pointer:IsAlive() then
                local spectatingMode = player_pointer:GetProp('m_iObserverMode')
                local spectatingPlayer = player_pointer:GetProp('m_hObserverTarget')

                if spectatingPlayer then
                    if spectatingMode >= 4 or spectatingMode <= 5 then
                        local spectatingEntity = EntityList.GetClientEntityFromHandle(spectatingPlayer)
                        if spectatingEntity ~= nil and spectatingEntity:EntIndex() == player:EntIndex() then
                            local player_info = player_pointer:GetPlayerInfo()

                            table.insert(buffer, 1, {
                                ['id'] = player_info.iSteamID,
                                ['id64'] = getsteam_id(player_info.iSteamID),
                                ['name'] = player_pointer:GetName()
                            })
                        end
                    end
                end
            end
        end
    end

    return buffer
end

function getspectators()
    if not EngineClient.IsConnected() or EngineClient.GetLocalPlayer() == nil or EntityList.GetLocalPlayer() == nil then return end
    local local_player = EntityList.GetLocalPlayer()
    if local_player == nil then return end

    if local_player:IsAlive() then
        return get_spectators(local_player:GetPlayer())
    else
        local m_hObserverTarget = local_player:GetProp('m_hObserverTarget')
        if m_hObserverTarget then
            local targetEntity = EntityList.GetClientEntityFromHandle(m_hObserverTarget)
            if targetEntity ~= nil then
                return get_spectators(targetEntity:GetPlayer())
            end
        end
    end
end

function loadimages()
    if not EngineClient.IsConnected() or EntityList.GetLocalPlayer() == nil then return end
    local players = EntityList.GetPlayers()
    for tbl_idx, player_pointer in pairs(players) do
        local player_info = player_pointer:GetPlayerInfo()
        if g_players[player_info.iSteamID] == nil then
            g_players[player_info.iSteamID] = {
                ['downloaded'] = false,
                ['image'] = nil
            }

            Http.GetAsync(string.format('https://steamcommunity.com/profiles/%s/?xml=1', getsteam_id(player_info.iSteamID)), function(url_content)
                if player_info.fakeplayer then
                    ht4r = 'https://avatars.cloudflare.steamstatic.com/fef49e7fa7e1997310d705b2a6158ff8dc1cdfeb_medium.jpg'
                else
                    if url_content == nil then return end
                    link_start = string.find(url_content, '<avatarMedium>')
                    if link_start == nil then return end
                    link_end = string.find(url_content, '</avatarMedium>')
                    if link_end == nil then return end
                    ht4r = url_content:sub(link_start+23,link_end-4);
                end
                Http.GetAsync(ht4r, function(response)
                    local image = Render.LoadImage(response, Vector2.new(12, 12))

                    g_players[player_info.iSteamID].downloaded = true
                    g_players[player_info.iSteamID].image = image
                end)
            end)
        else
            if g_players[player_info.iSteamID].downloaded and g_players[player_info.iSteamID].image == nil then
                Http.GetAsync(string.format('https://steamcommunity.com/profiles/%s/?xml=1', getsteam_id(player_info.iSteamID)), function(url_content)
                    if player_info.fakeplayer then
                        ht4r = 'https://avatars.cloudflare.steamstatic.com/fef49e7fa7e1997310d705b2a6158ff8dc1cdfeb_medium.jpg'
                    else
                        if url_content == nil then return end
                        link_start = string.find(url_content, '<avatarMedium>')
                        if link_start == nil then return end
                        link_end = string.find(url_content, '</avatarMedium>')
                        if link_end == nil then return end
                        ht4r = url_content:sub(link_start+23,link_end-4);
                    end
                    Http.GetAsync(ht4r, function(response)
                        local image = Render.LoadImage(response, Vector2.new(12, 12))
                   
                        g_players[player_info.iSteamID].downloaded = true
                        g_players[player_info.iSteamID].image = image
                    end)
                end)
            end
        end
    end
end

function Render.conteiner(x, y, w, h, name, font_size, font)
    local name_size = Render.CalcTextSize(name, font_size, font)
    if background_blur:GetBool() then
        Render.Blur(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), background_blur:GetColor(), windows_theme:Get() == 0 and 0 or 6)
    end

    if windows_theme:Get() == 0 then
        if line_theme:Get() == 0 then
            Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y - 2), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1))
        elseif line_theme:Get() == 1 then
            Render.GradientBoxFilled(Vector2.new(x + w/2, y), Vector2.new(x + w + 3, y - 2), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0))
            Render.GradientBoxFilled(Vector2.new(x, y), Vector2.new(x + (w + 3)/2, y - 2), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1))
        elseif line_theme:Get() == 2 then
            Render.GradientBoxFilled(Vector2.new(x + w/2, y), Vector2.new(x + w + 3, y - 2), Color.RGBA(204, 18, 204, 255), Color.RGBA(255, 250, 0, 255), Color.RGBA(204, 18, 204, 255), Color.RGBA(255, 250, 0, 255))
            Render.GradientBoxFilled(Vector2.new(x, y), Vector2.new(x + (w + 3)/2, y - 2), Color.RGBA(0, 213, 255, 255), Color.RGBA(204, 18, 204, 255), Color.RGBA(0, 213, 255, 255), Color.RGBA(204, 18, 204, 255))
        end

        Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), theme:Get() == 0 and Color.RGBA(18, 18, 18, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()))
    elseif windows_theme:Get() == 1 then
        Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), theme:Get() == 0 and Color.RGBA(18, 18, 18, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()), 6)
        Render.Box(Vector2.new(x-1, y-1), Vector2.new(x + w + 4, y + h + 3), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), 6)
    elseif windows_theme:Get() == 2 then
        Render.BoxFilled(Vector2.new(x+4,y),Vector2.new(x-1+w,y-2), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b))
        Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), theme:Get() == 0 and Color.RGBA(18, 18, 18, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()), 6)
        Render.Circle( -- right
            Vector2.new(x + w - 1, y + h - 12),
            5, 90, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), 2, 270, 370
        )

        Render.Circle( -- left
            Vector2.new(x - 32 + 36, y + h - 12),
            5, 90, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), 2, 270, 170
        )

        Render.GradientBoxFilled(
            Vector2.new(x + w + 5, y + h - 11),
            Vector2.new(x + w + 3, y + h - 7),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b)
        )

        Render.GradientBoxFilled(
            Vector2.new(x - 32 + 32, y + h - 11),
            Vector2.new(x - 32 + 32 - 2, y + h - 7),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b),
            Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 0)
        )
    else
       -- renderer_fade(x, y, x + w + 3, y + h + 2 , Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, (120 / 255) * accent_color:GetColor().a), 10, 10)
        renderer_window(x, y, x + w + 3, y + h + 2, Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, alpha_slider:GetInt()/255), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), Color.new(accent_color:GetColor().r, accent_color:GetColor().g, accent_color:GetColor().b, 1), false, true)
        --Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + w + 3, y + h + 2), theme:Get() == 0 and Color.RGBA(18, 18, 18, alpha_slider:Get()) or Color.RGBA(237, 237, 237, alpha_slider:Get()), 6)
    end
    Render.Text(name, Vector2.new(x+2 + w / 2 + 1 - name_size.x / 2, y + 3), theme:Get() == 0 and Color.RGBA(0, 0, 0, 180) or Color.RGBA(255, 255, 255, 180), font_size, font)
    Render.Text(name, Vector2.new(x+1 + w / 2 + 1 - name_size.x / 2, y + 2), theme:Get() == 0 and Color.RGBA(255, 255, 255, 255) or Color.RGBA(0, 0, 0, 255), font_size, font)
end

function spec_solus()
    local spectators = getspectators()
   
    if not EngineClient.IsConnected() or spectators == nil or EntityList.GetLocalPlayer() == nil then return end
    loadimages()
    local add_y = 0
    local max_width = 0
    local active_spec = {}
    local frametime = GlobalVars.frametime * 16
   
    if spectators ~= nil then
        local currentIndex = 1
        if spectators ~= nil then
            for i = 1, #spectators do
                v = spectators[i]
                if g_players[v.id].downloaded then
                    local name_size = Render.CalcTextSize(v.name, 11, verdanar11)
                    if data_s[v.name] == nil then
                        data_s[v.name] = {alpha_s = 0}
                    end
                    data_s[v.name].alpha_s = lerp(frametime, data_s[v.name].alpha_s,dick < 1 and 1 or 0)
                    if avatar_pos:Get() == 0 then
                        Render.Text(v.name, Vector2.new(spectators_x:GetInt()+4+1, spectators_y:GetInt() + 22 + add_y), Color.new(0, 0, 0, data_s[v.name].alpha_s), 11, verdanar11)
                        Render.Text(v.name, Vector2.new(spectators_x:GetInt()+4, spectators_y:GetInt() + 21 + add_y), Color.new(1, 1, 1, data_s[v.name].alpha_s), 11, verdanar11)
                    elseif avatar_pos:Get() == 1 then
                        Render.Image(g_players[v.id].image, Vector2.new(spectators_x:GetInt()+4, spectators_y:GetInt() + 21 + add_y), Vector2.new(12, 12))
                        Render.Text(v.name, Vector2.new(spectators_x:GetInt()+22, spectators_y:GetInt() + 22 + add_y), Color.new(0, 0, 0, data_s[v.name].alpha_s), 11, verdanar11)
                        Render.Text(v.name, Vector2.new(spectators_x:GetInt()+22-1, spectators_y:GetInt() + 21 + add_y), Color.new(1, 1, 1, data_s[v.name].alpha_s), 11, verdanar11)
                    else
                        Render.Image(g_players[v.id].image, Vector2.new(spectators_x:GetInt()-13 + width_sa, spectators_y:GetInt() + 21 + add_y), Vector2.new(12, 12))
                        Render.Text(v.name, Vector2.new(spectators_x:GetInt()+4+1, spectators_y:GetInt() + 22 + add_y), Color.new(0, 0, 0, data_s[v.name].alpha_s), 11, verdanar11)
                        Render.Text(v.name, Vector2.new(spectators_x:GetInt()+4, spectators_y:GetInt() + 21 + add_y), Color.new(1, 1, 1, data_s[v.name].alpha_s), 11, verdanar11)
                    end

                    add_y = add_y + 17 * data_s[v.name].alpha_s
                    local width_s = name_size.x + 21
                    if width_s > width_value:Get()-11 then
                        if width_s > max_width then
                            max_width = width_s
                        end
                    end
                    if dick then
                        table.insert(active_spec, dick)
                    end

                    currentIndex = currentIndex + 1
                end
            end
        end
       
        local dick = #spectators
    end
   
    alpha_s = lerp(frametime,alpha_s, (Cheat.IsMenuVisible() or #active_spec > 0) and 1 or 0)
    width_sa = lerp(frametime,width_sa,math.max(max_width, width_value:Get()-11))
    if #active_spec > 0 or Cheat.IsMenuVisible() then
        Render.conteiner(spectators_x:GetInt(), spectators_y:GetInt(), width_sa, 16, 'spectators', 11, verdanar11)
        local mouse = Cheat.GetMousePos()
        if Cheat.IsKeyDown(1) and Cheat.IsMenuVisible() and drag == false then
            if mouse.x >= spectators_x:GetInt() and mouse.y >= spectators_y:GetInt() and mouse.x <= spectators_x:GetInt() + width_value:Get()-11 and mouse.y <= spectators_y:GetInt() + 18 or drag_s then
                if not drag_s then
                    drag_s = true
                else
                    spectators_x:SetInt(mouse.x - math.floor(width_sa / 2))
                    spectators_y:SetInt(mouse.y - 8)
                end
            end
        else
            drag_s = false
        end
    end
end
   
function getbinds()
    local binds = {}
    local cheatbinds = Cheat.GetBinds()
   
    for i = 1, #cheatbinds do
        table.insert(binds, 1, cheatbinds[i])
    end
    return binds
end

local keybind_names = {
    ['Double Tap'] = 'Double tap',
    ['Hide Shots'] = 'On shot anti-aim',
    ['Slow Walk'] = 'Slow motion',
    ['Edge Jump'] = 'Jump at edge',
    ['Fake Ping'] = 'Ping spike',
    ['Override Resolver'] = 'Resolver override',
    ['Fake Duck'] = 'Duck peek assist',
    ['Minimum Damage'] = 'Damage override',
    ['Auto Peek'] = 'Quick peek assist',
    ['Body Aim'] = 'Force body aim',
    ['Safe Points'] = 'Safe points',
    ['Yaw Base'] = 'Yaw base',
    ['Enable Thirdperson'] = 'Thirdperson',
    ['Manual Yaw Base'] = 'Yaw base',
}

function upper_to_lower(str)
    str1 = string.sub(str, 2, #str)
    str2 = string.sub(str, 1, 1)
    return str2:upper()..str1:lower()
end

function keybinds()
    local x_k, y_k = keybinds_x:GetInt(), keybinds_y:GetInt()
    local max_width = 0
    local frametime = GlobalVars.frametime * 16
    local add_y = 0
    local total_width = 66
    local active_binds = {}
    local bind = getbinds()
    for i = 1, #bind do
        local binds = bind[i]
        local bind_name = keybind_names[binds:GetName()] == nil and upper_to_lower(binds:GetName()) or keybind_names[binds:GetName()]

        local bind_state = binds:GetValue():lower()
        if keybinds_value:Get() == 0 then
            bind_state = binds:GetMode()
            if bind_state == 0 then
                bind_state = 'toggled'
            elseif bind_state == 1 then
                bind_state = 'holding'
            end
        elseif keybinds_value:Get() == 1 then
            if bind_state == 'on' then
              bind_state = binds:GetMode()
              if bind_state == 0 then
                  bind_state = 'toggled'
              elseif bind_state == 1 then
                  bind_state = 'holding'
              end
            end
        end
       
        if data_k[bind_name] == nil then
            data_k[bind_name] = {alpha_k = 0}
        end
        --if Cheat.IsMenuVisible() then
        --    bind_name = 'Menu toggled'
        --end
        data_k[bind_name].alpha_k = lerp(frametime, data_k[bind_name].alpha_k,binds:IsActive() and 1 or 0)
        local bind_state_size = Render.CalcTextSize(bind_state, 11, verdanar11)
        local bind_name_size = Render.CalcTextSize(bind_name, 11, verdanar11)

        Render.Text(bind_name, Vector2.new(x_k+4, y_k + 21 + add_y), Color.new(0, 0, 0, data_k[bind_name].alpha_k), 11, verdanar11)
        Render.Text('['..bind_state..']', Vector2.new(x_k+1 + (width_ka - bind_state_size.x - 8), y_k + 21 + add_y), Color.new(0, 0, 0, data_k[bind_name].alpha_k), 11, verdanar11)

        Render.Text(bind_name, Vector2.new(x_k+3, y_k + 20 + add_y), Color.new(1, 1, 1, data_k[bind_name].alpha_k), 11, verdanar11)
        Render.Text('['..bind_state..']', Vector2.new(x_k + (width_ka - bind_state_size.x- 8), y_k + 20 + add_y), Color.new(1, 1, 1, data_k[bind_name].alpha_k), 11, verdanar11)

        add_y = add_y + 16 * data_k[bind_name].alpha_k

       
        local width_k = bind_state_size.x + bind_name_size.x + 18
        if width_k > width_value:Get()-11 then
            if width_k > max_width then
                max_width = width_k
            end
        end
        if binds:IsActive() then
            table.insert(active_binds, binds)
        end
    end
    alpha_k = lerp(frametime,alpha_k, (Cheat.IsMenuVisible() or #active_binds > 0) and 1 or 0)
    width_ka = lerp(frametime,width_ka,math.max(max_width, width_value:Get()-11))

    if Cheat.IsMenuVisible() or #active_binds > 0 then
        Render.conteiner(x_k, y_k, width_ka, 16, 'keybinds', 11, verdanar11)

        local mouse = Cheat.GetMousePos()
        if Cheat.IsKeyDown(1) and Cheat.IsMenuVisible() and drag_s == false then
            if mouse.x >= x_k and mouse.y >= y_k and mouse.x <= x_k + width_ka and mouse.y <= y_k + 18 or drag then
                if not drag then
                    drag = true
                else
                    keybinds_x:SetInt(mouse.x - math.floor(width_ka / 2))
                    keybinds_y:SetInt(mouse.y - 8)
                end
            end
        else
            drag = false
        end
    end
end

Cheat.RegisterCallback('createmove', function()
    update_choked()
end)

Cheat.RegisterCallback('draw', function()
    client_call_delay()
    if windows_value:Get(3) then
        keybinds()
    end
    if windows_value:Get(1) then
        watermark()
    end
    if windows_value:Get(4) or windows_value:Get(5) then
        solus_ui()
    end
    if windows_value:Get(2) then
        spec_solus()
    end
end)

line_theme:SetVisible(windows_theme:Get() == 0 and windows_value:Get() ~= 0)
avatar_pos:SetVisible(windows_value:Get(2))
custom_cheatname:SetVisible(windows_value:Get(1) and custom_value:Get() == 1)
custom_user_name:SetVisible(windows_value:Get(1) and custom_value:Get() == 1)
custom_value:SetVisible(windows_value:Get(1))
keybinds_value:SetVisible(windows_value:Get(3))
windows_theme:SetVisible(windows_value:Get() ~= 0)
accent_color:SetVisible(windows_value:Get() ~= 0)
background_blur:SetVisible(windows_value:Get() ~= 0)
alpha_slider:SetVisible(windows_value:Get() ~= 0)
width_value:SetVisible(windows_value:Get(2) or windows_value:Get(3))
theme:SetVisible(windows_value:Get() ~= 0)

windows_theme:RegisterCallback(function()
    line_theme:SetVisible(windows_theme:Get() == 0 and windows_value:Get() ~= 0)
end)

windows_value:RegisterCallback(function()
    avatar_pos:SetVisible(windows_value:Get(2))
    custom_cheatname:SetVisible(windows_value:Get(1) and custom_value:Get() == 1)
    custom_user_name:SetVisible(windows_value:Get(1) and custom_value:Get() == 1)
    custom_value:SetVisible(windows_value:Get(1))
    keybinds_value:SetVisible(windows_value:Get(3))
    windows_theme:SetVisible(windows_value:Get() ~= 0)
    accent_color:SetVisible(windows_value:Get() ~= 0)
    background_blur:SetVisible(windows_value:Get() ~= 0)
    alpha_slider:SetVisible(windows_value:Get() ~= 0)
    theme:SetVisible(windows_value:Get() ~= 0)
    width_value:SetVisible(windows_value:Get(2) or windows_value:Get(3))
end)

custom_value:RegisterCallback(function()
    custom_cheatname:SetVisible(windows_value:Get(1) and custom_value:Get() == 1)
    custom_user_name:SetVisible(windows_value:Get(1) and custom_value:Get() == 1)
end)
отвечаешь? 1656753911019.png
 
otval shpindelya
Участник
Статус
Оффлайн
Регистрация
23 Мар 2020
Сообщения
1,258
Реакции[?]
291
Поинты[?]
9K
Забаненный
Статус
Оффлайн
Регистрация
29 Май 2022
Сообщения
324
Реакции[?]
280
Поинты[?]
20K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
[/QUOTE]
Вопрос вы разработчик чита или нет?
Ответ:Нет я его скачал с пабилка
:blush: :blush: :blush:
 
Сверху Снизу