Kodit izke
-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
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)