Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
47 views29 pages

Lua Script for Game UI Notifications

Uploaded by

crvcloudyx
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)
47 views29 pages

Lua Script for Game UI Notifications

Uploaded by

crvcloudyx
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
You are on page 1/ 29

local user = "admin"

local function getbuild() return "beta" end


local function rgba(r, g, b, a, ...) return ("\a%x%x%x%x"):format(r, g, b,
a) .. ... end
local vector = require("vector")
local notify=(function()local b=vector;local c=function(d,b,c)return d+(b-d)*c
end;local e=function()return b(client.screen_size())end;local
f=function(d,...)local c={...}local c=table.concat(c,"")return
b(renderer.measure_text(d,c))end;local
g={notifications={bottom={}},max={bottom=6}}g.__index=g;g.new_bottom=function(h,i,j
,...)table.insert(g.notifications.bottom,
{started=false,instance=setmetatable({active=false,timeout=5,color={["r"]=h,
["g"]=i,["b"]=j,a=0},x=e().x/2,y=e().y,text=...},g)})end;function g:handler()local
d=0;local b=0;for d,b in pairs(g.notifications.bottom)do if not b.instance.active
and b.started then table.remove(g.notifications.bottom,d)end end;for
d=1,#g.notifications.bottom do if g.notifications.bottom[d].instance.active then
b=b+1 end end;for c,e in pairs(g.notifications.bottom)do if c>g.max.bottom then
return end;if e.instance.active then e.instance:render_bottom(d,b)d=d+1 end;if not
e.started then e.instance:start()e.started=true end end end;function
g:start()self.active=true;self.delay=globals.realtime()+self.timeout end;function
g:get_text()local d=""for b,b in pairs(self.text)do local c=f("",b[1])local
c,e,f=255,255,255;if b[2]then c,e,f=99,199,99 end;d=d..("\a%02x%02x%02x%02x
%s"):format(c,e,f,self.color.a,b[1])end;return d end;local k=(function()local
d={}d.rec=function(d,b,c,e,f,g,k,l,m)m=math.min(d/2,b/2,m)renderer.rectangle(d,b+m,
c,e-m*2,f,g,k,l)renderer.rectangle(d+m,b,c-
m*2,m,f,g,k,l)renderer.rectangle(d+m,b+e-m,c-
m*2,m,f,g,k,l)renderer.circle(d+m,b+m,f,g,k,l,m,180,.25)renderer.circle(d-
m+c,b+m,f,g,k,l,m,90,.25)renderer.circle(d-m+c,b-
m+e,f,g,k,l,m,0,.25)renderer.circle(d+m,b-m+e,f,g,k,l,m,-
90,.25)end;d.rec_outline=function(d,b,c,e,f,g,k,l,m,n)m=math.min(c/2,e/2,m)if m==1
then renderer.rectangle(d,b,c,n,f,g,k,l)renderer.rectangle(d,b+e-n,c,n,f,g,k,l)else
renderer.rectangle(d+m,b,c-m*2,n,f,g,k,l)renderer.rectangle(d+m,b+e-n,c-
m*2,n,f,g,k,l)renderer.rectangle(d,b+m,n,e-m*2,f,g,k,l)renderer.rectangle(d+c-
n,b+m,n,e-
m*2,f,g,k,l)renderer.circle_outline(d+m,b+m,f,g,k,l,m,180,.25,n)renderer.circle_out
line(d+m,b+e-m,f,g,k,l,m,90,.25,n)renderer.circle_outline(d+c-m,b+m,f,g,k,l,m,-
90,.25,n)renderer.circle_outline(d+c-m,b+e-m,f,g,k,l,m,0,.25,n)end
end;d.glow_module_notify=function(b,c,e,f,g,k,l,m,n,o,p,q,r,s,s)local t=1;local
u=1;if s then d.rec(b,c,e,f,l,m,n,o,k)end;for l=0,g do local
m=o/2*(l/g)^3;d.rec_outline(b+(l-g-u)*t,c+(l-g-u)*t,e-(l-g-u)*t*2,f-(l-g-
u)*t*2,p,q,r,m/1.5,k+t*(g-l+u),t)end end;return d end)()function
g:render_bottom(g,l)local e=e()local m=6;local n=" "..self:get_text()local
f=f("",n)local o=8;local p=5;local q=0+m+f.x;local q,r=q+p*2,12+10+1;local
s,t=self.x-q/2,math.ceil(self.y-40+.4)local u=globals.frametime()if
globals.realtime()<self.delay then self.y=c(self.y,e.y-45-(l-
g)*r*1.4,u*7)self.color.a=c(self.color.a,255,u*2)else self.y=c(self.y,self.y-
10,u*15)self.color.a=c(self.color.a,0,u*20)if self.color.a<=1 then
self.active=false end end;local
c,e,g,l=self.color.r,self.color.g,self.color.b,self.color.a;k.glow_module_notify(s,
t,q,r,15,o,25,25,25,l,179, 255, 18,l,true)local
k=p+2;k=k+0+m;renderer.text(s+k,t+r/2-f.y/2,99,199,99,l,"b",nil,"L")renderer.text(s
+k,t+r/2-f.y/
2,c,e,g,l,"",nil,n)end;client.set_event_callback("paint_ui",function()g:handler()en
d)return g end)()
notify.new_bottom(179, 255, 18, { { 'Loading' }, { "... ", true }, })
local w, h = client.screen_size()
local js = panorama.open()
local alpha = 69
local toggled = false
client.set_event_callback("paint_ui", function()
if alpha > 0 and toggled then
if alpha == 169 then
notify.new_bottom(179, 255, 18, { { 'Welcome: ' }, { user .. " ",
true } })
end
alpha = alpha - 0.5
else
if not toggled then
alpha = alpha + 1
if alpha == 254 then
toggled = true
end
alpha = alpha + 1
end
end
if alpha > 1 then
renderer.gradient(0,0,w,h,0,0,0,alpha,0,0,0,alpha,false)
end
end)
return (function(tbl)
tbl.items = {
enabled = tbl.ref("aa", "anti-aimbot angles", "enabled"),
pitch = tbl.ref("aa", "anti-aimbot angles", "pitch"),
base = tbl.ref("aa", "anti-aimbot angles", "yaw base"),
jitter = tbl.ref("aa", "anti-aimbot angles", "yaw jitter"),
yaw = tbl.ref("aa", "anti-aimbot angles", "yaw"),
body = tbl.ref("aa", "anti-aimbot angles", "body yaw"),
fsbody = tbl.ref("aa", "anti-aimbot angles", "freestanding body yaw"),
edge = tbl.ref("aa", "anti-aimbot angles", "edge yaw"),
roll = tbl.ref("aa", "anti-aimbot angles", "roll"),
fs = tbl.ref("aa", "anti-aimbot angles", "freestanding")
}
local prefix = function(x, z)
return (z and ("\a32a852FFluasense \a698a6dFF~ \a414141FF(\ab5b5b5FF%s\
a414141FF) \a89f596FF%s"):format(x, z) or ("\a32a852FFluasense \a698a6dFF~ \
a89f596FF%s"):format(x))
end
local ffi = require("ffi")
local clipboard = {
["ffi"] = ffi.cdef([[
typedef int(__thiscall* get_clipboard_text_count)(void*);
typedef void(__thiscall* set_clipboard_text)(void*, const char*, int);
typedef void(__thiscall* get_clipboard_text)(void*, int, const char*,
int);
]]),
["export"] = function(arg)
local pointer = ffi.cast(ffi.typeof('void***'),
client.create_interface('vgui2.dll', 'VGUI_System010'))
local func = ffi.cast('set_clipboard_text', pointer[0][9])
func(pointer, arg, #arg)
end,
["import"] = function()
local pointer = ffi.cast(ffi.typeof('void***'),
client.create_interface('vgui2.dll', 'VGUI_System010'))
local func = ffi.cast('get_clipboard_text_count', pointer[0][7])
local sizelen = func(pointer)
local output = ""
if sizelen > 0 then
local buffer = ffi.new("char[?]", sizelen)
local sizefix = sizelen * ffi.sizeof("char[?]", sizelen)
local extrafunc = ffi.cast('get_clipboard_text', pointer[0][11])
extrafunc(pointer, 0, buffer, sizefix)
output = ffi.string(buffer, sizelen-1)
end
return output
end
}
local category = ui.new_combobox("aa", "anti-aimbot angles",
prefix("category" .. rgba(69,169,155,255," " .. (getbuild() == "beta" and " (beta)"
or ""))), {"anti aimbot", "visuals & misc", "config"})
local aa = {}
local menu = {}
local notifications = {}
local draw_gamesense_ui = {}
draw_gamesense_ui.alpha = function(color, alpha)
color[4] = alpha
return color
end
draw_gamesense_ui.colors = {
main = {12, 12, 12},
border_edge = {60, 60, 60},
border_inner = {40, 40, 40},
gradient = {
top = {
left = {55, 177, 218},
middle = {204, 70, 205},
right = {204, 227, 53}
},
bottom = {
left = {29, 94, 116},
middle = {109, 37, 109},
right = {109, 121, 28}
},
pixel_three = {6, 6, 6}
},
combine = function(color1, color2, ...)
local t = {unpack(color1)}
for i = 1, #color2 do
table.insert(t, color2[i])
end
local args = {...}
for i = 1, #args do
table.insert(t, args[i])
end
return t
end
}
draw_gamesense_ui.border = function(x, y, width, height, alpha)
local x = x - 7 - 1
local y = y - 7 - 5
local w = width + 14 + 2
local h = height + 14 + 10
renderer.rectangle(x, y, w, h,
unpack(draw_gamesense_ui.alpha(draw_gamesense_ui.colors.main, alpha)))
renderer.rectangle(x + 1, y + 1, w - 2, h - 2,
unpack(draw_gamesense_ui.alpha(draw_gamesense_ui.colors.border_edge, alpha)))
renderer.rectangle(x + 2, y + 2, w - 4, h - 4,
unpack(draw_gamesense_ui.alpha(draw_gamesense_ui.colors.border_inner, alpha)))
renderer.rectangle(x + 6, y + 6, w - 12, h - 12,
unpack(draw_gamesense_ui.alpha(draw_gamesense_ui.colors.border_edge, alpha)))
end
draw_gamesense_ui.gradient = function(x, y, width, alpha)
local full_width = width
local width = math.floor(width / 2)
local top_left =
draw_gamesense_ui.alpha(draw_gamesense_ui.colors.gradient.top.left, alpha)
local top_middle =
draw_gamesense_ui.alpha(draw_gamesense_ui.colors.gradient.top.middle, alpha)
local top_right =
draw_gamesense_ui.alpha(draw_gamesense_ui.colors.gradient.top.right, alpha)
local bottom_left =
draw_gamesense_ui.alpha(draw_gamesense_ui.colors.gradient.bottom.left, alpha)
local bottom_middle =
draw_gamesense_ui.alpha(draw_gamesense_ui.colors.gradient.bottom.middle, alpha)
local bottom_right =
draw_gamesense_ui.alpha(draw_gamesense_ui.colors.gradient.bottom.right, alpha)
top_left = draw_gamesense_ui.colors.combine(top_left, top_middle, true)
top_right = draw_gamesense_ui.colors.combine(top_middle, top_right,
true)
bottom_left = draw_gamesense_ui.colors.combine(bottom_left,
bottom_middle, true)
bottom_right = draw_gamesense_ui.colors.combine(bottom_middle,
bottom_right, true)
local oddfix = math.ceil(full_width / 2)
renderer.gradient(x, y - 4, width, 1, unpack(top_left))
renderer.gradient(x + width, y - 4, oddfix, 1, unpack(top_right))
renderer.gradient(x, y - 3, width, 1, unpack(bottom_left))
renderer.gradient(x + width, y - 3, oddfix, 1, unpack(bottom_right))
renderer.rectangle(x, y - 2, full_width, 1,
unpack(draw_gamesense_ui.colors.gradient.pixel_three))
end
draw_gamesense_ui.draw = function(x, y, width, height, alpha)
y = y - 7
draw_gamesense_ui.border(x, y, width, height, alpha)
renderer.rectangle(x - 1, y - 5, width + 2, height + 10,
unpack(draw_gamesense_ui.alpha(draw_gamesense_ui.colors.main, alpha)))
draw_gamesense_ui.gradient(x, y, width, alpha)
end
local function push_notify(text)
if tbl.contains(ui.get(menu["visuals & misc"]["visuals"]["notify"]), "old")
then
notify.new_bottom(179, 255, 18, { { text } })
else
table.insert(notifications, 1, {
text = text,
alpha = 255,
spacer = 0,
lifetime = client.timestamp() + (10.0 * 100),
})
end
end
local lerp = function(current, to_reach, t) return current + (to_reach -
current) * t end
client.set_event_callback("paint_ui", function()
local width, height = client.screen_size()
local frametime = globals.frametime()
local timestamp = client.timestamp()
for idx, notification in next, notifications do
if timestamp > notification.lifetime then
notification.alpha = lerp(255, 0, 1 - (notification.alpha /
255) + frametime * (1 / 7.5 * 10))
end
if notification.alpha <= 0 then
notifications[idx] = nil
else
notification.spacer = lerp(notification.spacer, idx * 40,
frametime)
local text_width = renderer.measure_text("c",
notification.text) + 10
draw_gamesense_ui.draw(width/2 - text_width / 2, height/2 +
300 + notification.spacer, text_width, 12, notification.alpha)
renderer.text(width/2, height/2 + 300 +
notification.spacer, 255, 255, 255, notification.alpha, "c", 0,
notification.text:gsub("\a%x%x%x%x%x%x%x%x", function(color)
return color:sub(1, #color -
2)..string.format("%02x", notification.alpha)
end):sub(1, -1))
end
end
end)
menu = {
["anti aimbot"] = {
submenu = ui.new_combobox("aa", "anti-aimbot angles", "\nmenu",
{"builder", "keybinds", "features"}),
["builder"] = {
builder = ui.new_combobox("aa", "anti-aimbot angles",
prefix("builder"), tbl.states),
team = ui.new_combobox("aa", "anti-aimbot angles", "\nteam", {"ct",
"t"})
},
["keybinds"] = {
keys = ui.new_multiselect("aa", "anti-aimbot angles",
prefix("keys"), {"manual", "edge", "freestand"}),
left = ui.new_hotkey("aa", "anti-aimbot angles", prefix("left")),
right = ui.new_hotkey("aa", "anti-aimbot angles", prefix("right")),
forward = ui.new_hotkey("aa", "anti-aimbot angles",
prefix("forward")),
backward = ui.new_hotkey("aa", "anti-aimbot angles",
prefix("backward")),
type_manual = ui.new_combobox("aa", "anti-aimbot angles",
prefix("manual"), {"default", "jitter", "static"}),
edge = ui.new_hotkey("aa", "anti-aimbot angles", prefix("edge")),
type_freestand = ui.new_combobox("aa", "anti-aimbot angles",
prefix("freestand"), {"default", "jitter", "static"}),
freestand = ui.new_hotkey("aa", "anti-aimbot angles", "\
nfreestand", true),
disablers = ui.new_multiselect("aa", "anti-aimbot angles",
prefix("fs disablers"), {"air", "slow", "duck", "edge", "manual", "fake lag"})
},
["features"] = {
legit = ui.new_combobox("aa", "anti-aimbot angles",
prefix("legit"), {"off", "default", "luasense"}),
fix = ui.new_multiselect("aa", "anti-aimbot angles", "\nfix",
{"generic", "bombsite"}),
defensive = ui.new_combobox("aa", "anti-aimbot angles",
prefix("defensive"), {"off", "pitch", "spin", "random", "random pitch", "sideways
down", "sideways up"}),
fixer = ui.new_combobox("aa", "anti-aimbot angles", "\nfixer",
{"default", "luasense"}),
states = ui.new_multiselect("aa", "anti-aimbot angles", "\
nstates\n", {"standing", "moving", "air", "air duck", "duck", "duck moving", "slow
motion"}),
backstab = ui.new_combobox("aa", "anti-aimbot angles",
prefix("backstab"), {"off", "forward", "random"}),
distance = ui.new_slider("aa", "anti-aimbot angles", "\nbackstab",
100, 500, 250),
roll = ui.new_slider("aa", "anti-aimbot angles", prefix("roll"), -
45, 45, 0)
},
},
["visuals & misc"] = {
submenu = ui.new_combobox("aa", "anti-aimbot angles", "\nvisuals &
misc", {"visuals", "misc"}),
["visuals"] = {
watermark = ui.new_combobox("aa", "anti-aimbot angles",
prefix("always on", "watermark"), {"bottom", "right", "left"}),
watermark_color = ui.new_color_picker("aa", "anti-aimbot angles",
"\nwatermark", 150, 200, 69, 255),
watermark_spaces = ui.new_combobox("aa", "anti-aimbot angles",
prefix("remove spaces"), {"yes", "no"}),
notify = ui.new_multiselect("aa", "anti-aimbot angles",
prefix("notify"), {"hit", "miss", "shot", "reset", "old"}),
arrows = ui.new_combobox("aa", "anti-aimbot angles",
prefix("arrows"), {"-", "simple", "body", "luasense"}),
arrows_color = ui.new_color_picker("aa", "anti-aimbot angles", "\
narrows", 137, 245, 150, 255),
indicators = ui.new_combobox("aa", "anti-aimbot angles",
prefix("indicators"), {"-", "default"}),
indicators_color = ui.new_color_picker("aa", "anti-aimbot angles",
"\nindicators", 137, 245, 150, 255),
},
["misc"] = {
features = ui.new_multiselect("aa", "anti-aimbot angles",
prefix("features"), {"fix hideshot", "animations", "legs spammer"}),
spammer = ui.new_slider("aa", "anti-aimbot angles", "\nspammer", 1,
9, 1),
autobuy = ui.new_combobox("aa", "anti-aimbot angles", prefix("auto
buy"), {"off", "awp", "scout"})
}
},
["config"] = {
export = ui.new_button("aa", "anti-aimbot angles", "\a89f596FF export",
function()
local tbl = {}
for i, v in next, aa do
tbl[i] = {}
for index, value in next, v do
tbl[i][index] = {}
for ii, vv in next, value do
if ii == "type" then
tbl[i][index][ii] = ui.get(vv)
else
if ii ~= "button" then
tbl[i][index][ii] = {}
for iii, vvv in next, vv do
tbl[i][index][ii][iii] = ui.get(vvv)
end
end
end
end
end
end
tbl["extra"] = {}
for i, v in next, menu["anti aimbot"] do
if i == "submenu" then
tbl["extra"][i] = ui.get(v)
else
tbl["extra"][i] = {}
for index, value in next, v do
local fixer = true
if i == "keybinds" then
if index == "left" or index == "right" or index ==
"forward" or index == "backward" or index == "edge" or index == "freestand" then
fixer = false
end
end
if fixer then
tbl["extra"][i][index] = ui.get(value)
end
end
end
end
push_notify("Exported config!")
clipboard.export(json.stringify({["LUASENSE"] = tbl}))
end),
import = ui.new_button("aa", "anti-aimbot angles", "\a32a852FF import",
function()
local check, message = pcall(function()
local tbl = json.parse(clipboard.import())
for i, v in next, tbl["LUASENSE"]["extra"] do
if i == "submenu" then
ui.set(menu["anti aimbot"][i], v)
else
for index, value in next, v do
ui.set(menu["anti aimbot"][i][index], value)
end
end
end
tbl["LUASENSE"]["extra"] = nil
for i, v in next, tbl["LUASENSE"] do
for index, value in next, v do
for ii, vv in next, value do
if ii == "type" then
ui.set(aa[i][index][ii], vv)
else
for iii, vvv in next, vv do
ui.set(aa[i][index][ii][iii], vvv)
end
end
end
end
end
end)
push_notify(check and "Imported config!" or "Error while
importing!")
end),
}
}
for i, v in next, tbl.states do
aa[v] = {}
for index, value in next, {"ct", "t"} do
aa[v][value] = {
["type"] = ui.new_combobox("aa", "anti-aimbot angles", prefix(v ..
" " .. value, "type"), (v == "global" and {"normal", "luasense", "advanced",
"auto"} or {"disabled", "normal", "luasense", "advanced", "auto"})),
["normal"] = {
mode = ui.new_multiselect("aa", "anti-aimbot angles",
prefix(v .. " " .. value, "mode"), {"yaw", "left right"}),
yaw = ui.new_slider("aa", "anti-aimbot angles", prefix(v .. " "
.. value, "yaw"), -180, 180, 0),
left = ui.new_slider("aa", "anti-aimbot angles", prefix(v .. "
" .. value, "left"), -180, 180, 0),
right = ui.new_slider("aa", "anti-aimbot angles", prefix(v .. "
" .. value, "right"), -180, 180, 0),
method = ui.new_combobox("aa", "anti-aimbot angles",
prefix(v .. " " .. value, "method"), {"default", "luasense"}),
jitter = ui.new_combobox("aa", "anti-aimbot angles",
prefix(v .. " " .. value, "jitter"), {"off", "offset", "center", "random",
"skitter"}),
jitter_slider = ui.new_slider("aa", "anti-aimbot angles", "\
njitter slider " .. v .. " " .. value, -180, 180, 0),
body = ui.new_combobox("aa", "anti-aimbot angles", prefix(v ..
" " .. value, "body"), {"off", "luasense", "opposite", "static", "jitter"}),
body_slider = ui.new_slider("aa", "anti-aimbot angles", "\nbody
slider " .. v .. " " .. value, -180, 180, 0),
custom_slider = ui.new_slider("aa", "anti-aimbot angles", "\
ncustom slider " .. v .. " " .. value, 0, 60, 60),
defensive = ui.new_combobox("aa", "anti-aimbot angles",
prefix(v .. " " .. value, "defensive"), {"off", "always on", "luasense"})
},
["luasense"] = {
luasense = ui.new_slider("aa", "anti-aimbot angles",
prefix(v .. " " .. value, "luasense"), 1, 10, 1),
mode = ui.new_multiselect("aa", "anti-aimbot angles",
prefix(v .. " " .. value, "mode\n"), {"yaw", "left right"}),
yaw = ui.new_slider("aa", "anti-aimbot angles", prefix(v .. " "
.. value, "yaw\n"), -180, 180, 0),
left = ui.new_slider("aa", "anti-aimbot angles", prefix(v .. "
" .. value, "left\n"), -180, 180, 0),
right = ui.new_slider("aa", "anti-aimbot angles", prefix(v .. "
" .. value, "right\n"), -180, 180, 0),
fake = ui.new_slider("aa", "anti-aimbot angles", prefix(v .. "
" .. value, "fake"), 0, 60, 60),
defensive = ui.new_combobox("aa", "anti-aimbot angles",
prefix(v .. " " .. value, "defensive\n"), {"off", "always on", "luasense"})
},
["advanced"] = {
--trigger = tbl.item("new_combobox",
{rgba(69,169,55,255,v .. ": ") .. rgba(69,169,155,255,"Trigger"), "A: Brandon", "B:
Best", "C: Experimental", "Automatic"}),
trigger = ui.new_combobox("aa", "anti-aimbot angles",
prefix(v .. " " .. value, "trigger"), "a: brandon", "b: best", "c: experimental",
"automatic"),
left = ui.new_slider("aa", "anti-aimbot angles",
prefix(v .. " " .. value, "left\n\n"), -180, 180, 0),
right = ui.new_slider("aa", "anti-aimbot angles", prefix(v .. "
" .. value, "right\n\n"), -180, 180, 0),
defensive = ui.new_combobox("aa", "anti-aimbot
angles", prefix(v .. " " .. value, "defensive\n\n\n"), {"off", "always on",
"luasense"})
},
["auto"] = {
method = ui.new_combobox("aa", "anti-aimbot angles",
prefix(v .. " " .. value, "method\n"), {"simple", "luasense"}),
timer = ui.new_slider("aa", "anti-aimbot angles", "\ntimer",
50, 250, 150),
left = ui.new_slider("aa", "anti-aimbot angles",
prefix(v .. " " .. value, "left\n\n\n"), -180, 180, 0),
right = ui.new_slider("aa", "anti-aimbot angles", prefix(v .. "
" .. value, "right\n\n\n"), -180, 180, 0),
antibf = ui.new_combobox("aa", "anti-aimbot angles",
prefix(v .. " " .. value, "bruteforce"), {"no", "yes"}),
defensive = ui.new_combobox("aa", "anti-aimbot angles",
prefix(v .. " " .. value, "defensive\n\n"), {"off", "always on", "luasense"})
},
["disabled"] = {},
["button"] = ui.new_button("aa", "anti-aimbot angles", "\
a32a852FFsend to \a89f596FF" .. (value == "t" and "ct" or "t"), function()
local state = ui.get(menu["anti aimbot"]["builder"]["builder"])
local team = ui.get(menu["anti aimbot"]["builder"]["team"])
local target = (team == "t" and "ct" or "t")
for i, v in next, aa[state][team] do
if i ~= "button" then
if i == "type" then
ui.set(aa[state][target][i], ui.get(v))
else
for index, value in next, v do
ui.set(aa[state][target][i][index],
ui.get(value))
end
end
end
end
end)
}
end
end
tbl.refs = {
slow = tbl.ref("aa", "other", "slow motion"),
hide = tbl.ref("aa", "other", "on shot anti-aim"),
dt = tbl.ref("rage", "aimbot", "double tap")
}
tbl.antiaim = {
luasensefake = false,
autocheck = false,
current = false,
active = false,
count = false,
ready = false,
timer = 0,
fs = 0,
last = 0,
log = {},
manual = {
aa = 0,
tick = 0
}
}
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 xv, yv, zv = entity.get_prop(player, "m_vecVelocity")
local new_x = x + globals.tickinterval() * xv * ticks
local new_y = y + globals.tickinterval() * yv * ticks
local new_z = z + globals.tickinterval() * zv * ticks
return new_x, new_y, new_z
end
local function calcangle(localplayerxpos, localplayerypos, enemyxpos,
enemyypos)
local relativeyaw = math.atan( (localplayerypos - enemyypos) /
(localplayerxpos - enemyxpos) )
return relativeyaw * 180 / math.pi
end
local function angle_vector(angle_x, angle_y)
local sp, sy, cp, cy = nil
sy = math.sin(math.rad(angle_y));
cy = math.cos(math.rad(angle_y));
sp = math.sin(math.rad(angle_x));
cp = math.cos(math.rad(angle_x));
return cp * cy, cp * sy, -sp;
end
local enemy_visible = function(x)
if not (entity.is_alive(x) and not entity.is_dormant(x)) then
return false
end
for i=0, 18 do
if client.visible(entity.hitbox_position(x, i)) then
return true
end
end
return false
end
local function get_camera_pos(enemy)
local e_x, e_y, e_z = entity.get_prop(enemy, "m_vecOrigin")
if e_x == nil then return end
local _, _, ofs = entity.get_prop(enemy, "m_vecViewOffset")
e_z = e_z + (ofs - (entity.get_prop(enemy, "m_flDuckAmount") * 16))
return e_x, e_y, e_z
end
local function fired_at(target, shooter, shot)
local shooter_cam = { get_camera_pos(shooter) }
if shooter_cam[1] == nil then return end
local player_head = { entity.hitbox_position(target, 0) }
local shooter_cam_to_head = { player_head[1] -
shooter_cam[1],player_head[2] - shooter_cam[2],player_head[3] - shooter_cam[3] }
local shooter_cam_to_shot = { shot[1] - shooter_cam[1], shot[2] -
shooter_cam[2],shot[3] - shooter_cam[3]}
local magic = ((shooter_cam_to_head[1]*shooter_cam_to_shot[1]) +
(shooter_cam_to_head[2]*shooter_cam_to_shot[2]) +
(shooter_cam_to_head[3]*shooter_cam_to_shot[3])) /
(math.pow(shooter_cam_to_shot[1], 2) + math.pow(shooter_cam_to_shot[2], 2) +
math.pow(shooter_cam_to_shot[3], 2))
local closest = { shooter_cam[1] + shooter_cam_to_shot[1]*magic,
shooter_cam[2] + shooter_cam_to_shot[2]*magic, shooter_cam[3] +
shooter_cam_to_shot[3]*magic}
local length = math.abs(math.sqrt(math.pow((player_head[1]-closest[1]),
2) + math.pow((player_head[2]-closest[2]), 2) + math.pow((player_head[3]-
closest[3]), 2)))
local frac_shot = client.trace_line(shooter, shot[1], shot[2], shot[3],
player_head[1], player_head[2], player_head[3])
local frac_final = client.trace_line(target, closest[1], closest[2],
closest[3], player_head[1], player_head[2], player_head[3])
return (length < 69) and (frac_shot > 0.99 or frac_final > 0.99)
end
local tickshot = 0
client.set_event_callback("bullet_impact", function(event)
if entity.get_local_player() == nil then return end
local enemy = client.userid_to_entindex(event.userid)
local lp = entity.get_local_player()
if enemy == entity.get_local_player() or not entity.is_enemy(enemy) or
not entity.is_alive(lp) then return nil end
if fired_at(lp, enemy, {event.x, event.y, event.z}) then
if tickshot ~= globals.tickcount() then
if tbl.contains(ui.get(menu["visuals & misc"]["visuals"]
["notify"]), "shot") then
push_notify("Detected a shot!")
end
tickshot = globals.tickcount()
tbl.antiaim.count = true
tbl.antiaim.timer = 0
if tbl.antiaim.active and tbl.antiaim.log[enemy] == nil then
tbl.antiaim.log[enemy] = not tbl.antiaim.current
else
tbl.antiaim.log[enemy] = not tbl.antiaim.log[enemy]
end
end
end
end)
local hitboxes = { [0] = 'body', 'head', 'chest', 'stomach', 'arm', 'arm',
'leg', 'leg', 'neck', 'body', 'body' }
client.set_event_callback('aim_miss', function(shot)
if not tbl.contains(ui.get(menu["visuals & misc"]["visuals"]
["notify"]), "miss") then return nil end
local target = entity.get_player_name(shot.target):lower()
local hitbox = hitboxes[shot.hitgroup] or "?"
push_notify("Missed " .. target .. "'s " .. hitbox .. " due to " ..
shot.reason .. "!")
end)
client.set_event_callback('aim_hit', function(shot)
if not tbl.contains(ui.get(menu["visuals & misc"]["visuals"]
["notify"]), "hit") then return nil end
local target = entity.get_player_name(shot.target):lower()
local hitbox = hitboxes[shot.hitgroup] or "?"
push_notify("Hit " .. target .. "'s " .. hitbox .. " for " ..
shot.damage .. "!")
end)
local z = {}
z.defensive = {
cmd = 0,
check = 0,
defensive = 0,
run = function(arg)
z.defensive.cmd = arg.command_number
ladder = (entity.get_prop(z, "m_MoveType") == 9)
end,
predict = function(arg)
if arg.command_number == z.defensive.cmd then
local tickbase = entity.get_prop(entity.get_local_player(),
"m_nTickBase")
z.defensive.defensive = math.abs(tickbase -
z.defensive.check)
z.defensive.check = math.max(tickbase, z.defensive.check or
0)
z.defensive.cmd = 0
end
end
}
client.set_event_callback("level_init", function()
z.defensive.check, z.defensive.defensive = 0, 0
end)
local scope_fix = false
local scope_int = 0
local shift_int = 0
local list_shift = (function()
local index, max = { }, 16
for i=1, max do
index[#index+1] = 0
if i == max then
return index
end
end
end)()
z.dtshift = function()
local local_player = entity.get_local_player()
local sim_time = entity.get_prop(local_player, "m_flSimulationTime")
if local_player == nil or sim_time == nil then
return
end
local tick_count = globals.tickcount()
local shifted = math.max(unpack(list_shift))
shift_int = shifted < 0 and math.abs(shifted) or 0
list_shift[#list_shift+1] = sim_time/globals.tickinterval() -
tick_count
table.remove(list_shift, 1)
end
client.set_event_callback("net_update_start", z.dtshift)
client.set_event_callback("run_command", z.defensive.run)
client.set_event_callback("predict_command", z.defensive.predict)
local animkeys = {
dt = 0,
duck = 0,
hide = 0,
safe = 0,
baim = 0,
fs = 0
}
local gradient = function(r1, g1, b1, a1, r2, g2, b2, a2, text)
local output = ''
local len = #text-1
local rinc = (r2 - r1) / len
local ginc = (g2 - g1) / len
local binc = (b2 - b1) / len
local ainc = (a2 - a1) / len
for i=1, len+1 do
output = output .. ('\a%02x%02x%02x%02x%s'):format(r1, g1, b1,
a1, text:sub(i, i))
r1 = r1 + rinc
g1 = g1 + ginc
b1 = b1 + binc
a1 = a1 + ainc
end
return output
end
z.items = {}
z.items.keys = {
dt = {ui.reference("rage", "aimbot", "double tap")},
hs = {ui.reference("aa", "other", "on shot anti-aim")},
fd = {ui.reference("rage", "other", "duck peek assist")},
sp = {ui.reference("rage", "aimbot", "force safe point")},
fb = {ui.reference("rage", "aimbot", "force body aim")}
}
local limitfl = ui.reference("aa", "fake lag", "limit")
local legs = ui.reference("aa", "other", "leg movement")
local spammer = 0
tbl.tick_aa = -2147483500
tbl.list_aa = {}
tbl.reset_aa = false
tbl.defensive_aa = 1337
tbl.callbacks = {
["freestand"] = function()
local result = 0
local player = client.current_threat()
if player ~= nil and not enemy_visible(player) then
local lx, ly, lz = entity.get_prop(entity.get_local_player(),
"m_vecOrigin")
local enemyx, enemyy, enemyz = entity.get_prop(player,
"m_vecOrigin")
local yaw = calcangle(lx, ly, enemyx, enemyy)
local dir_x, dir_y = angle_vector(0, (yaw + 90))
local end_x = lx + dir_x * 55
local end_y = ly + dir_y * 55
local end_z = lz + 80
local index, damage = client.trace_bullet(player, enemyx, enemyy,
enemyz + 70, end_x, end_y, end_z,true)
if damage > 0 then result = 1 end
dir_x, dir_y = angle_vector(0, (yaw + -90))
end_x = lx + dir_x * 55
end_y = ly + dir_y * 55
end_z = lz + 80
index, damage = client.trace_bullet(player, enemyx, enemyy, enemyz
+ 70, end_x, end_y, end_z,true)
if damage > 0 then
if result == 1 then
result = 0
else
result = -1
end
end
end
tbl.antiaim.fs = result
end,
["command"] = function(arg)
local myself = entity.get_local_player()
local air = bit.band(entity.get_prop(myself, "m_fFlags"), 1) == 0
local xv, yv, zv = entity.get_prop(myself, "m_vecVelocity")
local duck = (entity.get_prop(myself, "m_flDuckAmount") > 0.1)
local team = (entity.get_prop(myself, "m_iTeamNum") == 2 and "t" or
"ct")
local fakelag = not ((ui.get(tbl.refs.dt[1]) and
ui.get(tbl.refs.dt[2])) or (ui.get(tbl.refs.hide[1]) and ui.get(tbl.refs.hide[2])))
local real_state = tbl.getstate(arg.in_jump == 1 or air, duck,
math.sqrt(xv*xv + yv*yv + zv*zv), (ui.get(tbl.refs.slow[1]) and
ui.get(tbl.refs.slow[2])))
local hideshot = ((ui.get(tbl.refs.hide[1]) and
ui.get(tbl.refs.hide[2])) and not (ui.get(tbl.refs.dt[1]) and
ui.get(tbl.refs.dt[2])))
local state = real_state
if fakelag and ui.get(aa["fake lag"][team]["type"]) ~= "disabled" then
state = "fake lag"
elseif hideshot and ui.get(aa["hide shot"][team]["type"]) ~= "disabled"
then
state = "hide shot"
elseif ui.get(aa[state][team]["type"]) == "disabled" then
state = "global"
else end
local enemy = client.current_threat()
local menutbl = aa[state][team]
ui.set(tbl.items.enabled[1], true)
ui.set(tbl.items.base[1], "at targets")
ui.set(tbl.items.pitch[1], "default")
ui.set(tbl.items.yaw[1], "180")
ui.set(tbl.items.fsbody[1], false)
ui.set(tbl.items.edge[1], false)
ui.set(tbl.items.fs[1], false)
ui.set(tbl.items.fs[2], "always on")
ui.set(tbl.items.roll[1], 0)
arg.roll = ui.get(menu["anti aimbot"]["features"]["roll"])
local myweapon = entity.get_player_weapon(myself)
if ui.get(menu["anti aimbot"]["features"]["legit"]) ~= "off" and
arg.in_use == 1 and entity.get_classname(myweapon) ~= "CC4" then
if tbl.contains(ui.get(menu["anti aimbot"]["features"]["fix"]),
"generic") then
if arg.chokedcommands ~= 1 then
arg.in_use = 0
end
else
arg.in_use = 0
end
if tbl.contains(ui.get(menu["anti aimbot"]["features"]["fix"]),
"bombsite") then
local player_x, player_y, player_z = entity.get_prop(myself,
"m_vecOrigin")
local distance_bomb = 100
local bomb = entity.get_all("CPlantedC4")[1]
local bomb_x, bomb_y, bomb_z = entity.get_prop(bomb,
"m_vecOrigin")
if bomb_x ~= nil then
distance_bomb = distance(bomb_x, bomb_y, bomb_z, player_x,
player_y, player_z)
end
local distance_hostage = 100
local hostage = entity.get_all("CPlantedC4")[1]
local hostage_x, hostage_y, hostage_z = entity.get_prop(bomb,
"m_vecOrigin")
if hostage_x ~= nil then
distance_hostage = distance(hostage_x, hostage_y,
hostage_z, player_x, player_y, player_z)
end
if (distance_bomb < 69) or (distance_hostage < 69) then
arg.in_use = 1
end
end
ui.set(tbl.items.base[1], "local view")
ui.set(tbl.items.pitch[1], "off")
ui.set(tbl.items.fsbody[1], true)
ui.set(tbl.items.yaw[2], 180)
ui.set(tbl.items.jitter[1], "off")
ui.set(tbl.items.jitter[2], 0)
if ui.get(menu["anti aimbot"]["features"]["legit"]) == "default" or
tbl.antiaim.fs == 0 then
ui.set(tbl.items.body[1], ui.get(menu["anti aimbot"]
["features"]["legit"]) == "default" and "opposite" or "jitter")
ui.set(tbl.items.body[2], 0)
else
ui.set(tbl.items.body[1], "static")
ui.set(tbl.items.body[2], tbl.antiaim.fs == 1 and -180 or 180)
if arg.chokedcommands == 0 then
arg.allow_send_packet = false
end
end
arg.force_defensive = true
return nil
end
if ui.get(menu["anti aimbot"]["features"]["backstab"]) ~= "off" and
enemy ~= nil then
local weapon = entity.get_player_weapon(enemy)
if weapon ~= nil and entity.get_classname(weapon) == "CKnife" then
local ex,ey,ez = entity.get_origin(enemy)
local lx,ly,lz = entity.get_origin(myself)
if ex ~= nil and lx ~= nil then
for ticks = 1,9 do
local tex,tey,tez =
extrapolate(myself,ticks,lx,ly,lz)
local distance =
distance(ex,ey,ez,tex,tey,tez)
if math.abs(distance) < ui.get(menu["anti aimbot"]
["features"]["distance"]) then
ui.set(tbl.items.yaw[2], ui.get(menu["anti aimbot"]
["features"]["backstab"]) == "forward" and 180 or client.random_int(-180, 180))
ui.set(tbl.items.jitter[1], "off")
ui.set(tbl.items.jitter[2], 0)
ui.set(tbl.items.body[1], ui.get(menu["anti
aimbot"]["features"]["backstab"]) == "random" and "jitter" or "opposite")
ui.set(tbl.items.body[2], 0)
arg.force_defensive = true
return nil
end
end
end
end
end
if ui.get(menutbl["type"]) == "normal" then
menutbl = menutbl[ui.get(menutbl["type"])]
local yaw = tbl.antiaim.manual.aa
if tbl.contains(ui.get(menutbl["mode"]), "yaw") then
yaw = tbl.antiaim.manual.aa + ui.get(menutbl["yaw"])
end
if tbl.contains(ui.get(menutbl["mode"]), "left right") then
local method = arg.chokedcommands == 0
if ui.get(menutbl["method"]) == "luasense" then
method = arg.chokedcommands ~= 0
end
if method and ui.get(menutbl["body"]) ~= "luasense" then
if math.max(-60, math.min(60,
math.floor((entity.get_prop(myself,"m_flPoseParameter", 11) or 0)*120-60+0.5))) > 0
then
ui.set(tbl.items.yaw[2], tbl.clamp(yaw +
ui.get(menutbl["right"])))
else
ui.set(tbl.items.yaw[2], tbl.clamp(yaw +
ui.get(menutbl["left"])))
end
end
else
ui.set(tbl.items.yaw[2], tbl.clamp(yaw))
end
ui.set(tbl.items.jitter[1], ui.get(menutbl["jitter"]))
ui.set(tbl.items.jitter[2], ui.get(menutbl["jitter_slider"]))
if ui.get(menutbl["body"]) ~= "luasense" then
ui.set(tbl.items.body[1], ui.get(menutbl["body"]))
ui.set(tbl.items.body[2], ui.get(menutbl["body_slider"]))
else
ui.set(tbl.items.body[1], "static")
local fake = (ui.get(menutbl["custom_slider"])+1) * 2
local luasensefake = false
if arg.command_number % client.random_int(3,6) == 1 then
tbl.antiaim.ready = true
end
if tbl.antiaim.ready and arg.chokedcommands == 0 then
tbl.antiaim.ready = false
tbl.antiaim.luasensefake = not
tbl.antiaim.luasensefake
ui.set(tbl.items.body[2], tbl.antiaim.luasensefake and -
fake or fake)
luasensefake = true
end
if tbl.contains(ui.get(menutbl["mode"]), "left right") then
if luasensefake then
if tbl.antiaim.luasensefake then
ui.set(tbl.items.yaw[2], tbl.clamp(yaw +
ui.get(menutbl["right"])))
else
ui.set(tbl.items.yaw[2], tbl.clamp(yaw +
ui.get(menutbl["left"])))
end
end
end
end
if ui.get(menutbl["defensive"]) == "luasense" then
arg.force_defensive = arg.command_number % 3 ~= 1 or
arg.weaponselect ~= 0 or arg.quick_stop == 1
elseif ui.get(menutbl["defensive"]) == "always on" then
arg.force_defensive = true
else end
elseif ui.get(menutbl["type"]) == "luasense" then
menutbl = menutbl[ui.get(menutbl["type"])]
ui.set(tbl.items.jitter[1], "off")
ui.set(tbl.items.body[1], "static")
if arg.command_number % (ui.get(menutbl["luasense"])+1+1) == 1 then
tbl.antiaim.ready = true
end
if tbl.antiaim.ready and arg.chokedcommands == 0 then
local fake = (ui.get(menutbl["fake"])+1) * 2
tbl.antiaim.ready = false
tbl.antiaim.luasensefake = not tbl.antiaim.luasensefake
ui.set(tbl.items.body[2], tbl.antiaim.luasensefake and -fake or
fake)
local yaw = tbl.antiaim.manual.aa
if tbl.contains(ui.get(menutbl["mode"]), "yaw") then
yaw = tbl.antiaim.manual.aa + ui.get(menutbl["yaw"])
end
if tbl.contains(ui.get(menutbl["mode"]), "left right") then
if tbl.antiaim.luasensefake then
ui.set(tbl.items.yaw[2], tbl.clamp(yaw +
ui.get(menutbl["right"])))
else
ui.set(tbl.items.yaw[2], tbl.clamp(yaw +
ui.get(menutbl["left"])))
end
else
ui.set(tbl.items.yaw[2], tbl.clamp(yaw))
end
end
if ui.get(menutbl["defensive"]) == "luasense" then
arg.force_defensive = arg.command_number % 3 ~= 1 or
arg.weaponselect ~= 0 or arg.quick_stop == 1
elseif ui.get(menutbl["defensive"]) == "always on" then
arg.force_defensive = true
else end
elseif ui.get(menutbl["type"]) == "advanced" then
menutbl = menutbl[ui.get(menutbl["type"])]
ui.set(tbl.items.jitter[1], "off")
ui.set(tbl.items.body[1], "static")
local trigger = client.random_int(3,6)
if ui.get(menutbl["trigger"]) == "a: brandon" then
trigger = 5
end
if ui.get(menutbl["trigger"]) == "b: best" then
trigger = 6
end
if ui.get(menutbl["trigger"]) == "c: experimental" then
if trigger == 1 or trigger == 1+1 then
trigger = 9
else
trigger = trigger + 1
end
end
if arg.command_number % trigger == 1 then
tbl.auto = not tbl.auto
if tbl.auto then
ui.set(tbl.items.body[2], -123)
ui.set(tbl.items.yaw[2],
tbl.clamp(ui.get(menutbl["right"]) + tbl.antiaim.manual.aa))
else
ui.set(tbl.items.body[2], 123)
ui.set(tbl.items.yaw[2],
tbl.clamp(ui.get(menutbl["left"]) + tbl.antiaim.manual.aa))
end
end
if ui.get(menutbl["defensive"]) == "luasense" then
arg.force_defensive = arg.command_number % 3 ~= 1 or
arg.weaponselect ~= 0 or arg.quick_stop == 1
elseif ui.get(menutbl["defensive"]) == "always on" then
arg.force_defensive = true
else end
elseif ui.get(menutbl["type"]) == "auto" then
menutbl = menutbl[ui.get(menutbl["type"])]
ui.set(tbl.items.jitter[1], "random")
ui.set(tbl.items.body[1], "static")
ui.set(tbl.items.yaw[2], tbl.antiaim.manual.aa)
local check = arg.command_number % 10 > 5
if tbl.antiaim.fs ~= 0 then
check = tbl.antiaim.fs ~= 1
tbl.antiaim.last = check
tbl.antiaim.current = check
tbl.antiaim.active = true
end
if ui.get(menutbl["method"]) == "simple" and tbl.antiaim.fs == 0
then
check = not tbl.antiaim.last
tbl.antiaim.current = check
tbl.antiaim.active = true
end
if ui.get(menutbl["method"]) == "luasense" then
if tbl.antiaim.count then
if tbl.antiaim.timer > ui.get(menutbl["timer"]) then
tbl.antiaim.timer = 0
tbl.antiaim.count = false
tbl.antiaim.log = {}
else
tbl.antiaim.timer = tbl.antiaim.timer + 1
end
end
if tbl.antiaim.fs == 0 then
if arg.command_number % 3 == 1 then
tbl.antiaim.ready = true
end
if tbl.antiaim.ready and arg.chokedcommands ==
0 then
tbl.antiaim.ready = false
tbl.antiaim.luasensefake = not
tbl.antiaim.luasensefake
end
local yaw = tbl.antiaim.manual.aa
check = tbl.antiaim.luasensefake
if tbl.antiaim.luasensefake then
ui.set(tbl.items.yaw[2], tbl.clamp(yaw +
ui.get(menutbl["right"])))
else
ui.set(tbl.items.yaw[2], tbl.clamp(yaw +
ui.get(menutbl["left"])))
end
end
end
if ui.get(menutbl["antibf"]) == "yes" then
if enemy ~= nil then
if tbl.antiaim.log[enemy] ~= nil then
check = tbl.antiaim.log[enemy]
end
end
end
ui.set(tbl.items.jitter[2], check and -3 or 3)
ui.set(tbl.items.body[2], check and -123 or 123)
if ui.get(menutbl["defensive"]) == "luasense" then
arg.force_defensive = arg.command_number % 3 ~= 1 or
arg.weaponselect ~= 0 or arg.quick_stop == 1
elseif ui.get(menutbl["defensive"]) == "always on" then
arg.force_defensive = true
else end
else end
ui.set(tbl.items.edge[1], ui.get(menu["anti aimbot"]["keybinds"]
["edge"]))
local freestand = ui.get(menu["anti aimbot"]["keybinds"]["freestand"])
local disablers = ui.get(menu["anti aimbot"]["keybinds"]["disablers"])
if tbl.contains(disablers, "air") and (arg.in_jump == 1 or air) then
freestand = false
end
if tbl.contains(disablers, "slow") and (ui.get(tbl.refs.slow[1]) and
ui.get(tbl.refs.slow[2])) then
freestand = false
end
if tbl.contains(disablers, "duck") and (duck) then
freestand = false
end
if tbl.contains(disablers, "edge") and (ui.get(menu["anti aimbot"]
["keybinds"]["edge"])) then
freestand = false
end
if tbl.contains(disablers, "manual") and (tbl.antiaim.manual.aa ~= 0)
then
freestand = false
end
if tbl.contains(disablers, "fake lag") and (fakelag) then
freestand = false
end
if tbl.antiaim.manual.aa ~= 0 then
ui.set(tbl.items.base[1], "local view")
if ui.get(menu["anti aimbot"]["keybinds"]["type_manual"]) ~=
"default" then
ui.set(tbl.items.yaw[2], tbl.antiaim.manual.aa)
ui.set(tbl.items.jitter[1], "off")
ui.set(tbl.items.jitter[2], 0)
ui.set(tbl.items.body[1], ui.get(menu["anti aimbot"]
["keybinds"]["type_manual"]) == "jitter" and "jitter" or "opposite")
ui.set(tbl.items.body[2], 0)
end
end
if ui.get(menu["anti aimbot"]["keybinds"]["type_freestand"]) ~=
"default" and freestand then
ui.set(tbl.items.yaw[2], 0)
ui.set(tbl.items.jitter[1], "off")
ui.set(tbl.items.jitter[2], 0)
ui.set(tbl.items.body[1], ui.get(menu["anti aimbot"]["keybinds"]
["type_freestand"]) == "jitter" and "jitter" or "opposite")
ui.set(tbl.items.body[2], 0)
arg.force_defensive = true
end
ui.set(tbl.items.fs[1], freestand)
local defensivecheck = (z.defensive.defensive > 3) and
(z.defensive.defensive < 11)
if fakelag or hideshot then
defensivecheck = false
end
local defensivemenu = ui.get(menu["anti aimbot"]["features"]
["defensive"])
tbl.normal_aa = true
tbl.tick_aa = tbl.tick_aa + 1
tbl.list_aa[tbl.tick_aa] = {
["aa"] = ui.get(tbl.items.yaw[2]),
}
if defensivemenu ~= "off" and defensivecheck and not freestand
and tbl.antiaim.manual.aa == 0 and tbl.contains(ui.get(menu["anti aimbot"]
["features"]["states"]), real_state) then
tbl.normal_aa = false
if defensivemenu == "pitch" then
ui.set(tbl.items.pitch[1], "up")
elseif defensivemenu == "spin" then
ui.set(tbl.items.yaw[2], (((arg.command_number % 360)
- 180) * 3) % 180)
elseif defensivemenu == "random" then
ui.set(tbl.items.yaw[2], client.random_int(-180,180))
elseif defensivemenu == "random pitch" then
ui.set(tbl.items.pitch[1], (arg.command_number % 4 >
2) and "up" or "down")
ui.set(tbl.items.yaw[2], client.random_int(-180,180))
elseif defensivemenu == "sideways up" then
ui.set(tbl.items.pitch[1], "up")
ui.set(tbl.items.yaw[2], (arg.command_number % 6 > 3)
and 111 or -111)
elseif defensivemenu == "sideways down" then
ui.set(tbl.items.yaw[2], (arg.command_number % 6 > 3)
and 111 or -111)
end
if defensivemenu ~= "pitch" then
tbl.reset_aa = true
tbl.defensive_aa = ui.get(tbl.items.yaw[2])
end
end
tbl.list_aa[tbl.tick_aa]["check"] = tbl.normal_aa
if tbl.normal_aa and tbl.reset_aa and ui.get(menu["anti aimbot"]
["features"]["fixer"]) == "luasense" then
tbl.reset_aa = false
for i = 1, 69 do
if tbl.list_aa[tbl.tick_aa-i] then
if tbl.list_aa[tbl.tick_aa-i]["check"] then
if tbl.defensive_aa ~=
tbl.list_aa[tbl.tick_aa-i]["aa"] then
ui.set(tbl.items.yaw[2],
tbl.list_aa[tbl.tick_aa-i]["aa"])
return nil
end
end
end
end
end
end,
["reset"] = function()
if tbl.contains(ui.get(menu["visuals & misc"]["visuals"]
["notify"]), "reset") then
push_notify("Reset for new round!")
end
tbl.antiaim.manual.aa = 0
tbl.antiaim.manual.tick = 0
if ui.get(menu["visuals & misc"]["misc"]["autobuy"]) ~= "off" then
client.exec("buy " .. (ui.get(menu["visuals & misc"]["misc"]
["autobuy"]) == "scout" and "ssg08" or "awp"))
end
end,
["menu"] = function()
ui.set(menu["anti aimbot"]["keybinds"]["left"], "on hotkey")
ui.set(menu["anti aimbot"]["keybinds"]["right"], "on hotkey")
ui.set(menu["anti aimbot"]["keybinds"]["forward"], "on hotkey")
ui.set(menu["anti aimbot"]["keybinds"]["backward"], "on hotkey")
local tick = globals.tickcount()
if ui.get(menu["anti aimbot"]["keybinds"]["left"]) and
(tbl.antiaim.manual.tick < tick - 11) then
tbl.antiaim.manual.aa = tbl.antiaim.manual.aa == -90 and 0 or -90
tbl.antiaim.manual.tick = tick
end
if ui.get(menu["anti aimbot"]["keybinds"]["right"]) and
(tbl.antiaim.manual.tick < tick - 11) then
tbl.antiaim.manual.aa = tbl.antiaim.manual.aa == 90 and 0 or 90
tbl.antiaim.manual.tick = tick
end
if ui.get(menu["anti aimbot"]["keybinds"]["forward"]) and
(tbl.antiaim.manual.tick < tick - 11) then
tbl.antiaim.manual.aa = tbl.antiaim.manual.aa == 180 and 0 or 180
tbl.antiaim.manual.tick = tick
end
if ui.get(menu["anti aimbot"]["keybinds"]["backward"]) and
(tbl.antiaim.manual.tick < tick - 11) then
tbl.antiaim.manual.aa = tbl.antiaim.manual.aa == -1 and 0 or -1
tbl.antiaim.manual.tick = tick
end
if tbl.contains(ui.get(menu["visuals & misc"]["misc"]["features"]),
"fix hideshot") then
ui.set(limitfl, (ui.get(tbl.refs.hide[1]) and
ui.get(tbl.refs.hide[2])) and 1 or 14)
end
if tbl.contains(ui.get(menu["visuals & misc"]["misc"]["features"]),
"legs spammer") then
ui.set(legs, globals.tickcount() % ui.get(menu["visuals & misc"]
["misc"]["spammer"]) == 0 and "never slide" or "always slide")
end
if not ui.is_menu_open() then return nil end
for i, v in next, tbl.items do
for index, value in next, v do
ui.set_visible(value, false)
end
end
local current = ui.get(category)
local sub = ui.get(menu["anti aimbot"]["submenu"])
local subextra = ui.get(menu["visuals & misc"]["submenu"])
local fix = true
for i, v in next, aa do
local section = ui.get(menu["anti aimbot"]["builder"]["builder"])
== i
for index, value in next, v do
local selected = ui.get(menu["anti aimbot"]["builder"]["team"])
== index
for ii, vv in next, value do
if ii ~= "type" and ii ~= "button" then
local mode = ui.get(value["type"])
for iii, vvv in next, vv do
fix = true
if ii == "normal" then
if iii == "jitter_slider" then
fix = ui.get(vv["jitter"]) ~= "off"
end
if iii == "body_slider" then
fix = ui.get(vv["body"]) ~= "off" and
ui.get(vv["body"]) ~= "opposite" and ui.get(vv["body"]) ~= "luasense"
end
if iii == "custom_slider" then
fix = ui.get(vv["body"]) == "luasense"
end
if iii == "yaw" then
fix = tbl.contains(ui.get(vv["mode"]), iii)
end
if iii == "left" or iii == "right" or iii ==
"method" then
fix = tbl.contains(ui.get(vv["mode"]),
"left right")
end
end
if ii == "luasense" then
if iii == "yaw" then
fix = tbl.contains(ui.get(vv["mode"]), iii)
end
if iii == "left" or iii == "right" then
fix = tbl.contains(ui.get(vv["mode"]),
"left right")
end
end
if ii == "auto" then
if iii == "timer" or iii == "left" or iii ==
"right" then
fix = ui.get(vv["method"]) == "luasense"
end
end
ui.set_visible(vvv, section and selected and
current == "anti aimbot" and sub == "builder" and mode == ii and fix)
end
else
ui.set_visible(vv, section and selected and current ==
"anti aimbot" and sub == "builder")
end
end
end
end
for i, v in next, menu do
for index, value in next, v do
if i == "anti aimbot" and index ~= "submenu" then
for ii, vv in next, value do
fix = true
if index == "features" then
if ii == "distance" then
fix = ui.get(value["backstab"]) ~= "off"
end
if ii == "fix" then
fix = ui.get(value["legit"]) ~= "off"
end
if ii == "fixer" or ii == "states"
then
fix =
ui.get(value["defensive"]) ~= "off"
end
end
if index == "keybinds" then
if ii == "edge" then
fix = tbl.contains(ui.get(value["keys"]), ii)
end
if ii == "freestand" or ii == "type_freestand" or
ii == "disablers" then
fix = tbl.contains(ui.get(value["keys"]),
"freestand")
end
if ii == "left" or ii == "right" or ii == "forward"
or ii == "backward" or ii == "type_manual" then
fix = tbl.contains(ui.get(value["keys"]),
"manual")
end
end
ui.set_visible(vv, i == current and index == sub and
fix)
end
elseif i == "visuals & misc" and index ~= "submenu" then
for ii, vv in next, value do
fix = true
if index == "misc" then
if ii == "spammer" then
fix = tbl.contains(ui.get(value["features"]),
"legs spammer")
end
end
if index == "visuals" then
if ii == "arrows_color" then
fix = ui.get(value["arrows"]) ~= "-"
end
end
if index == "visuals" then
if ii == "indicators_color" then
fix = ui.get(value["indicators"]) ~= "-"
end
end
ui.set_visible(vv, i == current and index == subextra
and fix)
end
else
ui.set_visible(value, i == current)
end
end
end
end,
["animations"] = function()
local myself = entity.get_local_player()
if tbl.contains(ui.get(menu["visuals & misc"]["misc"]["features"]),
"animations") and myself ~= nil then
entity.set_prop(myself, "m_flPoseParameter", 1,
bit.band(entity.get_prop(myself, "m_fFlags"), 1) == 0 and 6 or 0)
end
end,
["arrows"] = function()
local myself = entity.get_local_player()
if myself ~= nil and entity.is_alive(myself) then
local width, height = client.screen_size()
local r2, g2, b2, a2 = 55,55,55,255
local highlight_fraction = (globals.realtime() / 2 % 1.2 * 2) -
1.2
local output = ""
local text_to_draw = " S E N S E"
for idx = 1, #text_to_draw do
local character = text_to_draw:sub(idx, idx)
local character_fraction = idx / #text_to_draw
local r1, g1, b1, a1 = 255, 255, 255, 255
local highlight_delta = (character_fraction -
highlight_fraction)
if highlight_delta >= 0 and highlight_delta <= 1.4 then
if highlight_delta > 0.7 then
highlight_delta = 1.4 - highlight_delta
end
local r_fraction, g_fraction, b_fraction, a_fraction = r2 -
r1, g2 - g1, b2 - b1
r1 = r1 + r_fraction * highlight_delta / 0.8
g1 = g1 + g_fraction * highlight_delta / 0.8
b1 = b1 + b_fraction * highlight_delta / 0.8
end
output = output .. ('\a%02x%02x%02x%02x%s'):format(r1, g1, b1,
255, text_to_draw:sub(idx, idx))
end
output = "L U A" .. output
if ui.get(menu["visuals & misc"]["visuals"]["watermark_spaces"]) ==
"yes" then
output = output:gsub(" ", "")
end
if getbuild() == "beta" then
output = output .. ("\a%x%x%x%x"):format(200, 69, 69, 255) .. "
[BETA] "
end
local r,g,b = ui.get(menu["visuals & misc"]["visuals"]
["watermark_color"])
if ui.get(menu["visuals & misc"]["visuals"]["watermark"]) ==
"bottom" then
renderer.text(width/2, height - 20, r,g,b, 255, "c", 0, output)
elseif ui.get(menu["visuals & misc"]["visuals"]["watermark"]) ==
"right" then
renderer.text(width - 69, height/2, r,g,b, 255, "c", 0, output)
elseif ui.get(menu["visuals & misc"]["visuals"]["watermark"]) ==
"left" then
renderer.text(69, height/2, r,g,b, 255, "c", 0, output)
end
local r,g,b = ui.get(menu["visuals & misc"]["visuals"]
["arrows_color"])
local leftkey = ui.get(menu["visuals & misc"]["visuals"]["arrows"])
== "simple" and "<" or "⯇"
local rightkey = ui.get(menu["visuals & misc"]["visuals"]
["arrows"]) == "simple" and ">" or "⯈"
local w, h = client.screen_size()
w, h = w/2, h/2
local yaw_body = math.max(-60, math.min(60,
math.floor((entity.get_prop(myself, "m_flPoseParameter", 11) or 0)*120-60+0.5)))
if yaw_body > 0 and yaw_body > 60 then yaw_body = 60 end
if yaw_body < 0 and yaw_body < -60 then yaw_body = -60 end
local alpha = 255
if ui.get(menu["visuals & misc"]["visuals"]["arrows"]) == "simple"
then
renderer.text(w + 50, h, 111, 111, 111, 255, "c+", 0, rightkey)
if tbl.antiaim.manual.aa == 90 then
renderer.text(w + 50, h, r,g,b, alpha, "c+", 0, rightkey)
end
renderer.text(w - 50, h, 111, 111, 111, 255, "c+", 0, leftkey)
if tbl.antiaim.manual.aa == -90 then
renderer.text(w - 50, h, r,g,b, alpha, "c+", 0, leftkey)
end
elseif ui.get(menu["visuals & misc"]["visuals"]["arrows"]) ==
"body" then
renderer.line(w + -(40), h-8, w + -(40), h+8, r, g, b, yaw_body
> 0 and 55 or 255)
renderer.line(w + (42), h-8, w + (42), h+8, r, g, b, yaw_body <
0 and 55 or 255)
h = h - 2.5
renderer.text(w + 50, h, 111, 111, 111, 255, "c+", 0, rightkey)
if tbl.antiaim.manual.aa == 90 then
renderer.text(w + 50, h, r,g,b, alpha, "c+", 0, rightkey)
end
renderer.text(w - 50, h, 111, 111, 111, 255, "c+", 0, leftkey)
if tbl.antiaim.manual.aa == -90 then
renderer.text(w - 50, h, r,g,b, alpha, "c+", 0, leftkey)
end
elseif ui.get(menu["visuals & misc"]["visuals"]["arrows"]) ==
"luasense" then
local xv, yv, zv = entity.get_prop(myself, "m_vecVelocity")
local speed = math.sqrt(xv*xv + yv*yv + zv*zv)/10
if tbl.antiaim.fs == 1 then
renderer.line(w + -(36+speed), h-8, w + -(36+speed), h+8,
255, 255, 255, alpha)
end
if tbl.antiaim.fs == -1 then
renderer.line(w + (38+speed), h-8, w + (38+speed), h+8,
255, 255, 255, alpha)
end
renderer.line(w + -(40+speed), h-8, w + -(40+speed), h+8, r, g,
b, yaw_body > 0 and 55 or 255)
renderer.line(w + (42+speed), h-8, w + (42+speed), h+8, r, g,
b, yaw_body < 0 and 55 or 255)
h = h - 2.5
renderer.text(w + (50+speed), h, 111, 111, 111, 255, "c+", 0,
rightkey)
if tbl.antiaim.manual.aa == 90 then
renderer.text(w + (50+speed), h, r,g,b, alpha, "c+", 0,
rightkey)
end
renderer.text(w - (50+speed), h, 111, 111, 111, 255, "c+", 0,
leftkey)
if tbl.antiaim.manual.aa == -90 then
renderer.text(w - (50+speed), h, r,g,b, alpha, "c+", 0,
leftkey)
end
else end
end
end,
["indicator"] = function()
local myself = entity.get_local_player()
if not entity.is_alive(myself) then return nil end
if ui.get(menu["visuals & misc"]["visuals"]["indicators"]) ==
"default" then
local w, h = client.screen_size()
w, h = w/2, h/2
local yaw_body = math.max(-60, math.min(60,
math.floor((entity.get_prop(myself,"m_flPoseParameter", 11) or 0)*120-60+0.5)))
if yaw_body > 0 and yaw_body > 60 then yaw_body = 60 end
if yaw_body < 0 and yaw_body < -60 then yaw_body = -60 end
scope_fix = entity.get_prop(myself, "m_bIsScoped") ~= 0
if scope_fix then
if scope_int < 30 then
scope_int = scope_int + 1
end
else
if scope_int > 0 then
scope_int = scope_int - 1
end
end
w = w + scope_int
w = w - 2
local ind_height = 15
local r, g, b = ui.get(menu["visuals & misc"]["visuals"]
["indicators_color"])
local r1, g1, b1, a1 = r,g,b, 255
local r2, g2, b2, a2 = 155, 155, 155, 255
if yaw_body > 0 then
renderer.text( w, h + ind_height, 255, 255, 255, 255,
"cb", nil, gradient(r2, g2, b2, a2, r1, g1, b1, a1, "luasense") )
else
renderer.text( w, h + ind_height, 255, 255, 255, 255,
"cb", nil, gradient(r1, g1, b1, a1, r2, g2, b2, a2, "luasense") )
end
local dt_on = (ui.get(z.items.keys.dt[1]) and
ui.get(z.items.keys.dt[2]))
local hs_on = (ui.get(z.items.keys.hs[1]) and
ui.get(z.items.keys.hs[2]))
if ui.get(z.items.keys.fd[1]) then
ind_height = ind_height + 8
renderer.text( w, h + ind_height, r2, g2, b2, a2,
"c-", nil, "DUCK" )
if entity.get_prop(myself, "m_flDuckAmount") > 0.1
then
if animkeys.duck < 255 then
animkeys.duck = animkeys.duck + 2.5
end
renderer.text( w, h + ind_height, r1, g1, b1,
animkeys.duck, "c-", nil, "DUCK" )
else
animkeys.duck = 0
end
else
animkeys.duck = 0
end
if ui.get(z.items.keys.sp[1]) then
ind_height = ind_height + 8
if animkeys.safe < 255 then
animkeys.safe = animkeys.safe + 2.5
end
renderer.text( w, h + ind_height, r1, g1, b1,
animkeys.safe , "c-", nil, "SAFE" )
else
animkeys.safe = 0
end
if ui.get(z.items.keys.fb[1]) then
ind_height = ind_height + 8
if animkeys.baim < 255 then
animkeys.baim = animkeys.baim + 2.5
end
renderer.text( w, h + ind_height, r1, g1, b1,
animkeys.baim , "c-", nil, "BAIM" )
else
animkeys.baim = 0
end
if dt_on then
ind_height = ind_height + 8
renderer.text( w, h + ind_height, r2, g2, b2, a2,
"c-", nil, "DT" )
if (shift_int > 0) or (z.defensive.defensive > 1)
then
if animkeys.dt < 255 then
animkeys.dt = animkeys.dt + 2.5
end
renderer.text( w, h + ind_height, r1, g1, b1,
animkeys.dt , "c-", nil, "DT" )
else
animkeys.dt = 0
end
else
animkeys.dt = 0
end
if hs_on then
ind_height = ind_height + 8
renderer.text( w, h + ind_height, r2, g2, b2, a2,
"c-", nil, "HS" )
if not (dt_on) then
if animkeys.hide < 255 then
animkeys.hide = animkeys.hide + 2.5
end
renderer.text( w, h + ind_height, r1, g1, b1,
animkeys.hide , "c-", nil, "HS" )
else
animkeys.hide = 0
end
else
animkeys.hide = 0
end
if ui.get(menu["anti aimbot"]["keybinds"]["freestand"])
then
ind_height = ind_height + 8
if animkeys.fs < 255 then
animkeys.fs = animkeys.fs + 2.5
end
renderer.text( w, h + ind_height, r1, g1, b1,
animkeys.fs , "c-", nil, "FS" )
else
animkeys.fs = 0
end
end
end,
["shutdown"] = function()
for i, v in next, tbl.items do
for index, value in next, v do
ui.set_visible(value, true)
end
end
ui.set(tbl.items.enabled[1], true)
ui.set(tbl.items.base[1], "at targets")
ui.set(tbl.items.pitch[1], "default")
ui.set(tbl.items.yaw[1], "180")
ui.set(tbl.items.yaw[2], 0)
ui.set(tbl.items.jitter[1], "off")
ui.set(tbl.items.jitter[2], 0)
ui.set(tbl.items.body[1], "opposite")
ui.set(tbl.items.body[2], 0)
ui.set(tbl.items.fsbody[1], true)
ui.set(tbl.items.edge[1], false)
ui.set(tbl.items.fs[1], false)
ui.set(tbl.items.fs[2], "always on")
ui.set(tbl.items.roll[1], 0)
ui.set_visible(tbl.items.jitter[2], false)
ui.set_visible(tbl.items.body[2], false)
end
}
tbl.events = {
paint_ui = { "menu", "arrows", "indicator" },
setup_command = { "command", "freestand" },
shutdown = { "shutdown" },
round_prestart = { "reset" },
pre_render = { "animations" }
}
for index, value in next, tbl.events do
for i, v in next, value do client.set_event_callback(index,
tbl.callbacks[v]) end
end
end)({
ref = function(a,b,c) return { ui.reference(a,b,c) } end,
clamp = function(x) if x == nil then return 0 end x = (x % 360 + 360) % 360
return x > 180 and x - 360 or x end,
contains = function(z,x) for i, v in next, z do if v == x then return true end
end return false end,
states = { "global", "standing", "moving", "air", "air duck", "duck", "duck
moving", "slow motion", "fake lag", "hide shot" },
getstate = function(air, duck, speed, slowcheck)
local state = "global"
if air and duck then state = "air duck" end
if air and not duck then state = "air" end
if duck and not air and speed < 1.1 then state = "duck" end
if duck and not air and speed > 1.1 then state = "duck moving" end
if speed < 1.1 and not air and not duck then state = "standing" end
if speed > 1.1 and not air and not duck then state = "moving" end
if slowcheck and not air and not duck and speed > 1.1 then state =
"slow motion" end
return state
end
})

You might also like