Professional Documents
Culture Documents
clipboard = require("neverlose/clipboard")
aa_refs = {
pitch = ui.find("Aimbot", "Anti Aim", "Angles", "Pitch"),
yaw = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw"),
base = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw", "Base"),
offset = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw", "Offset"),
backstab = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw", "Avoid Backstab"),
yaw_modifier = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw Modifier"),
modifier_offset = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw Modifier",
"Offset"),
body_yaw = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw"),
inverter = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Inverter"),
left_limit = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Left Limit"),
right_limit = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Right
Limit"),
options = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Options"),
desync_freestanding = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw",
"Freestanding"),
on_shot = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "On Shot"),
lby_mode = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "LBY Mode"),
slowwalk = ui.find("Aimbot", "Anti Aim", "Misc", "Slow Walk"),
fakeduck = ui.find("Aimbot", "Anti Aim", "Misc", "Fake Duck"),
}
group_antiaim = ui.create("AntiAim")
group_builder = ui.create("AntiAim")
enable_antiaim = group_antiaim:switch("Enable AntiAim", false)
enable_builder = group_builder:switch("Enable Builder", false)
manual_yaw_base = group_antiaim:combo("Manual Yaw Base", {"Disabled", "Forward",
"Left", "Right"})
condition = group_builder:combo("Condition", aa_states)
group_view = ui.create("Visuals","View")
aspect_ratio_switch = group_view:switch("Aspect ratio", false)
viewmodel_switch = group_view:switch("Viewmodel", false)
viewmodel_ref = viewmodel_switch:create()
viewmodel_fov = viewmodel_ref:slider("FOV", -100, 100, 68)
viewmodel_x = viewmodel_ref:slider("X", -10, 10, 2.5)
viewmodel_y = viewmodel_ref:slider("Y", -10, 10, 0)
viewmodel_z = viewmodel_ref:slider("Z", -10, 10, -1.5)
aspectratio_ref = aspect_ratio_switch:create()
aspect_ratio_slider = aspectratio_ref:slider("Value", 0, 20, 0, 0.1)
local hitlog = {}
local id = 1
function hit_event(event)
local me = entity.get_local_player()
local attacker = entity.get(event.attacker, true)
local weapon = event.weapon
local hit_type = ""
if enebler:get() then
if weapon == 'hegrenade' then
hit_type = 'Exploded'
end
events.render:set(function()
if #hitlog > 0 then
if globals.tickcount >= hitlog[1][2] then
if hitlog[1][3] > 0 then
hitlog[1][3] = hitlog[1][3] - 20
elseif hitlog[1][3] <= 0 then
table.remove(hitlog, 1)
end
end
if #hitlog > 6 then
table.remove(hitlog, 1)
end
if globals.is_connected == false then
table.remove(hitlog, #hitlog)
end
for i = 1, #hitlog do
text_size = render.measure_text(1, nil, hitlog[i][1]).x
text_size_2 = render.measure_text(1, nil, "[saturn] ").x
if hitlog[i][3] < 255 then
hitlog[i][3] = hitlog[i][3] + 10
end
render.text(1, vector(screen.x/2 - text_size/2 + text_size_2,
screen.y/1.5 + 15 * i), color(255, 255, 255, hitlog[i][3]), nil, hitlog[i][1])
render.text(1, vector(screen.x/2 - text_size/2, screen.y/1.5 + 15 *
i), color(m_color:get().r, m_color:get().g, m_color:get().b, hitlog[i][3]), nil,
"[saturn]")
end
end
end)
--IDEAL YAW
local ideal_ind = function()
local lp = entity.get_local_player()
if not lp or not lp:is_alive() then return end
if not switch:get() then return end
if switch:get() then
local ay = 0
local x = render.screen_size().x/2
local y = render.screen_size().y/2 + 20
enabled_prev = true
set_clantag('\0', '\0')
dh_DrawClanTag = function()
if enebler_tag:get() then
local local_player = entity.get_local_player()
if local_player ~= nil and globals.is_connected and globals.choked_commands == 0
then
local bebraliu = entity.get_game_rules()
clan_tag = gamesense_anim('saturn [debug]', {0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14,
14, 14, 14, 14, 14, 14, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 25})
if bebraliu.m_gamePhase == 5 then
clan_tag = gamesense_anim('saturn [debug]', {14})
set_clantag(clan_tag, clan_tag)
elseif bebraliu.m_timeUntilNextPhaseStarts ~= 0 then
clan_tag = gamesense_anim('saturn [debug]', {14})
set_clantag(clan_tag, clan_tag)
elseif clan_tag ~= clan_tag_prev then
set_clantag(clan_tag, clan_tag)
end
clan_tag_prev = clan_tag
end
enabled_prev = false
elseif not enebler_tag:get() and enabled_prev == false then
set_clantag('\0', '\0')
enabled_prev = true
end
end
menu_condition = {}
for a, b in pairs(aa_states2) do
menu_condition[a] = {
enable = group_builder:switch("Enable " .. aa_states[a]),
left_yaw_add = group_builder:slider("["..b.."] Left Yaw Add", -180, 180,
0),
right_yaw_add = group_builder:slider("["..b.."] Right Yaw Add", -180, 180,
0),
yaw_modifier = group_builder:combo("["..b.."] Yaw Modifier",
aa_refs.yaw_modifier:get_list()),
modifier_offset = group_builder:slider("["..b.."] Modifier Offset", -180,
180, 0),
options = group_builder:selectable("["..b.."] Options",
aa_refs.options:get_list()),
desync_freestanding = group_builder:combo("["..b.."] Freestanding",
aa_refs.desync_freestanding:get_list()),
on_shot = group_builder:combo("["..b.."] On Shot",
aa_refs.on_shot:get_list()),
lby_mode = group_builder:combo("["..b.."] LBY Mode",
aa_refs.lby_mode:get_list()),
left_limit = group_builder:slider("["..b.."] Left Limit", 0, 60, 60),
right_limit = group_builder:slider("["..b.."] Right Limit", 0, 60, 60),
}
end
exporting = {
["number"] = {},
["boolean"] = {},
["table"] = {},
["string"] = {}
}
export_process = function()
for a, b in pairs(aa_states2) do
for c, d in pairs(menu_condition[a]) do
table.insert(exporting[type(d:get())], d)
end
end
arr_to_string = function(arr)
arr = arr:get()
str = ""
for i=1, #arr do
str = str .. arr[i] .. (i == #arr and "" or ",")
end
return str
end
str = ""
for i,o in pairs(exporting["number"]) do
str = str .. tostring(o:get()) .. "|"
end
for i,o in pairs(exporting["string"]) do
str = str .. (o:get()) .. "|"
end
for i,o in pairs(exporting["boolean"]) do
str = str .. tostring(o:get()) .. "|"
end
for i,o in pairs(exporting["table"]) do
str = str .. arr_to_string(o) .. "|"
end
clipboard.set(base64.encode(str))
end
load_process = function()
protected_ = function()
clipboards = clipboard.get()
to_boolean = function(str)
if str == "true" or str == "false" then
return (str == "true")
else
return str
end
end
p = 1
for i,o in pairs(exporting["number"]) do
o:set(tonumber(tbl[p]))
p = p + 1
end
for i,o in pairs(exporting["string"]) do
o:set(tbl[p])
p = p + 1
end
for i,o in pairs(exporting["boolean"]) do
o:set(to_boolean(tbl[p]))
p = p + 1
end
for i,o in pairs(exporting["table"]) do
o:set(str_to_sub(tbl[p],","))
p = p + 1
end
end
get_player_state = function()
local_player = entity.get_local_player()
if not local_player then return "Not connected" end
on_ground = bit.band(local_player.m_fFlags, 1) == 1
jump = bit.band(local_player.m_fFlags, 1) == 0
crouch = local_player.m_flDuckAmount > 0.7 or aa_refs.fakeduck:get()
vx, vy, vz = local_player.m_vecVelocity.x, local_player.m_vecVelocity.y,
local_player.m_vecVelocity.z
math_velocity = math.sqrt(vx ^ 2 + vy ^ 2)
move = math_velocity > 5
antiaim = function()
local_player = entity.get_local_player()
if not local_player then return end
if enable_antiaim:get() == false then return end
if enable_builder:get() == false then return end
invert_state = (math.normalize_yaw(local_player:get_anim_state().eye_yaw -
local_player:get_anim_state().abs_yaw) <= 0)
menu_ui = function()
menu_condition[1].enable:set(true)
aa_work = enable_antiaim:get()
builder_work = enable_builder:get()
cond_select = condition:get()
all_work = aa_work and builder_work
condition:set_visible(all_work)
enable_builder:set_visible(aa_work)
manual_yaw_base:set_visible(aa_work)
export_config:set_visible(aa_work)
load_config:set_visible(aa_work)
for a, b in pairs(aa_states2) do
need_select = cond_select == aa_states[a]
all_work2 = all_work and menu_condition[a].enable:get() and cond_select ==
aa_states[a]
menu_condition[a].enable:set_visible(all_work and need_select)
menu_condition[1].enable:set_visible(false)
menu_condition[a].left_yaw_add:set_visible(all_work2)
menu_condition[a].right_yaw_add:set_visible(all_work2)
menu_condition[a].yaw_modifier:set_visible(all_work2)
menu_condition[a].modifier_offset:set_visible(all_work2 and
menu_condition[a].yaw_modifier:get() ~= "Disabled")
menu_condition[a].options:set_visible(all_work2)
menu_condition[a].desync_freestanding:set_visible(all_work2)
menu_condition[a].on_shot:set_visible(all_work2)
menu_condition[a].lby_mode:set_visible(all_work2)
menu_condition[a].left_limit:set_visible(all_work2)
menu_condition[a].right_limit:set_visible(all_work2)
end
end
export_config:set_callback(export_process)
load_config:set_callback(load_process)
events.aim_ack:set(function(event)
local me = entity.get_local_player()
local result = event.state
local target = entity.get(event.target)
local text = "%"
if target == nil then return end
local health = target["m_iHealth"]
local state_1 = ""
if enebler:get() then
if event.state == "spread" then state_1 = "spread" end
if event.state == "prediction error" then state_1 = "prediction error" end
if event.state == "jitter correction" then state_1 = "jitter correction"
end
if event.state == "correction" then state_1 = "resolver" end
if event.state == "lagcomp failure" then state_1 = "fake lag correction"
end
if result == nil then
hitlog[#hitlog+1] = {("Registered shot at %s's %s(%s%s) for %s (aimed:
%s for %s, health remain: %s) backtrack: %s"):format(event.target:get_name(),
hitgroup_str[event.hitgroup], event.hitchance, text, event.damage,
hitgroup_str[event.wanted_hitgroup], event.wanted_damage, health, event.backtrack),
globals.tickcount + 250, 0}
print_raw(("\a4562FF[neverlose] \aD5D5D5[%s] Registered shot at %s's
%s(%s%s) for %s (aimed: %s for %s, health remain: %s) backtrack: %s"):format(id,
event.target:get_name(), hitgroup_str[event.hitgroup], event.hitchance, text,
event.damage, hitgroup_str[event.wanted_hitgroup], event.wanted_damage, health,
event.backtrack))
else
hitlog[#hitlog+1] = {("Missed %s`s %s (dmg:%s, %s%s) due to %s |
backtrack: %s"):format(event.target:get_name(),
hitgroup_str[event.wanted_hitgroup], event.wanted_damage, event.hitchance, text,
state_1, event.backtrack), globals.tickcount + 250, 0}
print_raw(("\a4562FF[neverlose] \aD5D5D5[%s] Missed %s`s %s (dmg:%s, %s
%s) due to %s\aD5D5D5 | backtrack: %s"):format(id, event.target:get_name(),
hitgroup_str[event.wanted_hitgroup], event.wanted_damage, event.hitchance, text,
state_1, event.backtrack))
end
id = id == 999 and 1 or id + 1
end
end)
events.player_death:set(function(e)
killsayha(e)
killeffect(e)
end)
events.player_hurt:set(function(event)
hit_event(event)
end)
events.render:set(function()
ideal_ind()
antiaim()
menu_ui()
statepanelel()
manualarrowel()
velocitywarningel()
dh_DrawClanTag()
end)
events.createmove:set(function()
if aspect_ratio_switch:get() then
cvar.r_aspectratio:float(aspect_ratio_slider:get()/10)
else
cvar.r_aspectratio:float(0)
end
if viewmodel_switch:get() then
cvar.viewmodel_fov:int(viewmodel_fov:get(), true)
cvar.viewmodel_offset_x:float(viewmodel_x:get(), true)
cvar.viewmodel_offset_y:float(viewmodel_y:get(), true)
cvar.viewmodel_offset_z:float(viewmodel_z:get(), true)
else
cvar.viewmodel_fov:int(68)
cvar.viewmodel_offset_x:float(2.5)
cvar.viewmodel_offset_y:float(0)
cvar.viewmodel_offset_z:float(-1.5)
end
end)
events.shutdown:set(function()
cvar.viewmodel_fov:int(68)
cvar.viewmodel_offset_x:float(2.5)
cvar.viewmodel_offset_y:float(0)
cvar.viewmodel_offset_z:float(-1.5)
end)