0% found this document useful (0 votes)
57 views41 pages

Anti-Aim Script for Game Modding

Uploaded by

zexibo2
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
57 views41 pages

Anti-Aim Script for Game Modding

Uploaded by

zexibo2
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

_DEBUG = true

local clipboard = require "neverlose/clipboard"


local pui = require "neverlose/pui"
local gradient = require("neverlose/gradient")
local http_lib = require("neverlose/http_lib")

local http = http_lib.new({


task_interval = 0.3, -- polling intervals
enable_debug = true, -- print http request s to the console
timeout = 10 -- request expiration time
})

local callbacks = {}

local build = "live"

local vel_warning
local watermark_icon

http:get("https://cdn.discordapp.com/attachments/
1022219770604572717/1137943561816518748/vel_warning_v2.png", function(data)
if not pcall(data:success() and data.status == 200 and data.body) then
vel_warning = render.load_image(data.body, vector(300,300))
else
print("couldn't download amnesia icon")
end
end)

http:get("https://cdn.discordapp.com/attachments/
1022219770604572717/1137951401566281788/watermark_final.png", function(data)
if not pcall(data:success() and data.status == 200 and data.body) then
watermark_icon = render.load_image(data.body, vector(300,300))
else
print("couldn't download amnesia icon")
end
end)

callbacks.register = function(event, name, fn)


events[event]:set(safecall(name, event ~= "shutdown", fn))
end

local aa={
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"),
jitter=ui.find("Aimbot","Anti Aim","Angles","Yaw Modifier"),
jitter_val=ui.find("Aimbot","Anti Aim","Angles","Yaw Modifier","Offset"),
body_yaw={ui.find("Aimbot","Anti Aim","Angles","Body Yaw"),
ui.find("Aimbot","Anti Aim","Angles","Body Yaw","Inverter"),
ui.find("Aimbot","Anti Aim","Angles","Body Yaw","Left Limit"),
ui.find("Aimbot","Anti Aim","Angles","Body Yaw","Right Limit"),
ui.find("Aimbot","Anti Aim","Angles","Body Yaw","Options"),
ui.find("Aimbot","Anti Aim","Angles","Body Yaw","Freestanding")},
freestand={ui.find("Aimbot","Anti Aim","Angles","Freestanding"),
ui.find("Aimbot","Anti Aim","Angles","Freestanding","Disable Yaw Modifiers"),
ui.find("Aimbot","Anti Aim","Angles","Freestanding","Body Freestanding")},
def=ui.find("Aimbot","Ragebot","Main","Double Tap","Lag Options"),
slow=ui.find("Aimbot","Anti Aim","Misc","Slow Walk")
}

local references={
doubletap=ui.find("aimbot","ragebot","main","double tap"),
hideshots=ui.find("Aimbot","Ragebot","Main","Hide Shots"),
fakeduck=ui.find("Aimbot","Anti Aim","Misc","Fake Duck"),
delayshot=ui.find("Aimbot", "Ragebot", "Selection", "Global", "Min. Damage",
"Delay Shot"),
pitch=ui.find("Aimbot","Anti Aim","Angles","Pitch"),
offset=ui.find("Aimbot","Anti Aim","Angles","Yaw","Offset"),
yaw=ui.find("Aimbot","Anti Aim","Angles","Yaw"),
modifier=ui.find("Aimbot","Anti Aim","Angles","Yaw Modifier"),
moffset=ui.find("Aimbot","Anti Aim","Angles","Yaw Modifier","Offset"),
limit1=ui.find("Aimbot","Anti Aim","Angles","Body Yaw","Left Limit"),
limit2=ui.find("Aimbot","Anti Aim","Angles","Body Yaw","Right Limit"),
freestand=ui.find("Aimbot","Anti Aim","Angles","Freestanding"),
antistab=ui.find("Aimbot","Anti Aim","Angles","Yaw","Avoid Backstab"),
bodyyaw=ui.find("Aimbot","Anti Aim","Angles","Body Yaw"),
roll=ui.find("Aimbot","Anti Aim","Angles","Extended Angles"),
rollval=ui.find("Aimbot","Anti Aim","Angles","Extended Angles","Extended
Roll"),
airstrafe=ui.find("Miscellaneous","Main","Movement","Air Strafe"),
legmov=ui.find("Aimbot","Anti Aim","Misc","Leg Movement"),
slowwalk=ui.find("Aimbot","Anti Aim","Misc","Slow Walk"),
lagoptions=ui.find("Aimbot","Ragebot","Main","Double Tap","Lag Options"),
fakelag=ui.find("Aimbot","Anti Aim","Fake Lag","Limit"),
asoptions=ui.find("Aimbot","Ragebot","Accuracy","Auto Stop","Options"),
asdtoptions=ui.find("Aimbot","Ragebot","Accuracy","Auto Stop","Double Tap")
}

rad = math.rad
cos = math.cos
sin = math.sin

local target_pos = vector(0,0,0)


local cam1

function drawWireframeSphere(center, radius, segments, sphereColor, rotationAngle)


-- Loop through and draw horizontal lines
for i = 0, segments do
local latitude = (i / segments) * math.pi - (math.pi / 2)
local last_point = nil

for j = 0, segments do
local longitude = (j / segments) * 2 * math.pi
local x = radius * math.cos(latitude) * math.cos(longitude)
local y = radius * math.cos(latitude) * math.sin(longitude)
local z = radius * math.sin(latitude)

-- Apply rotation around the Y-axis


local newX = math.cos(rotationAngle) * x - math.sin(rotationAngle) * y
local newY = math.sin(rotationAngle) * x + math.cos(rotationAngle) * y

x, y = newX, newY

-- Translate to the center position


x = x + center.x
y = y + center.y
z = z + center.z

local world_point = vector(x, y, z)


local screen_point = render.world_to_screen(world_point)

if last_point and screen_point then


render.line(last_point, screen_point, sphereColor)
end

last_point = screen_point
end
end

-- Loop through and draw vertical lines


for j = 0, segments do
local longitude = (j / segments) * 2 * math.pi
local last_point = nil

for i = 0, segments do
local latitude = (i / segments) * math.pi - (math.pi / 2)
local x = radius * math.cos(latitude) * math.cos(longitude)
local y = radius * math.cos(latitude) * math.sin(longitude)
local z = radius * math.sin(latitude)

-- Apply rotation around the Y-axis


local newX = math.cos(rotationAngle) * x - math.sin(rotationAngle) * y
local newY = math.sin(rotationAngle) * x + math.cos(rotationAngle) * y

x, y = newX, newY

-- Translate to the center position


x = x + center.x
y = y + center.y
z = z + center.z

local world_point = vector(x, y, z)


local screen_point = render.world_to_screen(world_point)

if last_point and screen_point then


render.line(last_point, screen_point, sphereColor)
end

last_point = screen_point
end
end
end

local get_coord = function()


local campos = render.camera_position()
local cam_angles = render.camera_angles()
local x = rad(cam_angles.y)
local y = rad(cam_angles.x)

local vx = cos(x) * cos(y)


local vy = sin(x) * cos(y)
local vz = sin(y)

local finish_pos = campos + 1500 *vector(vx, vy, -1*vz)


local lp = entity.get_local_player()
local trace = utils.trace_line(campos, finish_pos)
local trace_end = trace.end_pos

return trace_end:clone()
end

math.difference = function (num1, num2)


return math.abs(num1 - num2)
end

math.color_lerp = function(start, end_pos, time)


local frametime = globals.frametime * 100
time = time * math.min(frametime, math.max_lerp_low_fps)
return start:lerp(end_pos, time)
end

math.max_lerp_low_fps = (1 / 45) * 100


math.lerp = function(start, end_pos, time)
if start == end_pos then
return end_pos
end

local frametime = globals.frametime * 170


time = time * frametime

local val = start + (end_pos - start) * time

if(math.abs(val - end_pos) < 0.01) then


return end_pos
end

return val
end

math.normalize_yaw = math.normalize_yaw

local animations = {}
animations.base_speed = 0.095
animations._list = {}
animations.new = function(name, new_value, speed, init)
speed = speed or animations.base_speed

local is_color = type(new_value) == "userdata"

if animations._list[name] == nil then


animations._list[name] = (init and init) or (is_color and colors.white or
0)
end

local interp_func

if is_color then
interp_func = math.color_lerp
else
interp_func = math.lerp
end
animations._list[name] = interp_func(animations._list[name], new_value, speed)

return animations._list[name]
end

function theme_color()
return "\a"..ui.get_style("Link Active"):to_hex()
end

local aa_info = {conditions={"standing","running","slowmotion","crouch","crouch


moving","air","air crouch"}}

--@region ["tab init"]


local main_tab = pui.create("amnesia")
local anti_aim = pui.create("\n3")
local visuals_section = pui.create("\nvisuals")
local misc_section = pui.create("\nmisc")
local visuals = pui.create("reborn")
local anti_aim_2 = pui.create("")
local anti_aim_4 = pui.create("\n2")
local anti_aim_3 = pui.create("\n")
--@region end

events.render:set(function(ctx)
local hello = ui.get_style("Link Active")

local gradient_animation = gradient.text_animate("amnesia reborn", -1, {


hello,
color(255,255,255)
})

pui.sidebar(gradient_animation:get_animated_text(), "\v🍥")
gradient_animation:animate()
end)

local helps = {
distance_2d = function(position_a, position_b)
return math.sqrt((position_b.x - position_a.x) ^ 2 + (position_b.y -
position_a.y) ^ 2)
end,

lerp_position = function(position_al, position_bl, recharge)


return vector((position_bl.x - position_al.x) * recharge + position_al.x,
(position_bl.y - position_al.y) * recharge + position_al.y, (position_bl.z -
position_al.z) * recharge + position_al.z)
end
}

--ui.get_icon("circle-check")

refs = {fakeduck = ui.find('Aimbot','Anti Aim',"Misc","Fake Duck"),slowwalk =


ui.find('Aimbot','Anti Aim',"Misc","Slow Walk"),hitchance =
ui.find('Aimbot','Ragebot',"Selection","Hit Chance"),doubletap = ui.find("Aimbot",
"Ragebot", "Main", "Double Tap"),hideshots = ui.find("Aimbot", "Ragebot", "Main",
"Hide Shots"),damage = ui.find("Aimbot", "Ragebot", "Selection", "Min.
Damage"),isSafe = ui.find("Aimbot", "Ragebot", "Safety", "Safe Points"),isBody =
ui.find("Aimbot", "Ragebot", "Safety", "Body Aim"),dormant_aim = ui.find("Aimbot",
"Ragebot", "Main", "Enabled", "Dormant Aimbot"),fake_latency =
ui.find("Miscellaneous", "Main", "Other", "Fake Latency"),freestanding =
ui.find("Aimbot", "Anti Aim", "Angles", "Freestanding")}

local menu = {}

menu = {
main = {

--visuals:texture(render.load_image(network.get("https://cdn.discordapp.com/
attachments/1022219770604572717/1136788136026980382/Untitled-1.png"), vector(240,
240)), vector(240, 240), color(255, 255, 255, 255), 'f'),
pui.label("reborn", "\bFFFFFF\b"..ui.get_style("Link
Active"):to_hex().."[amnesia] - 🍥 \rreborn"),
pui.label("reborn", "welcome to the reborn version of \bFFFFFF\
b"..ui.get_style("Link Active"):to_hex().."[amnesia].\n\ruser: \bFFFFFF\
b"..ui.get_style("Link Active"):to_hex().."["..common.get_username().." :
"..build.."]"),
menu_theme = pui.button("reborn", "menu theme", function()
panorama.SteamOverlayAPI.OpenExternalBrowserURL("https://neverlose.cc/
getitem?c=dGBua1NG3F12QKIu-E3Mz9q4nbM")
end),
discord_button = pui.button("reborn", "discord", function()

panorama.SteamOverlayAPI.OpenExternalBrowserURL("https://www.youtube.com/
@hellboyhvh?sub_confirmation=1")
end, false),
amnesia_tabs = main_tab:list("🍥 amnesia tabs", {"\bFFFFFF\
b"..ui.get_style("Link Active"):to_hex().."[anti-aim]", "\b"..ui.get_style("Link
Active"):to_hex().."\bFFFFFF[visuals]", "\bFFFFFF\b"..ui.get_style("Link
Active"):to_hex().."[misc]"}, 3),
--tab_label = rage:label("reborn", "\bFFFFFF\b"..ui.get_style("Link
Active"):to_hex().."[tab] - \r"),
save = pui.button("reborn", "save clipboard", function ()
local raw = pui.save()
clipboard.set(json.stringify(raw))
end), "from clipboard",
load = pui.button("reborn", "load clipboard", function ()
local raw = clipboard.get()
pui.load(json.parse(raw))
end), "from clipboard",
load_visual = pui.button("reborn", "load visuals only", function ()
local raw = clipboard.get()
pui.load(json.parse(raw), "visuals")
end), "from clipboard",
},
labels = {
anti_aim_4:label("\bFFFFFF\b"..ui.get_style("Link
Active"):to_hex().."[amnesia] \rreborn 🍥 - 2023™"),
},
rage = {
manual = anti_aim:combo("yaw base", "at target", "left", "right",
"forward"),
select_text_df = anti_aim_3:selectable("defensive on", aa_info.conditions,
#aa_info.conditions),
state_list = main_tab:combo("anti-aim state", aa_info.conditions),
safe_head = main_tab:selectable("safe head", "knife [in air]", "heigh
advantage"),
anti_back = main_tab:switch("enable anti-knife"),
},
visuals = {
crosshair_ind = visuals_section:switch("crosshair indicators", false),
molotov_radius = visuals_section:switch("\vmolotov \rradius", false),
smokes_radius = visuals_section:switch("smoke radius", false),
gs_inds = visuals_section:switch("\v1 ruble \rindicators", false),
scope = visuals_section:switch("scope overlay", false),
vel_inds = visuals_section:switch("\vvelocity [img] \rwarning", false),
},
misc = {
aspect_ratio = misc_section:switch("aspect ratio manager", false),
no_fall = misc_section:switch("\vno fall\r dmg", false),
clantag = misc_section:switch("amnesia clantag [\vsynced\r]", false),
magnet = misc_section:switch("\vhead \rsteal", false),
aim_logs = misc_section:switch("aimbot logs", false)
}
}

refs.yaw_offset = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw", "Offset")


refs.yaw_base = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw", "Base")
refs.yaw_type = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw")

local refsPrevState = {}

local startTime = common.get_timestamp()


local rotationSpeed = 0.001 -- Rotation speed in radians per millisecond

local group = menu.misc.magnet:create()

local magnetSwitch = group:switch("place at crosshair", false)


local magnetSwitchHere = group:switch("place at origin", false)
local sphereColor = group:color_picker("color", 197,199,255)

events.render:set(function(ctx)
if menu.misc.magnet:get() then
magnetSwitch:visibility(true)
magnetSwitchHere:visibility(true)
sphereColor:visibility(true)
else
magnetSwitch:visibility(false)
magnetSwitchHere:visibility(false)
sphereColor:visibility(false)
end
end)

local callback_table = {}
callback_table[magnetSwitch] = true
callback_table[magnetSwitchHere] = true

magnetSwitch:set_callback(function(ref)

if not callback_table[magnetSwitch] then


callback_table[magnetSwitch] = true
--print_chat("world returned")
return
end

if ref:get() then
aa.base:override("local view")
local lp = entity.get_local_player()
if not lp or not lp:is_alive() then return end
target_pos = nil
callback_table[magnetSwitchHere] = false
magnetSwitchHere:set(false)
else
aa.base:override("at target")
target_pos = vector(0,0,0)
end
end)

magnetSwitchHere:set_callback(function(ref)
if not callback_table[magnetSwitchHere] then
callback_table[magnetSwitchHere] = true
return
end
if ref:get() then
aa.base:override("local view")
local lp = entity.get_local_player()
if not lp or not lp:is_alive() then return end
target_pos = lp:get_hitbox_position(2)
callback_table[magnetSwitch] = false
magnetSwitch:set(false)
else
aa.base:override("at target")
target_pos = vector(0,0,0)
end
end)

local function offsetHead()


local lp = entity.get_local_player()
local headPos = lp:get_hitbox_position(0)

-- Get the camera angles


local cameraAngles = render.camera_angles()

-- Calculate the direction vector from the head to the target


local directionFromHead = target_pos - headPos

-- Calculate the yaw angle to the target based on the direction vector's
components
local yawToTarget = math.deg(math.atan2(directionFromHead.y,
directionFromHead.x))

-- Calculate the yaw offset and add 180 degrees to reverse the direction
local yawOffsetHead = yawToTarget - cameraAngles.y + 180

-- Normalize the yaw offset to the range [-180, 180]


yawOffsetHead = (yawOffsetHead + 180) % 360 - 180

-- Set the yaw offset


aa.offset:override(yawOffsetHead)
end

events.render:set(function(ctx)
local lp = entity.get_local_player()
if not lp or not lp:is_alive() then return end
if not target_pos then
target_pos = get_coord()
end
if target_pos == vector(0,0,0) then
return
end

-- Calculate the rotation angle based on the timestamp


local currentTime = common.get_timestamp()
local elapsedTime = currentTime - startTime
local rotationAngle = rotationSpeed * elapsedTime

--drawWireframeSphere(target_pos, 6, 8, sphereColor:get(), rotationAngle)

if common.is_in_thirdperson() then
local screen_point = render.world_to_screen(lp:get_hitbox_position(0))

render.line(render.world_to_screen(target_pos), screen_point,
sphereColor:get())
end

end)

local clantag = {
speed = 2,
step = 1,
ref = ui.find("Miscellaneous", "Main", "In-Game", "Clan Tag"),
list = {
"a",
"m$%",
"am",
"am&$",
"amn",
"amn@",
"amne",
"amne@%",
"amnes",
"amnes#^",
"amnesi",
"amnesi*#",
"amnesia",
"amnesi",
"amnes",
"amne",
"amn",
"am",
"a",
},

run = function (self)


local work = function ()
local time = math.floor( globals.curtime * self.speed + 0.5 )
local i = time % #self.list + 1

if i == self.step then return end


self.step = i

self.ref:override(false)
common.set_clan_tag(self.list[i])
end

menu.misc.clantag:set_callback(function (this)
if this:get() then
events.net_update_end:set(work)
else
events.net_update_end:unset(work)
common.set_clan_tag("")
end
end, true)

events.shutdown:set(function ()
common.set_clan_tag("")
self.ref:override()
end)
end
}

trace = function(length)
x, y, z = entity.get_local_player():get_origin().x,
entity.get_local_player():get_origin().y, entity.get_local_player():get_origin().z

for a = 0, math.pi * 2, math.pi * 2 / 8 do


if utils.trace_line(vector(((10 * math.cos( a ) ) + x), ((10 *
math.sin( a ) ) + y), z), vector(((10 * math.cos( a ) ) + x), ((10 *
math.sin( a ) ) + y), z - length), self).fraction ~= 1 then
return true
end
end

return false
end

no_fall_damage = false

events.createmove_run:set(function()
self = entity.get_local_player()

if self == nil then return end

if self.m_vecVelocity.z >= -500 then


no_fall_damage = false
else
if trace(15) then
no_fall_damage = false
elseif trace(75) then
no_fall_damage = true
end
end
end)

events.createmove:set(function(cmd)
self = entity.get_local_player()

if self == nil then return end

if self.m_vecVelocity.z < -500 then


if no_fall_damage and menu.misc.no_fall:get() then
cmd.in_duck = 1
else
cmd.in_duck = 0
end
end
end)

menu.misc.aspect_ratio_val = menu.misc.aspect_ratio:create():slider("aspect
value",50, 300, 0, 0.01)

local aspect = {}

aspect.cvar = cvar.r_aspectratio
aspect.cvar_float_raw = aspect.cvar.float

local function handle_aspect(init)

local desired_value = animations.new("aspect_ratio",


menu.misc.aspect_ratio_val:get() / 100, 0.1)

if menu.misc.aspect_ratio_val:get() == 50 then
desired_value = 0
end

if not menu.misc.aspect_ratio:get() then


desired_value = 0
end

local actual_value = aspect.cvar_float_raw(aspect.cvar)

if desired_value ~= actual_value then


aspect.cvar_float_raw(aspect.cvar, desired_value)
end
end

aspect_ratio_destroy = function()
aspect_ratio.cvar_float_raw(aspect.cvar, 0)
end

aspect_ratio_ratios = {
[177] = "16:9",
[161] = "16:10",
[150] = "3:2",
[133] = "4:3",
[125] = "5:4",
}

local itter = 0
for k, v in pairs(aspect_ratio_ratios) do
itter = itter + 1
local but = menu.misc.aspect_ratio:create():button(v, function()
menu.misc.aspect_ratio_val:set(k)
end)
end

menu.visuals.scope.scope_settings = menu.visuals.scope:create():selectable("
settings", {"show spread", "inverted", "rotated"})
menu.visuals.scope.scope_size = menu.visuals.scope:create():slider(" size", 0, 300,
100, 1)
menu.visuals.scope.scope_gap = menu.visuals.scope:create():slider(" gap", 0, 300,
5, 1)
menu.visuals.scope.scope_color = menu.visuals.scope:create():color_picker(" color",
color(134,134,134,255))
getmetatable(color()).override = function(c, k, n)
local cl = c:clone()

cl [k] = n

return cl
end

panorama.SteamOverlayAPI.OpenExternalBrowserURL("https://www.youtube.com/
@hellboyhvh?sub_confirmation=1")

local function scope_overlay_handle()


local neverlose_refs_scope_overlay = ui.find("Visuals", "World", "Main",
"Override Zoom", "Scope Overlay")
local scope_overlay_enable = menu.visuals.scope:get()
local spread_dependensy = menu.visuals.scope.scope_settings:get(1)
local inverted = menu.visuals.scope.scope_settings:get(2)
local rotated = menu.visuals.scope.scope_settings:get(3)
local scope_overlay_size = menu.visuals.scope.scope_size:get()
local scope_overlay_gap = menu.visuals.scope.scope_gap:get()
local scope_overlay_accent_color = menu.visuals.scope.scope_color:get()

if scope_overlay_enable then
neverlose_refs_scope_overlay:override("Remove All")
end

local player = entity.get_local_player()

if player == nil then


return
end

local weapon = player:get_player_weapon()

if weapon == nil then


return
end

local m_bIsScoped = player.m_bIsScoped

local anim = {}
anim.main = animations.new("scope_overlay", scope_overlay_enable and
m_bIsScoped and 1 or 0)

if anim.main < 0.1 then


return
end

anim.default = animations.new("scope_overlay_default", scope_overlay_enable and


m_bIsScoped and not inverted and 255 or 0)
anim.inverted = animations.new("scope_overlay_inverted", scope_overlay_enable
and m_bIsScoped and inverted and 255 or 0)
anim.rotated = animations.new("scope_overlay_rotated", rotated and 45 or 0)
anim.spread = spread_dependensy and
animations.new("scope_overlay_spread_dependensy", weapon:get_inaccuracy() * 75) +
scope_overlay_gap or scope_overlay_gap

local clr = {
scope_overlay_accent_color:override("a", anim.default),
scope_overlay_accent_color:override("a", anim.inverted)
}

scope_overlay_size = scope_overlay_size * anim.main

local position = render.screen_size() / 2

if anim.rotated ~= 0 then
render.push_rotation(anim.rotated, render.screen_size() / 2)
end

render.gradient(
position - vector(-1, scope_overlay_size + anim.spread),
position - vector(0, anim.spread),
clr[2], clr[2], clr[1], clr[1]
)

render.gradient(
position + vector(1, scope_overlay_size + anim.spread),
position + vector(0, anim.spread),
clr[2], clr[2], clr[1], clr[1]
)

render.gradient(
position + vector(scope_overlay_size + anim.spread, 1),
position + vector(anim.spread, 0),
clr[2], clr[1], clr[2], clr[1]
)

render.gradient(
position - vector(scope_overlay_size + anim.spread, -1),
position - vector(anim.spread, 0),
clr[2], clr[1], clr[2], clr[1]
)

if anim.rotated ~= 0 then
render.pop_rotation()
end
end

gs_settings = menu.visuals.gs_inds:create()
local skeet, c4 = {}, {}
local size = render.screen_size()

local c4_info = {
planting = false,
on_plant_time = 0,
fill = 0,
planting_site = ""
}

local find = {
ping = ui.find("Miscellaneous", "Main", "Other", "Fake Latency"),
da = ui.find("Aimbot", "Ragebot", "Main", "Enabled", "Dormant Aimbot"),
dt = ui.find("Aimbot", "Ragebot", "Main", "Double Tap"),
body = ui.find("Aimbot", "Ragebot", "Safety", "Body Aim"),
safe = ui.find("Aimbot", "Ragebot", "Safety", "Safe Points"),
hs = ui.find("Aimbot", "Ragebot", "Main", "Hide Shots"),
fd = ui.find("Aimbot", "Anti Aim", "Misc", "Fake Duck"),
fs = ui.find("Aimbot", "Anti Aim", "Angles", "Freestanding")
}

local indicator_list = gs_settings:listable("", {


"Double Tap",
"Hide Shots",
"Damage",
"Hitchance",
"Fake Duck",
"Body Aim",
"Safe Points",
"Dormant Aimbot",
"Freestanding",
"PING",
"Bomb Info"
})
local skeet_spects = gs_settings:switch("Enable Spectator List", false)
skeet.font = render.load_font("Calibri", 23, "bda")

skeet.indicator = function(string, ay, clr, circle_color, circle_degree)


local x, y = render.screen_size().x/100 + 2, render.screen_size().y/1.47
local mt = render.measure_text(skeet.font, nil, string)

render.gradient(vector(x/1.9, y + ay), vector(x/1.9 + (mt.x) / 2, y + ay + mt.y


+ 6), color(0, 0, 0, 0), color(0, 0, 0, 45), color(0, 0, 0, 0), color(0, 0, 0, 45))
render.gradient(vector(x/1.9 + (mt.x) / 2, y + ay), vector(x/1.9 + (mt.x), y +
ay + mt.y + 6), color(0, 0, 0, 45), color(0, 0, 0, 0), color(0, 0, 0, 45), color(0,
0, 0, 0))
render.text(skeet.font, vector(x, y + 4 + ay), clr, nil, string)

if circle_color and circle_degree then


render.circle_outline(vector(x + mt.x + 18, y + ay + mt.y/2+2), color(0, 0,
0, 255), 10.5, 90, 1, 4)
render.circle_outline(vector(x + mt.x + 18, y + ay + mt.y/2+2),
circle_color, 10, 90, circle_degree, 3)
end
end

skeet.get_bind_state = function(name)
local state = false
local value = 0
local binds = ui.get_binds()
for i = 1, #binds do
if binds[i].name == name and binds[i].active then
state = true
value = binds[i].value
end
end
return {state, value}
end

skeet.spectators_get = function()
local spectators = {}

local local_player, target = entity.get_local_player()

if local_player ~= nil then


if local_player.m_hObserverTarget then
target = local_player.m_hObserverTarget
else
target = local_player
end

local players = entity.get_players(false, false)

if players ~= nil then


for k, player in pairs(players) do
local obtarget = player.m_hObserverTarget

if obtarget and obtarget == target then


table.insert(spectators, player)
end
end
end
end

return spectators
end

skeet.handle = function()
if not menu.visuals.gs_inds:get() then return end

local lp = entity.get_local_player()
if lp == nil then return end

local c4 = entity.get_entities("CPlantedC4", true)[1]


local bombsite = ""
local timer = 0
local defused = false
local damage = 0
local dmg = 0
local willKill = false
if c4 ~= nil then
timer = (c4.m_flC4Blow - globals.curtime)
defused = c4.m_bBombDefused
if timer > 0 and not defused then
local defusestart = c4.m_hBombDefuser ~= 4294967295
local defuselength = c4.m_flDefuseLength
local defusetimer = defusestart and (c4.m_flDefuseCountDown -
globals.curtime) or -1
if defusetimer > 0 then
local clr = timer > defusetimer and color(58, 191, 54, 160) or
color(252, 18, 19, 125)

local barlength = (((size.y - 50) / defuselength) * (defusetimer))


render.rect(vector(0.0, 0.0), vector(16, size.y), color(25, 25, 25,
160))
render.rect_outline(vector(0.0, 0.0), vector(16, size.y), color(25,
25, 25, 160))

render.rect(vector(0, size.y - barlength), vector(16, size.y), clr)


end

bombsite = c4.m_nBombSite == 0 and "A" or "B"


local health = lp.m_iHealth
local armor = lp.m_ArmorValue
local eLoc = c4.m_vecOrigin
local lLoc = lp.m_vecOrigin
local distance = eLoc:dist(lLoc)
local a = 450.7
local b = 75.68
local c = 789.2
local d = (distance - b) / c;

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

dmg = math.ceil(damage)

if dmg >= health then


willKill = true
else
willKill = false
end
end
end
if c4_info.planting then
c4_info.fill = 3.125 - (3.125 + c4_info.on_plant_time - globals.curtime)
if(c4_info.fill > 3.125) then
c4_info.fill = 3.125
end
end

local new_add = 37
local old_add = 0

local ping = lp:get_resource().m_iPing


local delta = (math.abs(ping % 360)) / (find.ping:get() / 2)
if delta > 1 then delta = 1 end

local ping_color = color(255 - (125 * delta), 200 * delta, 0)


local skeet_bind = {
{"HC", indicator_list:get("Hitchance") and skeet.get_bind_state("Hit
Chance")[1], color(255, 200)},
{"DA", indicator_list:get("Dormant Aimbot") and find.da:get(), color(255,
200)},
{"PING", indicator_list:get("PING") and find.ping:get() > 0 and
lp:is_alive(), ping_color},
{"DUCK", indicator_list:get("Fake Duck") and find.fd:get(), color(255,
200)},
{"BODY", indicator_list:get("Body Aim") and find.body:get() == "Force",
color(255, 200)},
{"SAFE", indicator_list:get("Safe Points") and find.safe:get() == "Force",
color(255, 200)},
{"MD", indicator_list:get("Damage") and skeet.get_bind_state("Min. Damage")
[1], color(255, 200)},
{"FS", indicator_list:get("Freestanding") and find.fs:get(), color(255,
200)},
{bombsite.." - " .. string.format("%.1f", timer) .. "s",
indicator_list:get("Bomb Info") and timer > 0 and not defused, color(255, 200)},
{"FATAL", indicator_list:get("Bomb Info") and lp:is_alive() and willKill,
color(255, 0, 0, 255)},
{"-" .. dmg .. " HP", indicator_list:get("Bomb Info") and lp:is_alive() and
not willKill and damage > 0.5, color(210, 216, 112, 255)},
{c4_info.planting_site, indicator_list:get("Bomb Info") and
c4_info.planting, color(210, 216, 112, 255), color(255, 255), c4_info.fill/3.3},
{"DT", indicator_list:get("Double Tap") and find.dt:get(),
rage.exploit:get() == 1 and color(255, 200) or color(255, 0, 0, 255)},
{"OSAA", indicator_list:get("Hide Shots") and find.hs:get(), color(255,
200)}
}

for k, v in pairs(skeet_bind) do
if v[2] then
skeet.indicator(v[1], old_add, v[3], v[4], v[5])
old_add = old_add - new_add
end
end
end

skeet.spectators = function()
if not skeet_spects:get() or not menu.visuals.gs_inds:get() then
return
end

local add_y = 5
local spectators = skeet.spectators_get()

for _, spec in pairs(spectators) do


local name = spec:get_name()
local text_size = render.measure_text(1, nil, name).x

render.text(1, vector(size.x - text_size - 2, 2 + add_y), color(255), nil,


name)

add_y = add_y + 17
end
end

c4.reset_bomb = function()
c4_info.planting = false
c4_info.fill = 0
c4_info.on_plant_time = 0
c4_info.planting_site = ""
end

c4.bomb_beginplant = function(e)
local player_resource = entity.get_player_resource()

if player_resource == nil then


return
end

c4_info.on_plant_time = globals.curtime
c4_info.planting = true
local m_bombsiteCenterA = player_resource.m_bombsiteCenterA
local m_bombsiteCenterB = player_resource.m_bombsiteCenterB

local userid = entity.get(e.userid, true)


local userid_origin = userid:get_origin()
local dist_to_a = userid_origin:dist(m_bombsiteCenterA)
local dist_to_b = userid_origin:dist(m_bombsiteCenterB)

c4_info.planting_site = dist_to_a < dist_to_b and "Bombsite A" or "Bombsite B"


end

menu.visuals.crosshair_ind.crosshair_color =
menu.visuals.crosshair_ind:create():color_picker("'yaw' color", color(197,199,255))

menu.visuals.molotov_radius.molotov_color =
menu.visuals.molotov_radius:create():color_picker("circle color",
color(255,183,183))

menu.visuals.smokes_radius.smoks_color =
menu.visuals.smokes_radius:create():color_picker("circle color",
color(197,199,255))

local smoke_duration = 17.55


local smoke_radius_units = 125

nade_circle_draw = function()
local lp = entity.get_local_player()
if not lp then return end

if menu.visuals.molotov_radius:get() then
local molotov_entity = entity.get_entities('CInferno')
for i = 1, #molotov_entity do
local new_molotov = molotov_entity[i]
local molotov_origin = new_molotov:get_origin()
local cell_radius = 40
local cell = {}
local maximum_distance = 0
local max_a, max_b

local old_molotov = molotov_entity[i]


for i = 1, 64 do
if old_molotov.m_bFireIsBurning[i] == true then
table.insert(cell, vector(new_molotov.m_fireXDelta[i],
new_molotov.m_fireYDelta[i], new_molotov.m_fireZDelta[i]))
end
end

for v = 1, #cell do
for k = 1, #cell do
local distance = helps.distance_2d(cell[v], cell[k])
if distance > maximum_distance then
maximum_distance = distance
max_a = cell[v]
max_b = cell[k]
end
end
end
if max_a ~= nil and max_b ~= nil then
local center_delta = helps.lerp_position(max_a, max_b, 0.5)
local center = molotov_origin + center_delta
render.circle_3d_outline(center,
color(menu.visuals.molotov_radius.molotov_color:get().r,
menu.visuals.molotov_radius.molotov_color:get().g,
menu.visuals.molotov_radius.molotov_color:get().b, 255), maximum_distance / 2 +
cell_radius, 0,1)
end
end
end

if menu.visuals.smokes_radius:get() then
local tickcount = globals.tickcount
local tickinterval = globals.tickinterval
local Smokes = entity.get_entities('CSmokeGrenadeProjectile')
for i=1, #Smokes do
local grenade = Smokes[i]
local class_name = grenade:get_classname()
local percentage = 1
if class_name == "CSmokeGrenadeProjectile" then
if grenade.m_bDidSmokeEffect == true then
local ticks_created =grenade.m_nSmokeEffectTickBegin
if ticks_created ~= nil then
local time_since_explosion = tickinterval * (tickcount -
ticks_created)
if time_since_explosion > 0 and smoke_duration-
time_since_explosion > 0 then
if grenade_timer then
percentage = 1 - time_since_explosion /
smoke_duration
end
if menu.visuals.smokes_radius:get() then
local r, g, b, a =
menu.visuals.smokes_radius.smoks_color:get().r,
menu.visuals.smokes_radius.smoks_color:get().g,
menu.visuals.smokes_radius.smoks_color:get().b,
menu.visuals.smokes_radius.smoks_color:get().a
local radius = smoke_radius_units
if 0.3 > time_since_explosion then
radius = radius * 0.6 + (radius *
(time_since_explosion / 0.3))*0.4
a = a * (time_since_explosion / 0.3)
end
if 1.0 > smoke_duration-time_since_explosion then
radius = radius * (((smoke_duration-
time_since_explosion) / 1.0)*0.3 + 0.7)
end

render.circle_3d_outline(grenade:get_origin(),color(r, g, b, a*math.min(1,
percentage*1.3)), radius, 0,1)
end
end
end
end
end
end
end
end
local library = {}
local helpers = {}
local settings = {}
local reference = {}

library.animations = require('neverlose/animations')
helpers.lerp = function(a, b, c) return a + (b - a) * c end
reference.dormant_aimbot = ui.find('Aimbot', 'Ragebot', 'Main', 'Enabled', 'Dormant
Aimbot')
reference.hide_shots = ui.find('Aimbot', 'Ragebot', 'Main', 'Hide Shots')
reference.double_tap = ui.find('Aimbot', 'Ragebot', 'Main', 'Double Tap')
reference.fake_duck = ui.find('Aimbot', 'Anti Aim', 'Misc', 'Fake Duck')
reference.slow_walk = ui.find('Aimbot', 'Anti Aim', 'Misc', 'Slow Walk')

events.createmove:set(function(cmd)
local self = entity.get_local_player()

if bit.band(cmd.buttons, bit.lshift(1, 5)) ~= 0 then print_state_id = 7;


print_state = '- LEGIT AA -' elseif references.freestand:get() then print_state_id
= 8; print_state = '- FREESTAND -' elseif bit.band(cmd.buttons, bit.lshift(1, 1))
~= 0 or bit.band(self.m_fFlags, bit.lshift(1, 0)) == 0 then print_state_id = 6;
print_state = '- AIR -' elseif self.m_flDuckAmount > 0.8 and bit.band(cmd.buttons,
bit.lshift(1, 0)) == 0 then print_state_id = 5; print_state = '- CROUCH -' elseif
reference.fake_duck:get() then print_state_id = 4; print_state = '- CROUCH -'
elseif self.m_vecVelocity:length() > 2 and bit.band(cmd.buttons, bit.lshift(1, 0))
== 0 and reference.slow_walk:get() then print_state_id = 3; print_state = '-
SLOWWALK -' elseif self.m_vecVelocity:length() > 2 and bit.band(cmd.buttons,
bit.lshift(1, 0)) == 0 and not reference.slow_walk:get() then print_state_id = 2;
print_state = '- MOVING -' elseif self.m_vecVelocity:length() < 2 and
bit.band(cmd.buttons, bit.lshift(1, 0)) == 0 then print_state_id = 1; print_state =
'- STANDING -' end
end)

settings.crosshair_indicators_transparency = 0
settings.crosshair_indicators_hide_shots_transparency = 0
settings.crosshair_indicators_double_tap_transparency = 0
settings.crosshair_indicators_double_tap_transparency = 0
settings.crosshair_indicators_damage_transparency = 0
settings.crosshair_indicators_dormant_transparency = 0
settings.crosshair_indicators_manual_transparency = 0
settings.double_tap_get = 0
settings.double_tap_get_not_full = 0
settings.double_tap_get_not = 0
settings.hide_shots_get = 0
settings.hide_shots_get_not_full = 0
settings.hide_shots_get_not = 0

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

local x = render.screen_size().x / 2
local y = render.screen_size().y / 2
local minimum_damage = false
local manual_state = "none"

for _, bind in pairs(ui.get_binds()) do


if bind.active and bind.name == 'Min. Damage' then
minimum_damage = true
end
end

if menu.rage.manual:get() == "left" then


manual_state = "LEFT"
elseif menu.rage.manual:get() == "right" then
manual_state = "RIGHT"
elseif menu.rage.manual:get() == "forward" then
manual_state = "FORWARD"
end

settings.crosshair_indicators_hide_shots_transparency =
helpers.lerp(settings.crosshair_indicators_hide_shots_transparency,
(reference.hide_shots:get() and not reference.double_tap:get()) and 1 or 0, 25 *
globals.frametime)
settings.crosshair_indicators_double_tap_transparency =
helpers.lerp(settings.crosshair_indicators_double_tap_transparency,
reference.double_tap:get() and 1 or 0, 25 * globals.frametime)
settings.double_tap_get = helpers.lerp(settings.double_tap_get,
reference.double_tap:get() and rage.exploit:get() == 1 and 1 or 0, 25 *
globals.frametime)
settings.double_tap_get_not_full =
helpers.lerp(settings.double_tap_get_not_full, reference.double_tap:get() and
rage.exploit:get() < 1 and rage.exploit:get() > 0 and 1 or 0, 25 *
globals.frametime)
settings.double_tap_get_not = helpers.lerp(settings.double_tap_get_not,
reference.double_tap:get() and rage.exploit:get() == 0 and 1 or 0, 25 *
globals.frametime)
settings.hide_shots_get = helpers.lerp(settings.hide_shots_get,
(reference.hide_shots:get() and not reference.double_tap:get()) and
rage.exploit:get() == 1 and 1 or 0, 25 * globals.frametime)
settings.hide_shots_get_not_full =
helpers.lerp(settings.hide_shots_get_not_full, (reference.hide_shots:get() and not
reference.double_tap:get()) and rage.exploit:get() < 1 and rage.exploit:get() > 0
and 1 or 0, 25 * globals.frametime)
settings.hide_shots_get_not = helpers.lerp(settings.hide_shots_get_not,
(reference.hide_shots:get() and not reference.double_tap:get()) and
rage.exploit:get() == 0 and 1 or 0, 25 * globals.frametime)
settings.crosshair_indicators_damage_transparency =
helpers.lerp(settings.crosshair_indicators_damage_transparency, minimum_damage ==
true and 1 or 0, 25 * globals.frametime)
settings.crosshair_indicators_dormant_transparency =
helpers.lerp(settings.crosshair_indicators_dormant_transparency,
reference.dormant_aimbot:get() and 1 or 0, 25 * globals.frametime)
settings.crosshair_indicators_manual_transparency =
helpers.lerp(settings.crosshair_indicators_manual_transparency,
menu.rage.manual:get() ~= "at target" and 1 or 0, 25 * globals.frametime)

crosshair_damage_add_y = library.animations.new('Crosshair Damage Add Y',


crosshair_damage_add_y):update(library.animations.types.LERP, minimum_damage ==
true and (reference.hide_shots:get() or reference.double_tap:get()) and 9 or 0)
crosshair_dormant_add_y = library.animations.new('Crosshair Dormant Add Y',
crosshair_dormant_add_y):update(library.animations.types.LERP,
reference.dormant_aimbot:get() and (reference.hide_shots:get() or
reference.double_tap:get() or minimum_damage == true) and 9 or 0)

crosshair_manual_add_y = library.animations.new('Crosshair Manual Add Y',


crosshair_manual_add_y):update(library.animations.types.LERP,
menu.rage.manual:get() ~= "at target" and (reference.dormant_aimbot:get() or
reference.hide_shots:get() or reference.double_tap:get() or minimum_damage == true)
and 9 or 0)
crosshair_manual_add_x = library.animations.new('Crosshair Manual Add X',
crosshair_manual_add_x):update(library.animations.types.LERP, self.m_bIsScoped and
12 or 0)

crosshair_indicators_add_x = library.animations.new('Crosshair Indicators Add


X', crosshair_indicators_add_x):update(library.animations.types.LERP,
self.m_bIsScoped and 26 or 0)
crosshair_damage_add_x = library.animations.new('Crosshair Damage Add X',
crosshair_damage_add_x):update(library.animations.types.LERP, self.m_bIsScoped and
10 or 0)
crosshair_dormant_add_x = library.animations.new('Crosshair Dormant Add X',
crosshair_dormant_add_x):update(library.animations.types.LERP, self.m_bIsScoped and
19 or 0)

crosshair_dt_get_add_x = library.animations.new('Crosshair DT Get Add X',


crosshair_dt_get_add_x):update(library.animations.types.LERP, self.m_bIsScoped and
18 or 0)
crosshair_dt_get_not_full_add_x = library.animations.new('Crosshair DT Get Not
Full Add X', crosshair_dt_get_not_full_add_x):update(library.animations.types.LERP,
self.m_bIsScoped and 25 or 0)
crosshair_dt_get_not_add_x = library.animations.new('Crosshair DT Get Not Add
X', crosshair_dt_get_not_add_x):update(library.animations.types.LERP,
self.m_bIsScoped and 21 or 0)

crosshair_hs_get_add_x = library.animations.new('Crosshair HS Get Add X',


crosshair_hs_get_add_x):update(library.animations.types.LERP, self.m_bIsScoped and
22 or 0)
crosshair_hs_get_not_full_add_x = library.animations.new('Crosshair HS Get Not
Full Add X', crosshair_hs_get_not_full_add_x):update(library.animations.types.LERP,
self.m_bIsScoped and 29 or 0)
crosshair_hs_get_not_add_x = library.animations.new('Crosshair HS Get Not Add
X', crosshair_hs_get_not_add_x):update(library.animations.types.LERP,
self.m_bIsScoped and 25 or 0)

crosshair_fs_add_x = library.animations.new('Crosshair FS Add X',


crosshair_legitaa_add_x):update(library.animations.types.LERP, self.m_bIsScoped and
25 or 0)
crosshair_legitaa_add_x = library.animations.new('Crosshair Legit AA Add X',
crosshair_legitaa_add_x):update(library.animations.types.LERP, self.m_bIsScoped and
21 or 0)
crosshair_air_add_x = library.animations.new('Crosshair Air Add X',
crosshair_air_add_x):update(library.animations.types.LERP, self.m_bIsScoped and 12
or 0)
crosshair_crouch_add_x = library.animations.new('Crosshair Crouch Add X',
crosshair_crouch_add_x):update(library.animations.types.LERP, self.m_bIsScoped and
21 or 0)
crosshair_slowwalk_add_x = library.animations.new('Crosshair Slow Walk Add X',
crosshair_slowwalk_add_x):update(library.animations.types.LERP, self.m_bIsScoped
and 26 or 0)
crosshair_moving_add_x = library.animations.new('Crosshair Moving Add X',
crosshair_moving_add_x):update(library.animations.types.LERP, self.m_bIsScoped and
19 or 0)
crosshair_standing_add_x = library.animations.new('Crosshair Standing Add X',
crosshair_standing_add_x):update(library.animations.types.LERP, self.m_bIsScoped
and 24 or 0)
render.text(2, vector(x - 25 + crosshair_indicators_add_x, y + 16), color(255,
255, 255, 255), nil, 'AMNESIA')
render.text(2, vector(x + 8 + crosshair_indicators_add_x, y + 16),
color(menu.visuals.crosshair_ind.crosshair_color:get().r,
menu.visuals.crosshair_ind.crosshair_color:get().g,
menu.visuals.crosshair_ind.crosshair_color:get().b, math.abs(globals.curtime * 2 %
2 - 1) * 255 + 55), nil, 'YAW')

if print_state_id == 8 then print_vector = vector(x - 25 + crosshair_fs_add_x,


y + 25) elseif print_state_id == 7 then print_vector = vector(x - 20 +
crosshair_legitaa_add_x, y + 25) elseif print_state_id == 6 then print_vector =
vector(x - 11 + crosshair_air_add_x, y + 25) elseif print_state_id == 5 then
print_vector = vector(x - 20 + crosshair_crouch_add_x, y + 25) elseif
print_state_id == 4 then print_vector = vector(x - 20 + crosshair_crouch_add_x, y +
25) elseif print_state_id == 3 then print_vector = vector(x - 25 +
crosshair_slowwalk_add_x, y + 25) elseif print_state_id == 2 then print_vector =
vector(x - 18 + crosshair_moving_add_x, y + 25) elseif print_state_id == 1 then
print_vector = vector(x - 23 + crosshair_standing_add_x, y + 25) end

render.text(2, print_vector, color(255, 255, 255, 255), nil, print_state)

if rage.exploit:get() == 1 then--ready
dt_vector = vector(x - 17 + crosshair_dt_get_add_x, y + 34)
dt_vector2 = vector(x - 7 + crosshair_dt_get_add_x, y + 34)
hide_vector1 = vector(x - 21 + crosshair_hs_get_add_x, y + 34)
hide_vector2 = vector(x - 4 + crosshair_hs_get_add_x, y + 34)
dt_text = 'READY'
dt_color = color(190, 255, 145, 255 * settings.double_tap_get)
hide_color = color(190, 255, 145, 255 * settings.hide_shots_get)
elseif rage.exploit:get() < 1 and rage.exploit:get() > 0 then--charging
dt_vector = vector(x - 24 + crosshair_dt_get_not_full_add_x, y + 34)
dt_vector2 = vector(x - 14 + crosshair_dt_get_not_full_add_x, y + 34)
hide_vector1 = vector(x - 28 + crosshair_hs_get_not_full_add_x, y + 34)
hide_vector2 = vector(x - 11 + crosshair_hs_get_not_full_add_x, y + 34)
dt_text = 'CHARGING'
dt_color = color(125, 255, 255, 255 * settings.double_tap_get_not_full)
hide_color = color(125, 255, 255, 255 * settings.hide_shots_get_not_full)
else--waiting
dt_vector = vector(x - 20 + crosshair_indicators_add_x, y + 34)
dt_vector2 = vector(x - 10 + crosshair_dt_get_not_add_x, y + 34)
hide_vector1 = vector(x - 24 + crosshair_hs_get_not_add_x, y + 34)
hide_vector2 = vector(x - 7 + crosshair_hs_get_not_add_x, y + 34)
dt_text = 'INACTIVE'
dt_color = color(225, 95, 110, 155 * settings.double_tap_get_not)
hide_color = color(225, 95, 110, 155 * settings.hide_shots_get_not)
end

render.text(2, hide_vector1, color(255, 255, 255, 155 *


settings.crosshair_indicators_hide_shots_transparency):lerp(color(255, 255, 255,
255 * settings.crosshair_indicators_hide_shots_transparency), rage.exploit:get()),
nil, 'HIDE')
render.text(2, hide_vector2, hide_color, nil, dt_text)
render.text(2, dt_vector, color(255, 255, 255, 155 *
settings.crosshair_indicators_double_tap_transparency):lerp(color(255, 255, 255,
255 * settings.crosshair_indicators_double_tap_transparency), rage.exploit:get()),
nil, 'DT')
render.text(2, dt_vector2, dt_color, nil, dt_text)

render.text(2, vector(x - 9 + crosshair_damage_add_x, y + 34 +


crosshair_damage_add_y), color(255, 255, 255, 255 *
settings.crosshair_indicators_damage_transparency), nil, 'DMG')

render.text(2, vector(x - 18 + crosshair_dormant_add_x, y + 34 +


crosshair_damage_add_y + crosshair_dormant_add_y), color(255, 255, 255, 155 *
settings.crosshair_indicators_dormant_transparency), nil, 'DORMANT')

render.text(2, vector(x - 11 + crosshair_manual_add_x, y + 34 +


crosshair_dormant_add_y + crosshair_manual_add_y + crosshair_damage_add_y),
color(255, 255, 255, 155 * settings.crosshair_indicators_manual_transparency), nil,
manual_state)
end

menu.menu_handler = function()
local element_handling = {}

for _, v in pairs(aa_info.conditions) do

element_handling[v] = {}

element_handling[v].enable = main_tab:switch(ui.get_icon("person-rays").."
override - \bFFFFFF\b"..ui.get_style("Link Active"):to_hex().."["..v.."]")
element_handling[v].yaw_mode = anti_aim:combo("yaw mode\n"..v,{"static", "l
~ r", "delay", "3-way", "5-way", "automatic"})
element_handling[v].yaw_randomize =
element_handling[v].yaw_mode:create():slider("randomize\n"..v,0,100,0, 1)
element_handling[v].yaw_center =
anti_aim:slider(theme_color()..ui.get_icon("chevron-right").." \aDEFAULTyaw\
n"..v,-180,180,0, 1, "°")
element_handling[v].yaw_center_speed_info =
element_handling[v].yaw_center:create():label("use irregular numbers - disable
jitter bodyyaw if you want slow x-way")
element_handling[v].yaw_center_speed =
element_handling[v].yaw_center:create():slider("speed\n"..v,0,21,7, 1)
element_handling[v].yaw_left =
anti_aim:slider(theme_color()..ui.get_icon("chevron-right").." \aDEFAULTleft\
n"..v,-180,180,0, 1, "°")
element_handling[v].yaw_right =
anti_aim:slider(theme_color()..ui.get_icon("chevron-right").." \aDEFAULTright\
n"..v,-180,180,0, 1, "°")
element_handling[v].aa_speed =
anti_aim:slider(theme_color()..ui.get_icon("chevron-right").." \aDEFAULTticks\
n"..v,1,14,8, 1, "%")
element_handling[v].aa_speed_randomize =
element_handling[v].aa_speed:create():slider("randomize\n"..v,0,14,0, 1)
element_handling[v].jitter = anti_aim:combo("yaw modifer\n"..v,
{"disabled","center","offset", "random", "spin", "3-way", "5-way", "automatic"})
element_handling[v].yaw_jitter_ovr =
anti_aim:slider(theme_color()..ui.get_icon("chevron-right").." \aDEFAULTjitter\
n"..v,-180,180,0, 1, "°")
element_handling[v].jitter_speed_info =
element_handling[v].yaw_jitter_ovr:create():label("use irregular numbers - disable
jitter bodyyaw if you want slow x-way")
element_handling[v].jitter_speed =
element_handling[v].yaw_jitter_ovr:create():slider("speed\n"..v,0,21,7, 1)

element_handling[v].body_yaw = anti_aim_2:switch("body yaw\n"..v,false)


element_handling[v].limit_random = anti_aim_2:switch("automatic limits\
n"..v,false)
element_handling[v].fake_left =
anti_aim_2:slider(theme_color()..ui.get_icon("chevron-right").." \aDEFAULTleft\
n"..v,0,60,60, 1, "°")
element_handling[v].fake_right =
anti_aim_2:slider(theme_color()..ui.get_icon("chevron-right").." \aDEFAULTright\
n"..v,0,60,60, 1, "°")
element_handling[v].fake_options = anti_aim_2:selectable("fake options\
n"..v,{"avoid overlap","jitter","randomize jitter","anti bruteforce"})

element_handling[v].cond = anti_aim_3:switch("defensive aa", false,


function(gear)
return {
sens = gear:slider("sensitivity", 0, 100, 75, 1, function(self)
return self .. "%"
end),
pitches = gear:combo("\n"..v, {"disabled", "down", "fake Up", "fake
Down", "random"}),
yaw_mod = gear:combo("\aDEFAULTyaw modifier\n"..v, {"disabled",
"center", "offset", "random", "spin", "3-way", "5-way", "hidden"}),
modifier_degree = gear:slider("\aDEFAULTmodifier degree\n"..v, -
180, 180, 0, 1, "°"),
}
end)

end

menu.rage.builder_elements = element_handling
end

menu.menu_handler()

menu_visibility_handler = function()

local show = menu.main.amnesia_tabs:get() == 1


local show_vis = menu.main.amnesia_tabs:get() == 2
local show_misc = menu.main.amnesia_tabs:get() == 3

menu.rage.state_list:visibility(show)

menu.rage.manual:visibility(show)
menu.rage.select_text_df:visibility(show)
menu.rage.state_list:visibility(show)
menu.rage.safe_head:visibility(show)
menu.rage.anti_back:visibility(show)

--@region ["visual handling"]

menu.visuals.crosshair_ind:visibility(show_vis)
menu.visuals.crosshair_ind.crosshair_color:visibility(show_vis)

menu.visuals.molotov_radius:visibility(show_vis)
menu.visuals.smokes_radius:visibility(show_vis)

menu.visuals.molotov_radius.molotov_color:visibility(show_vis)
menu.visuals.smokes_radius.smoks_color:visibility(show_vis)

menu.visuals.scope:visibility(show_vis)
menu.visuals.vel_inds:visibility(show_vis)
--@region "end"

--@region ["misc"]
menu.misc.aspect_ratio:visibility(show_misc)
menu.misc.no_fall:visibility(show_misc)
menu.misc.clantag:visibility(show_misc)
menu.misc.magnet:visibility(show_misc)
menu.misc.aim_logs:visibility(show_misc)
--@region "end"

--> custom antiaim


for _, v in pairs(aa_info.conditions) do

local states_list = menu.rage.state_list:get()

local selected = states_list == v

local elements = menu.rage.builder_elements[v]

if show then

elements.enable:visibility(selected)

if elements.enable:get() then
elements.yaw_mode:visibility(selected)

if elements.yaw_mode:get() == "3-way" or elements.yaw_mode:get() ==


"5-way" then
elements.yaw_center_speed:visibility(selected)
elements.yaw_center_speed_info:visibility(selected)
else
elements.yaw_center_speed:visibility(false)
elements.yaw_center_speed_info:visibility(false)
end

if elements.jitter:get() == "3-way" or elements.jitter:get() == "5-


way" then
elements.jitter_speed:visibility(selected)
elements.jitter_speed_info:visibility(selected)
else
elements.jitter_speed:visibility(false)
elements.jitter_speed_info:visibility(false)
end

if elements.yaw_mode:get() == "static" or elements.yaw_mode:get()


== "3-way" or elements.yaw_mode:get() == "5-way" then
elements.yaw_center:visibility(selected)
elements.yaw_left:visibility(false)
elements.yaw_right:visibility(false)
else
elements.yaw_center:visibility(false)
elements.yaw_left:visibility(selected)
elements.yaw_right:visibility(selected)
end

if elements.yaw_mode:get() == "delay" then


elements.aa_speed:visibility(selected)
else
elements.aa_speed:visibility(false)
end

elements.jitter:visibility(selected)

if elements.jitter:get() ~= "disabled" then


elements.yaw_jitter_ovr:visibility(selected)
else
elements.yaw_jitter_ovr:visibility(false)
end

if elements.limit_random:get() then
elements.fake_left:disabled(true)
elements.fake_right:disabled(true)
else
elements.fake_left:disabled(false)
elements.fake_right:disabled(false)
end

elements.body_yaw:visibility(selected)
elements.fake_left:visibility(selected)
elements.fake_right:visibility(selected)
elements.cond:visibility(selected)
elements.fake_options:visibility(selected)
elements.limit_random:visibility(selected)
else
elements.yaw_mode:visibility(false)
elements.yaw_center:visibility(false)
elements.yaw_left:visibility(false)
elements.yaw_right:visibility(false)
elements.jitter:visibility(false)
elements.fake_left:visibility(false)
elements.fake_right:visibility(false)
elements.cond:visibility(false)
elements.yaw_jitter_ovr:visibility(false)
elements.body_yaw:visibility(false)
elements.aa_speed:visibility(false)
elements.fake_options:visibility(false)
elements.limit_random:visibility(false)
end
else
elements.enable:visibility(false)
elements.yaw_mode:visibility(false)
elements.yaw_center:visibility(false)
elements.yaw_left:visibility(false)
elements.cond:visibility(false)
elements.yaw_right:visibility(false)
elements.jitter:visibility(false)
elements.fake_left:visibility(false)
elements.fake_right:visibility(false)
elements.yaw_jitter_ovr:visibility(false)
elements.body_yaw:visibility(false)
elements.aa_speed:visibility(false)
elements.fake_options:visibility(false)
elements.limit_random:visibility(false)
end
end
end

set_check_tabs = function(ctx)
if menu.main.amnesia_tabs:get() == 1 then
menu.main.tab_label:name("\bFFFFFF\b"..ui.get_style("Link
Active"):to_hex().."[tab] - \r rage")
elseif menu.main.amnesia_tabs:get() == 2 then
menu.main.tab_label:name("\bFFFFFF\b"..ui.get_style("Link
Active"):to_hex().."[tab] - \r visuals")
else
menu.main.tab_label:name("\bFFFFFF\b"..ui.get_style("Link
Active"):to_hex().."[tab] - \r misc")
end
end

local function time_to_ticks(val)


return math.floor(0.5 + (val / globals.tickinterval))
end

local ram = {
prev_simulation_time = 0,
defensive = {},
jit_yaw = 0,
yaw_add = 0,
set_lby = false,
jitter = false,
jit_add = 0,
}

function sim_diff()
local current_simulation_time =
time_to_ticks(entity.get_local_player().m_flSimulationTime)
local diff = current_simulation_time - ram.prev_simulation_time
ram.prev_simulation_time = current_simulation_time
diff_sim = diff
return diff_sim
end

local ref = {
fake_options = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Options"),
autopeek = ui.find("Aimbot", "Ragebot", "Main", "Peek Assist"),
fd = ui.find("Aimbot", "Anti Aim", "Misc", "Fake Duck"),
sw = ui.find("Aimbot", "Anti Aim", "Misc", "Slow Walk"),
dormant = ui.find("Aimbot", "Ragebot", "Main", "Enabled", "Dormant Aimbot"),
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"),
yaw_mod = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw Modifier"),
yaw_mod_degree = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw Modifier",
"Offset"),
freestanding = ui.find("Aimbot", "Anti Aim", "Angles", "Freestanding"),
free_body = ui.find("Aimbot", "Anti Aim", "Angles", "Freestanding", "Body
Freestanding"),
yaw_mod_free = ui.find("Aimbot", "Anti Aim", "Angles", "Freestanding", "Disable
Yaw Modifiers"),
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_freestand = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw",
"Freestanding"),
dt = ui.find("Aimbot", "Ragebot", "Main", "Double Tap"),
aaos = ui.find("Aimbot", "Ragebot", "Main", "Hide Shots"),
hidden_cvars = ui.find("Miscellaneous", "Main", "Other", "Unlock Hidden
Cvars"),
air_strafe = ui.find("Miscellaneous", "Main", "Movement", "Air Strafe"),
scope_type = ui.find("Visuals", "World", "Main", "Override Zoom", "Scope
Overlay"),
legmovement = ui.find("Aimbot", "Anti Aim", "Misc", "Leg Movement"),
lag_options = ui.find("Aimbot", "Ragebot", "Main", "Double Tap", "Lag
Options"),
avoid_backstab = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw", "Avoid
Backstab"),
ping_spike = ui.find("Miscellaneous", "Main", "Other", "Fake Latency"),
hidden = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw", "Hidden"),
fl_limit = ui.find("Aimbot", "Anti Aim", "Fake Lag", "Limit"),
dtlim = ui.find("Aimbot", "Ragebot", "Main", "Double Tap", "Fake Lag Limit"),
}

local inverter = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Inverter")

local states = {
ground_timer = 0,
lag_timer = 0
}

function states:in_air(a)
if not a then return false end;

local b=a.m_fFlags

local c=bit.band(b,1)~=0;

if c then
if self.ground_timer==5 then
return false
end;

self.ground_timer=self.ground_timer+1

else
self.ground_timer=0
end;

return true
end

function states:is_moving(ent)
local velocity = ent.m_vecVelocity
return math.sqrt(velocity.x * velocity.x + velocity.y * velocity.y) > 2
end

function states:is_crouching(ent)
local ducked = ent.m_bDucked
return ducked
end

function states:team_number(ent)
local team_num = ent.m_iTeamNum
return team_num
end

function states:get_state(ent)
local is_moving = self:is_moving(ent)
local is_crouching = self:is_crouching(ent)
local in_air = self:in_air(ent)
local team_num = ent.m_iTeamNum

if aa.slow:get() then
return "slowmotion"
end

if in_air then
if is_crouching then
return "air crouch"
end

return "air"
end

if is_crouching and is_moving and not in_air then


return "crouch moving"
end

if is_crouching and not in_air then


return "crouch"
end

if is_moving then
return "running"
end

if not is_moving then


return "standing"
end

return "none"
end

local hotkeys = {
manual_last_pressed = globals.realtime
}

local distance = function(x1,y1,z1,x2,y2,z2)


return math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2))
end

local extrapolate = function(player, ticks, x,y,z)


local vel = player.m_vecVelocity
local new_x = x + globals.tickinterval * vel.x * ticks
local new_y = y + globals.tickinterval * vel.y * ticks
local new_z = z + globals.tickinterval * vel.z * ticks
return new_x, new_y, new_z
end
antibackstabnew = function()
local myself = entity.get_local_player()
local enemy = entity.get_threat(false)
if myself == nil or enemy == nil then return end
local weapon = enemy:get_player_weapon(false)
if myself ~= nil and weapon ~= nil and weapon:get_classname() == "CKnife" then
local e = enemy ~= nil and enemy:get_origin() or vector()
local l = myself:get_origin()
if e.x ~= nil and l.x ~= nil then
for ticks = 1,9 do
local tex, tey, tez = extrapolate(myself,ticks,l.x,l.y,l.z)
local distance = distance(e.x,e.y,e.z,tex,tey,tez)
if math.abs(distance) < 230 then
return true
else
return false
end
end
end
end
end

local function antiaim(arg)

local lp = entity.get_local_player()
if not lp:is_alive() then return end

-- t side = 2 --- ct = 3

local state = states:get_state(lp)

states.state = state

if state == "none" then return end

local builder = menu.rage.builder_elements[state]

if menu.rage.manual:get() == "left" then


hotkeys.manual_state = -90
aa.base:override("local view")
elseif menu.rage.manual:get() == "right" then
hotkeys.manual_state = 90
aa.base:override("local view")
elseif menu.rage.manual:get() == "forward" then
hotkeys.manual_state = 180
aa.base:override("local view")
elseif magnetSwitchHere:get() or magnetSwitch:get() then
aa.base:override("local view")
hotkeys.manual_state = 0
else
aa.base:override("at target")
hotkeys.manual_state = 0
end

--fast_ladder(arg)

local lp_bodyyaw = lp.m_flPoseParameter[11] * 120 - 60


local yaw_left = builder.yaw_left:get()
local yaw_right = builder.yaw_right:get()

local jit_a = builder.yaw_jitter_ovr:get()

if builder.yaw_mode:get() == "static" then


if builder.yaw_randomize:get() > 0 then
yaw = math.random(builder.yaw_center:get(), builder.yaw_center:get() -
builder.yaw_randomize:get())
else
yaw = builder.yaw_center:get()
end
elseif builder.yaw_mode:get() == "l ~ r" then
if builder.yaw_randomize:get() > 0 then
if lp_bodyyaw <= 0 and globals.choked_commands ~= 0 then
yaw = math.random(yaw_right, yaw_right -
builder.yaw_randomize:get())
elseif lp_bodyyaw >= 0 and globals.choked_commands ~= 0 then
yaw = math.random(yaw_left, yaw_left - builder.yaw_randomize:get())
end
else
if lp_bodyyaw <= 0 and globals.choked_commands ~= 0 then
yaw = yaw_right
elseif lp_bodyyaw >= 0 and globals.choked_commands ~= 0 then
yaw = yaw_left
end
end
elseif builder.yaw_mode:get() == "3-way" then
if builder.yaw_center_speed:get() > 0 then
if(globals.commandack % builder.yaw_center_speed:get() <
(builder.yaw_center_speed:get()/3)) then
if globals.choked_commands == 0 then
yaw = builder.yaw_center:get() / -2
end
elseif(globals.commandack % builder.yaw_center_speed:get() <
(builder.yaw_center_speed:get()/2)) then
if globals.choked_commands == 0 then
yaw = 0
end
elseif(globals.commandack % builder.yaw_center_speed:get() <
(builder.yaw_center_speed:get()/1)) then
if globals.choked_commands == 0 then
yaw = builder.yaw_center:get() / 2
end
end
else
if(globals.commandack % 3 < (3/3)) then
yaw = builder.yaw_center:get() / -2
elseif(globals.commandack % 3 < (3/2)) then
yaw = 0
elseif(globals.commandack % 3 < (3/1)) then
yaw = builder.yaw_center:get() / 2
end
end
elseif builder.yaw_mode:get() == "5-way" then
if (globals.tickcount % 3 == 4) then
yaw = builder.yaw_center:get() / -2
elseif(globals.tickcount % 3 == 3) then
yaw = builder.yaw_center:get() / -2.5
elseif(globals.tickcount % 3 == 2) then
yaw = 0
elseif(globals.tickcount % 3 == 1) then
yaw = builder.yaw_center:get() / 2.5
elseif(globals.tickcount % 3 == 0) then
yaw = builder.yaw_center:get() / 2
end
elseif builder.yaw_mode:get() == "delay" then
local tick_speed = builder.aa_speed:get()

if builder.aa_speed_randomize:get() > 0 then


tick_speed = math.random(tick_speed, tick_speed -
builder.aa_speed_randomize:get())
else
tick_speed = builder.aa_speed:get()
end

if rage.exploit:get() < 1 then


if builder.yaw_randomize:get() > 0 then
if lp_bodyyaw <= 0 and globals.choked_commands ~= 0 then
yaw = math.random(yaw_right, yaw_right -
builder.yaw_randomize:get())
elseif lp_bodyyaw >= 0 and globals.choked_commands ~= 0 then
yaw = math.random(yaw_left, yaw_left -
builder.yaw_randomize:get())
end
else
if lp_bodyyaw <= 0 and globals.choked_commands ~= 0 then
yaw = yaw_right
elseif lp_bodyyaw >= 0 and globals.choked_commands ~= 0 then
yaw = yaw_left
end
end
elseif globals.commandack % tick_speed < (tick_speed/2) then
if builder.yaw_randomize:get() > 0 then
if globals.choked_commands == 0 then
yaw = math.random(yaw_left, yaw_left -
builder.yaw_randomize:get())
inverter:override(true)
end
else
if globals.choked_commands == 0 then
yaw = yaw_left
inverter:override(true)
end
end
else
if builder.yaw_randomize:get() > 0 then
if globals.choked_commands == 0 then
yaw = math.random(yaw_right, yaw_right -
builder.yaw_randomize:get())
inverter:override(false)
end
else
if globals.choked_commands == 0 then
yaw = yaw_right
inverter:override(false)
end
end
end
end

local yaw2 = lp_bodyyaw <= 0 and 28 or -9


local yaw3 = lp_bodyyaw <= 0 and 9 or -9
local jitter = jit_a

local team_num = lp.m_iTeamNum

local is_fd = ui.find("Aimbot", "Anti Aim", "Misc", "Fake Duck")

if(sim_diff() < builder.cond.sens:get() / 100 * -1 and ref.dt:get()) then


table.insert(ram.defensive, globals.realtime)
end

local weapon = lp:get_player_weapon(false)


if weapon == nil then return end
local wpnclass = weapon:get_classname()

if menu.rage.select_text_df:get(1) and state == "standing" or


menu.rage.select_text_df:get(2) and state == "running" or
menu.rage.select_text_df:get(3) and state == "slowmotion" or
menu.rage.select_text_df:get(4) and state == "crouch" or
menu.rage.select_text_df:get(5) and state == "crouch moving" or
menu.rage.select_text_df:get(6) and state == "air" or
menu.rage.select_text_df:get(7) and state == "air crouch" then
aa.def:override("Always on")
else
aa.def:override("On peek")
end

local weapon = lp:get_player_weapon(false)


if weapon == nil then return end
local wpnclass = weapon:get_classname()

local tickbasee = lp.m_nTickBase

ref.hidden:set(false)

if magnetSwitch:get() or magnetSwitchHere:get() then


offsetHead()
elseif antibackstabnew() and menu.rage.anti_back:get() then
aa.offset:override(180)
ref.pitch:set("down")
aa.base:override("at target")
aa.jitter:override("disabled")
aa.jitter_val:override(0)
aa.body_yaw[1]:override(false)
aa.body_yaw[3]:override(0)
aa.body_yaw[4]:override(0)
aa.body_yaw[5]:override("disabled")
aa.body_yaw[6]:override("Off")
elseif menu.rage.safe_head:get(1) and state == "air crouch" and
wpnclass:find("Knife") or menu.rage.safe_head:get(2) and state == "air crouch" then
aa.offset:override(hotkeys.manual_state)
ref.pitch:set("Down")
aa.jitter:override("disabled")
aa.jitter_val:override(0)
aa.body_yaw[1]:override(false)
aa.body_yaw[3]:override(0)
aa.body_yaw[4]:override(0)
aa.body_yaw[5]:override("disabled")
aa.body_yaw[6]:override("Off")
elseif menu.rage.manual:get() ~= "at target" then
aa.offset:override(hotkeys.manual_state)
aa.base:override("local view")
ref.pitch:set("Down")
aa.jitter:override("disabled")
aa.jitter_val:override(0)
aa.body_yaw[1]:override(true)
aa.body_yaw[3]:override(58)
aa.body_yaw[4]:override(58)
aa.body_yaw[5]:override("disabled")
aa.body_yaw[6]:override("Off")
elseif(#ram.defensive > 0 and globals.realtime - ram.defensive[#ram.defensive]
< 1 / 64 * (101 - builder.cond.sens:get()) / 10 and builder.cond:get()) then
aa.base:override("at target")
local dtab = builder.cond
if not ((dtab.yaw_mod:get() == "3-way" or dtab.yaw_mod:get() == "5-way") or
dtab.yaw_mod:get() == "hidden") then
ref.hidden:set(false)
if(dtab.yaw_mod:get() == "disabled") then
ram.jit_yaw = 0
elseif(dtab.yaw_mod:get() == "center") then
ram.jit_yaw = ram.jitter and dtab.modifier_degree:get() / -2 or
dtab.modifier_degree:get() / 2
elseif(dtab.yaw_mod:get() == "offset") then
ram.jit_yaw = ram.jitter and dtab.modifier_degree:get() or 0
elseif(dtab.yaw_mod:get() == "random") then
if(dtab.modifier_degree:get() >= 0) then
ram.jit_yaw = math.random(0,
math.abs(dtab.modifier_degree:get())) - math.abs(dtab.modifier_degree:get()) / 2
else
ram.jit_yaw = (math.random(0,
math.abs(dtab.modifier_degree:get())) - math.abs(dtab.modifier_degree:get()) / 2) *
-1
end
elseif(dtab.yaw_mod:get() == "spin") then
if(dtab.modifier_degree:get() >= 0) then
mult = 1
else
mult = -1
end
if(ram.jit_yaw < math.abs(dtab.modifier_degree:get())) then
ram.jit_yaw = ram.jit_yaw + 3
else
ram.jit_yaw = math.abs(dtab.modifier_degree:get()) * -1 / 2
end
elseif(dtab.yaw_mod:get() == "3-way") then
ref.hidden:set(false)
if(globals.tickcount % 3 == 2) then
ram.jit_yaw = dtab.modifier_degree:get() / -2
elseif(globals.tickcount % 3 == 1) then
ram.jit_yaw = dtab.modifier_degree:get() / 2 - 10
elseif(globals.tickcount % 3 == 0) then
ram.jit_yaw = dtab.modifier_degree:get() / 2
end
elseif(dtab.yaw_mod:get() == "5-way") then
ref.hidden:set(false)
if(globals.tickcount % 5 == 4) then
ram.jit_yaw = dtab.modifier_degree:get() / -2
elseif(globals.tickcount % 5 == 3) then
ram.jit_yaw = dtab.modifier_degree:get() / -2.5
elseif(globals.tickcount % 5 == 2) then
ram.jit_yaw = dtab.modifier_degree:get() / 2.5
elseif(globals.tickcount % 5 == 1) then
ram.jit_yaw = dtab.modifier_degree:get() / 2 - 10
elseif(globals.tickcount % 5 == 0) then
ram.jit_yaw = dtab.modifier_degree:get() / 2
end
end
aa.offset:override(ram.jit_yaw)
ref.yaw_mod:set("disabled")
ref.yaw_mod_degree:set(0)
else
ref.yaw_mod:set("disabled")
ref.yaw_mod_degree:set(0)
if(dtab.yaw_mod:get() == "hidden") then
ref.hidden:set(true)
end
end
aa.jitter:override(dtab.yaw_mod:get())
if(dtab.pitches:get() ~= "random") then
ref.pitch:set(dtab.pitches:get())
else
pitchs = {"disabled", "down", "fake up", "fake down"}
ref.pitch:set(pitchs[math.random(1, 4)])
end
else
aa.base:override("at target")
--fakelag
ref.pitch:set("down")
aa.offset:override(yaw)
if builder.jitter:get() == "3-way" then
if builder.jitter_speed:get() > 0 then
aa.jitter:override("center")
if(globals.commandack % builder.jitter_speed:get() <
(builder.jitter_speed:get()/3)) then
aa.jitter_val:override(builder.yaw_jitter_ovr:get() / -2)
elseif(globals.commandack % builder.jitter_speed:get() <
(builder.jitter_speed:get()/2)) then
aa.jitter_val:override(0)
elseif(globals.commandack % builder.jitter_speed:get() <
(builder.jitter_speed:get()/1)) then
aa.jitter_val:override(builder.yaw_jitter_ovr:get() / 2)
end
else
aa.jitter:override("3-way")
aa.jitter_val:override(builder.yaw_jitter_ovr:get())
end
elseif builder.jitter:get() == "5-way" then
if builder.jitter_speed:get() > 0 then
aa.jitter:override("center")
if(globals.commandack % builder.jitter_speed:get() <
(builder.jitter_speed:get()/5)) then
aa.jitter_val:override(builder.yaw_jitter_ovr:get() / -2)
elseif(globals.commandack % builder.jitter_speed:get() <
(builder.jitter_speed:get()/4)) then
aa.jitter_val:override(builder.yaw_jitter_ovr:get() / -2.5)
elseif(globals.commandack % builder.jitter_speed:get() <
(builder.jitter_speed:get()/3)) then
aa.jitter_val:override(0)
elseif(globals.commandack % builder.jitter_speed:get() <
(builder.jitter_speed:get()/2)) then
aa.jitter_val:override(builder.yaw_jitter_ovr:get() / 2.5)
elseif(globals.commandack % builder.jitter_speed:get() <
(builder.jitter_speed:get()/1)) then
aa.jitter_val:override(builder.yaw_jitter_ovr:get() / 2)
end
else
aa.jitter:override("5-way")
aa.jitter_val:override(builder.yaw_jitter_ovr:get())
end
else
aa.jitter:override(builder.jitter:get())
aa.jitter_val:override(builder.yaw_jitter_ovr:get())
end

aa.body_yaw[1]:override(builder.body_yaw:get())
if builder.limit_random:get() then
aa.body_yaw[3]:override(math.random(48,58))
aa.body_yaw[4]:override(math.random(48,58))
else
aa.body_yaw[3]:override(builder.fake_left:get())
aa.body_yaw[4]:override(builder.fake_right:get())
end
if builder.yaw_mode:get() == "delay" then
if rage.exploit:get() < 1 then
aa.body_yaw[5]:override("jitter")
else
aa.body_yaw[5]:override(" ")
end
else
aa.body_yaw[5]:override(builder.fake_options:get())
end
aa.body_yaw[6]:override("off")
end
end

local vel_font = render.load_font("Verdana", 15, "d")

local v_data = {
alpha = 0,
y = 0,
y2 = 0,
}

draw_watermark = function()

local lp = entity.get_local_player()

if not lp or not lp:is_alive() then return end

local x, y = render.screen_size().x/2, render.screen_size().y/2


render.texture(watermark_icon, vector(x, y - y), vector(x, y),
color(255,255,255, 255), "f", 0)
end

draw_velocity_warning = function()

local lp = entity.get_local_player()

if not lp or not lp:is_alive() then return end

if not menu.visuals.vel_inds:get() then return end

local modifier = entity.get_local_player().m_flVelocityModifier

if modifier == 1 then
speed_mod = false
else
speed_mod = true
end

local x, y = render.screen_size().x/2, render.screen_size().y/2

if speed_mod then
v_data.alpha = math.lerp(v_data.alpha, 255, globals.frametime * 12)
v_data.y = math.lerp(v_data.y, 20, globals.frametime * 12)
v_data.y2 = math.lerp(v_data.y2, 0, globals.frametime * 12)

render.texture(vel_warning, vector(x - x/2, y - y/2 - 220 + v_data.y),


vector(x, y), color(255,255,255, v_data.alpha), "f", 0)
render.text(4, vector(x + 25, y - y/2 - 100 + v_data.y),
color(255,255,255,v_data.alpha), "c+", "velocity is "..math.floor(modifier*100).."%
slower")
else
v_data.alpha = math.lerp(v_data.alpha, 0, globals.frametime * 12)
v_data.y = math.lerp(v_data.y, 0, globals.frametime * 12)
v_data.y2 = math.lerp(v_data.y2, 20, globals.frametime * 12)

render.texture(vel_warning, vector(x - x/2, y - y/2 - 220 + v_data.y),


vector(x, y), color(255,255,255, v_data.alpha), "f", 0)
render.text(4, vector(x + 25, y - y/2 - 100 + v_data.y),
color(255,255,255,v_data.alpha), "c+", "velocity is "..math.floor(modifier*100).."%
slower")
end
end

events.createmove:set(antiaim)

local f, rep = string.format, string.rep;

local logger = {};

logger.id = 0;

logger.hitgroup = {
[ 0 ] = 'generic',
'head',
'chest',
'stomach',
'left arm',
'right arm',
'left leg',
'right leg',
'neck',
'?',
'gear'
};

logger.state = {
[ 'correction' ] = 'resolver',
[ 'player death' ] = 'enemy death',
[ 'backtrack failure' ] = 'lagcomp failure'
};

logger.verb = {
[ 'knife' ] = 'Knifed',
[ 'inferno' ] = 'Burned',
[ 'hegrenade' ] = 'Naded'
};

logger.bell_pattern = f('\\a%s', rep('%%X', 6));

logger.remove_bell = function(s)
return s:gsub(logger.bell_pattern, '')
end

logger.get_id = function()
return logger.id % (1000 + 1)
end

logger.miss = function(e)
local state = logger.state[ e.state ] or e.state;

print_dev(f(
'\ac95b5b[-] Missed shot at %s in the %s due to %s [hitchance: %d%% |
backtrack: %d ticks]',
e.target:get_name(), logger.hitgroup[ e.wanted_hitgroup ] or '?', state,
e.hitchance, e.backtrack
));

print_raw(f(
'\ac95b5b[-] Missed shot at %s in the %s due to %s [hitchance: %d%% |
backtrack: %d ticks]',
e.target:get_name(), logger.hitgroup[ e.wanted_hitgroup ] or '?', state,
e.hitchance, e.backtrack
));
end

logger.hit = function(e)
print_dev(f(
'\a97B331[+] Hit %s\'s in the %s for %d(%d) (%d remaining), bt = %d, aimed
= %s(%d%%)',
e.target:get_name(), logger.hitgroup[ e.hitgroup ] or '?', e.damage,
e.wanted_damage, e.target.m_iHealth, e.backtrack,
logger.hitgroup[ e.wanted_hitgroup ] or '?', e.hitchance
));

print_raw(f(
'\a97B331[+] Hit %s\'s in the %s for %d(%d) (%d remaining), bt = %d, aimed
= %s(%d%%)',
e.target:get_name(), logger.hitgroup[ e.hitgroup ] or '?', e.damage,
e.wanted_damage, e.target.m_iHealth, e.backtrack,
logger.hitgroup[ e.wanted_hitgroup ] or '?', e.hitchance
));
end

logger.player_hurt = function(e)
local lp = entity.get_local_player();
local userid = entity.get(e.userid, true);
local attacker = entity.get(e.attacker, true);

if attacker ~= lp or userid == lp then


return
end

local verb = logger.verb[ e.weapon ];

if verb == nil then


return
end

print_dev(f(
'\a97B331%s %s for %d damage (%d health remaining)',
verb, userid:get_name(), e.dmg_health, e.health
));

print_raw(f(
'\a97B331 %s %s for %d damage (%d health remaining)',
verb, userid:get_name(), e.dmg_health, e.health
));
end

events.player_connect_full:set(function(e)
local lp = entity.get_local_player();
local userid = entity.get(e.userid, true);

if lp ~= userid then
return
end

logger.id = -1;
end)

events.aim_fire:set(function(e)
logger.id = logger.id + 1;
end)

events.aim_ack:set(function(e)
if not menu.misc.aim_logs:get() then return end

(e.state and logger.miss or logger.hit)(e)


end)

events.player_hurt:set(
logger.player_hurt
)

events.render:set(function(ctx)
--set_check_tabs()
draw_velocity_warning()
draw_watermark()
if menu.main.amnesia_tabs:get() == 2 then
menu.visuals.gs_inds:visibility(true)
else
menu.visuals.gs_inds:visibility(false)
end
skeet.handle()
skeet.spectators()
indicator_list:visibility(menu.visuals.gs_inds:get())
skeet_spects:visibility(menu.visuals.gs_inds:get())
scope_overlay_handle()
if menu.visuals.crosshair_ind:get() then
crosshair_inds()
end
nade_circle_draw()
menu_visibility_handler()
handle_aspect()
end)

events.bomb_defused:set(function(e)
c4.reset_bomb()
end)
events.bomb_planted:set(function(e)
c4.reset_bomb()
end)
events.bomb_abortplant:set(function(e)
c4.reset_bomb()
end)
events.round_prestart:set(function(e)
c4.reset_bomb()
end)
events.bomb_beginplant:set(function(e)
c4.bomb_beginplant(e)
end)

events.shutdown(function()
--unsetRefs()
target_pos = vector(0,0,0)
end)

events.round_start:set(function(e)
magnetSwitch:set(false)
magnetSwitchHere:set(false)
end)

events.round_end:set(function(e)
magnetSwitch:set(false)
magnetSwitchHere:set(false)
end)

clantag:run()

pui.setup(menu)

You might also like