LUA скрипт [NL] [Free] Ch1mera.lua //скрипт закрыли

Статус
В этой теме нельзя размещать новые ответы.
Забаненный
Статус
Оффлайн
Регистрация
22 Авг 2019
Сообщения
363
Реакции[?]
145
Поинты[?]
0
1.6. Запрещено просить личный в теме, оставлять просьбу о тестировании. Просить личный и тест можно только в ЛС, а так же через кнопку «Попросить личный».
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Всем привет! Решил вот так вот обоссать все говно скрипты всяких shelze (скрипт шелзи кину под хайд трем людям, кто первый попросит снизу) DurkLony и других пацаненков вот такой вот темой! В скрите все соответсвтует оригинальному скрипту, разве что не хватает пары функций, ну и реализация чуть чуть иная, но все же, все работает и выглядит как в химере! Теперь ребята которые не имели денег могут поиграть с нормальными антиаимами бесплатно!

Пожалуйста, авторизуйтесь для просмотра ссылки.

:disappointed: closed


C:
ffi.cdef[[
    typedef struct {
        unsigned short wYear;
        unsigned short wMonth;
        unsigned short wDayOfWeek;
        unsigned short wDay;
        unsigned short wHour;
        unsigned short wMinute;
        unsigned short wSecond;
        unsigned short wMilliseconds;
    } SYSTEMTIME, *LPSYSTEMTIME;
    void GetSystemTime(LPSYSTEMTIME lpSystemTime);
    void GetLocalTime(LPSYSTEMTIME lpSystemTime);

    typedef struct {
        float x;
        float y;
        float z;
    } vec3_struct;

    typedef void*(__thiscall* c_entity_list_get_client_entity_t)(void*, int);
    typedef void*(__thiscall* c_entity_list_get_client_entity_from_handle_t)(void*, uintptr_t);

    typedef int(__thiscall* c_weapon_get_muzzle_attachment_index_first_person_t)(void*, void*);
    typedef int(__thiscall* c_weapon_get_muzzle_attachment_index_third_person_t)(void*);
    typedef bool(__thiscall* c_entity_get_attachment_t)(void*, int, vec3_struct*);
 
    bool CreateDirectoryA(const char* lpPathName, void* lpSecurityAttributes);
    void* __stdcall URLDownloadToFileA(void* LPUNKNOWN, const char* LPCSTR, const char* LPCSTR2, int a, int LPBINDSTATUSCALLBACK);
    void* __stdcall ShellExecuteA(void* hwnd, const char* op, const char* file, const char* params, const char* dir, int show_cmd);

    bool DeleteUrlCacheEntryA(const char* lpszUrlName);
]]

local urlmon = ffi.load 'UrlMon'
local wininet = ffi.load 'WinInet'
local gdi = ffi.load 'Gdi32'

Download = function(from, to)
    wininet.DeleteUrlCacheEntryA(from)
    urlmon.URLDownloadToFileA(nil, from, to, 0,0)
    print('Successfully!')
end

CreateDir = function(path)
    ffi.C.CreateDirectoryA(path, NULL)
end

local engineClient = Utils.CreateInterface("engine.dll", "VEngineClient014")
local engineClientClass = ffi.cast(ffi.typeof("void***"), engineClient)
local isConsoleVisible = ffi.cast("bool(__thiscall*)(void*)", engineClientClass[0][11])

local consoleMaterials = {"vgui_white", "vgui/hud/800corner1", "vgui/hud/800corner2", "vgui/hud/800corner3", "vgui/hud/800corner4"}
local materialList = {}

local oldColor = Color.new(1.0, 1.0, 1.0, 1.0)
local oldConsoleIsVisible = false

local materials = {
    "particle/fire_burning_character/fire_env_fire_depthblend_oriented",
    "particle/fire_burning_character/fire_burning_character",
    "particle/fire_explosion_1/fire_explosion_1_oriented",
    "particle/fire_explosion_1/fire_explosion_1_bright",
    "particle/fire_burning_character/fire_burning_character_depthblend",
    "particle/fire_burning_character/fire_env_fire_depthblend",
}

local ffi_handler = {}
local muzzle = {}

ffi_handler.bind_argument = function(fn, arg)
    return function(...)
        return fn(arg, ...)
    end
end

ffi_handler.interface_type = ffi.typeof("uintptr_t**")

ffi_handler.i_client_entity_list = ffi.cast(ffi_handler.interface_type, Utils.CreateInterface("client.dll", "VClientEntityList003"))
ffi_handler.get_client_entity = ffi_handler.bind_argument(ffi.cast("c_entity_list_get_client_entity_t", ffi_handler.i_client_entity_list[0][3]), ffi_handler.i_client_entity_list)

muzzle.attachment_index = 84
muzzle.muzzle_attachment_index_1st = 468
muzzle.muzzle_attachment_index_3rd = 469

muzzle.pos = Vector.new(0, 0, 0)

muzzle.get = function()

    if not EngineClient.IsInGame() then return end

    local me = EntityList.GetClientEntity(EngineClient.GetLocalPlayer())
    if not me or EntityList.GetLocalPlayer():GetProp("DT_BasePlayer", "m_iHealth") < 1 then return end

    local my_weapon = EntityList.GetClientEntityFromHandle(me:GetProp("DT_BaseCombatCharacter", "m_hActiveWeapon"))
    if not my_weapon then return end

    local my_address = ffi_handler.get_client_entity(me:EntIndex())
    if not my_address then return end

    local my_weapon_address = ffi_handler.get_client_entity(my_weapon:EntIndex())
    if not my_weapon_address then return end

    local viewmodel = EntityList.GetClientEntityFromHandle(me:GetProp("DT_BasePlayer", "m_hViewModel[0]"))
    if not viewmodel then return end

    local viewmodel_ent = ffi_handler.get_client_entity(viewmodel:EntIndex())
    if not viewmodel_ent then return end

    local weaponworldmodel = EntityList.GetClientEntityFromHandle(my_weapon:GetProp("DT_BaseCombatWeapon", "m_hWeaponWorldModel"))
    if not weaponworldmodel then return end

    local weaponworldmodel_ent = ffi_handler.get_client_entity(weaponworldmodel:EntIndex())
    if not weaponworldmodel_ent then return end

    local viewmodel_vtbl = ffi.cast(ffi_handler.interface_type, viewmodel_ent)[0]
    local weaponworldmodel_vtbl = ffi.cast(ffi_handler.interface_type, weaponworldmodel_ent)[0]
    local weapon_vtbl = ffi.cast(ffi_handler.interface_type, my_weapon_address)[0]

    local get_viewmodel_attachment_fn = ffi.cast("c_entity_get_attachment_t", viewmodel_vtbl[muzzle.attachment_index])
    local get_weaponworldmodel_attachment_fn = ffi.cast("c_entity_get_attachment_t", weaponworldmodel_vtbl[muzzle.attachment_index])
    local get_muzzle_attachment_index_1st_fn = ffi.cast("c_weapon_get_muzzle_attachment_index_first_person_t", weapon_vtbl[muzzle.muzzle_attachment_index_1st])
    local get_muzzle_attachment_index_3rd_fn = ffi.cast("c_weapon_get_muzzle_attachment_index_third_person_t", weapon_vtbl[muzzle.muzzle_attachment_index_3rd])

    local muzzle_attachment_index_1st = get_muzzle_attachment_index_1st_fn(my_weapon_address, viewmodel_ent)
    local muzzle_attachment_index_3rd = get_muzzle_attachment_index_3rd_fn(my_weapon_address)

    local ret = ffi.new("vec3_struct[1]")
    local is_thirdperson = Menu.FindVar("Visuals", "View", "Thirdperson", "Enable Thirdperson")

    if is_thirdperson:Get() then
        state = get_weaponworldmodel_attachment_fn(weaponworldmodel_ent, muzzle_attachment_index_3rd, ret)
    else
        state = get_viewmodel_attachment_fn(viewmodel_ent, muzzle_attachment_index_1st, ret)
    end

    return {state = state, pos = Vector.new(ret[0].x, ret[0].y, ret[0].z)}
end

local x = EngineClient.GetScreenSize().x
local y = EngineClient.GetScreenSize().y
local sc = EngineClient.GetScreenSize()
local aa = {}
local state = {"Global", "Stand", "Move", "Air", "Duck", "Slow walk"}
local hitboxes = {"generic","head","chest","stomach","left arm","right arm","left leg","right leg","neck"};
local logs = {}
logs[#logs+1] = {("[nova.tech] Welcome back, "..Cheat.GetCheatUserName().."!"), GlobalVars.tickcount + 300, 0}
logs[#logs+1] = {("[nova.tech] Download font in Global Tab!"), GlobalVars.tickcount + 300, 0}
local ui =
{
    --rage
    antidefensive = Menu.Switch("Global","Rage", "Anti-Defensive", false),
    autopeek = Menu.Switch("Global","Rage", "Quick Peek", false),
    disable_os = Menu.Switch("Global","Rage", "Disable FL on Hide Shots", false),
    idealtick = Menu.Switch("Global","Rage", "Idealtick", false, "Works when autopeek"),
    add_idealtick = Menu.MultiCombo("Global","Rage", "Idealtick Options", {"Freestand", "Override Damage", "Safe Head"}, 0),
    idealtick_damage = Menu.SliderInt("Global","Rage","Idealtick Damage", 10, 0, 130),
    air_hitchance = Menu.Switch("Global","Rage", "In-Air Hitchance", false),
    air_hitchance_value = Menu.SliderInt("Global","Rage","Air Hitchance Value", 50, 1, 100),
    ns_hitchance = Menu.Switch("Global","Rage", "Noscope Hitchance", false),
    ns_hitchance_value = Menu.SliderInt("Global","Rage","NS Hitchance Value", 50, 1, 100),

    --visuals
    state_panel = Menu.Switch("Visuals","Main","State Panel", false),
    circle = Menu.SwitchColor("Visuals","Main", "Anti-Aim Crosshair Indicator", false, Color.new(0.57, 0.57, 1, 1)),
    circle_style = Menu.Combo("Visuals","Main", "Style", {"Circle", "Arrows"}, 0),
    glowpeek = Menu.SwitchColor("Visuals","Main", "Glow Autopeek", false, Color.new(0.47, 0.47, 1, 0.5)),
    viewmodel = Menu.Switch("Visuals","Main", "Viewmodel in Scope", false),
    scope = Menu.SwitchColor("Visuals","Main", "Custom Scope", false, Color.new(1, 1, 1, 1)),
    offset = Menu.SliderInt("Visuals","Main", "Offset", 5, -500, 500),
    length = Menu.SliderInt("Visuals","Main", "Length", 25, 0, 1000),
    color = Menu.ColorEdit("Visuals","Main", "Accent Color", Color.new(0.57, 0.57, 1, 1)),

    --indicators
    indicators = Menu.MultiCombo("Visuals","Indicators","Indicators", {"Nova.tech #1", "Nova.tech #2", "Nova.tech #3", "Ideal Yaw", "Skeet"}, 0),
    add_indicators = Menu.MultiCombo("Visuals","Indicators","Additional Indicators", {"Freestand", "Exploit", "Damage", "Freestand"}, 0),
    damage_indicator = Menu.Switch("Visuals","Indicators", "Damage Indicator", false),
    manual_arrows = Menu.Switch("Visuals","Indicators","Manual Arrows", false),
    arrows_style = Menu.Combo("Visuals","Indicators","Arrows Style", {"Default", "TeamSkeet"}, 0),
    color1 = Menu.ColorEdit("Visuals","Indicators", "First Color", Color.RGBA(175, 255, 0, 255)),
    color2 = Menu.ColorEdit("Visuals","Indicators", "Second Color", Color.RGBA(0, 200, 255, 255)),

    --solus ui
    windows = Menu.MultiCombo("Visuals","UI","Windows", {"Watermark", "Spectators", "Keybinds", "FAKE & DT", "Holo Panel"}, 0),
    alpha = Menu.SliderInt("Visuals","UI", "Box Alpha", 75, 0, 255),
    holo_on_tp = Menu.Switch("Visuals","UI","Disable in Thirdperson", false),
    binds_x = Menu.SliderInt("Visuals","UI", "X", 300, 0, x),
    binds_y = Menu.SliderInt("Visuals","UI", "Y", 300, 0, y),
    specs_x = Menu.SliderInt("Visuals","UI", "X ", 300, 0, x),
    specs_y = Menu.SliderInt("Visuals","UI", "Y ", 500, 0, y),

    --misc
    hitlogs = Menu.Switch("Misc","Misc","Hitlogs", false),
    hitlogs_type = Menu.MultiCombo("Misc","Misc", "Hitlogs Type", {"Custom", "Console", "Event"}, 0),
    console = Menu.SwitchColor("Misc", "Misc", "Console Color Changer", false, Color.new(1.0, 1.0, 1.0)),
    hitsound = Menu.Combo("Misc","Misc","Hitsound", {"Disable","Skeet", "Alternative", "Custom"}, 0),
    custom_hitsound = Menu.TextBox("Misc","Misc","Filepath", 64, "nova.tech/hitsound/hitsound.wav"),
    wireframe = Menu.Switch("Misc","Misc","Molotov Wireframe", false),
    ignorez = Menu.Switch("Misc","Misc","Ignore-Z", false),
    blur = Menu.Switch("Misc","Misc","Menu Blur", false),
    trashtalk = Menu.Switch("Misc","Misc","Trashtalk", false),
    tpanim = Menu.Switch("Misc","Misc","Disable Thirdperson Animation", false),
}

--anti-aims
aa[0] =
{
    antiaims = Menu.Switch("Anti-Aim","Main","Enable Anti Aim's", false),
    tp_in_air = Menu.Switch("Anti-Aim","Main","Teleport In Air", false),
    fake_flick = Menu.Switch("Anti-Aim","Main","Fake Flick", false),
    on_key = Menu.Switch("Anti-Aim","Main","Legit AA", false),
    antibackstab = Menu.Switch("Anti-Aim","Main","Anti Backstab", false),
    manual = Menu.Combo("Anti-Aim","Main", "Override Yaw Base", {"Disable", "Forward", "Backward", "Right", "Left", "At Target", "Freestanding"}, 0, "Bind it"),
    antiaim = Menu.Combo("Anti-Aim","Main", "Conditions", state, 0),
}
for i = 1, 6 do
    aa[i] = {
        custom_enable = Menu.Switch("Anti-Aim",state[i], string.format("Enable %s Anti Aim", state[i]), false,string.format("Override %s settings", state[i])),
        custom_yaw_base = Menu.Combo("Anti-Aim",state[i], "Yaw Base", {"Forward", "Backward", "Right", "Left", "At Target", "Freestanding"}, 1),
        custom_yaw_add_left = Menu.SliderInt("Anti-Aim",state[i], "Yaw Add Left", 0, -180, 180),
        custom_yaw_add_right = Menu.SliderInt("Anti-Aim",state[i], "Yaw Add Right", 0, -180, 180),
        custom_yaw_modifier = Menu.Combo("Anti-Aim",state[i], "Yaw Modifier", {"Disabled", "Center", "Offset", "Random", "Spin"}, 0),
        custom_modifier_degree = Menu.SliderInt("Anti-Aim",state[i], "Modifier Degree", 0, -180, 180),
        custom_fake_type = Menu.Combo("Anti-Aim",state[i],"Fake Type", {"Static","Jitter","Random"}, 0),
        custom_left_limit = Menu.SliderInt("Anti-Aim",state[i], "Left Limit", 60, 0, 60),
        custom_right_limit = Menu.SliderInt("Anti-Aim",state[i], "Right Limit", 60, 0, 60),
        custom_left_limit2 = Menu.SliderInt("Anti-Aim",state[i], "Left Limit [2]", 60, 0, 60),
        custom_right_limit2 = Menu.SliderInt("Anti-Aim",state[i], "Right Limit [2]", 60, 0, 60),
        custom_options = Menu.MultiCombo("Anti-Aim",state[i],"Fake Options", {"Avoid Overlap","Jitter","Randomize Jitter", "Anti Bruteforce"}, 0),
        custom_lby = Menu.Combo("Anti-Aim",state[i],"LBY Mode", {"Disabled","Opposite","Sway"}, 1),
        custom_fs = Menu.Combo("Anti-Aim",state[i],"Freestanding Desync", {"Off","Peek Fake","Peek Real"}, 0),
        custom_onshot = Menu.Combo("Anti-Aim",state[i],"Desync On Shot", {"Disabled","Opposite","Freestanding","Switch"}, 0),
    }
end
local preset = Menu.Button("Anti-Aim","Main", "Load Default Preset", "Load Default Preset", function()
    aa[1].custom_yaw_base:SetInt(4)
    aa[1].custom_yaw_add_left:SetInt(0)
    aa[1].custom_yaw_add_right:SetInt(0)
    aa[1].custom_yaw_modifier:SetInt(2)
    aa[1].custom_modifier_degree:SetInt(20)
    aa[1].custom_fake_type:SetInt(0)
    aa[1].custom_left_limit:SetInt(42)
    aa[1].custom_right_limit:SetInt(42)
    aa[1].custom_lby:SetInt(0)
    aa[1].custom_fs:SetInt(0)
    aa[1].custom_onshot:SetInt(1)
end)

CreateDir("nl\\nova.tech\\")
--info
Menu.Text("Global","Info","Welcome to Nova.tech, "..Cheat.GetCheatUserName().."!")

local get_discord = Menu.Button("Global","Info","Discord", "Discord", function()
    Panorama.Open().SteamOverlayAPI.OpenExternalBrowserURL("https://discord.gg/X85QFvdSgT")
end)

local get_font = Menu.Button("Global","Info","Download Font", "Download Font", function()
    CreateDir("nl\\nova.tech\\fonts\\")
    Download('https://fontsforyou.com/downloads/99851-smallestpixel7', 'nl\\nova.tech\\fonts\\pixel.ttf')
    logs[#logs+1] = {("[nova.tech] Font installed, restart script!"), GlobalVars.tickcount + 300, 0}
end)

CreateDir("csgo\\sound\\nova.tech\\")
CreateDir("csgo\\sound\\nova.tech\\hitsound\\")
Download('https://cdn.discordapp.com/attachments/856592298132242432/931265632861818930/skeet.wav', 'csgo\\sound\\nova.tech\\hitsound\\hitsound.wav')

Menu.Text("Global","Info","Hitsound Filepath: csgo/sounds | File type .wav")
Menu.Text("Global","Info","  ")
Menu.Text("Global","Info","V1.2.1")
Menu.Text("Global","Info","Nova.tech")

--fonts
local font =
{
    pixel = Render.InitFont("nl\\nova.tech\\fonts\\pixel.ttf", 10),
    verdana = Render.InitFont("Verdana", 11, {'r'}),
    verdanabd = Render.InitFont("Verdana Bold", 11, {'r'}),
    verdanabd12 = Render.InitFont("Verdana Bold", 12),
    calibrib = Render.InitFont("Calibri Bold", 30),
    tahoma = Render.InitFont("Tahoma", 12),
}

--menu reference
local MD = Menu.FindVar("Aimbot","Ragebot","Accuracy","Minimum Damage")
local BA = Menu.FindVar("Aimbot","Ragebot","Misc","Body Aim")
local SP = Menu.FindVar("Aimbot","Ragebot","Misc","Safe Points")
local DT = Menu.FindVar("Aimbot","Ragebot","Exploits","Double Tap")
local AP = Menu.FindVar("Miscellaneous","Main","Movement","Auto Peek")
local SW = Menu.FindVar("Aimbot","Anti Aim","Misc","Slow Walk")
local HS = Menu.FindVar("Aimbot","Ragebot","Exploits","Hide Shots")
local PING = Menu.FindVar("Miscellaneous", "Main", "Other", "Fake Ping")
local FL = Menu.FindVar("Aimbot","Anti Aim","Fake Lag","Limit")
local FLR = Menu.FindVar("Aimbot","Anti Aim","Fake Lag","Randomization")
local FD = Menu.FindVar("Aimbot","Anti Aim","Misc","Fake Duck")
local TP = Menu.FindVar("Visuals", "View", "Thirdperson", "Enable Thirdperson")
local removals = Menu.FindVar("Visuals", "World", "Main", "Removals")

--menu reference for aa
local left_limit = Menu.FindVar("Aimbot","Anti Aim","Fake Angle","Left Limit")
local right_limit = Menu.FindVar("Aimbot","Anti Aim","Fake Angle","Right Limit")
local options = Menu.FindVar("Aimbot","Anti Aim","Fake Angle","Fake Options")
local lby_mode = Menu.FindVar("Aimbot","Anti Aim","Fake Angle","LBY Mode")
local freestand = Menu.FindVar("Aimbot","Anti Aim","Fake Angle","Freestanding Desync")
local onshot = Menu.FindVar("Aimbot","Anti Aim","Fake Angle","Desync On Shot")
local yaw_base = Menu.FindVar("Aimbot","Anti Aim","Main","Yaw Base")
local pitch = Menu.FindVar("Aimbot","Anti Aim","Main","Pitch")
local yaw_add = Menu.FindVar("Aimbot","Anti Aim","Main","Yaw Add")
local yaw_modifier = Menu.FindVar("Aimbot","Anti Aim","Main","Yaw Modifier")
local modifier_degree = Menu.FindVar("Aimbot","Anti Aim","Main","Modifier Degree")
local legmovement = Menu.FindVar("Aimbot", "Anti Aim", "Misc", "Leg Movement")

local normalize_yaw = function(yaw)
    while yaw > 180 do yaw = yaw - 360 end
    while yaw < -180 do yaw = yaw + 360 end
    return yaw
end

function C_BasePlayer:IsLocalPlayer()
    return self == EntityList.GetLocalPlayer()
end

function C_BasePlayer:IsEnemy()
    return EntityList.GetLocalPlayer() and self:IsTeamMate() == false
end

function GetEnemiesWithKnife()
    local ret = {}

    local players = EntityList.GetPlayers()
    if #players < 0 then return {} end

    for i, player in pairs(players) do
        local player_active_weapon = player:GetActiveWeapon()

        if not player_active_weapon then return end

        if player:IsEnemy() and player:IsAlive() and player_active_weapon:IsKnife() then
            table.insert(ret, player)
        end
    end

    return ret
end

--jitter
local jitter = function(c, q)
    local f = math.random(0, 1)
    local b = 0
    if f == 0 then
        b = c
    elseif f == 1 then
        b = q
    end
    return b
end

--set movement
function setmovement(xz,yz,cmd)
    local local_player = EntityList.GetLocalPlayer()
    local_player = local_player:GetPlayer()
    local current_pos = local_player:GetProp("m_vecOrigin")
    local yaw = EngineClient:GetViewAngles().yaw
    local vector_forward = {
        x = current_pos.x - xz,
        y = current_pos.y - yz,
    }
    local velocity = {
        x = -(vector_forward.x * math.cos(yaw / 180 * math.pi) + vector_forward.y * math.sin(yaw / 180 * math.pi)),
        y = vector_forward.y * math.cos(yaw / 180 * math.pi) - vector_forward.x * math.sin(yaw / 180 * math.pi),
    }
    cmd.forwardmove = velocity.x * 15
    cmd.sidemove = velocity.y * 15
end

--yaw
local yaw = function(h, l, y)
    local invert = AntiAim.GetInverterState()
    if invert == true then
        h:SetInt(l)
    elseif invert == false then
        h:SetInt(y)
    end
end

--lerp
local lerp = function (a, b, percentage) return math.floor(a + (b - a) * percentage) end

local function isColorEquals(clr1, clr2)
    return (clr1.r == clr2.r and clr1.g == clr2.g and clr1.b == clr2.b and clr1.a == clr2.a)
end

local function copyColor(src, dest)
    dest.r, dest.g, dest.b, dest.a = src.r, src.g, src.b, src.a
end

local function findConsoleMaterials()
    if materialList[1] then return end

    local material = MatSystem.FirstMaterial()
    local foundCount = 0

    while(foundCount < 5)
    do
        local mat = MatSystem.GetMaterial(material)
        local name = mat:GetName()

        for i = 1, #consoleMaterials do
            if name == consoleMaterials[i] then
                materialList[i] = mat
                foundCount = foundCount + 1
                break
            end
        end

        material = MatSystem.NextMaterial(material)
    end
end

local function updateConsoleColor(r, g, b, a)
    for i = 1, #materialList do
        local mat = materialList[i]
        mat:ColorModulate(r, g, b)
        mat:AlphaModulate(a)
    end
end

local function cfgConsoleCallback()
    local color = ui.console:Get()

    if not ui.console:Get() then
        updateConsoleColor(1, 1, 1, 1)
    elseif isConsoleVisible(engineClientClass) then
        updateConsoleColor(color.r, color.g, color.b, color.a)
        copyColor(color, oldColor)
    end
end

--angle
local adjust_angle = function(angle)
    if(angle < 0) then
        angle = (90 + angle * (-1))
    elseif(angle > 0) then
        angle = (90 - angle)
    end
    return angle
end

local OldChoke, toDraw0, toDraw1, toDraw2, toDraw3, toDraw4, on_plant_time, fill, text, planting_site, planting, autopeek_origin = 0, 0, 0, 0, 0, 0, 0, 0, "", "", false, nil

--hitgroups
Cheat.RegisterCallback("registered_shot", function(shot)
    local reason_list = {
        "resolver",
        "spread",
        "occlusion",
        "prediction error"
    }
    local reason = shot.reason
    local entity = EntityList.GetClientEntity(shot.target_index)
    local Name = entity:GetPlayer():GetName()
    if ui.hitlogs:Get() then
        if reason == 0 then
            if ui.hitlogs_type:Get(1) then
                logs[#logs+1] = {("[nova.tech] Hit "..Name.."'s in "..hitboxes[shot.hitgroup+1].." for ".. shot.damage .." dmg (aimed: "..hitboxes[shot.wanted_hitgroup+1]..", hc: "..shot.hitchance..", bt: "..shot.backtrack..", spread: "..string.format("%.1f", shot.spread_degree).."°)"), GlobalVars.tickcount + 300, 0}
            end
            if ui.hitlogs_type:Get(2) then
                print("[nova.tech] Hit "..Name.."'s in "..hitboxes[shot.hitgroup+1].." for ".. shot.damage .." dmg (aimed: "..hitboxes[shot.wanted_hitgroup+1]..", hc: "..shot.hitchance..", bt: "..shot.backtrack..", spread: "..string.format("%.1f", shot.spread_degree).."°)")
            end
            if ui.hitlogs_type:Get(3) then
                Cheat.AddEvent("[nova.tech] Hit "..Name.."'s in "..hitboxes[shot.hitgroup+1].." for ".. shot.damage .." dmg (aimed: "..hitboxes[shot.wanted_hitgroup+1]..", hc: "..shot.hitchance..", bt: "..shot.backtrack..", spread: "..string.format("%.1f", shot.spread_degree).."°)")
            end
        else
            if ui.hitlogs_type:Get(1) then
                logs[#logs+1] = {("[nova.tech] Missed ".. Name .. "'s in " .. hitboxes[shot.wanted_hitgroup+1] .. " due to "..reason_list[reason].." (aimed: "..hitboxes[shot.wanted_hitgroup+1]..", hc: "..shot.hitchance..", bt: "..shot.backtrack..", spread: "..string.format("%.1f", shot.spread_degree).."°)"), GlobalVars.tickcount + 300, 0}
            end
            if ui.hitlogs_type:Get(2) then
                print("[nova.tech] Missed ".. Name .. "'s in " .. hitboxes[shot.wanted_hitgroup+1] .. " due to "..reason_list[reason].." (aimed: "..hitboxes[shot.wanted_hitgroup+1]..", hc: "..shot.hitchance..", bt: "..shot.backtrack..", spread: "..string.format("%.1f", shot.spread_degree).."°)")
            end
            if ui.hitlogs_type:Get(3) then
                Cheat.AddEvent("[nova.tech] Missed ".. Name .. "'s in " .. hitboxes[shot.wanted_hitgroup+1] .. " due to "..reason_list[reason].." (aimed: "..hitboxes[shot.wanted_hitgroup+1]..", hc: "..shot.hitchance..", bt: "..shot.backtrack..", spread: "..string.format("%.1f", shot.spread_degree).."°)")
            end
        end
    end
end)

--velocity
local velocity = function(ent)
    local speed = Vector.new(ent:GetProp("DT_BasePlayer", "m_vecVelocity[0]"), ent:GetProp("DT_BasePlayer", "m_vecVelocity[1]"), ent:GetProp("DT_BasePlayer", "m_vecVelocity[2]")):Length2D()
    return speed
end

local drag = {false, false}
local toDraw = {0, 0, 0, 0, 0, 0,}
local keysAnim = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,}

local Visuals_HoloX, Visuals_HoloY, fake, curtime, ts, ts2, aastate, legit_aa, in_use, call_once = 0, 0, GlobalVars.curtime, 0, 0, 0, "DEFAULT", false, false, true


local anim = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,}

local legitaa = function(cmd)
    local lp = EntityList.GetClientEntity(EngineClient.GetLocalPlayer())
    if lp == nil then return end
    in_use = false
    if aa[0].on_key:Get() == false then legit_aa = false return else legit_aa = true end
    if(bit.band(cmd.buttons, 32) == 32 and call_once == true) then
        call_once = false
    end

    if(bit.band(cmd.buttons, 32) == 0 and call_once == false) then
        call_once = true
    end

    if bit.band(cmd.buttons, 32) == 32 then
        in_use = true
        cmd.buttons = bit.band(cmd.buttons, bit.bnot(32))
    end
end

local use = function(cmd)
    if in_use == true then
        cmd.buttons = bit.bor(cmd.buttons, 32)
        in_use = false
    end
end

local Render_Indicator = function(text, ay2, color, size, font, outline)
    ts = Render.CalcTextSize(text, size, font)
    Render.Text(text, Vector2.new(x/2-ts.x/2, y/2+ay2), color, size, font, outline)
end

local Render_Indicator2 = function(text, ay2, color, size, font, outline, ts2)
    ts = Render.CalcTextSize(text, size, font)
    Render.Text(text, Vector2.new(x/2-ts.x/2-ts2, y/2+ay2), color, size, font, outline)
end
   
local Render_Indicator3 = function(text, ay3, color, size, font)
    ts = Render.CalcTextSize(text, size, font)
    Render.Text(text, Vector2.new(x/2+1, y/2+1+ay3), Color.RGBA(0,0,0,255), size, font)
    Render.Text(text, Vector2.new(x/2, y/2+ay3), color, size, font)
end

local Render_Skeet = function(text, ay, color, size, fonts)
    ts = Render.CalcTextSize(text, size, fonts)
    Render.GradientBoxFilled(Vector2.new(13, sc.y/1.48 - 5 + ay), Vector2.new(13 + (ts.x) / 2, sc.y/1.48 - 5 + ay + 28), Color.RGBA(0, 0, 0, 0), Color.RGBA(0, 0, 0, 65), Color.RGBA(0, 0, 0, 0), Color.RGBA(0, 0, 0, 65))
    Render.GradientBoxFilled(Vector2.new(13 + (ts.x) / 2, sc.y/1.48 - 5 + ay), Vector2.new(13 + (ts.x), sc.y/1.48 - 5 + ay + 28), Color.RGBA(0, 0, 0, 65), Color.RGBA(0, 0, 0, 0), Color.RGBA(0, 0, 0, 65), Color.RGBA(0, 0, 0, 0))
    Render.Text(text, Vector2.new(sc.x/100 + 2, sc.y/1.48 - 5 + 5 + ay), Color.new(0, 0, 0, 1), size, fonts)
    Render.Text(text, Vector2.new(sc.x/100 + 2, sc.y/1.48 - 5 + 4 + ay), color, size, fonts)
end

Cheat.RegisterCallback("prediction", function(cmd)
    local lp = EntityList.GetLocalPlayer()
    local forw = bit.band(cmd.buttons, 8) == 8
    local back = bit.band(cmd.buttons, 16) == 16
    local righ = bit.band(cmd.buttons, 512) == 512
    local left = bit.band(cmd.buttons, 1024) == 1024

    local originalpos = lp:GetProp("m_vecOrigin")
    local OnGround = bit.band(lp:GetProp("m_hGroundEntity"), 1);

    if OnGround == 1 then
        air = true
    else
        air = false
    end
    if AP:Get() == false then
        curpos = lp:GetProp("m_vecOrigin");
    end
    if ui.autopeek:Get() then
        if AP:Get() then
            if forw == false and back == false and left == false and righ == false and curpos.x ~= originalpos.x and curpos.y ~= originalpos.y and air == false then
                setmovement(curpos.x,curpos.y, cmd);
            end
        end
    end

    if GlobalVars.tickcount%64<2 and aa[0].fake_flick:Get() and aa[0].antiaims:Get() then
        AntiAim.OverrideYawOffset(90*(AntiAim.GetInverterState()and-1 or 1))
    end
end)

local zxc = 0
local draw = function()
    add_y = 0

    --colors
    local r = math.floor(ui.color:Get().r*255)
    local g = math.floor(ui.color:Get().g*255)
    local b = math.floor(ui.color:Get().b*255)
    local a = ui.alpha:Get()
 
    local dmg = false
    local binds = Cheat.GetBinds()
    for i = 1, #binds do
        if binds[i]:GetName() == "Minimum Damage" and binds[i]:IsActive() then
            dmg = true
        end
    end

    local manuals = yaw_base:Get() == 2 or yaw_base:Get() == 3

    --menu blur
    if ui.blur:Get() then
        if Cheat.IsMenuVisible() then
            if anim[1] < 255 then anim[1] = anim[1] + 10 end
        else
            if anim[1] > 0 then anim[1] = anim[1] - 10 end
        end
        Render.Blur(Vector2.new(0, 0), Vector2.new(x, y), Color.RGBA(255,255,255, anim[1]))
    end

    if ui.disable_os:GetBool() then
        if HS:GetBool() then
            FL:SetInt(1)
        else
            FL:SetInt(14)
        end
    end

    --molotov wireframe
    for _, v in pairs(materials) do
        local material = MatSystem.FindMaterial(v, "")

        if material ~= nil then
            material:SetMaterialVarFlag(bit.lshift(1, 28), ui.wireframe:Get())
            material:SetMaterialVarFlag(bit.lshift(1, 15), ui.ignorez:Get())
        end
    end

    --console color changer
    if ui.console:Get() then
        findConsoleMaterials()

        local color = ui.console:GetColor()
        local consoleVisible = isConsoleVisible(engineClientClass)

        if consoleVisible and not isColorEquals(oldColor, color) then
            updateConsoleColor(color.r, color.g, color.b, color.a)
            copyColor(color, oldColor)
        end

        if consoleVisible ~= oldConsoleIsVisible then
            if not consoleVisible then
                updateConsoleColor(1, 1, 1, 1)
            else
                updateConsoleColor(color.r, color.g, color.b, color.a)
            end

            oldConsoleIsVisible = consoleVisible
        end
    end

    --anti defensive
    local lc = CVar.FindVar("cl_lagcompensation")
    if ui.antidefensive:Get() then
        if lc:GetInt() == 1 then
            EngineClient.ExecuteClientCmd("jointeam 1")
            lc:SetInt(0)
        end
    else
        if lc:GetInt() == 0 then
            EngineClient.ExecuteClientCmd("jointeam 1")
            lc:SetInt(1)
        end
    end

    local lp = EntityList.GetClientEntity(EngineClient.GetLocalPlayer())
    if lp == nil then
        logs = {}
        return
    end
 
    if AP:Get() and ui.glowpeek:Get() then
        if autopeek_origin == nil then
            autopeek_origin = lp:GetProp('m_vecOrigin')
        end
        for i = 1, 60 do
            local autopeek_value = 1/i
            if i <= 60 then
                autopeek_value = autopeek_value + 1.5
            end
            local autopeek_color = ui.glowpeek:GetColor()
            if AP:Get() then
                Render.Circle3DFilled(autopeek_origin, 28, i / -2.5, Color.new(autopeek_color.r, autopeek_color.g, autopeek_color.b, autopeek_value / 50 * autopeek_color.a))
                Render.Circle3DFilled(autopeek_origin, 18, i / -2.6, Color.new(autopeek_color.r, autopeek_color.g, autopeek_color.b, autopeek_value / 50 * autopeek_color.a))
            end
        end
    else
        autopeek_origin = nil
    end

    --hitlogs
    if #logs > 0 then
        if GlobalVars.tickcount >= logs[1][2] then
            if logs[1][3] > 0 then
                logs[1][3] = logs[1][3] - 2
            elseif logs[1][3] <= 0 then
                table.remove(logs, 1)
            end
        end
        if #logs > 5 then
            table.remove(logs, 1)
        end
        for i = 1, #logs do
            ts = Render.CalcTextSize(logs[i][1], 11, font.verdana)
            if logs[i][3] < 255 then logs[i][3] = logs[i][3] + 1 end
            Render.Blur(Vector2.new(math.min(50, logs[i][3]*2)-60 + x/2-ts.x/2, y-256+34*i), Vector2.new(math.min(50, logs[i][3]*2)-40 + x/2+ts.x/2, y-242+34*i+ts.y), Color.RGBA(0,0,0, math.min(255, logs[i][3]*5)), 100)
            Render.BoxFilled(Vector2.new(math.min(50, logs[i][3]*2)-50 + x/2-ts.x/2, y-256+34*i), Vector2.new(math.min(50, logs[i][3]*2)-50 + x/2-ts.x/2+math.min(ts.x, logs[i][3]*7), y-254+34*i), Color.RGBA(r,g,b,math.min(255, logs[i][3]*5)))
            Render.BoxFilled(Vector2.new(math.min(50, logs[i][3]*2)-50 + x/2+ts.x/2-math.min(ts.x, logs[i][3]*7), y-241+ts.y+34*i), Vector2.new(math.min(50, logs[i][3]*2)-50 + x/2+ts.x/2, y-243+ts.y+34*i), Color.RGBA(r,g,b,math.min(255, logs[i][3]*5)))
            Render.Circle(Vector2.new(math.min(50, logs[i][3]*2)-50 + x/2-ts.x/2, y-243+34*i), 12, 32, Color.RGBA(r,g,b,math.min(255, logs[i][3]*5)), 2, 270-math.min(180, logs[i][3]*3), 270)
            Render.Circle(Vector2.new(math.min(50, logs[i][3]*2)-50 + x/2+ts.x/2, y-243+34*i), 12, 32, Color.RGBA(r,g,b,math.min(255, logs[i][3]*5)), 2.5, 90, 90-math.min(180, logs[i][3]*3))
            Render.Text(logs[i][1], Vector2.new(math.min(50, logs[i][3]*2)-49 + x/2-ts.x/2, y-249+34*i), Color.RGBA(0,0,0, math.min(255, logs[i][3]*5)), 11, font.verdana)
            Render.Text(logs[i][1], Vector2.new(math.min(50, logs[i][3]*2)-50 + x/2-ts.x/2, y-250+34*i), Color.RGBA(255,255,255, math.min(255, logs[i][3]*5)), 11, font.verdana)
            Render.Text("[nova.tech] ", Vector2.new(math.min(50, logs[i][3]*2)-49 + x/2-ts.x/2, y-249+34*i), Color.RGBA(0,0,0, math.min(255, logs[i][3]*5)), 11, font.verdana)
            Render.Text("[nova.tech] ", Vector2.new(math.min(50, logs[i][3]*2)-50 + x/2-ts.x/2, y-250+34*i), Color.RGBA(r,g,b, math.min(255, logs[i][3]*5)), 11, font.verdana)
        end
    end
    local delta_to_draw = math.abs(normalize_yaw(AntiAim.GetCurrentRealRotation()%360 - AntiAim.GetFakeRotation()%360))/2
 
    local chocking = ClientState.m_choked_commands
    if chocking < OldChoke then
        toDraw0 = toDraw1
        toDraw1 = toDraw2
        toDraw2 = toDraw3
        toDraw3 = toDraw4
        toDraw4 = OldChoke
    end
    OldChoke = chocking

    --skeet indicators
    if ui.indicators:Get(5) then
        add_y = 0

        if ui.add_indicators:Get(1) then
            Render_Skeet(string.format('%i-%i-%i-%i-%i',toDraw4,toDraw3,toDraw2,toDraw1,toDraw0), add_y, Color.RGBA(235 ,235, 235, 255), 22, font.calibrib)
            add_y = add_y - 35
        end

        if ui.add_indicators:Get(2) and lp:GetPlayer():IsAlive() then
            Render_Skeet("EX", add_y, DT:Get() and bit.band(lp:GetPlayer():GetProp("m_fFlags"), bit.lshift(1,0)) == 0 and Color.RGBA(132, 195, 16, 255) or Color.RGBA(208, 208, 20, 255), 22, font.calibrib)
            add_y = add_y - 35
        end

        if ui.add_indicators:Get(3) and dmg == true then
            Render_Skeet("DMG:"..MD:Get(), add_y, Color.RGBA(255, 255, 255, 150), 22, font.calibrib)
            add_y = add_y - 35
        end

        if ui.add_indicators:Get(4) and yaw_base:Get() == 5 then
            Render_Skeet("FS", add_y, Color.RGBA(235 ,235, 235, 255), 22, font.calibrib)
            add_y = add_y - 35
        end

        if PING:Get() > 0 then
            Render_Skeet("PING", add_y, Color.RGBA(math.floor(255 - ((PING:Get() / 189 * 60) * 2.29824561404)), math.floor((PING:Get() / 189 * 60) * 3.42105263158), math.floor((PING:Get() / 189 * 60) * 0.22807017543), 255), 22, font.calibrib)
            add_y = add_y - 35
           end
     
        if FD:Get() then
            Render_Skeet("DUCK", add_y, Color.RGBA(235 ,235, 235, 255), 22, font.calibrib)
            add_y = add_y - 35
        end

        local c4 = EntityList.GetEntitiesByClassID(129)[1];
        if c4 ~= nil then
            local time = ((c4:GetProp("m_flC4Blow") - GlobalVars.curtime)*10) / 10
            local timer = string.format("%.1f", time)
            local defused = c4:GetProp("m_bBombDefused")
            if math.floor(timer) > 0 and not defused then
                local defusestart = c4:GetProp("m_hBombDefuser") ~= 4294967295
                local defuselength = c4:GetProp("m_flDefuseLength")
                local defusetimer = defusestart and math.floor((c4:GetProp("m_flDefuseCountDown") - GlobalVars.curtime)*10) / 10 or -1
                if defusetimer > 0 then
                    local color = math.floor(timer) > defusetimer and Color.RGBA(58, 191, 54, 160) or Color.RGBA(252, 18, 19, 125)
                 
                    local barlength = (((sc.y - 50) / defuselength) * (defusetimer))
                    Render.BoxFilled(Vector2.new(0.0, 0.0), Vector2.new(16, sc.y), Color.RGBA(25, 25, 25, 160))
                    Render.Box(Vector2.new(0.0, 0.0), Vector2.new(16, sc.y), Color.RGBA(25, 25, 25, 160))
                 
                    Render.BoxFilled(Vector2.new(0, sc.y - barlength), Vector2.new(16, sc.y), color)
                end
             
                local bombsite = c4:GetProp("m_nBombSite") == 0 and "A" or "B"
                local health = lp:GetProp("m_iHealth")
                local armor = lp:GetProp("m_ArmorValue")
                local willKill = false
                local eLoc = c4:GetRenderOrigin()
                local lLoc = lp:GetRenderOrigin()
                local distance = eLoc:DistTo(lLoc)
                local a = 450.7
                local b = 75.68
                local c = 789.2
                local d = (distance - b) / c;

                local damage = a * math.exp(-d * d)
                if armor > 0 then
                    local newDmg = damage * 0.5;
 
                    local armorDmg = (damage - newDmg) * 0.5
                    if armorDmg > armor then
                        armor = armor * (1 / .5)
                        newDmg = damage - armorDmg
                    end
                    damage = newDmg;
                end
                local dmg = math.ceil(damage)
                    if dmg >= health then
                    willKill = true
                else
                    willKill = false
                end
                Render_Skeet(bombsite.." - "..string.format("%.1f", timer).."s", add_y, Color.RGBA(235 ,235, 235, 255), 22, font.calibrib)
                add_y = add_y - 35
                if lp then
                    if willKill == true then
                        Render_Skeet("FATAL", add_y, Color.RGBA(255, 0, 0, 255), 22, font.calibrib)
                        add_y = add_y - 35
                    elseif damage > 0.5 then
                        Render_Skeet("-"..dmg.." HP", add_y, Color.RGBA(210, 216, 112, 255), 22, font.calibrib)
                        add_y = add_y - 35
                    end
                end
            end
        end
        if planting then
            Render_Skeet(planting_site, add_y, Color.RGBA(210, 216, 112, 255), 22, font.calibrib)
            fill = 3.125 - (3.125 + on_plant_time - GlobalVars.curtime)
            if(fill > 3.125) then
                fill = 3.125
            end
            ts = Render.CalcTextSize(planting_site, 22, font.calibrib)
            Render.Circle(Vector2.new(sc.x/100 + 2 + ts.x+18, sc.y/1.48 - 5+add_y+ts.y/2+3), 8, 32, Color.RGBA(0, 0, 0, 255), 4, 0, 360)
            Render.Circle(Vector2.new(sc.x/100 + 2 + ts.x+18, sc.y/1.48 - 5+add_y+ts.y/2+3), 8, 32, Color.RGBA(235 ,235, 235, 255), 3, 0, (fill/3.3)*360)
            add_y = add_y - 35
        end    
     
        if DT:Get() then
            Render_Skeet("DT", add_y, Exploits.GetCharge() == 1 and Color.RGBA(235 ,235, 235, 255) or Color.RGBA(255, 0, 0, 255), 22, font.calibrib)
            add_y = add_y - 35
        end
    end
 
    if ui.windows:Get(1) then
        local ping = math.floor(EngineClient.GetNetChannelInfo():GetLatency(0)*1000)
        local local_time = ffi.new("SYSTEMTIME")
        ffi.C.GetLocalTime(local_time)

        text_wm = "nova.tech | "..Cheat.GetCheatUserName().." | delay: "..ping.." | "..string.format("%02d:%02d:%02d", local_time.wHour, local_time.wMinute, local_time.wSecond)
        ts_wm = Render.CalcTextSize(text_wm, 11, font.verdana) + 16

        Render.Blur(Vector2.new(x-ts_wm.x-6, 10), Vector2.new(x-10, 28), Color.RGBA(100, 100, 100, a))
        Render.BoxFilled(Vector2.new(x-ts_wm.x-6, 8), Vector2.new(x-10, 10), Color.RGBA(r, g, b, 255))

        Render.Text(text_wm, Vector2.new(x-ts_wm.x+1, 13), Color.RGBA(0, 0, 0, 255), 11, font.verdana)
        Render.Text(text_wm, Vector2.new(x-ts_wm.x, 12), Color.RGBA(255, 255, 255, 255), 11, font.verdana)
    end

    if ui.windows:Get(2) then
        local players = EntityList.GetPlayers()
        local specs = {}
        local local_player = EntityList.GetLocalPlayer()
        for table_index, player_pointer in pairs(players) do
            if player_pointer and player_pointer:GetProp("m_iHealth") <= 0 then
                local local_player = EntityList.GetLocalPlayer()
                if local_player:IsAlive() then
                    local player = player_pointer
                    local spec_handle = player:GetProp("m_hObserverTarget")
                    local spec_player = EntityList.GetClientEntityFromHandle(spec_handle)
                    if spec_player ~= nil then
                        if spec_player:GetPlayer() == local_player:GetPlayer() then
                            specs[#specs+1] = player_pointer:GetName()
                        end
                    end
                else
                    local observer = player_pointer:GetProp('m_hObserverTarget')
                    local player = EntityList.GetLocalPlayer()
                    local localtarget = player:GetProp('m_hObserverTarget')
                    if observer == localtarget then
                        specs[#specs+1] = player_pointer:GetName()
                    end
                end
            end
        end
        xxx = ui.specs_x:Get()
        yyy = ui.specs_y:Get()
        if #specs > 0 or Cheat.IsMenuVisible() then
            Render.Blur(Vector2.new(xxx - 80, yyy - 4), Vector2.new(xxx + 80, yyy + 14), Color.RGBA(100, 100, 100, a))
            Render.BoxFilled(Vector2.new(xxx - 80, yyy - 6), Vector2.new(xxx + 80, yyy - 4), Color.RGBA(r, g, b, 255))
            ts = Render.CalcTextSize("spectators", 11, font.verdana)
            Render.Text("spectators", Vector2.new(xxx - ts.x/2+1, yyy - 1), Color.RGBA(0, 0, 0, 255), 11, font.verdana)
            Render.Text("spectators", Vector2.new(xxx - ts.x/2, yyy - 2), Color.RGBA(255, 255, 255, 255), 11, font.verdana)
            for i = 1, #specs do
                Render.Text(specs[i], Vector2.new(xxx - 76, yyy + 1 + i * 17), Color.RGBA(0, 0, 0, 255), 11, font.verdana)
                Render.Text(specs[i], Vector2.new(xxx - 77, yyy + i * 17), Color.RGBA(255, 255, 255, 255), 11, font.verdana)
            end
        end
        if Cheat.IsKeyDown(0x1) then
            local mouse = Cheat.GetMousePos()
            local ts = Render.CalcTextSize("spectators", 12)
            if drag[2] == true then
                ui.specs_x:SetInt(mouse.x)
                ui.specs_y:SetInt(mouse.y)
            end
            if mouse.x >= xxx - 70 and mouse.y >= yyy and mouse.x <= xxx + 70 and mouse.y <= yyy + ts.y then
                if drag[1] == false then drag[2] = true end
            end
        else
            drag[2] = false
        end
    end

    if ui.windows:Get(3) then
        local binds = Cheat.GetBinds()
        xx = ui.binds_x:Get()
        yy = ui.binds_y:Get()
        if #binds > 0 or Cheat.IsMenuVisible() then
            for i = 1, #binds do
                if binds[i]:IsActive() then
                    if keysAnim[i] < 255 then keysAnim[i] = keysAnim[i] + 30 else keysAnim[i] = 255 end
                else
                    if keysAnim[i] > 0 then keysAnim[i] = keysAnim[i] - 30 else keysAnim[i] = 0 end
                end
                mode = binds[i]:GetMode() == 0 and "[toggled]" or binds[i]:GetMode() == 1 and "[holding]"
                ts = Render.CalcTextSize(mode, 11, font.verdana)
                Render.Text(binds[i]:GetName(), Vector2.new(xx - 76, yy + 1 + i * 17), Color.RGBA(0, 0, 0, keysAnim[i]), 11, font.verdana)
                Render.Text(binds[i]:GetName(), Vector2.new(xx - 77, yy + i * 17), Color.RGBA(255, 255, 255, keysAnim[i]), 11, font.verdana)

                Render.Text(mode, Vector2.new(xx + 78-ts.x, yy + 1 + i * 17), Color.RGBA(0, 0, 0, keysAnim[i]), 11, font.verdana)
                Render.Text(mode, Vector2.new(xx + 77-ts.x, yy + i * 17), Color.RGBA(255, 255, 255, keysAnim[i]), 11, font.verdana)
            end
            Render.Blur(Vector2.new(xx - 80, yy - 4), Vector2.new(xx + 80, yy + 14), Color.RGBA(100, 100, 100, a))
            Render.BoxFilled(Vector2.new(xx - 80, yy - 6), Vector2.new(xx + 80, yy - 4), Color.RGBA(r, g, b, 255))
            ts = Render.CalcTextSize("keybinds", 11, font.verdana)
            Render.Text("keybinds", Vector2.new(xx - ts.x/2+1, yy - 1), Color.RGBA(0, 0, 0, 255), 11, font.verdana)
            Render.Text("keybinds", Vector2.new(xx - ts.x/2, yy - 2), Color.RGBA(255, 255, 255, 255), 11, font.verdana)
        end
        if Cheat.IsKeyDown(0x1) then
            local mouse = Cheat.GetMousePos()
            local ts = Render.CalcTextSize("keybinds", 12)
            if drag[1] == true then
                ui.binds_x:SetInt(mouse.x)
                ui.binds_y:SetInt(mouse.y)
            end
            if mouse.x >= xx - 70 and mouse.y >= yy and mouse.x <= xx + 70 and mouse.y <= yy + ts.y then
                if drag[2] == false then drag[1] = true end
            end
        else
            drag[1] = false
        end
    end

    if ui.windows:Get(4) then
        --fl
        text_fl = DT:Get() and "FL: "..chocking.." | SHIFTING" or "FL: "..chocking
        ts_fl = Render.CalcTextSize(text_fl, 11, font.verdana) + 16
        fl_clr = Color.RGBA(math.floor(255 - (chocking * 8.57142857142)), math.floor(chocking * 14.28105263158), math.floor(chocking * 0.84807017543), 255)
        fl_clr1 = Color.RGBA(math.floor(255 - (chocking * 8.57142857142)), math.floor(chocking * 14.28105263158), math.floor(chocking * 0.84807017543), 0)
        Render.Blur(Vector2.new(x-ts_fl.x-6, 35), Vector2.new(x-10, 53), Color.RGBA(100, 100, 100, a))
        Render.GradientBoxFilled(Vector2.new(x-ts_fl.x/2-6, 53), Vector2.new(x-10, 54), fl_clr, fl_clr1, fl_clr, fl_clr1)
        Render.GradientBoxFilled(Vector2.new(x-ts_fl.x-6, 53), Vector2.new(x-ts_fl.x/2-6, 54), fl_clr1, fl_clr, fl_clr1, fl_clr)
        Render.Text(text_fl, Vector2.new(x-ts_fl.x+1, 38), Color.RGBA(0, 0, 0, 255), 11, font.verdana)
        Render.Text(text_fl, Vector2.new(x-ts_fl.x, 37), Color.RGBA(255, 255, 255, 255), 11, font.verdana)

        --fake
        text_fake = string.format("FAKE (%.1f°)",delta_to_draw)
        ts_fake = Render.CalcTextSize(text_fake, 11, font.verdana) + 16
        local fake_clr = Color.RGBA(math.floor(255 - (delta_to_draw * 2.29824561404)), math.floor(delta_to_draw * 3.42105263158), math.floor(delta_to_draw * 0.22807017543), 255)
        local fake_clr1 = Color.RGBA(math.floor(255 - (delta_to_draw * 2.29824561404)), math.floor(delta_to_draw * 3.42105263158), math.floor(delta_to_draw * 0.22807017543), 0)
        Render.GradientBoxFilled(Vector2.new(x-(ts_fl.x+ts_fake.x/2)-6, 35), Vector2.new(x-ts_fl.x-10, 53), Color.RGBA(0, 0, 0, a), Color.new(0, 0, 0, 0), Color.RGBA(0, 0, 0, a), Color.new(0, 0, 0, 0))
        Render.GradientBoxFilled(Vector2.new(x-(ts_fl.x+ts_fake.x)-6, 35), Vector2.new(x-(ts_fl.x+ts_fake.x/2)-6, 53), Color.new(0, 0, 0, 0), Color.RGBA(0, 0, 0, a), Color.new(0, 0, 0, 0), Color.RGBA(0, 0, 0, a))

        Render.GradientBoxFilled(Vector2.new(x-(ts_fl.x+ts_fake.x)-4, 34), Vector2.new(x-(ts_fl.x+ts_fake.x)-6, 44), fake_clr1, fake_clr1, fake_clr, fake_clr)
        Render.GradientBoxFilled(Vector2.new(x-(ts_fl.x+ts_fake.x)-4, 44), Vector2.new(x-(ts_fl.x+ts_fake.x)-6, 54), fake_clr, fake_clr, fake_clr1, fake_clr1)
        Render.Text(text_fake, Vector2.new(x-(ts_fl.x+ts_fake.x)+1, 38), Color.RGBA(0, 0, 0, 255), 11, font.verdana)
        Render.Text(text_fake, Vector2.new(x-(ts_fl.x+ts_fake.x), 37), Color.RGBA(255, 255, 255, 255), 11, font.verdana)
    end

    local calcs = {
        deg2rad = function(self, x)
            return x * (math.pi / 180.0)
        end,
 
        rotated_position = function(self, start, rotation, distance)
            local rad = self:deg2rad(rotation)
            local new_start = Vector.new(start.x, start.y, start.z)
            new_start.x = new_start.x + math.cos(rad) * distance
            new_start.y = new_start.y + math.sin(rad) * distance
 
            return new_start
        end
    }

    if lp:GetPlayer():IsAlive() then
        local view_angles = EngineClient.GetViewAngles()
        local real_yaw = AntiAim.GetCurrentRealRotation()
        local view_yaw = view_angles.yaw - 180;
        local fake = adjust_angle(real_yaw - view_yaw);
        local fake_clr = Color.RGBA(math.floor(255 - (delta_to_draw * 2.29824561404)), math.floor(delta_to_draw * 3.42105263158), math.floor(delta_to_draw * 0.22807017543), 255)
        local clr = Color.new(ui.circle:GetColor().r, ui.circle:GetColor().g, ui.circle:GetColor().b, 1)
        if ui.circle:GetBool() then
            if ui.circle_style:GetInt() == 0 then
                Render.Circle(Vector2.new(x/2, y/2), 7, 32, Color.new(0, 0, 0, 1), 4, 0, 360)
                Render.Circle(Vector2.new(x/2, y/2), 7, 32, fake_clr, 4, 90, AntiAim.GetInverterState() == false and -90 or 270)
                Render.Circle(Vector2.new(x/2, y/2), 15, 32, fake_clr, 4, fake+30, fake-30)
            else
                local real_rotation = calcs:deg2rad(view_angles.yaw - AntiAim.GetCurrentRealRotation() - 90);
                Render.PolyFilled(AntiAim.GetInverterState() and Color.new(1, 1, 1, 1) or clr,
                    Vector2.new(x/2 + math.cos(real_rotation) * 45,
                                y/2 + math.sin(real_rotation) * 45),
                    Vector2.new(x/2 + math.cos(real_rotation - calcs:deg2rad(20)) * (45 - 15),
                                y/2 + math.sin(real_rotation - calcs:deg2rad(20)) * (45 - 15)),
                    Vector2.new(x/2 + math.cos(real_rotation) * (45 - 13),
                                y/2 + math.sin(real_rotation) * (45 - 13))
                )
                Render.PolyFilled(AntiAim.GetInverterState() and clr or Color.new(1, 1, 1, 1),
                Vector2.new(x/2 + math.cos(real_rotation) * 45,
                            y/2 + math.sin(real_rotation) * 45),
                Vector2.new(x/2 + math.cos(real_rotation + calcs:deg2rad(20)) * (45 - 15),
                            y/2 + math.sin(real_rotation + calcs:deg2rad(20)) * (45 - 15)),
                Vector2.new(x/2 + math.cos(real_rotation) * (45 - 13),
                            y/2 + math.sin(real_rotation) * (45 - 13))
            )
            end
        end

        if ui.idealtick:Get() and AP:Get() then
            if ui.add_idealtick:Get(1) then
                aa[0].manual:SetInt(6)
            end
            zxc = 1
        elseif zxc == 1 then
            aa[0].manual:SetInt(0)
            zxc = 0
        end

        --hitchance and dmg
        local active_weapon = lp:GetPlayer():GetActiveWeapon()
        if active_weapon == nil then return end
        local weapon_id = active_weapon:GetWeaponID()
        local players = EntityList.GetPlayers()
        for _, player in ipairs(players) do
            if not player:IsTeamMate() then
                local user_index = player:EntIndex()
                if ui.air_hitchance:Get() and weapon_id == 40 and bit.band(lp:GetProp("m_fFlags"), bit.lshift(1,0)) == 0 then
                    RageBot.OverrideHitchance(user_index, ui.air_hitchance_value:Get())
                end
                if ui.ns_hitchance:Get() and weapon_id == 11 or weapon_id == 38 and not lp:GetPlayer():GetProp("m_bIsScoped") then
                    RageBot.OverrideHitchance(user_index, ui.ns_hitchance_value:Get())
                end
                if ui.idealtick:Get() and AP:Get() then
                    if ui.add_idealtick:Get(2) then
                        RageBot.OverrideMinDamage(user_index, ui.idealtick_damage:Get())
                    end
                    if ui.add_idealtick:Get(3) then
                        RageBot.ForceHitboxSafety(user_index, 0)
                    end
                end
            end
        end
     
        --state
        local ax = 0
        if ui.state_panel:Get() then
            arrows = AntiAim.GetInverterState() and "<" or ">"
            Render.Text("NOVA.TECH - V1.2.1 | "..Cheat.GetCheatUserName(), Vector2.new(x/20, y/2.4+30), Color.RGBA(255,255,255,255), 10, font.pixel, true)
            Render.Text("+ INVERTER: "..arrows.." | STATE: "..aastate, Vector2.new(x/20, y/2.4+42), Color.RGBA(125, 125, 125, 255), 10, font.pixel, true)
            Render.Text("+ FAKELAG COUNTER: "..string.format("%i-%i-%i-%i-%i",toDraw4,toDraw3,toDraw2,toDraw1,toDraw0), Vector2.new(x/20, y/2.4+54), Color.RGBA(125, 125, 125, 255), 10, font.pixel, true)
            Render.Text("+ DOUBLE-TAP: ", Vector2.new(x/20, y/2.4+66), Color.RGBA(125, 125, 125, 255), 10, font.pixel, true)
            ax = ax + Render.CalcTextSize("+ DOUBLE-TAP: ", 10, font.pixel).x
            Render.Text(DT:Get() and "ON" or "OFF", Vector2.new(x/20+ax, y/2.4+66), DT:Get() and Color.RGBA(80, 255, 80, 255) or Color.RGBA(255, 80, 80, 255), 10, font.pixel, true)
            ax = ax + Render.CalcTextSize(DT:Get() and "ON " or "OFF ", 10, font.pixel).x
            Render.Text("| OS-AA: ", Vector2.new(x/20+ax, y/2.4+66), Color.RGBA(125, 125, 125, 255),10, font.pixel, true)
            ax = ax + Render.CalcTextSize("| OS-AA: ", 10, font.pixel).x
            Render.Text(HS:Get() and "ON" or "OFF", Vector2.new(x/20+ax, y/2.4+66), HS:Get() and Color.RGBA(80, 255, 80, 255) or Color.RGBA(255, 80, 80, 255), 10, font.pixel, true)
        end

        --holo panel
        ay = 0
        if ui.windows:Get(5) and ui.viewmodel:Get() or ui.windows:Get(5) and not lp:GetPlayer():GetProp("m_bIsScoped") then
            if ui.holo_on_tp:Get() and not TP:Get() or ui.holo_on_tp:Get() == false and TP:Get() or TP:Get() == false then
                local muzzle_temp = muzzle.get()

                if muzzle_temp then
                    muzzle.pos = muzzle_temp.pos
                end
             
                local hitbox = lp:GetPlayer():GetHitboxCenter(3)
                local world_stand =  Render.WorldToScreen(hitbox)
                local pos2d = Render.WorldToScreen(muzzle.pos)
                if DT:Get() then
                    ay = 13
                else
                    ay = 0
                end
                if TP:Get() then
                    if world_stand.x ~= nil and world_stand.y ~= nil then
                        Render.Line(Vector2.new(Visuals_HoloX, Visuals_HoloY+ay+65), Vector2.new(x/2, world_stand.y), Color.RGBA(100,100,100,220))
                        local lerpx = lerp(Visuals_HoloX, world_stand.x + 10, GlobalVars.frametime * 8)
                        local lerpy = lerp(Visuals_HoloY, world_stand.y - 90, GlobalVars.frametime * 8)
                        if lerpx >= 0 and lerpx <= 2000 and lerpy >= 0 and lerpy <= 1500 then
                            Visuals_HoloX = lerp(Visuals_HoloX, world_stand.x + 10, GlobalVars.frametime * 8)
                            Visuals_HoloY = lerp(Visuals_HoloY, world_stand.y - 90, GlobalVars.frametime * 8)
                        else
                            Visuals_HoloX = world_stand.x + 10
                            Visuals_HoloY = world_stand.y - 90
                        end
                    end
                else
                    if pos2d.x ~= nil and pos2d.y ~= nil then
                        local lerpx = lerp(Visuals_HoloX, pos2d.x - 20, GlobalVars.frametime * 8)
                        local lerpy = lerp(Visuals_HoloY, pos2d.y - 125, GlobalVars.frametime * 8)
                        Render.Line(Vector2.new(Visuals_HoloX, Visuals_HoloY+ay+65), Vector2.new(pos2d.x, pos2d.y), Color.RGBA(100,100,100,220))
                        if lerpx >= 0 and lerpx <= 3000 and lerpy >= 0 and lerpy <= 2000 then
                            Visuals_HoloX = lerp(Visuals_HoloX, pos2d.x - 20, GlobalVars.frametime * 8)
                            Visuals_HoloY = lerp(Visuals_HoloY, pos2d.y - 125, GlobalVars.frametime * 8)
                        else
                            Visuals_HoloX = pos2d.x - 20
                            Visuals_HoloY = pos2d.y - 125
                        end
                    end
                end

                Render.Blur(Vector2.new(Visuals_HoloX, Visuals_HoloY), Vector2.new(170 + Visuals_HoloX, (65 + ay) + Visuals_HoloY))
             
                Render.BoxFilled(Vector2.new(Visuals_HoloX, Visuals_HoloY), Vector2.new(170 + Visuals_HoloX, 2 + Visuals_HoloY), Color.RGBA(r, g, b, 255))
             

                Render.Text("ANTI-AIMBOT DEBUG", Vector2.new(Visuals_HoloX + 7, Visuals_HoloY + 5 ), Color.new(1.0, 1.0, 1.0, 1.0), 10, font.pixel, true)

                local fake_clr = Color.RGBA(math.floor(255 - (delta_to_draw * 2.29824561404)), math.floor(delta_to_draw * 3.42105263158), math.floor(delta_to_draw * 0.22807017543), 255)
                local fake_clr1 = Color.RGBA(math.floor(255 - (delta_to_draw * 2.29824561404)), math.floor(delta_to_draw * 3.42105263158), math.floor(delta_to_draw * 0.22807017543), 0)

                Render.GradientBoxFilled(Vector2.new(Visuals_HoloX + 8, Visuals_HoloY+36), Vector2.new(Visuals_HoloX + 10, Visuals_HoloY+46), fake_clr, fake_clr, fake_clr1, fake_clr1)
                Render.GradientBoxFilled(Vector2.new(Visuals_HoloX + 8, Visuals_HoloY+26), Vector2.new(Visuals_HoloX + 10, Visuals_HoloY+36), fake_clr1, fake_clr1, fake_clr, fake_clr)

                local view_angles = EngineClient.GetViewAngles()
                local fake_yaw = AntiAim.GetFakeRotation()
                local real_yaw = AntiAim.GetCurrentRealRotation()
                local view_yaw = view_angles.yaw - 180;
                local fake = adjust_angle(fake_yaw - view_yaw);
                local real = adjust_angle(real_yaw - view_yaw);

                Render.Circle(Vector2.new(Visuals_HoloX + 150, Visuals_HoloY+22), 9, 32, Color.RGBA(25,25,25,200), 2, 0, 360)
                Render.Circle(Vector2.new(Visuals_HoloX + 150, Visuals_HoloY+22), 9, 32, Color.RGBA(r, g, b, 255), 2, fake+20, fake-20)
                Render.Circle(Vector2.new(Visuals_HoloX + 150, Visuals_HoloY+22), 9, 32, Color.RGBA(200, 200, 200, 255), 2, real+10, real-10)

                Render.Text(string.format("FAKE (%.1f°)", delta_to_draw), Vector2.new(Visuals_HoloX + 14, Visuals_HoloY + 30), Color.RGBA(0, 0, 0, 255), 11, font.verdana)
                Render.Text(string.format("FAKE (%.1f°)", delta_to_draw), Vector2.new(Visuals_HoloX + 13, Visuals_HoloY + 30), Color.RGBA(255, 255, 255, 255), 11, font.verdana)

                Render.Text("SP:", Vector2.new(Visuals_HoloX + 13, Visuals_HoloY + 48), Color.new(1.0, 1.0, 1.0, 1.0), 10, font.pixel, true)

                Render.BoxFilled(Vector2.new(Visuals_HoloX + 27, Visuals_HoloY + 59), Vector2.new(53 + Visuals_HoloX, 51 + Visuals_HoloY), Color.new(0, 0, 0, 1))
                Render.BoxFilled(Vector2.new(Visuals_HoloX+ 61, Visuals_HoloY + 59), Vector2.new(87 + Visuals_HoloX, 51 + Visuals_HoloY), Color.new(0, 0, 0, 1))
             
                if ((AntiAim.GetCurrentRealRotation() - AntiAim.GetFakeRotation()) ~= nil) then
                    Render.BoxFilled(Vector2.new(Visuals_HoloX + 28, Visuals_HoloY + 58), Vector2.new(30 + Visuals_HoloX + (delta_to_draw / 2.7), 52 + Visuals_HoloY), Color.RGBA(r, g, b, 255))
                else if ((AntiAim.GetCurrentRealRotation() - AntiAim.GetFakeRotation()) < 0 and (AntiAim.GetCurrentRealRotation() - AntiAim.GetFakeRotation()) ~= nil) then
                    Render.BoxFilled(Vector2.new(Visuals_HoloX + 61, Visuals_HoloY + 59), Vector2.new(87 + Visuals_HoloX, 51 + Visuals_HoloY), Color.RGBA(r, g, b, 255))
                end
                end

                local alpha = math.min(math.floor(math.sin((GlobalVars.realtime%3) * 4) * 175 + 50), 255)
                if DT:Get() then
                    Render.Text("SHIFTING TICKBASE", Vector2.new(Visuals_HoloX + 12, Visuals_HoloY + 62), Color.RGBA(255, 255, 255, alpha), 10, font.pixel, true)
                end
                Render.Text("OSAA:", Vector2.new(Visuals_HoloX + 110, Visuals_HoloY + 49 + ay), Color.RGBA(255, 255, 255, 255), 10, font.pixel, true)
                Render.Text(HS:Get() and "ON" or "OFF", Vector2.new(Visuals_HoloX + 140, Visuals_HoloY + 49 + ay), HS:Get() and Color.RGBA(80, 255, 80, 255) or Color.RGBA(255, 80, 80, 255), 10, font.pixel, true)    
            end
        end
        --indicators
        ay = 0
        if ui.indicators:Get(1) then
            add_y = 0
            add_y = add_y + 40
            ts = Render.CalcTextSize("NOVA", 10, font.pixel)
            Render.Text("NOVA", Vector2.new(x/2 - ts.x, y/2 + add_y + 2), AntiAim.GetInverterState() and Color.RGBA(r, g, b, 255) or Color.RGBA(255, 255, 255, 255), 10, font.pixel, true)
            Render.Text("TECH", Vector2.new(x/2, y/2 + add_y + 2), AntiAim.GetInverterState() and Color.RGBA(255, 255, 255, 255) or Color.RGBA(r, g, b, 255), 10, font.pixel, true)
            add_y = add_y + 14
            Render.GradientBoxFilled(Vector2.new(x/2-math.floor(delta_to_draw)-7, y/2+add_y), Vector2.new(x/2, y/2+add_y+2), Color.RGBA(r, g, b, 0), Color.RGBA(r, g, b, 255), Color.RGBA(r, g, b, 0), Color.RGBA(r, g, b, 255))
            Render.GradientBoxFilled(Vector2.new(x/2+math.floor(delta_to_draw)+7, y/2+add_y), Vector2.new(x/2, y/2+add_y+2), Color.RGBA(r, g, b, 0), Color.RGBA(r, g, b, 255), Color.RGBA(r, g, b, 0), Color.RGBA(r, g, b, 255))
            add_y = add_y + 3
            if DT:Get() then
                Render_Indicator(Exploits.GetCharge() == 1 and "DOUBLETAP" or "CHARGING", add_y, Exploits.GetCharge() == 1 and Color.RGBA(255, 255, 255, 255) or Color.RGBA(255, 80, 80, 255), 10, font.pixel, true)
                add_y = add_y + 9
            end
            if HS:Get() then
                Render_Indicator("ON-SHOT", add_y, Color.RGBA(255, 255, 255, 255), 10, font.pixel, true)
                add_y = add_y + 9
            end
            if dmg == true then
                Render_Indicator("DAMAGE", add_y, Color.RGBA(255, 255, 255, 255), 10, font.pixel, true)
                add_y = add_y + 9
            end
            if FD:Get() then
                Render_Indicator("DUCK", add_y, Color.RGBA(255, 255, 255, 255), 10, font.pixel, true)
                add_y = add_y + 9
            end
            if BA:Get() == 2 then
                Render_Indicator("BAIM", add_y, Color.RGBA(255, 255, 255, 255), 10, font.pixel, true)
                add_y = add_y + 9
            end
            if SP:Get() == 2 then
                Render_Indicator("SP", add_y, Color.RGBA(255, 255, 255, 255), 10, font.pixel, true)
                add_y = add_y + 9
            end
        end
        if ui.indicators:Get(2) then
            add_y = 0
            add_y = add_y + 40
            Render_Indicator("NOVATECH", add_y, Color.RGBA(255, 255, 255, 255), 10, font.pixel, true)
            add_y = add_y + 9
            Render_Indicator(aastate, add_y, Color.RGBA(125, 125, 125, 255), 10, font.pixel, true)
            add_y = add_y + 9
            Render_Indicator(string.format("%i-%i-%i-%i-%i",toDraw4,toDraw3,toDraw2,toDraw1,toDraw0), add_y, Color.RGBA(125, 125, 125, 255), 10, font.pixel, true)
            add_y = add_y + 9
            if DT:Get() then
                Render_Indicator("DOUBLETAP", add_y, Exploits.GetCharge() == 1 and Color.RGBA(255, 255, 255, 255) or Color.RGBA(255, 80, 80, 255), 10, font.pixel, true)
                add_y = add_y + 9
            end
            if HS:Get() then
                Render_Indicator("OSAA", add_y, Color.RGBA(255, 255, 255, 255), 10, font.pixel, true)
                add_y = add_y + 9
            end
            if SP:Get() == 2 then
                Render_Indicator("SAFE", add_y, Color.RGBA(255, 255, 255, 255), 10, font.pixel, true)
                add_y = add_y + 9
            end
            if BA:Get() == 2 then
                Render_Indicator("BODY", add_y, Color.RGBA(255, 255, 255, 255), 10, font.pixel, true)
                add_y = add_y + 9
            end
        end
        if ui.indicators:Get(3) then
            add_y = 0
            add_y = add_y + 40
            ts = Render.CalcTextSize("*nova", 11, font.verdanabd)
            Render.Text("*nova", Vector2.new(x/2 - ts.x, y/2 + add_y + 2), AntiAim.GetInverterState() and Color.RGBA(r, g, b, 255) or Color.RGBA(255, 255, 255, 255), 11, font.verdanabd, true)
            Render.Text("tech*", Vector2.new(x/2, y/2 + add_y + 2), AntiAim.GetInverterState() and Color.RGBA(255, 255, 255, 255) or Color.RGBA(r, g, b, 255), 11, font.verdanabd, true)
            add_y = add_y + 13
            if HS:Get() then
                Render_Indicator("ON-SHOT", add_y, Color.RGBA(r, g, b, 255), 10, font.pixel, true)
                add_y = add_y + 9
            end
            if dmg == true then
                Render_Indicator("DMG", add_y, Color.RGBA(r, g, b, 255), 10, font.pixel, true)
                add_y = add_y + 9
            end
            if DT:Get() then
                Render_Indicator("DT", add_y, Exploits.GetCharge() == 1 and Color.RGBA(r, g, b, 255) or Color.RGBA(255, 80, 80, 255), 10, font.pixel, true)
                add_y = add_y + 9
            end
            if SP:Get() == 2 then
                Render_Indicator("SP", add_y, Color.RGBA(r, g, b, 255), 10, font.pixel, true)
                add_y = add_y + 9
            end
            if BA:Get() == 2 then
                Render_Indicator("BA", add_y, Color.RGBA(r, g, b, 255), 10, font.pixel, true)
                add_y = add_y + 9
            end
        end
        if ui.indicators:Get(4) then
            add_y = 0
            add_y = add_y + 40
            Render_Indicator3(manuals and "FAKE YAW" or "IDEAL YAW", add_y, manuals and Color.RGBA(159, 159, 230, 255) or Color.RGBA(220, 135, 49, 255), 12, font.tahoma)
            add_y = add_y + 10
            Render_Indicator3(yaw_base:Get() == 5 and "FREESTAND" or "DYNAMIC", add_y, Color.RGBA(209, 159, 230, 255), 12, font.tahoma)
            add_y = add_y + 10
            if DT:Get() then
                Render_Indicator3(FD:Get() and "DT (fakeduck)" or "DT", add_y, Exploits.GetCharge() == 1 and Color.RGBA(0, 255, 0, 255) or Color.RGBA(255, 0, 0, 255), 12, font.tahoma)
                add_y = add_y + 10
            end
            if HS:Get() then
                Render_Indicator3("AA", add_y, Color.RGBA(120, 128, 200, 255), 12, font.tahoma)
                add_y = add_y + 10
            end
            if dmg == true then
                Render_Indicator3("DMG", add_y, Color.RGBA(200, 185, 255, 255), 12, font.tahoma)
                add_y = add_y + 10
            end
        end

        --viewmodel in scope
        local cheats = CVar.FindVar("sv_cheats")
        local scope = CVar.FindVar("fov_cs_debug")
        if ui.viewmodel:Get() then
            cheats:SetInt(1)
            scope:SetInt(90)
        else
            scope:SetInt(0)
        end

        --custom scope
        if ui.scope:GetColor() and lp:GetPlayer():GetProp("m_bIsScoped") then
            local offset = ui.offset:Get()
            local length = ui.length:Get()
            local col = Color.new(ui.scope:GetColor().r, ui.scope:GetColor().g, ui.scope:GetColor().b, 1)
            local col1 = Color.new(ui.scope:GetColor().r, ui.scope:GetColor().g, ui.scope:GetColor().b, 0)
            Render.GradientBoxFilled(Vector2.new(x/2 - offset, y/2), Vector2.new(x/2 - offset - length, y/2 + 1), col, col1, col, col1)
            Render.GradientBoxFilled(Vector2.new(x/2 + offset, y/2), Vector2.new(x/2 + offset + length, y/2 + 1), col, col1, col, col1)
            Render.GradientBoxFilled(Vector2.new(x/2, y/2 + offset), Vector2.new(x/2 + 1, y/2 + offset + length), col, col, col1, col1)
            Render.GradientBoxFilled(Vector2.new(x/2, y/2 - offset), Vector2.new(x/2 + 1, y/2 - offset - length), col, col, col1, col1)
        end

        --manual arrows
        if ui.manual_arrows:Get() then
            local r1 = math.floor(ui.color1:Get().r*255)
            local g1 = math.floor(ui.color1:Get().g*255)
            local b1 = math.floor(ui.color1:Get().b*255)

            local r2 = math.floor(ui.color2:Get().r*255)
            local g2 = math.floor(ui.color2:Get().g*255)
            local b2 = math.floor(ui.color2:Get().b*255)

            if ui.arrows_style:Get() == 0 then
                if velocity(lp) > 44 then
                    if anim[3] < 150 then anim[3] = anim[4] + 10 end
                else
                    if anim[3] > 0 then anim[3] = anim[4] - 10 end
                end
                Render.Text(">", Vector2.new(x/2 + 45, y/2 - Render.CalcTextSize(">", 22).y/2), yaw_base:Get() == 2 and Color.RGBA(r1, g1, b1, 255) or Color.RGBA(255, 255, 255, 255 - anim[3]), 22, true)
                Render.Text("<", Vector2.new(x/2 - 45 - Render.CalcTextSize("<", 22).x, y/2 - Render.CalcTextSize("<", 22).y/2), yaw_base:Get() == 3 and Color.RGBA(r1, g1, b1, 255) or Color.RGBA(255, 255, 255, 255 - anim[3]), 22, true)
                Render.Text("v", Vector2.new(x/2 - Render.CalcTextSize("v", 19).x/2+1, y/2 + 25), yaw_base:Get() == 1 and Color.RGBA(r1, g1, b1, 255) or Color.RGBA(255, 255, 255, 255 - anim[3]), 19, true)
            elseif ui.arrows_style:Get() == 1 then
                Render.PolyFilled(yaw_base:Get() == 2 and Color.RGBA(r1, g1, b1, 255) or Color.RGBA(25, 25, 25, 150), Vector2.new(x/2 + 43, y/2 + 9), Vector2.new(x/2 + 56, y/2), Vector2.new(x/2 + 43, y/2 - 9))
                Render.PolyFilled(yaw_base:Get() == 3 and Color.RGBA(r1, g1, b1, 255) or Color.RGBA(25, 25, 25, 150), Vector2.new(x/2 - 43, y/2 + 9), Vector2.new(x/2 - 56, y/2), Vector2.new(x/2 - 43, y/2 - 9))
                Render.BoxFilled(Vector2.new(x/2 - 40, y/2 - 9),  Vector2.new(x/2 - 42, y/2 + 10), AntiAim.GetInverterState() == false and Color.RGBA(25, 25, 25, 150) or Color.RGBA(r2, g2, b2, 255))
                Render.BoxFilled(Vector2.new(x/2 + 40, y/2 - 9),  Vector2.new(x/2 + 42, y/2 + 10), AntiAim.GetInverterState() == false and Color.RGBA(r2, g2, b2, 255) or Color.RGBA(25, 25, 25, 150))
            end
        end

        --render
        if ui.damage_indicator:Get() then
            local ts = Render.CalcTextSize(tostring(MD:Get()), 10, font.pixel)
            Render.Text(dmg and "1" or "0", Vector2.new(x/2-35, y/2-50), Color.RGBA(255, 255, 255, 255), 10, font.pixel, true)
            Render.Text(tostring(MD:Get()), Vector2.new(x/2-ts.x/2+0.5, y/2-50), Color.RGBA(255, 255, 255, 255), 10, font.pixel, true)
        end

        --disable thirdperson anim
        if ui.tpanim:Get() then s = false else s = true end
        Cheat.SetThirdPersonAnim(s)
    end
end

local anti_aim = function()
        local lp = EntityList.GetClientEntity(EngineClient.GetLocalPlayer())
        if lp == nil then return end

        local active_weapon = lp:GetPlayer():GetActiveWeapon()
        if active_weapon == nil then return end
        local weapon_id = active_weapon:GetWeaponID()

        --anti aims
        if aa[0].antiaims:Get() then
         
            --tp in air
            local players = EntityList.GetPlayers()
         
            if aa[0].tp_in_air:Get() and bit.band(lp:GetPlayer():GetProp("m_fFlags"), bit.lshift(1,0)) == 0 then
                for i = 1, #players do
                    local origin = lp:GetPlayer():GetRenderOrigin()
                    local origin_players = players[i]:GetRenderOrigin()
                    local is_visible = players[i]:IsVisible(origin_players)
                    if players[i]:IsAlive() and not players[i]:IsTeamMate() and players[i]:IsAlive() and not players[i]:IsDormant() and is_visible and not active_weapon:IsKnife() then
                        Exploits.ForceTeleport()
                    end
                end
            end

            if SW:Get() and aa[6].custom_enable:Get() then
                --slow walk
                stateid = 6
                aastate = "SLOWWALKING"
            elseif bit.band(lp:GetPlayer():GetProp("m_fFlags"), bit.lshift(1,0)) == 0 and aa[4].custom_enable:Get() then
                --air
                stateid = 4
                aastate = "IN AIR"
            elseif lp:GetProp("m_flDuckAmount") > 0.8 and aa[5].custom_enable:Get() or FD:Get() and aa[5].custom_enable:Get() then
                --duck
                stateid = 5
                aastate = "CROUCHING"
            elseif velocity(lp) > 2 and aa[3].custom_enable:Get() then
                --move
                stateid = 3
                aastate = "MOVING"
            elseif velocity(lp) < 2 and aa[2].custom_enable:Get() then
                --stand
                stateid = 2
                aastate = "STANDING"
            else
                --global
                stateid = 1
                aastate = "DYNAMIC"
            end

            if legit_aa == false then
                pitch:SetInt(1)
                if aa[0].manual:Get() == 0 then
                    yaw_base:SetInt(aa[stateid].custom_yaw_base:Get())
                else
                    yaw_base:SetInt(aa[0].manual:Get()-1)
                end
                yaw(yaw_add, aa[stateid].custom_yaw_add_right:Get(), aa[stateid].custom_yaw_add_left:Get())
                yaw_modifier:SetInt(aa[stateid].custom_yaw_modifier:Get())
                modifier_degree:SetInt(aa[stateid].custom_modifier_degree:Get())
                if aa[stateid].custom_fake_type:Get() == 0 then
                    left_limit:SetInt(aa[stateid].custom_left_limit:Get())
                    right_limit:SetInt(aa[stateid].custom_right_limit:Get())
                elseif aa[stateid].custom_fake_type:Get() == 1 then
                    left_limit:SetInt(jitter(aa[stateid].custom_left_limit:Get(), aa[stateid].custom_left_limit2:Get()))
                    right_limit:SetInt(jitter(aa[stateid].custom_right_limit:Get(), aa[stateid].custom_right_limit2:Get()))
                elseif aa[stateid].custom_fake_type:Get() == 2 then
                    left_limit:SetInt(math.random(aa[stateid].custom_left_limit:Get(), aa[stateid].custom_left_limit2:Get()))
                    right_limit:SetInt(math.random(aa[stateid].custom_right_limit:Get(), aa[stateid].custom_right_limit2:Get()))
                end
                options:SetInt(aa[stateid].custom_options:Get())
                lby_mode:SetInt(aa[stateid].custom_lby:Get())
                freestand:SetInt(aa[stateid].custom_fs:Get())
                onshot:SetInt(aa[stateid].custom_onshot:Get())

                --anti backstab
                if aa[0].antibackstab:Get() then
                    local enemies = GetEnemiesWithKnife()
                    if enemies ~= nil then
                        if #enemies > 0 then
                            for i, enemy in pairs(enemies) do
                                local enemy_origin = enemy:GetRenderOrigin()
                                local local_player_origin = lp:GetRenderOrigin()
                                local distance_from_local_to_enemy = enemy_origin:DistTo(local_player_origin)            
                                if 200 >= distance_from_local_to_enemy and not players[i]:IsDormant() then
                                    AntiAim.OverrideYawOffset(180)
                                    AntiAim.OverridePitch(0)
                                end
                            end
                        end
                    end
                end
            else
                pitch:SetInt(0)
                yaw_base:SetInt(0)
                yaw(yaw_add, 0, 0)
                yaw_modifier:SetInt(1)
                modifier_degree:SetInt(0)
                left_limit:SetInt(60)
                right_limit:SetInt(60)
                options:SetInt(0)
                lby_mode:SetInt(1)
                freestand:SetInt(1)
                onshot:SetInt(1)
            end
        end
end

local phrases = {
    "Блин, друг, прости пожалуйста, не увидел",
    "Опять ты, прости, я без ников убил",
    "У тебя Ник тема бебриков? Я тебя вчера на Дме видел",
    "Ты с чем ?",
    "Зато ты очень красивый",
    "А фип бы забанил за такое, прости пж",
    "Мне друг (витма) (бигнейм) сказал, что в таких случаях 1 писать, но я добрый так что не буду",
    "Посаны, а как вам микрофон яспер мо о глод, у фипа такой вроде",
    "Возьми печеньки, завари чайочек. И расслабся",
    "Какой у тебя мейн Ник ? Мне сказали, что это важна чтоб медия сделать, ты витма ?",
    "Ну ничего, с кем не бывает",
    "Нифига я чо Лоу дельта убил",
    "Главное, что хоть у тебя голова на месте)",
    "Сколько в человеке доброты, столько в нем и жизни.",
    "Истинная храбрость и доброта идут рука об руку.",
    "ой прости я просто в Five nights at fnay играл и испугался немного",
    "Дай кфг, а то мой сильно жёсткий",
    "Прости, в следующий раз повезет.",
    "ты не знал, а nova.tech то тапает",
}
local get_phrase = function()
    return phrases[Utils.RandomInt(1, #phrases)]:gsub('"', '')
end
         
Cheat.RegisterCallback("events", function(e)
    local player_resource = EntityList.GetPlayerResource()
    if e:GetName() == "bomb_abortplant" then
        planting = false
        fill = 0
        on_plant_time = 0
        planting_site = ""
    end
    if e:GetName() == "bomb_defused" then
        planting = false
        fill = 0
        on_plant_time = 0
        planting_site = ""
    end
    if e:GetName() == "bomb_planted" then
        planting = false
        fill = 0
        on_plant_time = 0
        planting_site = ""
    end
    if e:GetName() == "round_prestart" then
        planting = false
        fill = 0
        on_plant_time = 0
        planting_site = ""
    end
 
    if e:GetName() == "bomb_beginplant" then
        on_plant_time = GlobalVars.curtime
        planting = true
        local m_bombsiteCenterA = player_resource:GetProp("DT_CSPlayerResource", "m_bombsiteCenterA")
        local m_bombsiteCenterB = player_resource:GetProp("DT_CSPlayerResource", "m_bombsiteCenterB")
     
        local player = EntityList.GetPlayerForUserID(e:GetInt("userid", 0))
        local localPos = player:GetRenderOrigin()
        local dist_to_a = localPos:DistTo(m_bombsiteCenterA)
        local dist_to_b = localPos:DistTo(m_bombsiteCenterB)
     
        planting_site = dist_to_a < dist_to_b and "Bombsite A" or "Bombsite B"
    end
    if ui.hitsound:Get() == 0 then
        Menu.FindVar("Visuals","World", "Hit", "Hit Sound"):SetBool(true)
    else
        Menu.FindVar("Visuals","World", "Hit", "Hit Sound"):SetBool(false)
    end
    if e:GetName() == "player_hurt" then
        if e:GetInt("attacker", 0) ==  EntityList.GetLocalPlayer():GetPlayerInfo().userId then
            if ui.hitsound:Get() == 1 then
                EngineClient.ExecuteClientCmd("playvol buttons/arena_switch_press_02 0.75")
            elseif ui.hitsound:Get() == 2 then
                EngineClient.ExecuteClientCmd("playvol nova.tech/hitsound/hitsound.wav 0.75")
            elseif ui.hitsound:Get() == 3 then
                EngineClient.ExecuteClientCmd(string.format("playvol %s 0.75", ui.custom_hitsound:Get()))
            end
        end
    end
    if ui.trashtalk:Get() then
        if e:GetName() == "player_death" then
            local me = EntityList.GetLocalPlayer()
            local victim = EntityList.GetPlayerForUserID(e:GetInt("userid"))
            local attacker = EntityList.GetPlayerForUserID(e:GetInt("attacker"))
            if victim == attacker or attacker ~= me then return end
            EngineClient.ExecuteClientCmd('say "' .. get_phrase() .. '"')
        end
    end
end)

local setvis = function()
    local vis = function(s, d)
        s:SetVisible(d)
    end

    ui.binds_x:SetVisible(false)
    ui.binds_y:SetVisible(false)
    ui.specs_x:SetVisible(false)
    ui.specs_y:SetVisible(false)

    ui.add_idealtick:SetVisible(ui.idealtick:Get())
    ui.idealtick_damage:SetVisible(ui.add_idealtick:GetBool(2))
    ui.ns_hitchance_value:SetVisible(ui.ns_hitchance:Get())
    ui.air_hitchance_value:SetVisible(ui.air_hitchance:Get())
    ui.hitlogs_type:SetVisible(ui.hitlogs:Get())
    ui.custom_hitsound:SetVisible(ui.hitsound:Get() == 3)
    ui.holo_on_tp:SetVisible(ui.windows:Get(5))
    ui.circle_style:SetVisible(ui.circle:Get())
    ui.add_indicators:SetVisible(ui.indicators:Get(5))
    ui.offset:SetVisible(ui.scope:Get())
    ui.length:SetVisible(ui.scope:Get())

    ui.arrows_style:SetVisible(ui.manual_arrows:Get())
    ui.color1:SetVisible(ui.manual_arrows:Get())
    ui.color2:SetVisible(ui.manual_arrows:Get() and ui.arrows_style:Get() == 1)

    vis(preset, aa[0].antiaims:Get())
    vis(aa[0].manual, aa[0].antiaims:Get())
    vis(aa[0].fake_flick, aa[0].antiaims:Get())
    vis(aa[0].tp_in_air, aa[0].antiaims:Get())
    vis(aa[0].on_key, aa[0].antiaims:Get())
    vis(aa[0].antibackstab, aa[0].antiaims:Get())
    vis(aa[0].antiaim, aa[0].antiaims:Get())
 
    currentid = aa[0].antiaim:Get()+1
    vis(aa[1].custom_enable, false)
    aa[1].custom_enable:SetBool(true)
    vis(aa[2].custom_enable, aa[0].antiaims:Get() and currentid == 2)
    vis(aa[3].custom_enable, aa[0].antiaims:Get() and currentid == 3)
    vis(aa[4].custom_enable, aa[0].antiaims:Get() and currentid == 4)
    vis(aa[5].custom_enable, aa[0].antiaims:Get() and currentid == 5)
    vis(aa[6].custom_enable, aa[0].antiaims:Get() and currentid == 6)
 
    for i = 1, 6 do
        local isAA = aa[0].antiaims:Get() and aa[i].custom_enable:Get()
        local isAAF = aa[i].custom_fake_type:Get() == 1 and isAA or aa[i].custom_fake_type:Get() == 2 and isAA
        vis(aa[i].custom_yaw_base, isAA and currentid == i)
        vis(aa[i].custom_yaw_add_left, isAA and currentid == i)
        vis(aa[i].custom_yaw_add_right, isAA and currentid == i)
        vis(aa[i].custom_yaw_modifier, isAA and currentid == i)
        vis(aa[i].custom_modifier_degree, isAA and currentid == i)
        vis(aa[i].custom_left_limit, isAA and currentid == i)
        vis(aa[i].custom_right_limit, isAA and currentid == i)
        vis(aa[i].custom_left_limit2, isAAF and currentid == i)
        vis(aa[i].custom_right_limit2, isAAF and currentid == i)
        vis(aa[i].custom_options, isAA and currentid == i)
        vis(aa[i].custom_lby, isAA and currentid == i)
        vis(aa[i].custom_fs, isAA and currentid == i)
        vis(aa[i].custom_onshot, isAA and currentid == i)
        vis(aa[i].custom_fake_type, isAA and currentid == i)
    end
end

local hook_draw = function()
    draw()
    anti_aim()
    setvis()
end
Cheat.RegisterCallback("draw", hook_draw)
Cheat.RegisterCallback("pre_prediction", legitaa)
Cheat.RegisterCallback("createmove", use)
Cheat.RegisterCallback("destroy", function()
    updateConsoleColor(1, 1, 1, 1)
    for _, v in pairs(materials) do
        local material = MatSystem.FindMaterial(v, "")

        if material ~= nil then
            material:SetMaterialVarFlag(bit.lshift(1, 28), false)
            material:SetMaterialVarFlag(bit.lshift(1, 15), false)
        end
    end
end)
ui.console:RegisterCallback(cfgConsoleCallback)
EngineClient.ExecuteClientCmd("clear")
print("              ...")
print("             ;::::;")
print("           ;::::; :;")
print("         ;:::::'   :;")
print("        ;:::::;     ;.")
print("       ,:::::'       ;           OOO")
print("       ::::::;       ;          OOOOO")
print("       ;:::::;       ;         OOOOOOOO")
print("      ,;::::::;     ;'         / OOOOOOO")
print("    ;:::::::::`. ,,,;.        /  / DOOOOOO")
print("  .';:::::::::::::::::;,     /  /     DOOOO")
print(" ,::::::;::::::;;;;::::;,   /  /        DOOO")
print(";`::::::`'::::::;;;::::: ,#/  /          DOOO")
print(":`:::::::`;::::::;;::: ;::#  /            DOOO")
print("::`:::::::`;:::::::: ;::::# /              DOO")
print("`:`:::::::`;:::::: ;::::::#/               DOO")
print(" :::`:::::::`;; ;:::::::::##                OO")
print(" ::::`:::::::`;::::::::;:::#                OO")
print(" `:::::`::::::::::::;'`:;::#                O")
print("  `:::::`::::::::;' /  / `:#")
print("   ::::::`:::::;'  /  /   `#")
print("")
print("")
print("███╗░░██╗░█████╗░██╗░░░██╗░█████╗░░░░████████╗███████╗░█████╗░██╗░░██╗")
print("████╗░██║██╔══██╗██║░░░██║██╔══██╗░░░╚══██╔══╝██╔════╝██╔══██╗██║░░██║")
print("██╔██╗██║██║░░██║╚██╗░██╔╝███████║░░░░░░██║░░░█████╗░░██║░░╚═╝███████║")
print("██║╚████║██║░░██║░╚████╔╝░██╔══██║░░░░░░██║░░░██╔══╝░░██║░░██╗██╔══██║")
print("██║░╚███║╚█████╔╝░░╚██╔╝░░██║░░██║██╗░░░██║░░░███████╗╚█████╔╝██║░░██║")
print("╚═╝░░╚══╝░╚════╝░░░░╚═╝░░░╚═╝░░╚═╝╚═╝░░░╚═╝░░░╚══════╝░╚════╝░╚═╝░░╚═╝")
print("")
print("")
print("Welcome to Nova.tech,"..Cheat.GetCheatUserName().."!")
print("")
print("Version: 1.2.1")
print("State: Release")
print("")
print("")
print("")
 
Последнее редактирование модератором:
PrimordialAgent
Пользователь
Статус
Оффлайн
Регистрация
4 Ноя 2020
Сообщения
236
Реакции[?]
97
Поинты[?]
1K
Слей лучше сурсы скрипта и похорони продажи витмы

(А потом тебя elleqt лично пиздить дубинами будет)

UPD: Мальчик Neverlose agent на рофл обиделся, как так(
 
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
22 Авг 2019
Сообщения
363
Реакции[?]
145
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Слей лучше сурсы скрипта и похорони продажи витмы

(А потом тебя elleqt лично пиздить дубинами будет)
на самом деле есть один отличный способ восполтзоваться этими сурсами, но дело совсем в другом?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу