LUA скрипт Просто скрипт

Kodit izke
Забаненный
Статус
Оффлайн
Регистрация
9 Авг 2020
Сообщения
741
Реакции[?]
243
Поинты[?]
7K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
code_language.lua:
local anti_aim = require("neverlose/anti_aim")
local clipboard = require("neverlose/clipboard")
local base64 = require("neverlose/base64")
local file = require("neverlose/file")
local vmt_hook = require("neverlose/vmt_hook")
local gradient = require("neverlose/gradient")

local font = render.load_font("verdana", 12)
local small_font = render.load_font("arial", 10)

ffi.cdef[[
    typedef void*(__thiscall* get_client_entity_t)(void*, int);
]]

local uintptr_t = ffi.typeof("uintptr_t**")
local this_call = function(call_function, parameters)
    return function(...)
        return call_function(parameters, ...)
    end
end

local entity_list_003 = ffi.cast(uintptr_t, utils.create_interface("client.dll", "VClientEntityList003"))
local get_entity_address = this_call(ffi.cast("get_client_entity_t", entity_list_003[0][3]), entity_list_003)

local session = {
    user = common.get_username(),
    version = "0.0.1",
    type = "ALPHA",
    date_update = "09.10.2022",
    screen_size = render.screen_size()
}

files.create_folder("nl/oxyuranus")
sidebar_name = gradient.text_animate("Oxyuranus", 0.8, {color(93, 167, 223), color(209, 235, 255)})
sidebar_ico = gradient.text_animate("   ", 0.6, {color(93, 167, 223), color(209, 235, 255)})
update_sidebar = function()
    sidebar_name:animate()
    sidebar_ico:animate()
    ui.sidebar(sidebar_name:get_animated_text(), sidebar_ico:get_animated_text() .. ui.get_icon("radiation-alt"))
end

tab = {}
tab.name = {}
tab.image = render.load_image(network.get("https://i.imgur.com/GyWdtzz.png"), vector(270, 60))

tab.name.main = ui.get_icon("radiation-alt") .. "  Main"
tab.name.rage = ui.get_icon("crosshairs") .. "  Rage"
tab.name.misc = ui.get_icon("eject") .. "  Misc"

var = {}

local handle = file.find_first("nl/oxyuranus")

-- config system


--local save_config_f = function(name) files.write("nl/oxyuranus/" .. name .. ".cfg", get_key_f("OXYURANUS")) end
--local load_config_f = function(name) load_key_f("OXYURANUS", files.read("nl/oxyuranus/" .. name .. ".cfg")) end

tab.main = ui.create(tab.name.main, "Main")
var.main_img = tab.main:texture(tab.image)

tab.config = ui.create(tab.name.main, "Configs")
var.config_name = tab.config:input("Config name")
var.save = tab.config:button("             " .. ui.get_icon("file-import") .. " Save            ", function()

end)
var.load = tab.config:button("             " .. ui.get_icon("file-export") .. " Load            ", function()

end)

tab.welcome = ui.create(tab.name.main, "Welcome")
var.welcome_t1 = tab.welcome:label("Welcome back, " .. gradient.text(session.user, true, {color(150,215,255)}))
var.welcome_t2 = tab.welcome:label("")
var.welcome_t3 = tab.welcome:label("Script vesrion: " .. gradient.text(session.version, true, {color(150,215,255)}) .. " " .. session.type)
var.welcome_t4 = tab.welcome:label("Last update: " .. gradient.text(session.date_update, true, {color(150,215,255)}))



tab.rage = ui.create(tab.name.rage, "General", 1)
var.brute_resolve = tab.rage:switch("Brute resolver")

tab.state_based = ui.create(tab.name.rage, "State Based", 2)
var.state_enable = tab.state_based:switch("Enabled")
var.state_inverter = tab.state_based:switch("Global Invert")
var.states = tab.state_based:combo("", {"Default", "Standing", "Moving", "Walking", "Air", "Air+Ctrl", "Ctrl"}):set_callback(function()
    tab.state_select:set_name("State: " .. var.states:get())
    name = var.states:get() cur = 1
    if name == "Standing" then cur = 2 elseif name == "Moving" then cur = 3 elseif name == "Walking" then cur = 4 elseif
        name == "Air" then cur = 5 elseif name == "Air+Ctrl" then cur = 6 elseif name == "Ctrl" then cur = 7 end
    for i = 1, 7 do
        if i ~= 1 then
            var.state.override[i]:set_visible(cur == i)
        end
        var.state.pitch[i]:set_visible(cur == i)
       
        var.state.yaw[i]:set_visible(cur == i)
        var.state.yaw.base[i]:set_visible(cur == i)
        var.state.yaw.offset[i]:set_visible(cur == i)
        var.state.yaw.avoid_backstab[i]:set_visible(cur == i)

        var.state.yaw_modifier[i]:set_visible(cur == i)
        var.state.yaw_modifier.offset[i]:set_visible(cur == i)

        var.state.body_yaw[i]:set_visible(cur == i)
        var.state.body_yaw.left_limit[i]:set_visible(cur == i)
        var.state.body_yaw.right_limit[i]:set_visible(cur == i)
        var.state.body_yaw.options[i]:set_visible(cur == i)
        var.state.body_yaw.freestanding[i]:set_visible(cur == i)
        var.state.body_yaw.opposite[i]:set_visible(cur == i)
    end
end)
tab.state_select = ui.create(tab.name.rage, "State: " .. var.states:get(), 2)
var.state = {override = {}, pitch = {}, yaw = {base = {}, offset = {}, avoid_backstab = {}}, yaw_modifier = {offset = {}},
    body_yaw = {left_limit = {}, right_limit = {}, options = {}, freestanding = {}, opposite = {}}}
for i = 1, 7 do
    cur = gradient.text("[" .. ({"D", "S", "M", "W", "A", "AC", "C"})[i] .. "]", true, {color(150,215,255)}) .. "\aDEFAULT "
    if i ~= 1 then
        var.state.override[i] = tab.state_select:switch(cur .. "Override"):set_visible(i == 1)
    end
    var.state.pitch[i] = tab.state_select:combo(cur .. "Pitch", {"Disabled", "Down", "Fake Down", "Fake Up"}):set_visible(i == 1)
   
    var.state.yaw[i] = tab.state_select:combo(cur .. "Yaw", {"Disabled", "Backward", "Static"}):set_visible(i == 1)
    var.state.yaw.base[i] = var.state.yaw[i]:create():combo(cur .. "Base", {"Local View", "At Target"}):set_visible(i == 1)
    var.state.yaw.offset[i] = var.state.yaw[i]:create():slider(cur .. "Offset yaw", -180, 180, 0):set_visible(i == 1)
    var.state.yaw.avoid_backstab[i] = var.state.yaw[i]:create():switch(cur .. "Avoid Backstab"):set_visible(i == 1)

    var.state.yaw_modifier[i] = tab.state_select:combo(cur .. "Yaw modifier", {"Disabled", "Center", "Offset", "Random", "Spin"}):set_visible(i == 1)
    var.state.yaw_modifier.offset[i] = var.state.yaw_modifier[i]:create():slider(cur .. "Offset", -180, 180, 0):set_visible(i == 1)

    var.state.body_yaw[i] = tab.state_select:switch(cur .. "Body Yaw"):set_visible(i == 1)
    var.state.body_yaw.left_limit[i] = var.state.body_yaw[i]:create():slider(cur .. "Left limit", 0, 60, 60):set_visible(i == 1)
    var.state.body_yaw.right_limit[i] = var.state.body_yaw[i]:create():slider(cur .. "Right limit", 0, 60, 60):set_visible(i == 1)
    var.state.body_yaw.options[i] = var.state.body_yaw[i]:create():selectable(cur .. "Options", {"Avoid Overlap", "Jitter", "Randomize Jitter", "Anti Bruteforce"}):set_visible(i == 1)
    var.state.body_yaw.freestanding[i] = var.state.body_yaw[i]:create():switch(cur .. "Desync Peek"):set_visible(i == 1)
    var.state.body_yaw.opposite[i] = var.state.body_yaw[i]:create():switch(cur .. "Desync Opposite"):set_visible(i == 1)
end

tab.indicators = ui.create(tab.name.misc, "Indicators")
var.windows = tab.indicators:selectable("Choose windows", {"KeyBinds", "Center Indicators", "Watermark"}):set_callback(function()
    var.key_binds:set_visible(var.windows:get(1))
    var.watermark:set_visible(var.windows:get(3))
end)
var.window_style = tab.indicators:combo("Window style", {"Upper line", "Under line", "Rounding upper line", "Rounding under line", "Rounding line"})
var.key_binds = tab.indicators:label("Keybinds"):set_visible(false)
var.key_binds_color = var.key_binds:create():color_picker("Keybinds color")

var.watermark = tab.indicators:label("Watermark"):set_visible(false)
var.watermark_color = var.watermark:create():color_picker("Watermark color")
var.watermark_elements = var.watermark:create():selectable("Elements", {"Username", "Config", "Ping", "Server IP", "Time"})

tab.animations = ui.create(tab.name.misc, "Animations")
var.anims = tab.animations:selectable("Choose animations", {"Legs in Air", "Legs in Walk", "Pitch on Land"}):set_callback(function()
    var.legs_in_air:set_visible(var.anims:get(1))
    var.legs_in_walk:set_visible(var.anims:get(2))
    var.pitch_on_land:set_visible(var.anims:get(3))
end)
var.legs_in_air = tab.animations:combo("Legs in Air", {"Static", "Walking"}):set_visible(false)
var.legs_in_walk = tab.animations:combo("Legs in Walk", {"Backward", "Forward", "No Animation", "No Sides"}):set_visible(false)
var.pitch_on_land = tab.animations:slider("Pitch on Land", -89, 89, 0):set_visible(false)
var.pitch_time = var.pitch_on_land:create():slider("Pitch Time", 1, 50, 10)
var.animation_on_land = var.pitch_on_land:create():switch("Break Animation on Land")



-- helpers
get_state = function(ent) if not ent then return -1 end local flags = ent.m_fFlags local first_velocity = ent['m_vecVelocity[0]'] local second_velocity = ent['m_vecVelocity[1]'] local velocity = math.floor(math.sqrt(first_velocity*first_velocity+second_velocity*second_velocity)) if bit.band(flags, 1) == 1 then if bit.band(flags, 4) == 4 then return 7 else if velocity <= 3 then return 2 else if ui.find("Aimbot", "Anti Aim", "Misc", "Slow Walk"):get() then return 4 else return 3 end end end elseif bit.band(flags, 1) == 0 then if bit.band(flags, 4) == 4 then return 6 else return 5 end end end

local animation = {data = {}}
animation.lerp = function(start, end_pos, time) if type(start) == 'userdata' then local color_data = {0, 0, 0, 0} for i, color_key in ipairs({'r', 'g', 'b', 'a'}) do color_data[i] = animation.lerp(start[color_key], end_pos[color_key], time) end return color(unpack(color_data)) end return (end_pos - start) * (globals.frametime * time * 175) + start end
animation.new = function(name, value, time) if animation.data[name] == nil then animation.data[name] = value end animation.data[name] = animation.lerp(animation.data[name], value, time) return animation.data[name] end

drags_list = {}
drags_names = {}
drags_enabled = {}
drag = function(id, x_var, y_var, size)
    if ui.get_alpha() <= 0.1 then utils.console_exec("bind mouse1 +attack") return end
    local mouse_position = ui.get_mouse_position()
    local is_clicked = common.is_button_down(0x01)
    local pos = vector(x_var:get(), y_var:get())
    if not drags_enabled[id] then drags_enabled[id] = false end
    if not drags_list[id] then drags_list[id] = vector(0, 0) end
    local is_exist = false
    for i = 1, #drags_names do
        if drags_names[i] == id then is_exist = true end
    end
    if not is_exist then drags_names[#drags_names+1] = id end
    local in_box = function(mouse_position, position, size)
        if mouse_position.x > position.x and mouse_position.x < position.x + size.x then
            if mouse_position.y > position.y and mouse_position.y < position.y + size.y then
                return true
            end  
        end
        return false
    end

    local draggings = 0
    for i = 1, #drags_names do
        if drags_enabled[drags_names[i]] then
            draggings = draggings + 1
            if draggings >= 2 then drags_enabled[drags_names[i]] = false end
        end
    end

    local anim = animation.new(id, (in_box(mouse_position, pos, size)) and 1 or 0.001, 0.1)
    if anim > 0.01 then
        render.rect_outline(pos - vector(2, 2), pos + size + vector(2, 2), color(120, 120, 120, 255 * anim), 1, 6)
        render.text(small_font, pos + vector(0, size.y + 4), color(200, 200, 200, 255 * anim), '', "Use LMB for dragging element")
    end

    utils.console_exec("unbind mouse1")

    if in_box(mouse_position, pos, size) and is_clicked then
        if not drags_enabled[id] then
            drags_list[id] = mouse_position - pos
            drags_enabled[id] = true
        end
    elseif not is_clicked and drags_enabled[id] then drags_enabled[id] = false end
    if drags_enabled[id] then
        new_pos = mouse_position - drags_list[id]
        x_var:set(new_pos.x)
        y_var:set(new_pos.y)
    end
end




callbacks = {}

callbacks.antiaim_states = function()
    if not var.state_enable:get() then return end
   
    local lp = entity.get_local_player()
    if not lp then return end
    if not lp:is_alive() then return end
   
    if get_state(entity.get_local_player()) == -1 then return end

    local cs = get_state(entity.get_local_player())
    if not var.state.override[cs]:get() then
        cs = 1
    end

    ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Inverter"):override(var.state_inverter:get())

    ui.find("Aimbot", "Anti Aim", "Angles", "Pitch"):override(var.state.pitch[cs]:get())
   
    ui.find("Aimbot", "Anti Aim", "Angles", "Yaw"):override(var.state.yaw[cs]:get())
    ui.find("Aimbot", "Anti Aim", "Angles", "Yaw", "Base"):override(var.state.yaw.base[cs]:get())
    ui.find("Aimbot", "Anti Aim", "Angles", "Yaw", "Offset"):override(var.state.yaw.offset[cs]:get())
    ui.find("Aimbot", "Anti Aim", "Angles", "Yaw", "Avoid Backstab"):override(var.state.yaw.avoid_backstab[cs]:get())

    ui.find("Aimbot", "Anti Aim", "Angles", "Yaw Modifier"):override(var.state.yaw_modifier[cs]:get())
    ui.find("Aimbot", "Anti Aim", "Angles", "Yaw Modifier", "Offset"):override(var.state.yaw_modifier.offset[cs]:get())

    ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw"):override(var.state.body_yaw[cs]:get())
    ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Left Limit"):override(var.state.body_yaw.left_limit[cs]:get())
    ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Right Limit"):override(var.state.body_yaw.right_limit[cs]:get())
    ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Options"):override(var.state.body_yaw.options[cs]:get())
    ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Freestanding"):override(var.state.body_yaw.freestanding[cs]:get() and "Peek Fake" or "Off")
    ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "On Shot"):override("Switch")
    ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "LBY Mode"):override(var.state.body_yaw.opposite[cs]:get() and "Opposite" or "Sway")
end






local m_iGroundTicks = 0
local m_bOnLand = false
local m_flEndTime = 0
local landing_stuff = function()

    local e = entity.get_local_player()
    if not e or not e:is_alive() then return end
    local m_bOnGround = bit.band(e.m_fFlags, bit.lshift(1,0)) ~= 0
    if m_bOnGround then
        m_iGroundTicks = m_iGroundTicks + var.pitch_time:get() / 10
    else
        m_iGroundTicks = 0
        m_flEndTime = globals.curtime + var.pitch_time:get() / 10
    end
    m_bOnLand = false
    if m_iGroundTicks > 1 and m_flEndTime > globals.curtime then
        m_bOnLand = true
    end
end

callbacks.animations = function()
    local local_player = entity.get_local_player()

    if var.anims:get(1) then
        if var.legs_in_air:get() == "Static" then
            local_player.m_flPoseParameter[6] = 1
        elseif var.legs_in_air:get() == "Walking" then
            --[[STRAFE_YAW, 0
            STAND, 1
            LEAN_YAW, 2
            SPEED, 3
            LADDER_YAW, 4
            LADDER_SPEED, 5
            JUMP_FALL, 6
            MOVE_YAW, 7
            MOVE_BLEND_CROUCH, 8
            MOVE_BLEND_WALK, 9
            MOVE_BLEND_RUN, 10
            BODY_YAW, 11
            BODY_PITCH, 12
            AIM_BLEND_STAND_IDLE, 13
            AIM_BLEND_STAND_WALK, 14
            AIM_BLEND_STAND_RUN, 15
            AIM_BLEND_COURCH_IDLE, 16
            AIM_BLEND_CROUCH_WALK, 17
            DEATH_YAW 18]]--
            local_player.m_flPoseParameter[2] = 0.5
        end
    end

    if var.anims:get(2) then
        if var.legs_in_walk:get() == "Backward" then
            local_player.m_flPoseParameter[0] = 1
            ui.find("Aimbot", "Anti Aim", "Misc", "Leg Movement"):override("Sliding")
        elseif var.legs_in_walk:get() == "Forward" then
            local_player.m_flPoseParameter[0] = 0.5
            ui.find("Aimbot", "Anti Aim", "Misc", "Leg Movement"):override("Sliding")
        elseif var.legs_in_walk:get() == "No Animation" then
            local_player.m_flPoseParameter[8] = 0
            local_player.m_flPoseParameter[9] = 0
            local_player.m_flPoseParameter[10] = 0
            ui.find("Aimbot", "Anti Aim", "Misc", "Leg Movement"):override("Walking")
        elseif var.legs_in_walk:get() == "No Sides" then
            local_player.m_flPoseParameter[7] = 0
            ui.find("Aimbot", "Anti Aim", "Misc", "Leg Movement"):override("Walking")
        end
    end

    if var.anims:get(3) then
        if m_bOnLand then
            local_player.m_flPoseParameter[12] = (1 - var.pitch_on_land:get() / 89) / 2
            if var.animation_on_land:get() then
                local_player.m_flPoseParameter[13] = 0
                local_player.m_flPoseParameter[14] = 0
                local_player.m_flPoseParameter[15] = 0
                local_player.m_flPoseParameter[16] = 0
                local_player.m_flPoseParameter[17] = 0
            end
        end
    end
end

callbacks.to_resolve_degrees = {}
callbacks.resolver_update = function()
    if not var.brute_resolve:get() then return end
    local local_player = entity.get_local_player()

    entity.get_players(true, false, function(i)
        local to_resolve = callbacks.to_resolve_degrees[i:get_index()]
        if to_resolve == nil then callbacks.to_resolve_degrees[i:get_index()] = 45 to_resolve = 45 end
        local resolve_angles = (1 - to_resolve / 60) / 2

        if not i:is_alive() then return end
        if i:is_bot() then return end

        local state = get_state(i)

        i.m_flPoseParameter[11] = 0
    end)
end

callbacks.resolver_switch = function(shot)
    if shot.state ~= nil then
        local cur_degrees = callbacks.to_resolve_degrees[shot.target:get_index()]
        if cur_degrees == 45 then
            callbacks.to_resolve_degrees[shot.target:get_index()] = -45
        elseif cur_degrees == -45 then
            callbacks.to_resolve_degrees[shot.target:get_index()] = 0
        elseif cur_degrees == 0 then
            callbacks.to_resolve_degrees[shot.target:get_index()] = 45
        end
    end
end

callbacks.hooked_function = nil
callbacks.inside_updateCSA = function(thisptr, edx)
    callbacks.hooked_function(thisptr, edx)
    if entity.get_local_player() == nil or ffi.cast('uintptr_t**', thisptr) == nil then return end

    callbacks.animations()
    callbacks.resolver_update()
end

callbacks.update_hook = function()
    local self = entity.get_local_player()
    if not self or not self:is_alive() then
        return
    end

    landing_stuff()

    local self_index = self:get_index()
    local self_address = get_entity_address(self_index)

    if not self_address or callbacks.hooked_function then
        return
    end

    local new_point = vmt_hook.new(self_address)
    callbacks.hooked_function = new_point.hook("void(__fastcall*)(void*, void*)", callbacks.inside_updateCSA, 224)
end






-- indicators
callbacks.render_window = function(start, stop, clr)
    local window_style = ({["Upper line"] = 1, ["Under line"] = 2, ["Rounding upper line"] = 3, ["Rounding under line"] = 4, ["Rounding line"] = 5})[var.window_style:get()]

    if window_style == 1 then
        render.rect(start, start + stop, color(0, 0, 0, 90))
        render.rect(start, start + vector(stop.x, 2), clr)
    elseif window_style == 2 then
        render.rect(start, start + stop, color(0, 0, 0, 90))
        render.rect(start + vector(0, stop.y - 2), start + stop, clr)
    elseif window_style == 3 then
        render.shadow(start, start + stop, clr, 20, 0, 6)
        render.rect(start, start + stop, color(0, 0, 0, 90), 6)
        render.rect(start + vector(3, 0), start + vector(stop.x - 3, 1), clr)
        render.gradient(start + vector(0, 3), start + vector(1, stop.y - 3), clr, clr, clr:alpha_modulate(0), clr:alpha_modulate(0))
        render.gradient(start + vector(stop.x - 1, 3), start + vector(stop.x, stop.y - 3), clr, clr, clr:alpha_modulate(0), clr:alpha_modulate(0))
        render.circle_outline(start + vector(3, 3), clr, 3, 180, 0.25, 1.4)
        render.circle_outline(start + vector(stop.x - 3, 3), clr, 3, 270, 0.25, 1.4)
    elseif window_style == 4 then
        render.shadow(start, start + stop, clr, 20, 0, 6)
        render.rect(start, start + stop, color(0, 0, 0, 90), 6)
        render.rect(start + vector(3, stop.y - 1), start + vector(stop.x - 3, stop.y), clr)
        render.gradient(start + vector(0, 3), start + vector(1, stop.y - 3), clr:alpha_modulate(0), clr:alpha_modulate(0), clr, clr)
        render.gradient(start + vector(stop.x - 1, 3), start + vector(stop.x, stop.y - 3), clr:alpha_modulate(0), clr:alpha_modulate(0), clr, clr)
        render.circle_outline(start + vector(3, stop.y - 3), clr, 3, 90, 0.25, 1.4)
        render.circle_outline(start + vector(stop.x - 3, stop.y - 3), clr, 3, 0, 0.25, 1.4)
    elseif window_style == 5 then
        render.shadow(start, start + stop, clr, 20, 0, 6)
        render.rect(start, start + stop, color(0, 0, 0, 90), 6)
        render.rect_outline(start, start + stop, clr, 1, 6)
    end
end

var.keybins_x = tab.indicators:slider("kbx", 0, session.screen_size.x, 20):set_visible(false)
var.keybins_y = tab.indicators:slider("kby", 0, session.screen_size.y, 20):set_visible(false)
var.animation_x = 0
var.maximum_x = 0
var.current_size = 0
callbacks.keybinds = function()
    if not var.windows:get(1) then return end

    local position = vector(var.keybins_x:get(), var.keybins_y:get())

    local render_bind = function(value)
        local anim = animation.new(string.gsub(value.name, " ", ""), value.active and 1 or 0, 0.1)
        var.animation_x = var.animation_x + anim

        local bind_size = render.measure_text(font, '', string.lower(value.name))
        render.text(font, position + vector(5, 10 + 15 * var.animation_x), color(225, 225, 225, 255 * anim), '', string.lower(value.name))
        local mode_size = render.measure_text(font, '', '[' .. string.lower(tostring(value.value)) .. ']')
        render.text(font, position + vector(var.current_size - mode_size.x - 5, 10 + 15 * var.animation_x), color(225, 225, 225, 255 * anim), '', '[' .. string.lower(tostring(value.value)) .. ']')

        if value.active then
            local total_size = bind_size.x + mode_size.x + 10 + 30
            if total_size > var.maximum_x then var.maximum_x = total_size end
        end
    end

    local cheatbinds = ui.get_binds()
    var.animation_x = 0
    var.maximum_x = 0
    for i = 1, #cheatbinds do
        local value = cheatbinds[i]
        render_bind(value)
    end

    var.current_size = animation.new("kbsize", (var.maximum_x < 120 and 120 or var.maximum_x), 0.1)
   
    callbacks.render_window(position , vector(var.current_size, 20), var.key_binds_color:get())
    render.text(font, position + vector(5, 4), color(225, 225, 225), '', "keybinds")

    drag("keybinds", var.keybins_x, var.keybins_y, vector(var.current_size, 20 + 15 * var.animation_x + (var.animation_x > 0.1 and 7 or 0)))
end


var.watermark_x = tab.indicators:slider("wmx", 0, session.screen_size.x, 20):set_visible(false)
var.watermark_y = tab.indicators:slider("wmy", 0, session.screen_size.y, 20):set_visible(false)
callbacks.watermark = function()
    if not var.windows:get(3) then return end

    local position = vector(var.watermark_x:get(), var.watermark_y:get())

    local separator = "  "
    local text = "neverlose.cc"
    if var.watermark_elements:get(1) then text = text .. separator .. session.user end
    if var.watermark_elements:get(2) then text = text .. separator .. common.get_config_name() end
    if entity.get_local_player() then
        if var.watermark_elements:get(3) then text = text .. separator .. math.floor(globals.is_connected and (utils.net_channel().latency[1] * 1000) or 0) .. "ms" end
        if var.watermark_elements:get(4) then text = text .. separator .. utils.net_channel():get_server_info().address end
    end
    if var.watermark_elements:get(5) then text = text .. separator .. common.get_date("%H:%M:%S") end

    local anim = animation.new("wm", render.measure_text(font, '', text).x + 10, 0.05)
    callbacks.render_window(position, vector(anim, 20), var.watermark_color:get())
    render.push_clip_rect(position, position + vector(anim, 20))
    render.text(font, position + vector(5, 4), color(225, 225, 225), '', text)
    render.pop_clip_rect()

    drag("watermark", var.watermark_x, var.watermark_y, vector(anim, 20))
end




events.aim_ack:set(function(shot)
    callbacks.resolver_switch(shot)
end)

events.createmove_run:set(function(cmd)
    callbacks.update_hook()
end)



events.render:set(function(ctx)
    callbacks.antiaim_states()
    callbacks.keybinds()
    callbacks.watermark()

    update_sidebar()
end)

events.shutdown:set(function()
    utils.console_exec("bind mouse1 +attack")
end)
Хуйня, кастом рез крашит если во время катки врубать
 
Сверху Снизу