she/her
-
Автор темы
- #21
извини мр. демьяхане спрашивал твоего мнения
извини мр. демьяхане спрашивал твоего мнения
прикольный скрипт, пКод:_DEBUG = false local ffi = require("ffi") local clipboard = require("neverlose/clipboard") local anti_aim = require("neverlose/anti_aim") ffi.cdef[[ void* __stdcall URLDownloadToFileA(void* LPUNKNOWN, const char* LPCSTR, const char* LPCSTR2, int a, int LPBINDSTATUSCALLBACK); bool DeleteUrlCacheEntryA(const char* lpszUrlName); void* __stdcall ShellExecuteA(void* hwnd, const char* op, const char* file, const char* params, const char* dir, int show_cmd); bool CreateDirectoryA(const char* lpPathName, void* lpSecurityAttributes); ]] local js = panorama.loadstring([[ return { OpenExternalBrowserURL: function(url){ void SteamOverlayAPI.OpenExternalBrowserURL(url) } } ]])() local ffi_stuff = {} ffi_stuff.urlmon = ffi.load 'UrlMon' ffi_stuff.wininet = ffi.load 'WinInet' local helpers = {} helpers.round = function(num, decimals) local mult = 10^(decimals or 0) return math.floor(num * mult + 0.5) / mult end helpers.in_air = function(player) if player == nil then return end local flags = player.m_fFlags if bit.band(flags, 1) == 0 then return true end return false end helpers.on_ground = function(player) if player == nil then return end local flags = player.m_fFlags if bit.band(flags, 1) == 1 then return true end return false end helpers.is_crouching = function(player) if player == nil then return end local flags = player.m_fFlags if bit.band(flags, 4) == 4 then return true end return false end helpers.get_velocity = function(player) if player == nil then return end local velocity_ref = player.m_vecVelocity local velocity = velocity_ref:length() return velocity end helpers.normalize_yaw = function(yaw) while yaw > 180 do yaw = yaw - 360 end while yaw < -180 do yaw = yaw + 360 end return yaw end helpers.calc_shit = function(xdelta, ydelta) if xdelta == 0 and ydelta == 0 then return 0 end return math.deg(math.atan2(ydelta, xdelta)) end helpers.get_nearest_enemy = function(plocal, enemies) local local_player = entity.get_local_player() if not local_player or not local_player:is_alive() then return end local camera_position = render.camera_position() local camera_angles = render.camera_angles() local direction = vector():angles(camera_angles) local closest_distance, closest_enemy = math.huge for i = 1, #enemies do local enemy = entity.get(enemies[i]) local head_position = enemy:get_hitbox_position(1) local ray_distance = head_position:dist_to_ray( camera_position, direction ) if ray_distance < closest_distance then closest_distance = ray_distance closest_enemy = enemy end end if not closest_enemy then return end return closest_enemy end helpers.calc_angle = function(local_x, local_y, enemy_x, enemy_y) local ydelta = local_y - enemy_y local xdelta = local_x - enemy_x local relativeyaw = math.atan( ydelta / xdelta ) relativeyaw = helpers.normalize_yaw( relativeyaw * 180 / math.pi ) if xdelta >= 0 then relativeyaw = helpers.normalize_yaw(relativeyaw + 180) end return relativeyaw end helpers.angle_vector = function(angle_x, angle_y) local sy = math.sin(math.rad(angle_y)) local cy = math.cos(math.rad(angle_y)) local sp = math.sin(math.rad(angle_x)) local cp = math.cos(math.rad(angle_x)) return cp * cy, cp * sy, -sp end helpers.get_damage = function(plocal, enemy, x, y, z) local ex = { } local ey = { } local ez = { } ex[0], ey[0], ez[0] = enemy:get_hitbox_position(1).x, enemy:get_hitbox_position(1).y, enemy:get_hitbox_position(1).z ex[1], ey[1], ez[1] = ex[0] + 40, ey[0], ez[0] ex[2], ey[2], ez[2] = ex[0], ey[0] + 40, ez[0] ex[3], ey[3], ez[3] = ex[0] - 40, ey[0], ez[0] ex[4], ey[4], ez[4] = ex[0], ey[0] - 40, ez[0] ex[5], ey[5], ez[5] = ex[0], ey[0], ez[0] + 40 ex[6], ey[6], ez[6] = ex[0], ey[0], ez[0] - 40 local trace = {damage = 0, trace = nil} --local dmg = 0 for i=0, 6 do if trace.damage == 0 or trace.damage == nil then trace.damage, trace.trace = utils.trace_bullet(enemy, vector(ex[i], ey[i], ez[i]), vector(x, y, z)) end end return trace.damage--trace.trace == nil and client.scale_damage(plocal, 1, dmg) or dmg end helpers.lerp = function(a, b, percentage) return a + (b - a) * percentage end helpers.gram_create = function(value, count) local gram = { }; for i=1, count do gram[i] = value; end return gram; end helpers.Download = function(from, to) ffi_stuff.wininet.DeleteUrlCacheEntryA(from) ffi_stuff.urlmon.URLDownloadToFileA(nil, from, to, 0,0) end helpers.gradient_text = 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 helpers.colored_single_text = function(r1, g1, b1, a1, text, r2, g2, b2, a2) local output = '' output = ('\a%02x%02x%02x%02x%s\a%02x%02x%02x%02x'):format(r1, g1, b1, a1, text, r2, g2, b2, a2) return output end helpers.vectordistance = function(x1,y1,z1,x2,y2,z2) return math.sqrt(math.pow(x1 - x2, 2) + math.pow( y1 - y2, 2) + math.pow( z1 - z2 , 2) ) end helpers.colored_text = function(r, g, b, a, text) local output = '' output = ('\a%02x%02x%02x%02x%s'):format(r, g, b, a, text) return output end helpers.screen_size = render.screen_size() files.create_folder("nl\\jagoyaw\\") files.create_folder("nl\\jagoyaw\\fonts") -- network.get(url: string[, headers: table, callback: function]) -- files.write(path: string, contents: string[, is_binary: boolean]) -- network.get('https://cdn.discordapp.com/attachments/614973363215138817/964726308787609610/easing.lua', {}, function(s) -- -- if s and r.status == 200 then -- -- files.write("nl\\jagoyaw\\easing.lua", r.body) -- print(s) -- -- end -- end) local to_download = { { link = 'https://cdn.discordapp.com/attachments/614973363215138817/964726308787609610/easing.lua', dir = "nl\\jagoyaw\\easing.lua" }, { link = 'https://cdn.discordapp.com/attachments/953060406182678628/953060859020709910/smallest_pixel-7.ttf', dir = "nl\\jagoyaw\\fonts\\pixel.ttf" }, { link = 'https://cdn.discordapp.com/attachments/953060406182678628/957747508602359818/Acta_Symbols_W95_Arrows.ttf', dir = "nl\\jagoyaw\\fonts\\ActaSymbolsW95Arrows.ttf" }, { link = 'https://cdn.discordapp.com/attachments/614973363215138817/1015456850914840656/lucida-console.ttf', dir = "nl\\jagoyaw\\fonts\\lucida_console.ttf" }, } for i, value in pairs(to_download) do if not files.read(value.dir) then helpers.Download(value.link, value.dir) end end -- helpers.CreateDir("nl\\jagoyaw\\fonts\\") -- helpers.Download('https://cdn.discordapp.com/attachments/953060406182678628/953060859020709910/smallest_pixel-7.ttf', 'nl\\jagoyaw\\fonts\\pixel.ttf') -- helpers.Download('https://cdn.discordapp.com/attachments/953060406182678628/957747508602359818/Acta_Symbols_W95_Arrows.ttf', 'nl\\jagoyaw\\fonts\\ActaSymbolsW95Arrows.ttf') -- helpers.Download('https://cdn.discordapp.com/attachments/614973363215138817/997160940871094292/small_fonts.ttf', 'nl\\jagoyaw\\fonts\\small_fonts.ttf') -- print(files.read("nl\\jagoyaw\\easing.lua")) local easing = require 'jagoyaw/easing' local Unpack = unpack or table.unpack; local script_db = {} script_db.username = common.get_username() script_db.lua_name = 'jag0yaw' script_db.lua_version = 'BETA' local UI = { list = { }, } UI.push = function( args ) assert( args.element, 'Element is nil' ) assert( args.index, 'Index is nil' ) assert( type( args.index ) == 'string', 'Invalid type of index' ) UI.list[ args.index ] = { } UI.list[ args.index ].element = args.element UI.list[ args.index ].flags = args.flags or '' UI.list[ args.index ].visible_state = function() if not args.conditions then return true end for k, v in pairs( args.conditions ) do if not v() then return false end end return true end UI.list[ args.index ].element:set_callback( UI.visibility_handle ) UI.visibility_handle() end UI.get = function( index ) return UI.list[ index ] and UI.list[ index ].element:get() end -- UI.get_color = function( index ) -- return UI.list[ index ] and UI.list[ index ].element:GetColor() -- end UI.get_element = function( index ) return UI.list[ index ] and UI.list[ index ].element end UI.delete = function( index ) UI.get( index ):destroy() UI.list[ index ] = nil end UI.contains = function( index, value ) index = UI.get( index ) if type( index ) ~= "table" then return false end for i = 1, #index do if index[ i ] == value then return true end end return false end UI.visibility_handle = function() if ui.get_alpha() == 0 then return end for k, v in pairs( UI.list ) do v.element:set_visible( v.visible_state() ) end end local configs = {} configs.code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' configs.encode = function(data) return ( ( data:gsub( '.', function( x ) local r, b='', x:byte( ) for i = 8, 1, -1 do r = r .. ( b%2 ^ i - b%2 ^ ( i - 1 ) > 0 and '1' or '0' ) end return r; end ) .. '0000' ):gsub( '%d%d%d?%d?%d?%d?', function( x ) if ( #x < 6 ) then return '' end local c = 0 for i = 1, 6 do c = c + ( x:sub( i, i ) == '1' and 2 ^ ( 6 - i ) or 0 ) end return configs.code:sub( c + 1, c + 1 ) end) .. ( { '', '==', '=' } )[ #data%3 + 1 ] ) end configs.decode = function(data) data = string.gsub( data, '[^' .. configs.code .. '=]', '' ) return ( data:gsub( '.', function( x ) if ( x == '=' ) then return '' end local r, f = '', ( configs.code:find( x ) - 1 ) for i = 6, 1, -1 do r = r .. ( f%2 ^ i - f%2 ^ ( i - 1 ) > 0 and '1' or '0' ) end return r; end ):gsub( '%d%d%d?%d?%d?%d?%d?%d?', function( x ) if ( #x ~= 8 ) then return '' end local c = 0 for i = 1, 8 do c = c + ( x:sub( i, i ) == '1' and 2 ^ ( 8 - i ) or 0 ) end return string.char( c ) end) ) end configs.export = function() local table = {} for k, v in pairs( UI.list ) do if v.flags == 'c' then table[k] = { UI.list[ k ].element:get().r, UI.list[ k ].element:get().g, UI.list[ k ].element:get().b, UI.list[ k ].element:get().a } elseif v.flags == '-' then goto skip else table[k] = UI.list[ k ].element:get() end ::skip:: end clipboard.set(configs.encode(json.stringify(table))) end configs.import = function(config) local data = json.parse(configs.decode(config)) for item, value in pairs(data) do if UI.list[ item ].flags == 'c' then UI.get_element(item):set(color(value[1], value[2], value[3], value[4])) else UI.get_element(item):set(value) end end UI.visibility_handle() end local global_vars = { plr_conditions = { 'Global', 'Standing', 'Moving', 'Crouching T', 'Crouching CT', 'Slowwalk', 'Air duck', 'Air', 'Legit aa' }, plr_conditions_to_int = { [ 'Global' ] = 1, [ 'Standing' ] = 2, [ 'Moving' ] = 3, [ 'Crouching T' ] = 4, [ 'Crouching CT' ] = 5, [ 'Slowwalk' ] = 6, [ 'Air duck' ] = 7, [ 'Air' ] = 8, [ 'Legit aa' ] = 9 } } local ref = { pitch = ui.find("Aimbot", "Anti Aim", "Angles", "Pitch"), yaw = { mode = 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"), avoid_backstab = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw", "Avoid Backstab") }, yaw_modifier = { mode = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw Modifier"), offset = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw Modifier", "Offset") }, body_yaw = { switch = 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"), fake_options = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Options"), desync_freestand = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Freestanding"), on_shot_desync = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "On Shot"), lby_mode = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "LBY Mode"), }, freestanding = { switch = ui.find("Aimbot", "Anti Aim", "Angles", "Freestanding"), disable_yaw_modifiers = ui.find("Aimbot", "Anti Aim", "Angles", "Freestanding", "Disable Yaw Modifiers"), body_freestanding = ui.find("Aimbot", "Anti Aim", "Angles", "Freestanding", "Disable Yaw Modifiers") }, leg_movement = ui.find("Aimbot", "Anti Aim", "Misc", "Leg Movement"), slowwalk = ui.find("Aimbot", "Anti Aim", "Misc", "Slow Walk"), fakeduck = ui.find("Aimbot", "Anti Aim", "Misc", "Fake Duck"), fakelag = { switch = ui.find("Aimbot", "Anti Aim", "Fake Lag", "Enabled"), limit = ui.find("Aimbot", "Anti Aim", "Fake Lag", "Limit"), variability = ui.find("Aimbot", "Anti Aim", "Fake Lag", "Variability") }, auto_peek = ui.find("Aimbot", "Ragebot", "Main", "Peek Assist"), hide_shots = { switch = ui.find("Aimbot", "Ragebot", "Main", "Hide Shots"), options = ui.find("Aimbot", "Ragebot", "Main", "Hide Shots", "Options") }, doubletap = { switch = ui.find("Aimbot", "Ragebot", "Main", "Double Tap"), lag_options = ui.find("Aimbot", "Ragebot", "Main", "Double Tap", "Lag Options"), fakelag_limit = ui.find("Aimbot", "Ragebot", "Main", "Double Tap", "Fake Lag Limit") }, autoscope = ui.find("Aimbot", "Ragebot", "Accuracy", "Auto Scope"), hitchance = { value = ui.find("Aimbot", "Ragebot", "Selection", "Hit Chance"), strict_hitchance = ui.find("Aimbot", "Ragebot", "Selection", "Hit Chance", "Strict Hit Chance") }, minimum_damage = { value = ui.find("Aimbot", "Ragebot", "Selection", "Minimum Damage"), delay_show = ui.find("Aimbot", "Ragebot", "Selection", "Minimum Damage", "Delay Shot") }, body_aim = { mode = ui.find("Aimbot", "Ragebot", "Safety", "Body Aim"), disablers = ui.find("Aimbot", "Ragebot", "Safety", "Body Aim", "Disablers") }, safe_point = ui.find("Aimbot", "Ragebot", "Safety", "Safe Points"), hitbox_safety = ui.find("Aimbot", "Ragebot", "Safety", "Ensure Hitbox Safety"), thirdperson = ui.find("Visuals", "World", "Main", "Force Thirdperson"), override_zoom = { force_viewmodel = ui.find("Visuals", "World", "Main", "Override Zoom", "Force Viewmodel"), scope_overlay = ui.find("Visuals", "World", "Main", "Override Zoom", "Scope Overlay") } } local menu = {} menu.update_log = { "NEW DISCORD CLICK BUTTON ON THE RIGHT->", "https://discord.gg/nR7QwtkqEP", "Fixed Load default config", "Added new default config", "Added Disable freestanding in air", "Added new bluhgang indicator", "Improved body-yaw presets", "Removed obsolete features", "Fixed jag0-walk", "Added left hand knife", "Added jag0yaw logo to UI", "Fixed massive fake exploit", "Fixed legit antiaim", "Added Ideal tick", "Fixed jag0yaw v2 indicator", "Changes to acatel indicator", "Added skeet spectator list", "Added new Trash Talk", "Added skeet rainbow bar", "Added new event logs (skeet based)", "Added debug informations", "Changes to UI", "Various general improvements", "More changes coming soon!" } menu.handle_updatelog = function(table) local text = '' for i = 1, #table do text = text .. ' - ' .. table[i] .. (i ~= #table and '\n' or '') end return text end local groups = { main = { info = ui.create("Global", "Information"), config_system = ui.create('Global', 'Config system'), nothing = ui.create('Global', ' '), image = ui.create('Global', '') }, anti_aim = { main = ui.create("Anti-aim", "Main"), builder = ui.create("Anti-aim", "Preset changer"), binds = ui.create("Anti-aim", "Binds"), }, aimbot = { main = ui.create("Aimbot", "Main"), hitchances = ui.create("Aimbot", "Hitchances"), other = ui.create("Aimbot", "Other"), }, visuals = { main = ui.create("Visuals", "Main"), ui = ui.create("Visuals", "Ui"), crosshair = ui.create("Visuals", "Indicators"), custom_scope = ui.create("Visuals", "Custom scope"), logs = ui.create("Visuals", "Skeet"), other = ui.create("Visuals", "Other"), }, misc = { main = ui.create("Misc", "Main"), binds = ui.create("Misc", "Binds") } } menu.side_bar = {} menu.side_bar.animation = { "J", "JA", "JAG", "JAGO", "JAGO-", "JAGO-Y", "JAGO-YA", "JAGO-YAW", "JAGO-YAW", "JAGO-YA", "JAGO-Y", "JAGO-", "JAGO", "JAG", "JA", "J", "" } menu.side_bar.values = { timer = 0 } menu.side_bar.run = function() local curtime = math.floor(globals.curtime * 2) if menu.side_bar.values.timer ~= curtime then ui.sidebar(helpers.gradient_text(150, 171, 255, 255, 119, 124, 145, 255, menu.side_bar.animation[curtime % #menu.side_bar.animation + 1]), 'user-shield') menu.side_bar.values.timer = curtime end end ui.sidebar(helpers.gradient_text(150, 171, 255, 255, 119, 124, 145, 255, script_db.lua_name), 'user-shield') --"\aFFFFFFFF [JagoYaw] Build -> \aFCCDFFFF Dev") common.add_notify("Hello, " .. common.get_username() .. "!","\aFFFFFFFFWelcome back to JAG0YAW!") groups.main.info:label("\a858585FF[\aFCCDFFFFJag0yaw\a858585FF]\aFCCDFFFF \aFFFFFFFFWelcome back \aFCCDFFFF" .. common.get_username() .. "!") groups.main.info:label("\aFFFFFFFFBuild \a858585FF» \aFCCDFFFF" ..script_db.lua_version) groups.main.info:label("\aFFFFFFFFUpdate\a858585FF » \aFCCDFFFF09.09.2022" ) groups.main.info:label("\aFFFFFFFF\n" .. menu.handle_updatelog(menu.update_log)) local default_config = string.format("eyJhaW1ib3RfZWxlbWVudHMiOlsiSGl0Y2hhbmNlcyIsIk90aGVyIl0sImFudGlhaW1fcHJlc2V0cyI6IkN1c3RvbSIsImFudGlhaW1fc2V0dGluZ3MiOnRydWUsImFycm93c19jb2xvciI6WzE0Mi4wLDE2NS4wLDIyOS4wLDI1NS4wXSwiYXJyb3dzX3N0eWxlIjoiRGlzYWJsZWQiLCJhdmF0YXJfc2lkZSI6IkxlZnQiLCJjbGFudGFnIjpmYWxzZSwiY3Jvc3NoYWlyX3N0eWxlIjoiQWNhdGVsIiwiY3VzdG9tX3Njb3BlX2NvbG9yIjpbMTQyLjAsMTY1LjAsMjI5LjAsMjU1LjBdLCJjdXN0b21fc2NvcGVfaW5hY2N1cmFjeSI6ZmFsc2UsImN1c3RvbV9zY29wZV9sZW5naHQiOjEwLjAsImN1c3RvbV9zY29wZV9vZmZzZXQiOjcwLjAsImRlYnVnX2luZm8iOnRydWUsImRvdWJsZXRhcF9vcHRpb25zIjpbIlByZWRpY3QgZHQgZGFtYWdlIl0sImV4cGVyaW1lbnRhbF9hbnRpYnJ1dGVmb3JjZSI6dHJ1ZSwiZmFrZV9saW1pdF9qaXR0ZXJfQWlyIjo2MC4wLCJmYWtlX2xpbWl0X2ppdHRlcl9BaXIgZHVjayI6NjAuMCwiZmFrZV9saW1pdF9qaXR0ZXJfQ3JvdWNoaW5nIENUIjo2MC4wLCJmYWtlX2xpbWl0X2ppdHRlcl9Dcm91Y2hpbmcgVCI6NjAuMCwiZmFrZV9saW1pdF9qaXR0ZXJfR2xvYmFsIjo2MC4wLCJmYWtlX2xpbWl0X2ppdHRlcl9MZWdpdCBhYSI6NjAuMCwiZmFrZV9saW1pdF9qaXR0ZXJfTW92aW5nIjo2MC4wLCJmYWtlX2xpbWl0X2ppdHRlcl9TbG93d2FsayI6NjAuMCwiZmFrZV9saW1pdF9qaXR0ZXJfU3RhbmRpbmciOjYwLjAsImZha2VfbGltaXRfbGVmdF9BaXIiOjYwLjAsImZha2VfbGltaXRfbGVmdF9BaXIgZHVjayI6NjAuMCwiZmFrZV9saW1pdF9sZWZ0X0Nyb3VjaGluZyBDVCI6NjAuMCwiZmFrZV9saW1pdF9sZWZ0X0Nyb3VjaGluZyBUIjo2MC4wLCJmYWtlX2xpbWl0X2xlZnRfR2xvYmFsIjoxLjAsImZha2VfbGltaXRfbGVmdF9MZWdpdCBhYSI6NjAuMCwiZmFrZV9saW1pdF9sZWZ0X01vdmluZyI6NjAuMCwiZmFrZV9saW1pdF9sZWZ0X1Nsb3d3YWxrIjo2MC4wLCJmYWtlX2xpbWl0X2xlZnRfU3RhbmRpbmciOjYwLjAsImZha2VfbGltaXRfcmFuZG9tX0FpciI6NjAuMCwiZmFrZV9saW1pdF9yYW5kb21fQWlyIGR1Y2siOjYwLjAsImZha2VfbGltaXRfcmFuZG9tX0Nyb3VjaGluZyBDVCI6NjAuMCwiZmFrZV9saW1pdF9yYW5kb21fQ3JvdWNoaW5nIFQiOjYwLjAsImZha2VfbGltaXRfcmFuZG9tX0dsb2JhbCI6NjAuMCwiZmFrZV9saW1pdF9yYW5kb21fTGVnaXQgYWEiOjYwLjAsImZha2VfbGltaXRfcmFuZG9tX01vdmluZyI6NjAuMCwiZmFrZV9saW1pdF9yYW5kb21fU2xvd3dhbGsiOjYwLjAsImZha2VfbGltaXRfcmFuZG9tX1N0YW5kaW5nIjo2MC4wLCJmYWtlX2xpbWl0X3JpZ2h0X0FpciI6NjAuMCwiZmFrZV9saW1pdF9yaWdodF9BaXIgZHVjayI6NjAuMCwiZmFrZV9saW1pdF9yaWdodF9Dcm91Y2hpbmcgQ1QiOjYwLjAsImZha2VfbGltaXRfcmlnaHRfQ3JvdWNoaW5nIFQiOjYwLjAsImZha2VfbGltaXRfcmlnaHRfR2xvYmFsIjoxLjAsImZha2VfbGltaXRfcmlnaHRfTGVnaXQgYWEiOjYwLjAsImZha2VfbGltaXRfcmlnaHRfTW92aW5nIjo2MC4wLCJmYWtlX2xpbWl0X3JpZ2h0X1Nsb3d3YWxrIjo2MC4wLCJmYWtlX2xpbWl0X3JpZ2h0X1N0YW5kaW5nIjo2MC4wLCJmYWtlX2xpbWl0X3R5cGVfQWlyIjoiU3RhdGljIiwiZmFrZV9saW1pdF90eXBlX0FpciBkdWNrIjoiU3RhdGljIiwiZmFrZV9saW1pdF90eXBlX0Nyb3VjaGluZyBDVCI6IlN0YXRpYyIsImZha2VfbGltaXRfdHlwZV9Dcm91Y2hpbmcgVCI6IlN0YXRpYyIsImZha2VfbGltaXRfdHlwZV9HbG9iYWwiOiJTdGF0aWMiLCJmYWtlX2xpbWl0X3R5cGVfTGVnaXQgYWEiOiJTdGF0aWMiLCJmYWtlX2xpbWl0X3R5cGVfTW92aW5nIjoiU3RhdGljIiwiZmFrZV9saW1pdF90eXBlX1Nsb3d3YWxrIjoiU3RhdGljIiwiZmFrZV9saW1pdF90eXBlX1N0YW5kaW5nIjoiU3RhdGljIiwiZmFrZV9vcHRpb25zX0FpciI6W10sImZha2Vfb3B0aW9uc19BaXIgZHVjayI6W10sImZha2Vfb3B0aW9uc19Dcm91Y2hpbmcgQ1QiOltdLCJmYWtlX29wdGlvbnNfQ3JvdWNoaW5nIFQiOltdLCJmYWtlX29wdGlvbnNfR2xvYmFsIjpbIkF2b2lkIG92ZXJsYXAiLCJKaXR0ZXIiLCJBbnRpIEJydXRlZm9yY2UiXSwiZmFrZV9vcHRpb25zX0xlZ2l0IGFhIjpbXSwiZmFrZV9vcHRpb25zX01vdmluZyI6W10sImZha2Vfb3B0aW9uc19TbG93d2FsayI6W10sImZha2Vfb3B0aW9uc19TdGFuZGluZyI6W10sImZyZWVzdGFuZGluZ19rZXkiOmZhbHNlLCJmcmVlc3RhbmRpbmdfbW9kZV9BaXIiOiJPZmYiLCJmcmVlc3RhbmRpbmdfbW9kZV9BaXIgZHVjayI6Ik9mZiIsImZyZWVzdGFuZGluZ19tb2RlX0Nyb3VjaGluZyBDVCI6Ik9mZiIsImZyZWVzdGFuZGluZ19tb2RlX0Nyb3VjaGluZyBUIjoiT2ZmIiwiZnJlZXN0YW5kaW5nX21vZGVfR2xvYmFsIjoiT2ZmIiwiZnJlZXN0YW5kaW5nX21vZGVfTGVnaXQgYWEiOiJPZmYiLCJmcmVlc3RhbmRpbmdfbW9kZV9Nb3ZpbmciOiJPZmYiLCJmcmVlc3RhbmRpbmdfbW9kZV9TbG93d2FsayI6Ik9mZiIsImZyZWVzdGFuZGluZ19tb2RlX1N0YW5kaW5nIjoiT2ZmIiwiaGl0Y2hhbmNlX2FpciI6NTAuMCwiaGl0Y2hhbmNlX2Fpcl9lbmFibGUiOmZhbHNlLCJoaXRjaGFuY2VfYWlyX3dlYXBvbnMiOltdLCJoaXRjaGFuY2Vfbm9zY29wZSI6NTAuMCwiaGl0Y2hhbmNlX25vc2NvcGVfZW5hYmxlIjpmYWxzZSwiaGl0Y2hhbmNlX25vc2NvcGVfd2VhcG9ucyI6W10sImhpdG1hcmtlciI6dHJ1ZSwiaGl0bWFya2VyX2RhbWFnZV9jb2xvciI6WzI1NS4wLDI1NS4wLDI1NS4wLDI1NS4wXSwiaGl0bWFya2VyX3BsdXNfY29sb3IiOlsyNTUuMCwyNTUuMCwyNTUuMCwyNTUuMF0sImhpdG1hcmtlcl90eXBlIjpbIisiXSwiaWRlYWx0aWNrIjpmYWxzZSwiaWRlYWx0aWNrX29wdGlvbnMiOltdLCJpbmRpY2F0b3JzX2NvbG9yIjpbMTQyLjAsMTY1LjAsMjI5LjAsMjU1LjBdLCJraWxsc2F5IjpmYWxzZSwibGJ5X21vZGVfQWlyIjoiRGlzYWJsZWQiLCJsYnlfbW9kZV9BaXIgZHVjayI6IkRpc2FibGVkIiwibGJ5X21vZGVfQ3JvdWNoaW5nIENUIjoiRGlzYWJsZWQiLCJsYnlfbW9kZV9Dcm91Y2hpbmcgVCI6IkRpc2FibGVkIiwibGJ5X21vZGVfR2xvYmFsIjoiU3dheSIsImxieV9tb2RlX0xlZ2l0IGFhIjoiRGlzYWJsZWQiLCJsYnlfbW9kZV9Nb3ZpbmciOiJEaXNhYmxlZCIsImxieV9tb2RlX1Nsb3d3YWxrIjoiRGlzYWJsZWQiLCJsYnlfbW9kZV9TdGFuZGluZyI6IkRpc2FibGVkIiwibGVnaXRhYV9hdF90YXJnZXRzIjp0cnVlLCJsZWdpdGFhX2tleSI6ZmFsc2UsImxvZ3MiOnRydWUsIm1hc3NpdmVfZmFrZV9rZXkiOmZhbHNlLCJvbnNob3RfbW9kZV9BaXIiOiJEaXNhYmxlZCIsIm9uc2hvdF9tb2RlX0FpciBkdWNrIjoiRGlzYWJsZWQiLCJvbnNob3RfbW9kZV9Dcm91Y2hpbmcgQ1QiOiJEaXNhYmxlZCIsIm9uc2hvdF9tb2RlX0Nyb3VjaGluZyBUIjoiRGlzYWJsZWQiLCJvbnNob3RfbW9kZV9HbG9iYWwiOiJTd2l0Y2giLCJvbnNob3RfbW9kZV9MZWdpdCBhYSI6IkRpc2FibGVkIiwib25zaG90X21vZGVfTW92aW5nIjoiRGlzYWJsZWQiLCJvbnNob3RfbW9kZV9TbG93d2FsayI6IkRpc2FibGVkIiwib25zaG90X21vZGVfU3RhbmRpbmciOiJEaXNhYmxlZCIsInByZXNldF9lbmFibGVfQWlyIjpmYWxzZSwicHJlc2V0X2VuYWJsZV9BaXIgZHVjayI6ZmFsc2UsInByZXNldF9lbmFibGVfQ3JvdWNoaW5nIENUIjpmYWxzZSwicHJlc2V0X2VuYWJsZV9Dcm91Y2hpbmcgVCI6ZmFsc2UsInByZXNldF9lbmFibGVfR2xvYmFsIjpmYWxzZSwicHJlc2V0X2VuYWJsZV9MZWdpdCBhYSI6ZmFsc2UsInByZXNldF9lbmFibGVfTW92aW5nIjpmYWxzZSwicHJlc2V0X2VuYWJsZV9TbG93d2FsayI6ZmFsc2UsInByZXNldF9lbmFibGVfU3RhbmRpbmciOmZhbHNlLCJyYWluYm93Ijp0cnVlLCJzbG93d2Fsa190eXBlIjoiT2xkIiwic3BlY3RhdG9ycyI6dHJ1ZSwic3RhdGljX3JhZ2RvbGxzIjp0cnVlLCJ0ZWxlcG9ydF9pbmFpciI6ZmFsc2UsInRyYXNoIjpmYWxzZSwidWlfY29sb3IiOlsxNDIuMCwxNjUuMCwyMjkuMCwyNTUuMF0sInVpX2VsZW1lbnRzIjpbIldhdGVybWFyayJdLCJ1aV9zdHlsZSI6IkRlZmF1bHQiLCJ2aWV3bW9kZWxfc2NvcGUiOmZhbHNlLCJ2aXN1YWxfZWxlbWVudHMiOlsiSW5kaWNhdG9ycyIsIlVpIiwiU2tlZXQiLCJPdGhlciJdLCJ3YXJtdXBfYWEiOmZhbHNlLCJ3YXRlcm1hcmtfbmFtZSI6IkNoZWF0Iiwid2F0ZXJtYXJrX25hbWVfcmVmIjoiIiwieWF3X2FkZF9sZWZ0X0FpciI6MC4wLCJ5YXdfYWRkX2xlZnRfQWlyIGR1Y2siOjAuMCwieWF3X2FkZF9sZWZ0X0Nyb3VjaGluZyBDVCI6MC4wLCJ5YXdfYWRkX2xlZnRfQ3JvdWNoaW5nIFQiOjAuMCwieWF3X2FkZF9sZWZ0X0dsb2JhbCI6LTE4LjAsInlhd19hZGRfbGVmdF9MZWdpdCBhYSI6LTE4MC4wLCJ5YXdfYWRkX2xlZnRfTW92aW5nIjowLjAsInlhd19hZGRfbGVmdF9TbG93d2FsayI6MC4wLCJ5YXdfYWRkX2xlZnRfU3RhbmRpbmciOjAuMCwieWF3X2FkZF9yaWdodF9BaXIiOjAuMCwieWF3X2FkZF9yaWdodF9BaXIgZHVjayI6MC4wLCJ5YXdfYWRkX3JpZ2h0X0Nyb3VjaGluZyBDVCI6MC4wLCJ5YXdfYWRkX3JpZ2h0X0Nyb3VjaGluZyBUIjowLjAsInlhd19hZGRfcmlnaHRfR2xvYmFsIjotMjMuMCwieWF3X2FkZF9yaWdodF9MZWdpdCBhYSI6LTE4MC4wLCJ5YXdfYWRkX3JpZ2h0X01vdmluZyI6MC4wLCJ5YXdfYWRkX3JpZ2h0X1Nsb3d3YWxrIjowLjAsInlhd19hZGRfcmlnaHRfU3RhbmRpbmciOjAuMCwieWF3X2FkZF90eXBlX0FpciI6IlN0YXRpYyIsInlhd19hZGRfdHlwZV9BaXIgZHVjayI6IlN0YXRpYyIsInlhd19hZGRfdHlwZV9Dcm91Y2hpbmcgQ1QiOiJTdGF0aWMiLCJ5YXdfYWRkX3R5cGVfQ3JvdWNoaW5nIFQiOiJTdGF0aWMiLCJ5YXdfYWRkX3R5cGVfR2xvYmFsIjoiU3RhdGljIiwieWF3X2FkZF90eXBlX0xlZ2l0IGFhIjoiU3RhdGljIiwieWF3X2FkZF90eXBlX01vdmluZyI6IlN0YXRpYyIsInlhd19hZGRfdHlwZV9TbG93d2FsayI6IlN0YXRpYyIsInlhd19hZGRfdHlwZV9TdGFuZGluZyI6IlN0YXRpYyIsInlhd19tb2RpZmllcl9BaXIiOiJEaXNhYmxlZCIsInlhd19tb2RpZmllcl9BaXIgZHVjayI6IkRpc2FibGVkIiwieWF3X21vZGlmaWVyX0Nyb3VjaGluZyBDVCI6IkRpc2FibGVkIiwieWF3X21vZGlmaWVyX0Nyb3VjaGluZyBUIjoiRGlzYWJsZWQiLCJ5YXdfbW9kaWZpZXJfR2xvYmFsIjoiQ2VudGVyIiwieWF3X21vZGlmaWVyX0xlZ2l0IGFhIjoiRGlzYWJsZWQiLCJ5YXdfbW9kaWZpZXJfTW92aW5nIjoiRGlzYWJsZWQiLCJ5YXdfbW9kaWZpZXJfU2xvd3dhbGsiOiJEaXNhYmxlZCIsInlhd19tb2RpZmllcl9TdGFuZGluZyI6IkRpc2FibGVkIiwieWF3X21vZGlmaWVyX3ZhbHVlX0FpciI6MC4wLCJ5YXdfbW9kaWZpZXJfdmFsdWVfQWlyIGR1Y2siOjAuMCwieWF3X21vZGlmaWVyX3ZhbHVlX0Nyb3VjaGluZyBDVCI6MC4wLCJ5YXdfbW9kaWZpZXJfdmFsdWVfQ3JvdWNoaW5nIFQiOjAuMCwieWF3X21vZGlmaWVyX3ZhbHVlX0dsb2JhbCI6MzAuMCwieWF3X21vZGlmaWVyX3ZhbHVlX0xlZ2l0IGFhIjowLjAsInlhd19tb2RpZmllcl92YWx1ZV9Nb3ZpbmciOjAuMCwieWF3X21vZGlmaWVyX3ZhbHVlX1Nsb3d3YWxrIjowLjAsInlhd19tb2RpZmllcl92YWx1ZV9TdGFuZGluZyI6MC4wfQ==") groups.main.config_system:button(" Load default config ", function() local status, error = pcall(configs.import, default_config) if status then common.add_notify(script_db.lua_name, "Succesfully loaded default config") else common.add_notify(script_db.lua_name, "Error while loading default config (" .. error .. ")") end end) groups.main.config_system:button(" Export config to clipboard ", function() local status, error = pcall(configs.export) if status then common.add_notify(script_db.lua_name, "Succesfully exported settings to clipboard") else common.add_notify(script_db.lua_name, "Error while exporting settings to clipboard (" .. error .. ")") end end) groups.main.config_system:button(" Import config from clipboard ", function() local data = clipboard.get() local status, error = pcall(configs.import, data) if status then common.add_notify(script_db.lua_name, "Succesfully imported settings from clipboard") else common.add_notify(script_db.lua_name, "Error while importing config (" .. error .. ")") end end) groups.main.config_system:button(" Join discord ", function() -- button is clicked copy discord link js.OpenExternalBrowserURL("https://discord.gg/nR7QwtkqEP") end) groups.main.config_system:button(" JAG0 BETA ", function() -- button is clicked copy discord link js.OpenExternalBrowserURL("https://en.neverlose.cc/market/item?id=sc3Shk") end) menu.gears = {} UI.push( { element = groups.aimbot.main:selectable("Aimbot elements", { 'Hitchances', "Other" }), index = 'aimbot_elements', flags = '' } ) UI.push( { element = groups.aimbot.hitchances:switch("Air"), index = 'hitchance_air_enable', flags = '', conditions = { function() return UI.contains('aimbot_elements', 'Hitchances') end } } ) menu.gears.air_hc = UI.get_element('hitchance_air_enable'):create() UI.push( { element = menu.gears.air_hc:slider("Hitchance\nair", 0, 100, 50), index = 'hitchance_air', flags = '', conditions = { function() return UI.contains('aimbot_elements', 'Hitchances') end, function() return UI.get('hitchance_air_enable') end } } ) UI.push( { element = menu.gears.air_hc:selectable("Weapons\nair", { 'Scout', 'Revolver', 'Other' }), index = 'hitchance_air_weapons', flags = '', conditions = { function() return UI.contains('aimbot_elements', 'Hitchances') end, function() return UI.get('hitchance_air_enable') end } } ) UI.push( { element = groups.aimbot.hitchances:switch("No scope"), index = 'hitchance_noscope_enable', flags = '', conditions = { function() return UI.contains('aimbot_elements', 'Hitchances') end } } ) menu.gears.noscope_hc = UI.get_element('hitchance_noscope_enable'):create() UI.push( { element = menu.gears.noscope_hc:slider("Hitchance\nnoscope", 0, 100, 50), index = 'hitchance_noscope', flags = '', conditions = { function() return UI.contains('aimbot_elements', 'Hitchances') end, function() return UI.get('hitchance_noscope_enable') end } } ) UI.push( { element = menu.gears.noscope_hc:selectable("Weapons\nnoscope", { 'Auto', 'Scout', 'Other' }), index = 'hitchance_noscope_weapons', flags = '', conditions = { function() return UI.contains('aimbot_elements', 'Hitchances') end, function() return UI.get('hitchance_noscope_enable') end } } ) UI.push( { element = groups.aimbot.other:selectable("Doubletap options", { "Faster doubletap", "Adaptive recharge", "Predict dt damage" }), index = 'doubletap_options', flags = '', conditions = { function() return UI.contains('aimbot_elements', "Other") end } } ) UI.push( { element = groups.aimbot.other:switch("Ideal tick"), index = 'idealtick', flags = '', conditions = { } } ) UI.get_element('idealtick'):set_tooltip("it Enables your doubletap, autopeek, freestand, safepoint head and instant recharge using one bind") UI.push( { element = groups.aimbot.other:selectable("Ideal tick options", { "freestand", "doubletap", "safepoint head", "instant recharge" }), index = 'idealtick_options', flags = '', conditions = { } } ) UI.push( { element = groups.anti_aim.main:switch("Enable antiaim settings"), index = 'antiaim_settings', flags = '', conditions = { } } ) UI.get_element('antiaim_settings'):set_tooltip("Enables aimbot settings") UI.push( { element = groups.anti_aim.main:combo("Body yaw type", { "Smart", "Jitter", "Avoidance", "Custom" }), index = 'antiaim_presets', flags = '', conditions = { function() return UI.get('antiaim_settings') end } } ) -- UI.push( { element = groups.anti_aim.main:combo("Yaw base", { "Forward", "Backward", "Right", "Left", "At target", "Freestanding" }), index = 'yaw_base', flags = '', conditions = { -- function() return UI.get('antiaim_settings') end -- } } ) UI.push( { element = groups.anti_aim.main:combo("Active condition", global_vars.plr_conditions), index = 'condition_selector', flags = '-', conditions = { function() return UI.get('antiaim_settings') end, function() return UI.get('antiaim_presets') == "Custom" end } } ) UI.push( { element = groups.anti_aim.main:combo("Slow walk type", { "Old", "New", "Hybrid" }), index = 'slowwalk_type', flags = '', conditions = { function() return UI.get('antiaim_settings') end, function() return UI.get('antiaim_presets') == "Smart" end } } ) UI.push( { element = groups.anti_aim.main:switch("Freestanding"), index = 'freestanding_key', flags = '', conditions = { function() return UI.get('antiaim_settings') end } } ) UI.push( { element = groups.anti_aim.main:switch("Disable Freestanding In Air"), index = 'freestanding_air', flags = '', conditions = { function() return UI.get('antiaim_settings') end } } ) UI.push( { element = groups.anti_aim.main:switch("Massive Fake Exploit"), index = 'massive_fake_key', flags = '', conditions = { function() return UI.get('antiaim_settings') end } } ) -- UI.push( { element = groups.anti_aim.main:switch("Antibackstab"), index = 'antibackstab', flags = '', conditions = { -- function() return UI.get('antiaim_settings') end -- } } ) UI.push( { element = groups.anti_aim.main:switch("Teleport in air"), index = 'teleport_inair', flags = '', conditions = { function() return UI.get('antiaim_settings') end } } ) -- UI.push( { element = groups.anti_aim.main:switch("Break extrapolation"), index = 'break_extrapolation', flags = '', conditions = { -- function() return UI.get('antiaim_settings') end -- } } ) -- UI.get_element('break_extrapolation'):set_tooltip("Attempts to break enemies extrapolation/dt prediction") UI.push( { element = groups.anti_aim.main:switch("Experimental anti bruteforce"), index = 'experimental_antibruteforce', flags = '', conditions = { function() return UI.get('antiaim_settings') end } } ) UI.push( { element = groups.anti_aim.main:switch("Warmup anti-aim"), index = 'warmup_aa', flags = '', conditions = { function() return UI.get('antiaim_settings') end } } ) UI.push( { element = groups.anti_aim.main:switch("Legit desync (bind)"), index = 'legitaa_key', flags = '', conditions = { function() return UI.get('antiaim_settings') end } } ) UI.push( { element = groups.anti_aim.main:switch("Legit desync at-targets"), index = 'legitaa_at_targets', flags = '', conditions = { function() return UI.get('antiaim_settings') end } } ) --UI.push( { element = groups.anti_aim.main:combo("Manual Side", { "None", "Left", "Right" }), index = 'manual_side', flags = '', conditions = { -- function() return UI.get('antiaim_settings') end --} } ) for i = 1, #global_vars.plr_conditions do local condition = global_vars.plr_conditions[i] local base_argument = function() return ( UI.get('antiaim_presets') == "Custom" and condition == UI.get('condition_selector') ) and UI.get('antiaim_settings') end UI.push( { element = groups.anti_aim.builder:switch("Enable condition"), index = 'preset_enable_' .. condition, flags = '', conditions = { base_argument, function() return i ~= 1 end } } ) base_argument = function() return ( UI.get('antiaim_presets') == "Custom" and condition == UI.get('condition_selector') ) and UI.get('antiaim_settings') and (i == 1 and true or UI.get('preset_enable_' .. condition)) end UI.push( { element = groups.anti_aim.builder:combo("Yaw Add Type", { "Static", "Jitter", "Random" }), index = 'yaw_add_type_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:slider("Yaw Add Left", -180, 180, 0), index = 'yaw_add_left_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:slider("Yaw Add Right", -180, 180, 0), index = 'yaw_add_right_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:combo("Yaw Modifier", { "Disabled", "Center", "Offset", "Random", "Spin" }), index = 'yaw_modifier_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:slider("Modifier Degree", -180, 180, 0), index = 'yaw_modifier_value_' .. condition, flags = '', conditions = { base_argument, function() return UI.get('yaw_modifier_' .. condition) ~= 'Disabled' end } } ) UI.push( { element = groups.anti_aim.builder:combo("Fake Limit Type", { "Static", "Jitter", "Random" }), index = 'fake_limit_type_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:slider("Fake Limit Left", 0, 60, 60), index = 'fake_limit_left_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:slider("Fake Limit Right", 0, 60, 60), index = 'fake_limit_right_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:slider("Jitter Value", 0, 60, 60), index = 'fake_limit_jitter_' .. condition, flags = '', conditions = { base_argument, function() return UI.get('fake_limit_type_' .. condition) == 'Jitter' end } } ) UI.push( { element = groups.anti_aim.builder:slider("Random Min Value", 0, 60, 60), index = 'fake_limit_random_' .. condition, flags = '', conditions = { base_argument, function() return UI.get('fake_limit_type_' .. condition) == "Random" end } } ) UI.push( { element = groups.anti_aim.builder:selectable("Fake Options", { "Avoid overlap", "Jitter", "Randomize Jitter", "Anti Bruteforce" }), index = 'fake_options_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:combo("LBY Mode", { "Disabled", "Opposite", "Sway" }), index = 'lby_mode_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:combo("Freestanding Desync", { "Off", "Peek Fake", "Peek Real" }), index = 'freestanding_mode_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:combo("Desync On Shot", { "Disabled", "Opposite", "Freestanding", "Switch" }), index = 'onshot_mode_' .. condition, flags = '', conditions = { base_argument } } ) end do UI.get_element('yaw_add_right_Legit aa'):set(-180) UI.get_element('yaw_add_left_Legit aa'):set(-180) end local guwwno = render.load_image(network.get('https://i.imgur.com/H0nvv79.gif'), vector(150, 50)) groups.main.image:texture(guwwno, vector(255, 248)) groups.main.nothing:label("") UI.push( { element = groups.visuals.main:selectable("Visual elements", { "Indicators", 'Ui', 'Custom scope', 'Skeet', 'Other' }), index = 'visual_elements', flags = '' } ) UI.push( { element = groups.visuals.crosshair:combo("Indicators", { 'Disabled', "Idealyaw (soon)", "Jagoyaw v3 (soon)", "Jagoyaw v2", "Axis", "Prediction v2 (soon)", "Acatel","bluhgang", "Jagoyaw v4 (soon)", "Drainyaw (soon)"}), index = 'crosshair_style', flags = '', conditions = { function() return UI.contains('visual_elements', "Indicators") end } } ) UI.push( { element = groups.visuals.crosshair:color_picker("Indicators color", color(142, 165, 229,255)), index = 'indicators_color', flags = 'c', conditions = { function() return UI.contains('visual_elements', 'Indicators') end } } ) UI.push( { element = groups.visuals.crosshair:combo("Arrows", { "Disabled", "Team skeet", "Jagoyaw"}), index = 'arrows_style', flags = '', conditions = { function() return UI.contains('visual_elements', "Indicators") end } } ) UI.push( { element = groups.visuals.crosshair:color_picker("Arrows color", color(142, 165, 229,255)), index = 'arrows_color', flags = 'c', conditions = { function() return UI.contains('visual_elements', 'Indicators') end } } ) UI.push( { element = groups.visuals.ui:selectable("Ui elements", { 'Watermark', 'Keybinds', 'Spectators' }), index = 'ui_elements', flags = '', conditions = { function() return UI.contains('visual_elements', 'Ui') end } } ) UI.push( { element = groups.visuals.ui:combo("Ui style", { "Default", "Glow (soon)" }), index = 'ui_style', flags = '', conditions = { function() return UI.contains('visual_elements', 'Ui') end } } ) UI.push( { element = groups.visuals.ui:combo("Watermark name", { "Cheat", "Custom" }), index = 'watermark_name', flags = '', conditions = { function() return UI.contains('visual_elements', 'Ui') end, function() return UI.contains('ui_elements', 'Watermark') end } } ) UI.push( { element = groups.visuals.ui:input('name'), index = 'watermark_name_ref', flags = '', conditions = { function() return UI.contains('visual_elements', 'Ui') end, function() return UI.contains('ui_elements', 'Watermark') end, function() return UI.get('watermark_name') == 'Custom' end } } ) UI.push( { element = groups.visuals.ui:combo("Avatars side", { 'Left', 'Right' }), index = 'avatar_side', flags = '', conditions = { function() return UI.contains('visual_elements', 'Ui') end, function() return UI.contains('ui_elements', 'Spectators') end } } ) UI.push( { element = groups.visuals.ui:color_picker("Ui color", color(142, 165, 229,255)), index = 'ui_color', flags = 'c', conditions = { function() return UI.contains('visual_elements', 'Ui') end } } ) UI.push( { element = groups.visuals.custom_scope:slider("Scope line length", 0, 500, 10), index = 'custom_scope_lenght', flags = '', conditions = { function() return UI.contains('visual_elements', 'Custom scope') end } } ) UI.push( { element = groups.visuals.custom_scope:slider("Scope line offset", 0, 500, 70), index = 'custom_scope_offset', flags = '', conditions = { function() return UI.contains('visual_elements', 'Custom scope') end } } ) UI.push( { element = groups.visuals.custom_scope:color_picker("Color", color(142, 165, 229,255)), index = 'custom_scope_color', flags = 'c', conditions = { function() return UI.contains('visual_elements', 'Custom scope') end } } ) UI.push( { element = groups.visuals.custom_scope:switch("Scope inaccuracy"), index = 'custom_scope_inaccuracy', flags = '', conditions = { function() return UI.contains('visual_elements', 'Custom scope') end } } ) UI.push( { element = groups.visuals.custom_scope:switch("Viewmodel in scope"), index = 'viewmodel_scope', flags = '', conditions = { function() return UI.contains('visual_elements', 'Custom scope') end } } ) UI.push( { element = groups.visuals.other:switch("Static ragdolls"), index = 'static_ragdolls', flags = '', conditions = { function() return UI.contains('visual_elements', 'Other') end } } ) UI.get_element('static_ragdolls'):set_tooltip("Makes it, so ragdolls stay static after players die") UI.push( { element = groups.visuals.other:switch("Hit markers"), index = 'hitmarker', flags = '', conditions = { function() return UI.contains('visual_elements', 'Other') end } } ) UI.push( { element = groups.visuals.other:selectable("Hitmarkers type", { "+", "damage" }), index = 'hitmarker_type', flags = '', conditions = { function() return UI.contains('visual_elements', 'Other') end, function() return UI.get('hitmarker') end } } ) UI.push( { element = groups.visuals.other:color_picker("Hitmarker color", color(255, 255, 255, 255) ), index = 'hitmarker_plus_color', flags = 'c', conditions = { function() return UI.contains('visual_elements', 'Other') end, function() return UI.get('hitmarker') end } } ) UI.push( { element = groups.visuals.other:color_picker("Damage hitmarker color", color(255, 255, 255, 255) ), index = 'hitmarker_damage_color', flags = 'c', conditions = { function() return UI.contains('visual_elements', 'Other') end } } ) UI.push( { element = groups.visuals.logs:switch("Event logs"), index = 'logs', flags = '', conditions = { function() return UI.contains('visual_elements', 'Skeet') end } } ) UI.push( { element = groups.visuals.logs:switch("Rainbow Bar"), index = 'rainbow', flags = '', conditions = { function() return UI.contains('visual_elements', 'Skeet') end } } ) UI.push( { element = groups.visuals.logs:switch("Trash Talk"), index = 'trash', flags = '', conditions = { function() return UI.contains('visual_elements', 'Skeet') end } } ) UI.push( { element = groups.visuals.logs:switch("Spectators"), index = 'spectators', flags = '', conditions = { function() return UI.contains('visual_elements', 'Skeet') end } } ) UI.push( { element = groups.visuals.logs:switch("Debug Info"), index = 'debug_info', flags = '', conditions = { function() return UI.contains('visual_elements', 'Skeet') end } } ) UI.push( { element = groups.visuals.logs:switch("Left Hand Knife"), index = 'left_hand', flags = '', conditions = { function() return UI.contains('visual_elements', 'Skeet') end } } ) -- UI.push( { element = groups.visuals.logs:selectable("Animation Breaker",{ 'Ground', 'Air', 'Zero Pitch on Land' }), index = 'anim_break', flags = '', conditions = { -- function() return UI.contains('visual_elements', 'Skeet') end -- } } ) UI.push( { element = groups.visuals.main:switch("Clantag"), index = 'clantag', flags = '', conditions = { } } ) UI.get_element('clantag'):set_tooltip("synced clantag used to represent the strongest lua script on neverlose forums!") UI.push( { element = groups.visuals.main:switch("Kill say"), index = 'killsay', flags = '', conditions = { } } ) helpers.dragging_fn = function(name, base_x, base_y) return (function() local a = {} local b, c, f, g, h, i, k, l, m, n, o local d, j = {}, {} local p = {__index = {drag = function(self, ...) local q, r = self:get() local s, t = a.drag(q, r, ...) if q ~= s or r ~= t then self:set(s, t) end return s, t end, set = function(self, q, r) local j = render.screen_size() self.x_reference:set(q / j.x * self.res) self.y_reference:set(r / j.y * self.res) end, get = function(self) local j = render.screen_size() return self.x_reference:get() / self.res * j.x, self.y_reference:get() / self.res * j.y end}} function a.new(u, v, w, x) x = x or 10000 local j = render.screen_size() local y = groups.main.info:slider(u .. ' window position', 0, x, v / j.x * x) local z = groups.main.info:slider(u .. ' window position y', 0, x, w / j.y * x) y:set_visible(false) z:set_visible(false) return setmetatable({name = u, x_reference = y, y_reference = z, res = x}, p) end function a.drag(q, r, A, B, C, D, E) if globals.framecount ~= b then c = ui.get_alpha() > 0 f, g = d.x, d.y d = ui.get_mouse_position() i = h h = common.is_button_down(0x1) == true m = l l = {} o = n n = false j = render.screen_size() end if c and i ~= nil then if (not i or o) and h and f > q and g > r and f < q + A and g < r + B then n = true q, r = q + d.x - f, r + d.y - g if not D then q = math.max(0, math.min(j.x - A, q)) r = math.max(0, math.min(j.y - B, r)) end end end table.insert(l, {q, r, A, B}) return q, r, A, B end return a end)().new(name, base_x, base_y) end local handle_aa = {} handle_aa.vars = { player_state = 1, player_condition = 'global', second_condition = 'Normal', antiaim_state = { 'global', 'Normal' }, bestenemy = 0, best_value = false, desync_value = 0 } handle_aa.player_state = function() local localplayer = entity.get_local_player() if localplayer == nil then return end local team = localplayer.m_iTeamNum local onground = helpers.on_ground( localplayer ) and not common.is_button_down(0x20) local legit_aa = UI.get('legitaa_key') local velocity = helpers.get_velocity( localplayer ) local crouched = helpers.is_crouching( localplayer ) and onground local flags = localplayer.m_fFlags --263 crouch, 257 on ground, 256 in air local slowwalking = ref.slowwalk:get() and onground and velocity > 2 and not crouched local inair_crouch = helpers.in_air( localplayer ) and not onground and flags == 262 local inair = helpers.in_air( localplayer ) and not onground local fakeducking = ref.fakeduck:get() and onground if inair_crouch then handle_aa.vars.player_state = 7 elseif inair then handle_aa.vars.player_state = 8 end if onground and velocity > 2 and flags ~= 256 and flags ~= 263 and not fakeducking then handle_aa.vars.player_state = 3 end if onground and velocity < 2 and flags ~= 256 and flags ~= 263 and not fakeducking then handle_aa.vars.player_state = 2 end if ( team == 3 and crouched ) or ( team == 3 and fakeducking ) then handle_aa.vars.player_state = 5 end if ( team == 2 and crouched ) or ( team == 2 and fakeducking ) then handle_aa.vars.player_state = 4 end if slowwalking and not fakeducking then handle_aa.vars.player_state = 6 end if legit_aa then handle_aa.vars.player_state = 9 end handle_aa.vars.player_condition = global_vars.plr_conditions[handle_aa.vars.player_state] handle_aa.vars.antiaim_state = { handle_aa.vars.player_condition, handle_aa.vars.second_condition } end handle_aa.get_best_side = function( fsmode ) local localplayer = entity.get_local_player() if not localplayer then return end local eye_pos = localplayer:get_eye_position() local enemies = entity.get_players(true) handle_aa.vars.bestenemy = helpers.get_nearest_enemy(localplayer, enemies) local enemy = handle_aa.vars.bestenemy ~= nil and entity.get(handle_aa.vars.bestenemy) or nil if handle_aa.vars.bestenemy ~= nil and handle_aa.vars.bestenemy ~= 0 and enemy:is_alive() and fsmode ~= nil then local e_x, e_y, e_z = enemy:get_hitbox_position(0).x, enemy:get_hitbox_position(0).y, enemy:get_hitbox_position(0).z local yaw = helpers.calc_angle(eye_pos.x, eye_pos.y, e_x, e_y) local rdir_x, rdir_y, rdir_z = helpers.angle_vector(0, (yaw + 90)) local rend_x = eye_pos.x + rdir_x * 10 local rend_y = eye_pos.y + rdir_y * 10 local ldir_x, ldir_y, ldir_z = helpers.angle_vector(0, (yaw - 90)) local lend_x = eye_pos.x + ldir_x * 10 local lend_y = eye_pos.y + ldir_y * 10 local r2dir_x, r2dir_y, r2dir_z = helpers.angle_vector(0, (yaw + 90)) local r2end_x = eye_pos.x + r2dir_x * 100 local r2end_y = eye_pos.y + r2dir_y * 100 local l2dir_x, l2dir_y, l2dir_z = helpers.angle_vector(0, (yaw - 90)) local l2end_x = eye_pos.x + l2dir_x * 100 local l2end_y = eye_pos.y + l2dir_y * 100 local ldamage = helpers.get_damage(localplayer, enemy, rend_x, rend_y, eye_pos.z) local rdamage = helpers.get_damage(localplayer, enemy, lend_x, lend_y, eye_pos.z) local l2damage = helpers.get_damage(localplayer, enemy, r2end_x, r2end_y, eye_pos.z) local r2damage = helpers.get_damage(localplayer, enemy, l2end_x, l2end_y, eye_pos.z) if ( fsmode == 'Freestanding' ) or ( fsmode == 'Reversed Freestanding' ) then if l2damage > r2damage or ldamage > rdamage or l2damage > ldamage then handle_aa.vars.best_value = fsmode == 'Freestanding' and false or true elseif r2damage > l2damage or rdamage > ldamage or r2damage > rdamage then handle_aa.vars.best_value = fsmode == 'Freestanding' and true or false end end else handle_aa.vars.best_value = true end return handle_aa.vars.best_value end handle_aa.legitaa = {} handle_aa.legitaa.vars = { classnames = { 'CWorld', 'CCSPlayer', 'CFuncBrush' }, on_bombsite = false } handle_aa.legitaa.check_bombsite = function(e, event_name) local localplayer = entity.get_local_player() if not localplayer then return end local user_id = entity.get(e.userid, true) if user_id == localplayer then if event_name == "enter_bombzone" then handle_aa.legitaa.vars.on_bombsite = true end if event_name == "exit_bombzone" then handle_aa.legitaa.vars.on_bombsite = false end end end helpers.entity_has_c4 = function(ent) local bomb = entity.get_entities('CC4')[1] return bomb ~= nil and bomb.m_hOwnerEntity == ent end handle_aa.legitaa.handle = function(e) local plocal = entity.get_local_player() if not plocal then return end local distance = 100 local bomb = entity.get_entities("CPlantedC4")[1] local bomb_pos = bomb ~= nil and bomb.m_vecOrigin or { x = nil } if bomb_pos.x ~= nil then local player_pos = plocal.m_vecOrigin distance = player_pos:dist(bomb_pos) end local team_num = plocal.m_iTeamNum local defusing = team_num == 3 and distance < 70 local on_bombsite = plocal.m_bInBombZone local has_bomb = helpers.entity_has_c4(plocal) == 49 local eye_pos = plocal:get_eye_position() local viewangles = render.camera_angles() local sin_pitch = math.sin(math.rad(viewangles.x)) local cos_pitch = math.cos(math.rad(viewangles.x)) local sin_yaw = math.sin(math.rad(viewangles.y)) local cos_yaw = math.cos(math.rad(viewangles.y)) local dir_vec = { cos_pitch * cos_yaw, cos_pitch * sin_yaw, -sin_pitch } local traced = utils.trace_line(eye_pos, vector(eye_pos.x + (dir_vec[1] * 8192), eye_pos.y + (dir_vec[2] * 8192), eye_pos.z + (dir_vec[3] * 8192)), plocal, 0xFFFFFFFF) local using = true if traced ~= nil then for i=0, #handle_aa.legitaa.vars.classnames do if traced.entity ~= nil and traced.entity:get_classname() == handle_aa.legitaa.vars.classnames[i] then using = false end end end local near_door = false -- if plocal:is_alive() then -- for yaw = 18, 360, 18 do -- yaw = helpers.normalize_yaw(yaw) -- local my_eye_position = plocal:get_eye_position() -- local final_angle = vector(0, yaw, 0) -- local final_point = my_eye_position + Cheat.AngleToForward(final_angle) * 0x60 -- local trace_info = utils.trace_line(my_eye_position, final_point, plocal, 0x200400B) -- local hit_entity = trace_info.entity -- if hit_entity ~= nil then -- if hit_entity:get_classname() == "CPropDoorRotating" then -- near_door = true -- end -- end -- end -- end if ((on_bombsite and not defusing) or (not using and not defusing)) and not near_door then e.in_use = 0 end end handle_aa.set_antiaim = function(e) local localplayer = entity.get_local_player() if not localplayer then return end local onGround = helpers.on_ground(localplayer) local ticks = cvar.sv_maxusrcmdprocessticks; -- local flags = localplayer.m_fFlags -- local inverter_state = rage.antiaim:get_rotation(true) < 0 -- local lp_bodyyaw = localplayer.m_flPoseParameter[11] * 120 - 60 local lp_bodyyaw = localplayer.m_flPoseParameter[11] * 120 - 60 local handle_value_offset = function(left_value, right_value) if e.choked_commands == 0 then handle_aa.vars.desync_value = lp_bodyyaw end return handle_aa.vars.desync_value > 0 and left_value or right_value end local set_values = function(args) local mode = args.mode local table = args.settings if mode == 'hidden' then ref.yaw.offset:override(table[1]) ref.yaw_modifier.mode:override(table[2]) ref.yaw_modifier.offset:override(table[3]) ref.body_yaw.left_limit:override(table[4]) ref.body_yaw.right_limit:override(table[5]) ref.body_yaw.fake_options:override(table[6]) ref.body_yaw.desync_freestand:override(table[7]) ref.body_yaw.inverter:override(table[8]) ref.body_yaw.lby_mode:override(table[9]) else ref.yaw.offset:set(table[1]) ref.yaw_modifier.mode:set(table[2]) ref.yaw_modifier.offset:set(table[3]) ref.body_yaw.left_limit:set(table[4]) ref.body_yaw.right_limit:set(table[5]) ref.body_yaw.fake_options:set(table[6]) ref.body_yaw.desync_freestand:set(table[7]) ref.body_yaw.inverter:set(table[8]) ref.body_yaw.lby_mode:set(table[9]) end end local legitaa_on = handle_aa.vars.antiaim_state[1] == 'Legit aa' if legitaa_on then handle_aa.legitaa.handle(e) end local yaw_value = 'Backward' local yaw_base = 'At Target' local pitch = 'Down' if legitaa_on then if not UI.get('legitaa_at_targets') then yaw_base = 'Local View' end pitch = 'Disabled' end if (UI.get('freestanding_key') or (UI.get('idealtick') and UI.contains('idealtick_options', 0))) and not legitaa_on then if (UI.get("freestanding_air")) then ref.freestanding.switch:set(not helpers.in_air( localplayer )) else ref.freestanding.switch:set(true) end else ref.freestanding.switch:set(false) end ref.yaw.base:set(yaw_base) ref.pitch:set(pitch) ref.yaw.mode:set(yaw_value) if UI.get('massive_fake_key') and not (ref.doubletap.switch:get() or ref.hide_shots.switch:get()) and not legitaa_on then handle_aa.vars.second_condition = 'Massive fake' local side = handle_aa.get_best_side("Freestanding") ref.body_yaw.switch:set(false) ref.fakelag.switch:set(false) e.send_packet = false; ticks:int(17) ref.yaw.offset:override(nil) if e.choked_commands > 1 and e.choked_commands < ticks:int() then ref.yaw.offset:override(side and 90 or -90) end set_values({ settings = { side and -15 or 15, 'Disabled', 0, 59, 59, {}, 'Off', false, 'Disabled' }}) elseif UI.get('warmup_aa') and entity.get_game_rules().m_bWarmupPeriod and not legitaa_on then set_values({ settings = { 0, 'Disabled', 0, 59, 59, {}, 'Off', false, 'Disabled' }}) else handle_aa.vars.second_condition = 'Normal' ticks:int(16) if UI.get('antiaim_presets') == 'Custom' then ref.body_yaw.inverter:set(false) local condition = UI.get('preset_enable_' .. handle_aa.vars.antiaim_state[1]) and global_vars.plr_conditions[handle_aa.vars.player_state] or global_vars.plr_conditions[1] local yaw = handle_value_offset(UI.get('yaw_add_left_' .. condition), UI.get('yaw_add_right_' .. condition)) local fakelimit_right = UI.get('fake_limit_right_' .. condition) local fakelimit_left = UI.get('fake_limit_left_' .. condition) if UI.get('yaw_add_type_' .. condition) == 'Jitter' then yaw = utils.random_int(0, 1) == 1 and UI.get('yaw_add_right_' .. condition) or UI.get('yaw_add_left_' .. condition) elseif UI.get('yaw_add_type_' .. condition) == 'Random' then yaw = utils.random_int(UI.get('yaw_add_right_' .. condition), UI.get('yaw_add_left_' .. condition)) end if UI.get('fake_limit_type_' .. condition) == 'Jitter' then if utils.random_int(0, 1) == 1 then fakelimit_right = UI.get('fake_limit_right_' .. condition) fakelimit_left = UI.get('fake_limit_left_' .. condition) else fakelimit_right = UI.get('fake_limit_jitter_' .. condition) fakelimit_left = UI.get('fake_limit_jitter_' .. condition) end elseif UI.get('fake_limit_type_' .. condition) == 'Random' then fakelimit_right = utils.random_int(UI.get('fake_limit_random_' .. condition), UI.get('fake_limit_right_' .. condition)) fakelimit_left = utils.random_int(UI.get('fake_limit_random_' .. condition), UI.get('fake_limit_left_' .. condition)) end ref.body_yaw.on_shot_desync:set(UI.get('onshot_mode_' .. condition)) set_values({ settings = { yaw, UI.get('yaw_modifier_' .. condition), UI.get('yaw_modifier_value_' .. condition), fakelimit_left, fakelimit_right, UI.get('fake_options_' .. condition), UI.get('freestanding_mode_' .. condition), false, UI.get('lby_mode_' .. condition) }}) else local anti_aim_values = { [ 'Standing' ] = { 0, 'Disabled', 0, 0, 0, {}, 'Off', false, 'Disabled' }, [ 'Moving' ] = { 0, 'Disabled', 0, 0, 0, {}, 'Off', false, 'Disabled' }, [ 'Crouching T' ] = { 0, 'Disabled', 0, 0, 0, {}, 'Off', false, 'Disabled' }, [ 'Crouching CT' ] = { 0, 'Disabled', 0, 0, 0, {}, 'Off', false, 'Disabled' }, [ 'Slowwalk' ] = { 0, 'Disabled', 0, 0, 0, {}, 'Off', false, 'Disabled' }, [ 'Air duck' ] = { 0, 'Disabled', 0, 0, 0, {}, 'Off', false, 'Disabled' }, [ 'Air' ] = { 0, 'Disabled', 0, 0, 0, {}, 'Off', false, 'Disabled' }, [ 'Legit aa' ] = { 0, 'Disabled', 0, 0, 0, {}, 'Off', false, 'Disabled' }, [ 'Global' ] = { 0, 'Disabled', 0, 0, 0, {}, 'Off', false, 'Disabled' } } if not legitaa_on then local exp_antibruteforce = UI.get('experimental_antibruteforce') if UI.get('antiaim_presets') == 'Smart' then local random = utils.random_int(0, 1) if UI.get('slowwalk_type') == 0 then anti_aim_values[ 'Slowwalk' ] = { handle_value_offset(-10, 10), 'Disabled', 0, 18, 18, exp_antibruteforce and { 'Jitter', 'Anti Bruteforce' } or 'Jitter', 'Peek Fake', false, 'Disabled' } elseif UI.get('slowwalk_type') == 1 then local random2 = utils.random_int(3, 33) anti_aim_values[ 'Slowwalk' ] = { handle_value_offset(-10, 10), 'Disabled', 0, random2, random2, exp_antibruteforce and { 'Jitter', 'Anti Bruteforce' } or 'Jitter', 'Peek Fake', false, 'Disabled' } elseif UI.get('slowwalk_type') == 2 then anti_aim_values[ 'Slowwalk' ] = { handle_value_offset(-33, 33), 'Center', 6, 58, 58, 'Randomize Jitter', 'Off', false, 'Disabled' } end anti_aim_values[ 'Standing' ] = { handle_value_offset(-7, 7), 'Disabled', 0, random == 1 and 48 or 18, random == 1 and 48 or 18, { 'Jitter', 'Anti Bruteforce' }, 'Peek Fake', false, 'Disabled' } anti_aim_values[ 'Moving' ] = { handle_value_offset(-7, 7), 'Disabled', 0, random == 1 and 48 or 18, random == 1 and 48 or 18, { 'Jitter', 'Anti Bruteforce' }, 'Peek Fake', false, 'Disabled' } anti_aim_values[ 'Crouching T' ] = { 0, 'Disabled', 0, 59, 59, exp_antibruteforce and { 'Jitter', 'Anti Bruteforce' } or 'Jitter', 'Off', true, 'Disabled' } anti_aim_values[ 'Crouching CT' ] = { 0, 'Disabled', 0, 59, 59, exp_antibruteforce and { 'Jitter', 'Anti Bruteforce' } or 'Jitter', 'Off', true, 'Disabled' } anti_aim_values[ 'Air duck' ] = { handle_value_offset(-12, 7), 'Disabled', 0, random == 1 and 60 or 18, random == 1 and 60 or 18, 'Anti Bruteforce', 'Off', false, 'Disabled' } anti_aim_values[ 'Air' ] = { handle_value_offset(-12, 7), 'Disabled', 0, random == 1 and 60 or 18, random == 1 and 60 or 18, 'Anti Bruteforce', 'Off', false, 'Disabled' } elseif UI.get('antiaim_presets') == 'Jitter' then -- moving JITTERNOWYw anti_aim_values[ 'Standing' ] = { 0, 'Center', math.random(-68, -78), 59, 59, 'Jitter', 'Off', false, 'Disabled' } anti_aim_values[ 'Moving' ] = { 0, 'Center', math.random(-68, -78), 59, 59, 'Jitter', 'Off', false, 'Disabled' } anti_aim_values[ 'Crouching T' ] = { 0, 'Center', math.random(-68, -78), 59, 59, 'Jitter', 'Off', false, 'Disabled' } anti_aim_values[ 'Crouching CT' ] = { 0, 'Center', math.random(-68, -78), 59, 59, 'Jitter', 'Off', false, 'Disabled' } anti_aim_values[ 'Slowwalk' ] = { 0, 'Center', math.random(-68, -78), 59, 59, 'Jitter', 'Off', false, 'Disabled' } anti_aim_values[ 'Air duck' ] = { 0, 'Center', math.random(-68, -78), 59, 59, 'Jitter', 'Off', false, 'Disabled' } anti_aim_values[ 'Air' ] = { 0, 'Center', math.random(-68, -78), 59, 59, 'Jitter', 'Off', false, 'Disabled' } elseif UI.get('antiaim_presets') == 'Avoidance' then -- jitter anti_aim_values[ 'Standing' ] = { handle_value_offset(-6, 7), 'Center', -88, 60, 60, 'Jitter', desync_freestand, false, 'Disabled' } anti_aim_values[ 'Moving' ] = { handle_value_offset(-6, 7), 'Center', -88, 60, 60, 'Jitter', desync_freestand, false, 'Opposite' } anti_aim_values[ 'Crouching T' ] = { handle_value_offset(-20, 20), 'Center', -38, 59, 59, 'Jitter', desync_freestand, false, 'Opposite' } anti_aim_values[ 'Crouching CT' ] = { handle_value_offset(-20, 20), 'Center', -30, 59, 59, 'Jitter', desync_freestand, false, 'Opposite' } anti_aim_values[ 'Slowwalk' ] = { handle_value_offset(-33, 33), 'Center', -8, 59, 59, 'Jitter', desync_freestand, false, 'Opposite' } anti_aim_values[ 'Air duck' ] = { handle_value_offset(-6, 7), 'Center', -88, 60, 60, 'Jitter', desync_freestand, false, 'Opposite' } anti_aim_values[ 'Air' ] = { handle_value_offset(-6, 7), 'Center', -88, 60, 60, 'Jitter', desync_freestand, false, 'Opposite' } end else anti_aim_values[ 'Legit aa' ] = { -180, 'Disabled', 0, 60, 60, "Off", 'Peek Fake', false, 'Opposite' } end set_values( { settings = anti_aim_values[handle_aa.vars.antiaim_state[1]], mode = 'hidden' } ) end end if handle_aa.vars.antiaim_state[2] ~= 'Massive fake' then ref.body_yaw.switch:set(true) if UI.get('idealtick') then ref.fakelag.switch:set(false) else ref.fakelag.switch:set(true) end end end local visuals = {} visuals.indicators = {} visuals.indicators.vars = { dt_color = 0, dt_color2 = 0, scope_adder = 0, values = helpers.gram_create(0, 15), -- other = { -- Colors = { -- Transperent = color(255, 255, 255, 0.25*255), -- Black = color(0.05*255, 0.05*255, 0.05*255, 0.5*255), -- White = color(255, 255, 255, 255), -- Orange = color(255, 0.53*255, 0.26*255, 255) -- }, -- Stuff = { -- Indicators = { -- Animations = {DT = {Value = 0.0}}, -- State = { -- {Preset = "/STANDING/", Colored = false}, -- {Preset = "/RUNNING/", Colored = false}, -- {Preset = "/CROUCH/", Colored = false}, -- {Preset = "/CROUCH/", Colored = false}, -- {Preset = "+TANKAA+", Colored = true}, -- {Preset = "/AEROBIC/", Colored = false}, -- {Preset = "/AEROBIC/", Colored = false}, -- {Preset = "/E-PEEK/", Colored = false}, -- {Preset = "/DORMANT/", Colored = false}, -- } -- } -- }, -- AntiBruteforce = {Players = {}, Time = nil}, -- CanFire = function() -- local GetCurtime = function(a8) -- return globals.curtime - a8 * globals.tickinterval -- end -- local a9 = entity.get_local_player() -- local aa = a9:GetActiveWeapon() -- if not a9 or not aa then -- return false -- end -- if GetCurtime(-16) < a9:GetProp("m_flNextAttack") then -- return false -- end -- if GetCurtime(0) < aa:GetProp("m_flNextPrimaryAttack") then -- return false -- end -- return true -- end, -- Helpers = {ColorCopy = function(self, Color) -- return color(Color.r, Color.g, Color.b, Color.a) -- end, CalcMultiTextSize = function(self, ae, ...) -- local ao = vector(0.0, 0.0) -- local q = {...} -- local ap = {} -- if q[1] then -- table.insert(ap, q[1]) -- end -- if q[2] then -- table.insert(ap, q[2]) -- end -- for ac, aq in pairs(ae) do -- local ar = render.measure_text(aq.Text, unpack(ap)) -- render.measure_text(aq.Text, unpack(ap)) -- ao.x = ao.x + ar.x -- if ar.y > ao.y then -- ao.y = ar.y -- end -- end -- return ao -- end, MultiText = function(self, ae, ao, ...) -- local q = {...} -- local ap = {} -- if q[1] then -- table.insert(ap, q[1]) -- end -- if q[2] and type(q[2]) ~= "boolean" then -- table.insert(ap, q[2]) -- end -- for ac, aq in pairs(ae) do -- render.text(aq.Text, ao, aq.Color, ...) -- ao.x = ao.x + render.measure_text(aq.Text, unpack(ap)).x -- end -- end -- }, -- v = {normalize_yaw = function(self, w) -- while w > 180.0 do -- w = w - 360.0 -- end -- while w < -180.0 do -- w = w + 360.0 -- end -- return w -- end, linear_interpolation = function(self, x, y, z) -- return x + (y - x) * z -- end, closest_point = function(self, A, B, C) -- local D = A - B -- local E = C - B -- local F = #E -- E = E / F -- local G = E:Dot(D) -- if G < 0.0 then -- return B -- end -- if G > F then -- return C -- end -- return B + E * Vector.new(G, G, G) -- end, breathe = function(self, H) -- H = H or 2.0 -- local I = GlobalVars.realtime * H -- local J = I % (math.pi * 2.0) -- J = math.abs(-math.pi + J) -- return math.sin(J) -- end} -- } } local fonts = { font = { font = render.load_font("Verdana Bold", 11), size = 11 }, font1 = { font = render.load_font("Verdana Bold", 10), size = 10 }, font2 = { font = render.load_font("Arial", 11), size = 11 }, font5 = { font = render.load_font("Arial Bold", 11), size = 11 }, font55 = { font = render.load_font("Arial Bold", 26), size = 26 }, font7 = { font = render.load_font("Arial", 13,"a"), size = 13 }, fontpred = { font = render.load_font("Arial Bold", 12), size = 12 }, fontideal = { font = render.load_font("Verdana", 12), size = 12 }, verdana_skt = { font = render.load_font("Verdana", 13), size = 13 }, verdana_bolde = { font = render.load_font("Verdana", 11, 'b'), size = 11 }, blockfont = { font = render.load_font("nl\\jagoyaw\\fonts\\small_fonts.ttf", 10), size = 10 }, verdanar11 = { font = render.load_font('Verdana', 11, 'a'), size = 11 }, fontxd = { font = render.load_font("Verdana Bold", 23), size = 23 }, fontxd2 = { font = render.load_font("Verdana", 12), size = 12 }, fontdx = { font = render.load_font("nl\\jagoyaw\\fonts\\pixel.ttf", 10,"o")}, fontarrow = { font = render.load_font("nl\\jagoyaw\\fonts\\ActaSymbolsW95Arrows.ttf", 21, 'a'), size = 21 }, console = { font = render.load_font("nl\\jagoyaw\\fonts\\lucida_console.ttf", 10, 'd'), size = 10 } } visuals.indicators.draw = function() local w = 25; local bgGap = 4; local screen_size = render.screen_size() local x = screen_size.x / 2; local y = screen_size.y / 2; local ping_spike = ui.find("Miscellaneous", "Main", "Other", "Fake Latency") local is_key_pressed = common.is_button_down(0x20) local player = entity.get_local_player() if not player then return end local scoped = player.m_bIsScoped; local alpha = math.sin(math.abs(-math.pi + (globals.curtime * (1 / 0.7)) % (math.pi * 2))) * 255 local flags = player.m_fFlags local localplayer = entity.get_local_player() local onGround = helpers.on_ground(localplayer) local add_y = 0; local numer = 0 local is_dt = ref.doubletap.switch:get() local is_hs = ref.hide_shots.switch:get() local is_baim = ref.body_aim.mode:get() local is_safe = ref.safe_point:get() local delta = localplayer.m_flPoseParameter[11] * 120 - 60 local chrg = rage.exploit:get() local inverter_state = (localplayer.m_flPoseParameter[11] * 120 - 60) > 0 local desync_delta = localplayer.m_flPoseParameter[11] * 120 - 60 local idealyaw_color = ""; local idealyaw_text = ""; if desync_delta > 55 then idealyaw_color = color(155, 11, 32, 255); else idealyaw_color = color(220, 135, 49, 255); end local textSize = render.measure_text(fonts.font7.font,nil,"JAG0 YAW"); local textSize1 = render.measure_text(fonts.font7.font,nil,"JAG0 YAW"); -- render.measure_text(1, "JAG0 YAW") local lp_alive = player:is_alive() if not lp_alive then return end --#endregion if UI.get('crosshair_style') == 1 then --local textSize = render.measure_text("REVOLUTION", 12); -- = render.text(fonts.fontdx.font, vector(x + 3 + baimcalc.x + 2 + safecalc.x + 2, y + 41 + numer), color(1, 1, 1, 100 / 255), "fs") -- local a = render.measure_text(">", fonts.font5.size, fonts.font5.font) -- local b = render.measure_text("<", fonts.font5.size, fonts.font5.font) -- if ref.base:GetInt() == 2 then -- render.text(">", vector(x + 40, y - a.y/2), color(220 / 255, 135 / 255, 49 / 255, 255), fonts.font55.size, fonts.font55.font) -- render.text("<", vector(x - 54, y - a.y/2), Color.RGBA(255,255,255,255), fonts.font55.size, fonts.font55.font) -- elseif ref.base:GetInt() == 3 then -- render.text(">", vector(x + 40, y - a.y/2), Color.RGBA(255,255,255,255), fonts.font55.size, fonts.font55.font) -- render.text("<", vector(x - 54, y - a.y/2),color(220 / 255, 135 / 255, 49 / 255, 255), fonts.font55.size, fonts.font55.font) -- end -- if ref.base:GetInt() == 4 then -- render.text("IDEAL YAW", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("IDEAL YAW", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + bgGap), color(220 / 255, 135 / 255, 49 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- elseif ref.base:GetInt() == 5 then -- render.text("IDEAL YAW", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("IDEAL YAW", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + bgGap), color(220 / 255, 135 / 255, 49 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- end -- if ref.base:GetInt() == 1 then -- render.text("FAKEYAW", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("FAKEYAW", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + bgGap), color(207 / 255, 177 / 255, 255 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- elseif ref.base:GetInt() == 2 then -- render.text("FAKEYAW", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("FAKEYAW", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + bgGap), color(207 / 255, 177 / 255, 255 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- elseif ref.base:GetInt() == 3 then -- render.text("FAKEYAW", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("FAKEYAW", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + bgGap), color(207 / 255, 177 / 255, 255 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- end -- if ref.base:GetInt() == 5 then -- render.text("FREESTAND", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + add_y + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("FREESTAND", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + add_y + bgGap), color(209 / 255, 139 / 255, 230 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- else -- render.text("DYNAMIC", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + add_y + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("DYNAMIC", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + add_y + bgGap), color(209 / 255, 139 / 255, 230 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- end -- if ref.doubletap:GetBool() then -- if chrg < 1 then -- render.text("DT", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + add_y + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("DT", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + add_y + bgGap), color(200 / 255, 15 / 255, 15 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- else -- render.text("DT", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + add_y + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("DT", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + add_y + bgGap), color(15 / 255, 255 / 255, 15 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- end -- end -- if ref.onshotaa:GetBool() then -- render.text("AA", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + add_y + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("AA", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + add_y + bgGap), color(209 / 255, 139 / 255, 230 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- end -- if inverter_state then -- render.text("B", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + add_y + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("B", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + add_y + bgGap), color(15 / 255, 115 / 255, 15 / 255, 135 / 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- end -- elseif UI.get('crosshair_style') == 2 then -- render.text("JAG0YAW", vector(x - 1, y + 23 + bgGap), color(177 / 255, 171 / 255, 255 / 255, 255), fonts.font1.size, fonts.font1.font, true, true); -- add_y = add_y + 9; -- if ref.base:GetInt() == 5 then -- render.text("FREESTAND", vector(x, y + 23 + add_y + bgGap), color(209 / 255, 139 / 255, 230 / 255, 255), fonts.font1.size, fonts.font1.font, true, true); -- add_y = add_y + 9; -- else -- render.text("DYNAMIC", vector(x, y + 23 + add_y + bgGap), color(209 / 255, 139 / 255, 230 / 255, 255), fonts.font1.size, fonts.font1.font, true, true); -- add_y = add_y + 9; -- end -- if ref.onshotaa:GetBool() then -- render.text("ONSHOT", vector(x, y + 23 + add_y + bgGap), color(132 / 255, 255 / 255, 16 / 255, 255), fonts.font1.size, fonts.font1.font, true, true); -- add_y = add_y + 9; -- end -- if ref.fakeduck:GetBool() then -- render.text("DUCK", vector(x, y + 23 + add_y + bgGap), color(255 / 255, 255 / 255, 255 / 255, 255), fonts.font1.size, fonts.font1.font, true, true); -- add_y = add_y + 9; -- end -- if is_dt then -- if chrg < 1 then -- render.text("DT", vector(x, y + 23 + add_y + bgGap), color(200 / 255, 15 / 255, 15 / 255, 255), fonts.font1.size, fonts.font1.font, true, true); -- add_y = add_y + 9; -- else -- render.text("DT", vector(x, y + 23 + add_y + bgGap), color(132 / 255, 255 / 255, 16 / 255, 255), fonts.font1.size, fonts.font1.font, true, true); -- add_y = add_y + 9; -- end -- end if UI.get('crosshair_style') == "Jagoyaw v2" then -- render.text(fonts.fontdx.font, vector(x + 3 + baimcalc.x + 2 + safecalc.x + 2, y + 41 + numer), color(1, 1, 1, 100 / 255), "fs") local color_ref = UI.get('indicators_color') render.text(fonts.font7.font, vector((x + 12 + (w / 2)) - (textSize1.x / 2) + 1, y + 20 + bgGap + 1), color(0, 0, 0, 255), nil, tostring(math.abs(math.floor(desync_delta)) .. "°")) render.text(fonts.font7.font, vector((x + 12 + (w / 2)) - (textSize1.x / 2), y + 20 + bgGap), color(color_ref.r, color_ref.g, color_ref.b, 255), nil, tostring(math.abs(math.floor(desync_delta)) .. "°")) render.gradient(vector(screen_size.x / 2, screen_size.y / 2 + 39), vector(screen_size.x / 2 + (math.abs(desync_delta * 110 / 100)), screen_size.y / 2 + 40), color_ref,color(color_ref.r, color_ref.g, color_ref.b, 0), color_ref, color(color_ref.r, color_ref.g, color_ref.b, 0)) render.gradient(vector(screen_size.x / 2, screen_size.y / 2 + 39), vector(screen_size.x / 2 + (-math.abs(desync_delta * 110 / 100)), screen_size.y / 2 + 40), color_ref, color(color_ref.r, color_ref.g, color_ref.b, 0), color_ref, color(color_ref.r, color_ref.g, color_ref.b, 0)) local calcv1 = render.measure_text(fonts.font7.font,nil,"JAG0WALK") local calcv2 = render.measure_text(fonts.font7.font,nil,"LEGIT AA") local calcv3 = render.measure_text(fonts.font7.font,nil,"AUTO-DIR") local calcv4 = render.measure_text(fonts.font7.font,nil,"JAG0YAW") local calcv5 = render.measure_text(fonts.font7.font,nil,"DMG") if ref.slowwalk:get() then render.text(fonts.font7.font, vector(x + 1 - calcv1.x/2, y + 39 + bgGap + 1), color(0, 0, 0, 255),nil,"JAG0WALK"); render.text(fonts.font7.font, vector(x - calcv1.x/2, y + 39 + bgGap), color(color_ref.r, color_ref.g, color_ref.b, 255),nil,"JAG0WALK"); elseif handle_aa.vars.antiaim_state[1] == 'Legit aa' then render.text(fonts.font7.font, vector(x + 1 - calcv2.x/2, y + 39 + bgGap + 1), color(0, 0, 0, 255),nil,"LEGIT AA"); render.text(fonts.font7.font, vector(x - calcv2.x/2, y + 39 + bgGap), color(color_ref.r, color_ref.g, color_ref.b, 255),nil,"LEGIT AA"); elseif ref.yaw.base:get() == 5 then render.text(fonts.font7.font, vector(x - 6 + calcv3.x/2, y + 39 + bgGap + 1), color(0, 0, 0, 255),nil,"FREESTAND"); render.text(fonts.font7.font, vector(x - 7 + calcv3.x/2, y + 39 + bgGap), color(color_ref.r, color_ref.g, color_ref.b, 255),nil,"FREESTAND"); else render.text(fonts.font7.font, vector(x + 1 - calcv4.x / 2, y + 40 + bgGap), color(0, 0, 0, 255), nil,"JAGOYAW"); render.text(fonts.font7.font, vector(x - calcv4.x / 2, y + 39 + bgGap), color(color_ref.r, color_ref.g, color_ref.b, 255), nil,"JAGOYAW"); end else if UI.get('crosshair_style') == 'Axis' then local screen_size = render.screen_size() local ind_offset = 0 local scoped = localplayer.m_bIsScoped local height = 20--ui.get(UI.get('vis_indicators_height')) local pos = { screen_size.x / 2, screen_size.y / 2 + height } local color_ref = UI.get('indicators_color') local name = 'JAGO' local main_txt = '' for i = 1, #name do local adder = i ~= #name and ' ' or '' local text = name:sub(i, i) .. adder main_txt = main_txt .. text end local maintxt_size = render.measure_text(2, 'o', main_txt) local desync = desync_delta local clr1 = desync > 0 and { color_ref.r, color_ref.g, color_ref.b } or { 255, 255, 255 } local clr2 = desync < 0 and { color_ref.r, color_ref.g, color_ref.b } or { 255, 255, 255 } local text = helpers.gradient_text(clr1[1], clr1[2], clr1[3], 255, clr2[1], clr2[2], clr2[3], 255, main_txt) local dtclreased = easing.quad_in_out(visuals.indicators.vars.dt_color, 0, 1, 1) local dtclr2eased = easing.quad_in_out(visuals.indicators.vars.dt_color2, 0, 1, 1) local dt_color = {255 - 255 * dtclreased * (1-dtclr2eased), 255 * dtclreased - (100 * dtclr2eased), 0 + 60 * dtclr2eased} local dtclrFT = globals.frametime * 4 local doubletap = rage.exploit:get() == 1 visuals.indicators.vars.dt_color = math.clamp(visuals.indicators.vars.dt_color + (doubletap and dtclrFT or -dtclrFT), 0, 1) visuals.indicators.vars.dt_color2 = math.clamp(visuals.indicators.vars.dt_color2 + ((ref.hide_shots.switch:get() and ref.doubletap.switch:get() and doubletap) and dtclrFT or -dtclrFT), 0, 1) local FT = globals.frametime * 3 local scope_value = easing.quad_in_out(visuals.indicators.vars.scope_adder, 0, 1, 1) visuals.indicators.vars.scope_adder = math.clamp(visuals.indicators.vars.scope_adder + (scoped and FT or -FT), 0, 1) local adder_ = scope_value local bar_add, bar_add2 = 20 - 20 * adder_, 20 + 10 * adder_ local text_ = tostring(math.floor(math.abs(desync))) local text_size_ = render.measure_text(2, 'o', text_) render.text(2, vector(pos[1] - 3 + (text_size_.x / 2 * adder_ + 4 - 4 * adder_) + adder_ * 6, pos[2] - 8), color(240, 240, 240, 230), 'c', text_) render.gradient(vector(pos[1] + adder_ * 3, pos[2] - 3), vector(pos[1] + adder_ * 3 + bar_add2 * (math.abs(desync) / 60), pos[2] - 3 + 1), color(color_ref.r, color_ref.g, color_ref.b, color_ref.a), color(color_ref.r, color_ref.g, color_ref.b, 0), color(color_ref.r, color_ref.g, color_ref.b, color_ref.a), color(color_ref.r, color_ref.g, color_ref.b, 0)) render.gradient(vector(pos[1] + adder_ * 4, pos[2] - 3), vector(pos[1] + adder_ * 4 + -(bar_add * (math.abs(desync) / 60)), pos[2] - 3 + 1), color(color_ref.r, color_ref.g, color_ref.b, color_ref.a), color(color_ref.r, color_ref.g, color_ref.b, 0), color(color_ref.r, color_ref.g, color_ref.b, color_ref.a), color(color_ref.r, color_ref.g, color_ref.b, 0)) ind_offset = ind_offset + 2 local items = { [1] = { true, text, { 255, 255, 255, 255 } }, [2] = { handle_aa.vars.antiaim_state[2] == 'Sideways Roll' or handle_aa.vars.antiaim_state[2] == 'Roll', 'ROLL', { 160, 160, 160, 255 } }, [3] = { ref.doubletap.switch:get(), 'DT', { dt_color[1], dt_color[2], dt_color[3], 255 } }, [4] = { ref.hide_shots.switch:get(), 'OS', { 225 - 70 * dtclr2eased, 170 - 70 * dtclr2eased, 160 - 70 * dtclr2eased, 255 } }, [5] = { ref.freestanding.switch:get(), 'FS', { 255, 255, 255, 255 } }, [6] = { ref.safe_point:get() == 'Force', 'SP', { 120, 200, 120, 255 } }, [7] = { ref.body_aim.mode:get() == 'Force', 'FB', { 170, 50, 255, 255 } } } for i, bind in ipairs(items) do local text_size = render.measure_text(2, 'o', bind[2]) local speed = globals.frametime * 5 local alpha = easing.quad_in_out(visuals.indicators.vars.values[i], 0, 1, 1) local adaptive_pos = (text_size.x / 2 * scope_value) + 2 * scope_value if i == 2 then ind_offset = ind_offset + 1 end adaptive_pos = math.ceil(adaptive_pos) visuals.indicators.vars.values[i] = math.clamp(visuals.indicators.vars.values[i] + (bind[1] and speed or -speed), 0, 1) render.text(2, vector(pos[1] + 1 + adaptive_pos, pos[2] + ind_offset), color(bind[3][1], bind[3][2], bind[3][3], bind[3][4] * alpha), 'c', bind[2]) ind_offset = ind_offset + 8 * alpha end else if UI.get('crosshair_style') == 'bluhgang' then local w = render.measure_text(2, 'o', "jagoyaw") local w2 = render.measure_text(2, 'o', "DT MUSLIM CRY") local w3 = render.measure_text(2, 'o', "HS DOGS CANT HIT") local w4 = render.measure_text(2, 'o', "DMG IQ TEST") local color_ref = UI.get('indicators_color') local binds = ui.get_binds() local alpha = math.sin(math.abs(-3.14 + (globals.curtime * (1 / 0.3)) % (3.14 * 2))) * 255 render.gradient(vector(screen_size.x / 2, screen_size.y / 2 + 23), vector(screen_size.x / 2 + (math.abs(desync_delta * 50 / 100)), screen_size.y / 2 + 25), color(255, 255, 255,255),color(255, 255, 255, 0), color(255, 255, 255,255), color(255, 255, 255, 0)) render.gradient(vector(screen_size.x / 2, screen_size.y / 2 + 23), vector(screen_size.x / 2 + (-math.abs(desync_delta * 50 / 100)), screen_size.y / 2 + 25), color(255, 255, 255,255), color(255,255, 255, 0), color(255, 255, 255,255), color(255, 255, 255, 0)) render.text(fonts.fontdx.font, vector(x - (w.x/2)-3, y + 25), color(), nil, "jagoyaw") if (is_dt) then render.text(fonts.fontdx.font, vector(x - (w2.x/2)-3, y + 35), rage.exploit:get() == 0 and color(255,178,113) or color(150,178,113), nil, "DT MUSLIM CRY") end if (not is_dt and is_hs) then render.text(fonts.fontdx.font, vector(x - (w3.x/2)-3, y + 35), color(157,165,230), nil, "HS DOGS CANT HIT") end for i = 1, #binds do if binds[i].active and binds[i].name == "Minimum Damage" then if (is_dt or is_hs) then render.text(fonts.fontdx.font, vector(x - (w4.x/2)-3, y + 45), color(157,209,201), nil, "DMG IQ TEST") else render.text(fonts.fontdx.font, vector(x - (w4.x/2)-3, y + 35), color(157,209,201), nil, "DMG IQ TEST") end end end else if UI.get('crosshair_style') == 'Acatel' then local w = render.measure_text(2, nil, "JAG0YAW") local color_ref = UI.get('indicators_color') local alpha = math.sin(math.abs(-3.14 + (globals.curtime * (1 / 0.3)) % (3.14 * 2))) * 255 render.text(fonts.fontdx.font, vector(x + 3, y + 15), color(), nil, "JAG0YAW ") render.text(fonts.fontdx.font, vector(x + 40, y + 15), color(), nil, helpers.colored_text(color_ref.r,color_ref.g,color_ref.b,alpha,script_db.lua_version:upper())) local data = entity.get_players(true) if #data == 0 then render.text(fonts.fontdx.font, vector(x + 3, y + 23), color(244, 208, 63, 255), nil, "DORMANCY:"..helpers.colored_text(255, 255, 255, 255,"0")) else render.text(fonts.fontdx.font, vector(x + 3, y + 23), color(136, 134, 255, 255), nil, "SMART:") render.text(fonts.fontdx.font, vector(x + 27, y + 23), color(165, 177, 217, 255), nil, ""..helpers.colored_text(255, 95, 91, 255,inverter_state and ' RIGHT' or " LEFT")) end if is_dt and not ref.fakeduck:get() and ref.auto_peek:get() then local chrg = rage.exploit:get() local text = math.floor((chrg * 1000) / 10) .. "x" local color_ = {255,0,0} if chrg == 1 then text = "100x" color_ = {84,255,40} end render.text(fonts.fontdx.font, vector(x + 3, y + 31), color(255, 255, 255, 255), nil, "IDEALTICK "..helpers.colored_text(color_[1], color_[2], color_[3], 255,text)) numer = numer + 8 elseif is_dt then local chrg = rage.exploit:get() local text = "DT" local color_ = {255,0,0} if chrg == 1 then color_ = {84,255,40} end if ref.fakeduck:get() then text = "DT (FAKE DUCK)" end render.text(fonts.fontdx.font, vector(x + 3, y + 31), color(color_[1], color_[2], color_[3], 255), nil, text) numer = numer + 8 elseif ref.hide_shots.switch:get() then render.text(fonts.fontdx.font, vector(x + 3, y + 31), color(227, 167, 176, 255), nil, "ONSHOT") numer = numer + 8 elseif ref.fakeduck:get() then render.text(fonts.fontdx.font, vector(x + 3, y + 31), color(255, 255, 255, 255), nil, "FAKE DUCK") numer = numer + 8 end local baimcalc = render.measure_text(2, nil, "BAIM") render.text(fonts.fontdx.font, vector(x + 3, y + 31 + numer), color(255, 255, 255, is_baim == "Force" and 255 or 100), nil, "BAIM") local safecalc = render.measure_text(2, nil, "SP") render.text(fonts.fontdx.font, vector(x + 5 + baimcalc.x, y + 31 + numer), color(255, 255, 255, is_safe == "Force" and 255 or 100), nil, "SP") render.text(fonts.fontdx.font, vector(x + 5 + baimcalc.x + safecalc.x, y + 31 + numer), color(255, 255, 255, ref.freestanding.switch:get() and 255 or 100), nil, "FS") --[[ elseif UI.get('crosshair_style') == 8 then if not EngineClient.IsInGame() then return end local localplayer = EntityList.GetLocalPlayer() if not localplayer then return end if not localplayer:IsAlive() then return end local foncik = fonts.verdana_bolde.font local screannn = vector(helpers.screen_size.x / 2.0, helpers.screen_size.y / 2.0 + 2.0) local aG = AntiAim.GetInverterState() local aE = handle_aa.vars.player_state aE = visuals.indicators.vars.other.Stuff.Indicators.State[aE-1] or visuals.indicators.vars.other.Stuff.Indicators.State[3] local bc = color(1.0, 0.53, 0.26) local bd = color(1.0, 1.0, 1.0) local a6 = aG and bd or bc local a7 = aG and bc or bd local a4 = {{Color = a6, Text = "jago"}, {Color = a7, Text = "yaw°"}} local bm = visuals.indicators.vars.other.Helpers:CalcMultiTextSize(a4, fonts.verdana_bolde.size, fonts.verdana_bolde.font) local bn = vector(screannn.x - bm.x / 2.0 + 2.0, screannn.y + 14.0) local bo = bc.a bc.a = visuals.indicators.vars.other.v:breathe(1) * bo render.text( "", vector(screannn.x + 1.0, screannn.y - 2.0), bc, fonts.verdana_bolde.size, fonts.verdana_bolde.font, true, true ) bc.a = bo render.text("jagoyaw°", bn + 1.0, visuals.indicators.vars.other.Colors.Black, fonts.verdana_bolde.size, fonts.verdana_bolde.font) visuals.indicators.vars.other.Helpers:MultiText(a4, bn, fonts.verdana_bolde.size, fonts.verdana_bolde.font) screannn.y = screannn.y + bm.y + 14.0 if visuals.indicators.vars.other.AntiBruteforce.Time ~= nil then local bp = 5.0 local bq = bp + visuals.indicators.vars.other.AntiBruteforce.Time local br = 1.0 if bq > GlobalVars.realtime then br = (bq - GlobalVars.realtime) / bp else visuals.indicators.vars.other.AntiBruteforce.Time = nil end screannn.y = screannn.y + 2.0 local bs = vector(29.0, 3.0) Render.BoxFilled( vector(screannn.x - bs.x, screannn.y), vector(screannn.x + bs.x, screannn.y + bs.y), visuals.indicators.vars.other.Colors.Black ) Render.BoxFilled( vector(screannn.x - bs.x + 1.0, screannn.y + 1.0), vector(screannn.x - bs.x + 1.0 + (bs.x - 1.0) * 2.0 * br, screannn.y + bs.y - 1.0), bc ) screannn.y = screannn.y + bs.y end screannn.y = screannn.y + 3.0 local bs = vector(28.0, 1.0) local bt = 8.0 Render.BoxFilled(vector(screannn.x - bs.x, screannn.y), vector(screannn.x, screannn.y + bs.y), a6) Render.BoxFilled(vector(screannn.x + bs.x, screannn.y), vector(screannn.x, screannn.y + bs.y), a7) local bu = visuals.indicators.vars.other.Helpers:ColorCopy(a6) bu.a = 0.0 Render.GradientBoxFilled( vector(screannn.x - bs.x, screannn.y), vector(screannn.x - bs.x + bs.y, screannn.y + bt), a6, a6, bu, bu ) local bu = visuals.indicators.vars.other.Helpers:ColorCopy(a7) bu.a = 0.0 Render.GradientBoxFilled( vector(screannn.x + bs.x, screannn.y), vector(screannn.x + bs.x - bs.y, screannn.y + bt), a7, a7, bu, bu ) screannn.y = screannn.y + 2.0 local bm = render.measure_text(aE.Preset, fonts.fontdx.size, fonts.fontdx.font) local bn = vector(screannn.x - bm.x / 2.0, screannn.y) render.text(aE.Preset, bn, aE.Colored and bc or bd, fonts.fontdx.size, fonts.fontdx.font, true, false) screannn.y = screannn.y + 9.0 local bx = GlobalVars.frametime * 4.0 if visuals.indicators.vars.other.CanFire() then visuals.indicators.vars.other.Stuff.Indicators.Animations.DT.Value = math.min(visuals.indicators.vars.other.Stuff.Indicators.Animations.DT.Value + bx, 1.0) else visuals.indicators.vars.other.Stuff.Indicators.Animations.DT.Value = math.max(visuals.indicators.vars.other.Stuff.Indicators.Animations.DT.Value - bx, 0.0) end local by = { [1] = {Text = "ROLL", Active = handle_aa.vars.antiaim_state[2] == 'Sideways Roll' or handle_aa.vars.antiaim_state[2] == 'Roll' }, [2] = {Text = "FAKE", Active = handle_aa.vars.antiaim_state[2] == 'Massive fake'}, [3] = { Text = "DT", Active = is_dt, Circle = visuals.indicators.vars.other.Stuff.Indicators.Animations.DT.Value }, [4] = {Text = "OS", Active = is_hs}, [5] = {Text = "SP", Active = is_safe == 2.0}, [6] = {Text = "FB", Active = is_baim == 2.0}, [7] = {Text = "FS", Active = ref.base:Get() == 5.0}, } for bz, z in ipairs(by) do if not z.Active then goto aV end if z.Active == nil then goto aV end local bm = render.measure_text(z.Text, fonts.fontdx.size, fonts.fontdx.font) local bn = vector(screannn.x, screannn.y) if z.Active and z.Circle ~= nil then local ar = 3.3 local bk = ar * 0.75 Render.Circle( vector(bn.x + bm.x / 2.0 + bk + 2, bn.y + bm.y / 2.0), ar, 58.0, bd, 1.8, -180, -180 + 360 * z.Circle ) end bn.x = bn.x - bm.x / 2.0 render.text(z.Text, bn, z.Active and bc or visuals.indicators.vars.other.Colors.Transperent, fonts.fontdx.size, fonts.fontdx.font, true, false) screannn.y = screannn.y + 9.0 ::aV:: end ]] end end end end end visuals.arrows = function() local localplayer = entity.get_local_player() if not localplayer then return end local inverter_state = (localplayer.m_flPoseParameter[11] * 120 - 60) > 0 local w = 25 local bgGap = 4 local screen_size = render.screen_size() local x = screen_size.x / 2 local y = screen_size.y / 2 local arrows_color = UI.get('arrows_color') if UI.get('arrows_style') == "Team skeet" then local color1 = not inverter_state and arrows_color or color(0,0,0,75) local color2 = inverter_state and arrows_color or color(0,0,0,75) render.rect(vector(x - 48, y - 10), vector(x - 46, y + 9), color1) render.rect(vector(x + 47, y - 10), vector(x + 49, y + 9), color2) -- if ref.base:GetInt() == 2 or UI.get('roll_manual') == 2 then -- Render.PolyFilled(color(0, 0, 0, 0.3), vector(x - 50, y - 10), vector(x - 50, y + 9), vector(x - 66, y)) -- Render.PolyFilled(arrows_color, vector(x + 52, y - 10), vector(x + 52, y + 9), vector(x + 66, y)) -- elseif ref.base:GetInt() == 3 or UI.get('roll_manual') == 1 then -- Render.PolyFilled(arrows_color, vector(x - 50, y - 10), vector(x - 50, y + 9), vector(x - 66, y)) -- Render.PolyFilled(color(0, 0, 0, 0.3), vector(x + 52, y - 10), vector(x + 52, y + 9), vector(x + 66, y)) -- else -- Render.PolyFilled(color(0, 0, 0, 0.3), vector(x - 50, y - 10), vector(x - 50, y + 9), vector(x - 66, y)) -- Render.PolyFilled(color(0, 0, 0, 0.3), vector(x + 52, y - 10), vector(x + 52, y + 9), vector(x + 66, y)) render.poly(color(0, 0, 0, 75), vector(x - 50, y - 10), vector(x - 50, y + 9), vector(x - 66, y)) render.poly(color(0, 0, 0, 75), vector(x + 52, y - 10), vector(x + 52, y + 9), vector(x + 66, y)) -- end elseif UI.get('arrows_style') == 'Jagoyaw' then local color1 = not inverter_state and arrows_color or color(0,0,0,75) local color2 = inverter_state and arrows_color or color(0,0,0,75) render.text(fonts.fontarrow.font, vector((x - 55), y - 18 + bgGap), color1, 'c', "w") render.text(fonts.fontarrow.font, vector((x + 55), y - 18 + bgGap), color2, 'c', "x") end end visuals.base_render = { box = function(x,y,w,h,color,rounding) render.rect_outline(vector(x,y), vector(x+w,y+h), color, 1, rounding == nil and 0 or rounding, false) end, box_filled = function(x,y,w,h,color,rounding) render.rect(vector(x,y), vector(x+w,y+h), color, rounding == nil and 0 or rounding, false) end, gradient_box_filled = function(x,y,w,h,horizontal,color,color2) render.gradient(vector(x,y), vector(x+w,y+h), color, color, horizontal and color2 or color, horizontal and color or color2, 0) end, string = function(x,y,cen,string,color,TYPE,font,fontsize) if TYPE == 0 then render.text(font, vector(x,y), color, cen and 'c' or '', string) elseif TYPE == 1 then render.text(font, vector(x,y), color, cen and 'c' or '', string) elseif TYPE == 2 then render.text(font, vector(x,y), color, cen and 'c' or '', string) end end, circle = function(x,y,rad,start,endd,color,seg,th) render.circle_outline(vector(x,y), color, rad, start, endd, th) end, text_size = function(string,font,fontsize) return render.measure_text(font, '', string) end } visuals.global_render = { box = function(x, y, w, colorref) visuals.base_render.box_filled(x,y+2,w,18,color(17,17,17,120*(colorref.a)/255),4) visuals.base_render.box_filled(x+3,y+1,w-6,1,color(colorref.r,colorref.g,colorref.b,colorref.a)) visuals.base_render.circle(x+3,y+4,3,180,0.25,color(colorref.r,colorref.g,colorref.b,colorref.a),75,1) visuals.base_render.circle(x+w-3,y+4,3,-90,0.25,color(colorref.r,colorref.g,colorref.b,colorref.a),75,1) visuals.base_render.gradient_box_filled(x,y+4,1,12,false,color(colorref.r,colorref.g,colorref.b,colorref.a),color(colorref.r,colorref.g,colorref.b,0)) visuals.base_render.gradient_box_filled(x+w-1,y+4,1,12,false,color(colorref.r,colorref.g,colorref.b,colorref.a),color(colorref.r,colorref.g,colorref.b,0)) end } -- visuals.Render_engine = (function() -- local self = {} -- local renderer_fade = function(x, y, w, h, color, length, round) -- local r, g, b, a = color.r, color.g, color.b, color.a -- for i = 1, 10 do -- Render.Box(vector(x - i, y - i), vector(w + i, h + i), color(r, g, b, (60 - (60 / length) * i) * (a / 255)), round) -- end -- end -- local renderer_window = function(x, y, w, h, color, shadow_color, outline_color, left, outline) -- local r, g, b, a = color.r, color.g, color.b, color.a -- local r1, g1, b1, a1 = shadow_color.r, shadow_color.g, shadow_color.b, shadow_color.a -- local r2, g2, b2, a2 = outline_color.r, outline_color.g, outline_color.b, outline_color.a -- Render.Blur(vector(x, y), vector(w, h), color(1,1,1, a), 5) -- if outline then -- Render.Circle(vector(x + 4, y + 4), 4, 4, color(r, g, b, a), 1, -175, -90) -- Render.BoxFilled(vector(x + 4, y), vector(w - 5, y+1), color(r, g, b, a)) -- Render.Circle(vector(w - 4, y + 4), 4, 4, color(r, g, b, a), 1, 260, 370) -- Render.GradientBoxFilled(vector(x, y + 4), vector(x + 1, h - 6), color(r, g, b, a), color(r, g, b, a), color(r, g, b, 0), color(r, g, b, 0)) -- Render.GradientBoxFilled(vector(w - 1, y + 4), vector(w, h - 6), color(r, g, b, a), color(r, g, b, a), color(r, g, b, 0), color(r, g, b, 0)) -- end -- Render.Box(vector(x, y), vector(w, h), color(r2, g2, b2, (80 / 255) * a2), 5) -- if left then -- Render.BoxFilled(vector(x, y + 4), vector(x+1, h - 5), color(r, g, b, a)) -- Render.Circle(vector(x + 5, y + 5), 5, 12, color(r, g, b, a), 1, -90, -165) -- Render.Circle(vector(x + 5, h - 5), 5, 12, color(r, g, b, a), 1, -185, -255) -- Render.GradientBoxFilled(vector(x + 4, y), vector(x+20, y+1), color(r, g, b, a), color(r, g, b, 0), color(r, g, b, a), color(r, g, b, 0)) -- Render.GradientBoxFilled(vector(x + 4, h - 1), vector(x+20, h), color(r, g, b, a), color(r, g, b, 0), color(r, g, b, a), color(r, g, b, 0)) -- end -- Render.BoxFilled(vector(x+1, y+1), vector(w-1, h-1), color(0, 0, 0, a), 5) -- renderer_fade(x, y, w, h, color(r1, g1, b1, (120 / 255) * a1), 10, 10) -- end -- self.container = function(x, y, w, h, color, name, font_size, font) -- local name_size = render.measure_text(name, font_size, font) -- -- Render.Blur(vector(x, y), vector(x + w + 3, y + h + 2), color(1, 1, 1, color.a), 6) -- renderer_window(x, y, x + w + 3, y + h + 2, color(color.r, color.g, color.b, color.a), color(color.r, color.g, color.b, color.a), color(color.r, color.g, color.b, color.a), false, true) -- render.text(name, vector(x + 1 + 1 + w / 2 + 1 - name_size.x / 2, y + 2 + 1), color(0, 0, 0, color.a), font_size, font) -- render.text(name, vector(x + 1 + w / 2 + 1 - name_size.x / 2, y + 2), color(1, 1, 1, color.a), font_size, font) -- end -- return self -- end)() visuals.watermark = {} visuals.watermark.draw = function() local speed = globals.frametime * 5 local color_ref = UI.get('ui_color') local pos = { x = 0, y = 0, w = 0, h = 0 } pos.x, pos.y = render.screen_size().x, 0 local offset = { x = 10, y = 10 } pos.x = pos.x - offset.x pos.y = pos.y + offset.y local text = '' local username = script_db.username if UI.get('watermark_name') == 'Custom' then username = UI.get('watermark_name_ref') end text = text .. script_db.lua_name .. ' [' .. script_db.lua_version .. '] | ' .. username .. ' | ' local local_time = common.get_system_time() local time = string.format("%02d:%02d:%02d", local_time.hours, local_time.minutes, local_time.seconds) local ping = globals.is_in_game and math.floor(utils.net_channel().avg_latency[1] * 1000) or 0 text = text .. 'delay: ' .. ping .. 'ms | ' .. time local text_size = render.measure_text(1, '', text) pos.x = pos.x - text_size.x pos.w = text_size.x pos.h = 16 -- if UI.get('ui_style') == 0 then visuals.global_render.box(pos.x - 10, pos.y, pos.w + 10, { r = color_ref.r, g = color_ref.g, b = color_ref.b, a = 255 }) visuals.base_render.string(pos.x - 10 + 6, pos.y + text_size.y / 2 - 1, false, text, color(255, 255, 255, 255), 1, 1) -- elseif UI.get('ui_style') == 1 then -- visuals.Render_engine.container(pos.x - 9, pos.y, pos.w + 9, pos.h, { r = color.r, g = color.g, b = color.b, a = 1 }, text, fonts.verdanar11.size, fonts.verdanar11.font) -- end end visuals.keybinds = {} visuals.keybinds.get_keys = function() local binds = {} local cheatbinds = ui.get_binds() for i = 1, #cheatbinds do table.insert(binds, 1, cheatbinds[i]) end return binds end visuals.keybinds.names = { ['Double Tap'] = 'Double tap', ['Hide Shots'] = 'On shot anti-aim', ['Slow Walk'] = 'Slow motion', ['Edge Jump'] = 'Jump at edge', ['Fake Ping'] = 'Ping spike', ['Override Resolver'] = 'Resolver override', ['Fake Duck'] = 'Duck peek assist', ['Minimum Damage'] = 'Damage override', ['Auto Peek'] = 'Quick peek assist', ['Body Aim'] = 'Force body aim', ['Safe Points'] = 'Safe points', ['Yaw Base'] = 'Yaw base', ['Enable Thirdperson'] = 'Thirdperson', ['Manual Yaw Base'] = 'Yaw base', } visuals.keybinds.upper_to_lower = function(str) local str1 = string.sub(str, 2, #str) local str2 = string.sub(str, 1, 1) return str2:upper()..str1:lower() end visuals.keybinds.vars = { alpha = { [ '' ] = 0 }, window = { alpha = 0, width = 0 } } visuals.keybinds.dragging = helpers.dragging_fn('jagoyaw_keybinds', helpers.screen_size.x / 1.3, helpers.screen_size.y / 2.5) visuals.keybinds.draw = function() local speed = globals.frametime * 5 local color_ref = UI.get('ui_color') local pos = { x = 0, y = 0, w = 0, h = 0 } pos.x, pos.y = visuals.keybinds.dragging:get() pos.x = math.ceil(pos.x) pos.y = math.ceil(pos.y) local offset = 0 local maximum_offset = 80 local binds = visuals.keybinds.get_keys() for i = 1, #binds do local bind = binds[i] local bind_name = visuals.keybinds.names[bind.name] == nil and visuals.keybinds.upper_to_lower(bind.name) or visuals.keybinds.names[bind.name] local bind_state = '' if bind.value == true then local bind_mode = bind.mode if bind_mode == 2 then bind_state = 'toggled' elseif bind_mode == 1 then bind_state = 'holding' end else bind_state = bind.value end if visuals.keybinds.vars.alpha[bind_name] == nil then visuals.keybinds.vars.alpha[bind_name] = 0 end local alpha = easing.quad_in_out(visuals.keybinds.vars.alpha[bind_name], 0, 1, 1) visuals.keybinds.vars.alpha[bind_name] = math.clamp(visuals.keybinds.vars.alpha[bind_name] + (bind.active and speed or -speed), 0, 1) local bind_state_size = render.measure_text(1, nil, bind_state) local bind_name_size = render.measure_text(1, nil, bind_name) -- if UI.get('ui_style') == 0 then visuals.base_render.string(pos.x + 4, pos.y + 21 + offset, false, bind_name, color(255, 255, 255, alpha*255), 1, 1) visuals.base_render.string(pos.x + (visuals.keybinds.vars.window.width - bind_state_size.x - 10), pos.y + 20 + offset, false, '[' .. bind_state .. ']', color(255, 255, 255, alpha*255), 1, 1) -- elseif UI.get('ui_style') == 1 then -- render.text(bind_name, vector(pos.x + 4 + 1, pos.y + 21 + 1 + offset), color(0, 0, 0, alpha), fonts.verdanar11.size, fonts.verdanar11.font) -- render.text(bind_name, vector(pos.x + 4, pos.y + 21 + offset), color(1, 1, 1, alpha), fonts.verdanar11.size, fonts.verdanar11.font) -- render.text('[' .. bind_state .. ']', vector(pos.x + 1 + (visuals.keybinds.vars.window.width - bind_state_size.x - 10), pos.y + 20 + 1 + offset), color(0, 0, 0, alpha), fonts.verdanar11.size, fonts.verdanar11.font) -- render.text('[' .. bind_state .. ']', vector(pos.x + (visuals.keybinds.vars.window.width - bind_state_size.x - 10), pos.y + 20 + offset), color(1, 1, 1, alpha), fonts.verdanar11.size, fonts.verdanar11.font) -- end offset = offset + 16 * alpha if maximum_offset < (bind_name_size.x + bind_state_size.x) + 30 then maximum_offset = bind_name_size.x + bind_state_size.x + 30 end end pos.w = math.ceil(visuals.keybinds.vars.window.width) pos.h = 16 local window_alpha = easing.quad_in_out(visuals.keybinds.vars.window.alpha, 0, 1, 1) visuals.keybinds.vars.window.alpha = math.clamp(visuals.keybinds.vars.window.alpha + ((ui.get_alpha() > 0 or #binds > 0) and speed or -speed), 0, 1) visuals.keybinds.vars.window.width = helpers.lerp(visuals.keybinds.vars.window.width, maximum_offset, speed * 2) -- if UI.get('ui_style') == 0 then visuals.global_render.box(pos.x, pos.y - 2, pos.w + 2, { r = color_ref.r, g = color_ref.g, b = color_ref.b, a = window_alpha * 255 }) local main_text = render.measure_text(1, nil, 'keybinds') visuals.base_render.string(pos.x + 1 + pos.w / 2, pos.y + main_text.y - 3, true, 'keybinds', color(255, 255, 255, window_alpha * 255), 1, 1) -- elseif UI.get('ui_style') == 1 then -- visuals.Render_engine.container(pos.x, pos.y, pos.w, pos.h, { r = color.r, g = color.g, b = color.b, a = window_alpha }, 'keybinds', fonts.verdanar11.size, fonts.verdanar11.font) -- end visuals.keybinds.dragging:drag(pos.w, (10 + (8 * #binds)) * 2) end visuals.spectators = {} visuals.spectators.vars = { players = {}, alpha = { [ '' ] = 0 }, window = { alpha = 0, width = 0 }, specs = { m_alpha = 0, m_active = {}, m_contents = {}, unsorted = {} }, } visuals.spectators.get_spectators = function(player) if not globals.is_connected or not globals.is_in_game then return end local me = entity.get_local_player() if not me then return end local observing = nil if me:is_alive() then observing = me:get_spectators() else local local_target = me.m_hObserverTarget if not local_target then return end observing = local_target:get_spectators() end return observing end visuals.spectators.dragging = helpers.dragging_fn('jagoyaw_spectators', helpers.screen_size.x / 1.5, helpers.screen_size.y / 2.5) visuals.spectators.draw = function() local me = entity.get_local_player() local spectators = visuals.spectators.get_spectators() if not globals.is_connected or spectators == nil or me == nil then return end for i=1, 64 do visuals.spectators.vars.specs.unsorted[i] = { idx = i, active = false } end for i, spectator in pairs(spectators) do local idx = spectator:get_index() visuals.spectators.vars.specs.unsorted[idx] = { idx = idx, active = (function() if spectator == me then return false end return true end)(), avatar = (function() local avatar = spectator:get_steam_avatar() if avatar == nil then return nil end if visuals.spectators.vars.specs.m_contents[idx] == nil or visuals.spectators.vars.specs.m_contents[idx].conts ~= avatar then visuals.spectators.vars.specs.m_contents[idx] = { conts = avatar, texture = avatar } end return visuals.spectators.vars.specs.m_contents[idx].texture end)() } end local is_menu_open = ui.get_alpha() > 0 local latest_item = false local speed = globals.frametime * 5 local color_ref = UI.get('ui_color') local pos = { x = 0, y = 0, w = 0, h = 0 } pos.x, pos.y = visuals.spectators.dragging:get() pos.x = math.ceil(pos.x) pos.y = math.ceil(pos.y) local offset = 0 local maximum_offset = 80 for _, c_ref in pairs(visuals.spectators.vars.specs.unsorted) do local c_id = c_ref.idx local c_nickname = '' local c_entity = entity.get(c_id) if c_entity then c_nickname = string.sub(c_entity:get_name(), 1, 25) end if not visuals.spectators.vars.alpha[c_id] then visuals.spectators.vars.alpha[c_id] = 0 end local ease = easing.quad_in_out(visuals.spectators.vars.alpha[c_id], 0, 1, 1) visuals.spectators.vars.alpha[c_id] = math.clamp(visuals.spectators.vars.alpha[c_id] + (c_ref.active and speed or -speed), 0, 1) if c_ref.active then latest_item = true if visuals.spectators.vars.specs.m_active[c_id] == nil then visuals.spectators.vars.specs.m_active[c_id] = { alpha = 0, offset = 0, active = true } end local text_width = render.measure_text(1, nil, c_nickname) visuals.spectators.vars.specs.m_active[c_id].active = true visuals.spectators.vars.specs.m_active[c_id].offset = text_width.x + 30 visuals.spectators.vars.specs.m_active[c_id].alpha = ease visuals.spectators.vars.specs.m_active[c_id].avatar = c_ref.avatar visuals.spectators.vars.specs.m_active[c_id].name = c_nickname elseif visuals.spectators.vars.specs.m_active[c_id] ~= nil then visuals.spectators.vars.specs.m_active[c_id].active = false visuals.spectators.vars.specs.m_active[c_id].alpha = ease if visuals.spectators.vars.specs.m_active[c_id].alpha <= 0 then visuals.spectators.vars.specs.m_active[c_id] = nil end end if visuals.spectators.vars.specs.m_active[c_id] ~= nil and visuals.spectators.vars.specs.m_active[c_id].offset > maximum_offset then maximum_offset = visuals.spectators.vars.specs.m_active[c_id].offset end end if is_menu_open and not latest_item then local case_name = ' ' local text_width = 0 --renderer.measure_text(nil, case_name) latest_item = true maximum_offset = maximum_offset < text_width and text_width or maximum_offset visuals.spectators.vars.specs.m_active[case_name] = { name = ' ', active = true, offset = text_width, alpha = 0 } end for c_name, c_ref in pairs(visuals.spectators.vars.specs.m_active) do local text_size = render.measure_text(1, nil, c_ref.name) -- print(c_ref.alpha) local adder = { text = 5 + 12 + 3, avatar = 5 } if UI.get('avatar_side') == 'Right' then adder = { text = 5, avatar = math.ceil(visuals.spectators.vars.window.width) - 5 - 12 } end visuals.base_render.string(pos.x + adder.text, pos.y + 21 + offset, false, c_ref.name, color(255, 255, 255, c_ref.alpha*255), 1, 1) -- renderer.text(x + 5 + ((c_ref.avatar and not right_offset) and text_size[2] + 5 or 0) + 1, y + height_offset - 5 + 5 * c_ref.alpha, 255, 255, 255, 255 * c_ref.alpha, font, w - (text_size[2] + 15), c_ref.name) if c_ref.avatar ~= nil then -- renderer.texture(c_ref.avatar, x + 1 + (right_offset and w - 15 or 5), y + height_offset - 5 + 5 * c_ref.alpha, text_size[2], text_size[2], 255, 255, 255, 255 * c_ref.alpha, 'f') render.texture(c_ref.avatar, vector(pos.x + adder.avatar, pos.y + 21 + offset), vector(12, 12), color(255, 255, 255, c_ref.alpha*255)) end offset = offset + (text_size.y + 3) * c_ref.alpha end pos.w = math.ceil(visuals.spectators.vars.window.width) pos.h = 16 local window_alpha = easing.quad_in_out(visuals.spectators.vars.window.alpha, 0, 1, 1) visuals.spectators.vars.window.alpha = math.clamp(visuals.spectators.vars.window.alpha + ((ui.get_alpha() > 0 or #spectators > 0) and speed or -speed), 0, 1) visuals.spectators.vars.window.width = helpers.lerp(visuals.spectators.vars.window.width, maximum_offset, speed * 2) -- if UI.get('ui_style') == 0 then visuals.global_render.box(pos.x, pos.y - 2, pos.w + 3, { r = color_ref.r, g = color_ref.g, b = color_ref.b, a = window_alpha * 255 }) local main_text = render.measure_text(1, nil, 'spectators') visuals.base_render.string(pos.x + 1 + pos.w / 2, pos.y + main_text.y - 3, true, 'spectators', color(255, 255, 255, window_alpha * 255), 1, 1) -- elseif UI.get('ui_style') == 1 then -- visuals.Render_engine.container(pos.x, pos.y, pos.w, pos.h, { r = color_ref.r, g = color_ref.g, b = color_ref.b, a = window_alpha }, 'spectators', fonts.verdanar11.size, fonts.verdanar11.font) -- end visuals.spectators.dragging:drag(pos.w, (10 + (8 * #spectators)) * 2) end visuals.hitmarker = {} visuals.hitmarker.vars = { data = {}, queue = {} } visuals.hitmarker.on_bullet_impact = function(e) if not UI.contains('visual_elements', 'Other') and not UI.get('hitmarker') then return end if entity.get(e.userid, true) == entity.get_local_player() then local impactX = e.x local impactY = e.y local impactZ = e.z table.insert(visuals.hitmarker.vars.data, { impactX, impactY, impactZ, globals.realtime }) end end visuals.hitmarker.on_player_hurt = function(e) if not UI.contains('visual_elements', 'Other') and not UI.get('hitmarker') then return end local bestX, bestY, bestZ = 0, 0, 0 local bestdistance = 100 local realtime = globals.realtime if entity.get(e.attacker, true) == entity.get_local_player() then local victim = entity.get(e.userid, true) if victim ~= nil then local victimOrigin = victim.m_vecOrigin local victimDamage = e.dmg_health local victimhelf = victim.m_iHealth - victimDamage for i in ipairs(visuals.hitmarker.vars.data) do local data = visuals.hitmarker.vars.data[i] if data[4] + (4) >= realtime then local impactX = data[1] local impactY = data[2] local impactZ = data[3] local distance = helpers.vectordistance(victimOrigin.x, victimOrigin.y, victimOrigin.z, impactX, impactY, impactZ) if distance < bestdistance then bestdistance = distance bestX = impactX bestY = impactY bestZ = impactZ end end end if bestX == 0 and bestY == 0 and bestZ == 0 then victimOrigin.z = victimOrigin.z + 50 bestX = victimOrigin.x bestY = victimOrigin.y bestZ = victimOrigin.z end for k in ipairs(visuals.hitmarker.vars.data) do visuals.hitmarker.vars.data[k] = { 0, 0, 0, 0 } end table.insert(visuals.hitmarker.vars.queue, { bestX, bestY, bestZ, realtime, victimDamage, victimhelf } ) end end end visuals.hitmarker.on_player_spawned = function(e) if not UI.contains('visual_elements', 'Other') and not UI.get('hitmarker') then return end if entity.get(e.userid, true) == entity.get_local_player() then for i in ipairs(visuals.hitmarker.vars.data) do visuals.hitmarker.vars.data[i] = { 0, 0, 0, 0 } end for i in ipairs(visuals.hitmarker.vars.queue) do visuals.hitmarker.vars.queue[i] = { 0, 0, 0, 0, 0, 0 } end end end visuals.hitmarker.draw = function() local HIT_MARKER_DURATION = 2 local realtime = globals.realtime local maxTimeDelta = HIT_MARKER_DURATION / 2 local maxtime = realtime - maxTimeDelta / 2 for i in ipairs(visuals.hitmarker.vars.queue) do local marker = visuals.hitmarker.vars.queue[i] if marker[4] + HIT_MARKER_DURATION > maxtime then if marker[1] ~= nil then local add = (marker[4] - realtime) * 50 local w2c = render.world_to_screen(vector((marker[1]), (marker[2]), (marker[3]))) local w2c2 = render.world_to_screen(vector((marker[1]), (marker[2]), (marker[3]) - add)) if not w2c or not w2c2 then return end if w2c.x ~= nil and w2c.y ~= nil then local alpha = 255 if (marker[4] - (realtime - HIT_MARKER_DURATION)) < (HIT_MARKER_DURATION / 2) then alpha = math.floor((marker[4] - (realtime - HIT_MARKER_DURATION)) / (HIT_MARKER_DURATION / 2) * 255) if alpha < 5 then marker = { 0 , 0 , 0 , 0, 0, 0 } end end local HIT_MARKER_SIZE = 6 local col = UI.get('hitmarker_plus_color') local col2 = UI.get('hitmarker_damage_color') -- local color1 = color(255, 255, 255, alpha) local color2 = color(155, 200, 21, alpha) local colorspiese = marker [6] <= 0 and color2 or col2 if UI.contains('hitmarker_type', 'damage') then render.text(1, vector(w2c2.x + 1, w2c2.y + 1), color(0, 0, 0, alpha), '', "-" .. tostring(marker[5])) render.text(1, vector(w2c2.x + 1, w2c2.y + 1), colorspiese, '', "-" .. tostring(marker[5])) end if UI.contains('hitmarker_type', '+') then render.gradient(vector(w2c.x - 1, w2c.y - HIT_MARKER_SIZE), vector(w2c.x + 1, w2c.y), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), 0) render.gradient(vector(w2c.x - HIT_MARKER_SIZE, w2c.y - 1), vector(w2c.x, w2c.y + 1), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), 0) render.gradient(vector(w2c.x - 1, w2c.y + HIT_MARKER_SIZE), vector(w2c.x + 1, w2c.y), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), 0) render.gradient(vector(w2c.x + HIT_MARKER_SIZE, w2c.y - 1), vector(w2c.x, w2c.y + 1), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), 0) end end end end end end visuals.custom_scope = {} visuals.custom_scope.vars = { inaccuracy = 0 } visuals.custom_scope.draw = function() ref.override_zoom.force_viewmodel:set(UI.get('viewmodel_scope')) local screen_size = render.screen_size() local speed = 6 local lp = entity.get_local_player() if not lp then return end local my_weapon = lp:get_player_weapon() if not my_weapon then return end local length = UI.get('custom_scope_lenght') local offset = UI.get('custom_scope_offset') local color_ref = UI.get('custom_scope_color') local weapon_inaccuracy = my_weapon:get_inaccuracy(my_weapon) * 100 local inaccuracy = UI.get('custom_scope_inaccuracy') visuals.custom_scope.vars.inaccuracy = inaccuracy and helpers.lerp( visuals.custom_scope.vars.inaccuracy, weapon_inaccuracy, globals.frametime * 20 ) or 0 local inaccuracy_value = math.floor(visuals.custom_scope.vars.inaccuracy) local offset, initial_position = offset * screen_size.y / 1080, length * screen_size.y / 1080 local scope_level = my_weapon.m_zoomLevel local scoped = lp.m_bIsScoped local resume_zoom = lp.m_bResumeZoom local is_valid = lp:is_alive() and my_weapon ~= nil and scope_level ~= nil local act = is_valid and scope_level > 0 and scoped and not resume_zoom if act then ref.override_zoom.scope_overlay:set('Remove All') render.gradient(vector(screen_size.x/2 - initial_position + 2 - inaccuracy_value, screen_size.y / 2), vector(screen_size.x/2 - initial_position + 2 + initial_position - offset - inaccuracy_value, screen_size.y / 2 + 1), color_ref, color(color_ref.r, color_ref.g, color_ref.b, 0), color_ref, color(color_ref.r, color_ref.g, color_ref.b, 0), 0) render.gradient(vector(screen_size.x/2 + offset + inaccuracy_value, screen_size.y / 2), vector(screen_size.x/2 + offset + initial_position - offset - 1 + inaccuracy_value, screen_size.y / 2 + 1), color(color_ref.r, color_ref.g, color_ref.b, 0), color_ref, color(color_ref.r, color_ref.g, color_ref.b, 0), color_ref, 0) render.gradient(vector(screen_size.x / 2, screen_size.y/2 - initial_position + 2 - inaccuracy_value), vector(screen_size.x / 2 + 1, screen_size.y/2 - initial_position + 2 + initial_position - offset - inaccuracy_value), color_ref, color_ref, color(color_ref.r, color_ref.g, color_ref.b, 0), color(color_ref.r, color_ref.g, color_ref.b, 0), 0) render.gradient(vector(screen_size.x / 2, screen_size.y/2 + offset + inaccuracy_value), vector(screen_size.x / 2 + 1, screen_size.y/2 + offset + initial_position - offset - 1 + inaccuracy_value), color(color_ref.r, color_ref.g, color_ref.b, 0), color(color_ref.r, color_ref.g, color_ref.b, 0), color_ref, color_ref, 0) end end local logs = { } function add_log( text ) table.insert( logs, { text = text, expiration = 8 } ) end local lucida = render.load_font("C:\\Windows\\Fonts\\lucon.ttf", 10, "d") local hb = { [0] = 'generic', 'head', 'chest', 'stomach', 'left arm', 'right arm', 'left leg', 'right leg', 'neck', 'generic', 'gear' } local reason = { ["spread"] = "spread" , ["correction"]= "?" , ["occlusion"] = "spread", ["jitter correction"] = "?" , ["prediction error"] = "prediction error" , ["lagcomp failure"] = "?" } function log_log() if #logs <= 0 then return end local x = 8 local y = 5 local size = 12 + 1 for i = 1, #logs do local notify = logs[ i ] if not notify then goto continue end logs[ i ].expiration = logs[ i ].expiration - globals.frametime if logs[ i ].expiration <= 0.0 then table.remove( logs, i ) end ::continue:: end for i = 1, #logs do local notify = logs[ i ] if not notify then goto continue end local left = logs[ i ].expiration local color = color( ) if left <= 0.5 then local f = left; math.clamp( f, 0.0, 0.5 ) f = f / 0.5; color.a = math.floor( f * 255.0 ) if i == 1 and f <= 0.2 then y = y - ( size * ( 1.0 - f / 0.2 ) ) end else color.a = 255 end render.text( lucida, vector( x, y ), color, "", logs[ i ].text ) y = y + size ::continue:: end end local TICKS_TO_TIME = function(ticks) return globals.tickinterval * ticks end local print_skeet = function( ctx ) local col = color( 220, 220, 220, 255 ) local col_str = col:to_hex( ) local acc = color( 160, 203, 39 ) local acc_str = acc:to_hex( ) print_raw( string.format( "\a%s[gamesense] \a%s%s", acc_str:sub(0, 6), col_str:sub( 0 , 6 ), ctx ) ) end local on_hit = function( ctx ) local name = ctx.target:get_name() local hitgroup_ = hb[ctx.hitgroup] local hitgroup = hb[ctx.wanted_hitgroup] local bt_ms = math.floor(TICKS_TO_TIME(ctx.backtrack) * 1000) local random1 = math.random(0,1000) local random12 = math.random(0,1000) local random13 = math.random(0,1000) local random2 = math.random(0,9) local random22 = math.random(0,9) local random23 = math.random(0,9) local random24 = math.random(0,9) local random25 = math.random(0,9) local random3 = math.random(0,58) local random4 = math.random(0,20) local random5 = math.random(0,20) local health = ctx.target.m_iHealth local wanted_dmg_str = ctx.damage ~= ctx.wanted_damage and string.format("(%i)", ctx.wanted_damage) or "" local string = string.format("Hit %s in the %s for %i (%i health remaining)",name, hitgroup_, ctx.damage,health) local string2 = string.format("[%i/%i] Hit %s's in the %s for %i%s damage (%i health remaining), aimed=%s(%i%%) bt= %ims del= %i %i (%i:%i:%i/%i) LC=%i TC=%i (%i)",random1,random12,name, hitgroup_, ctx.damage, wanted_dmg_str,health, hitgroup, ctx.hitchance, bt_ms,random2,random22,random23,random24,random25,random3,random4,random5,random13) print_skeet(string) add_log(string) print_skeet(string2) add_log(string2) end local on_miss = function( ctx ) local name = ctx.target:get_name() local hitgroup = hb[ctx.wanted_hitgroup] local reason = reason[ctx.state] local bt_ms = math.floor(TICKS_TO_TIME(ctx.backtrack) * 1000) local random1 = math.random(0,1000) local random12 = math.random(0,1000) local random13 = math.random(0,1000) local random2 = math.random(0,9) local random22 = math.random(0,9) local random23 = math.random(0,9) local random24 = math.random(0,9) local random25 = math.random(0,9) local random3 = math.random(0,58) local random4 = math.random(0,20) local random5 = math.random(0,20) local string = string.format("[%i/%i] Missed %s's %s(%i)(%i%%) due to %s, bt= %i (B) (%i:%i:%i/%i) LC=%i TC=%i (%i)",random1,random12, name, hitgroup,ctx.wanted_damage,ctx.hitchance,reason,bt_ms,random23,random24,random25,random3,random4,random5,random13) add_log(string) print_skeet(string) end events.aim_ack:set( function( ctx ) if ctx.state then on_miss( ctx ) return end on_hit( ctx ) end ) local ragebot = {} ragebot.hitchance_overrides = function() ref.hitchance.value:override(nil) local lp = entity.get_local_player() if UI.get('hitchance_air_enable') and helpers.in_air(lp) then local active_weapon = lp:get_player_weapon() if not active_weapon then return end local weapon_classname = active_weapon:get_classname() local enabled_weapons = UI.get('hitchance_air_weapons') print(weapon_classname) -- if false then -- ref.hitchance.value:override(UI.get('hitchance_air')) -- end end local scoped = lp.m_bIsScoped local onground = helpers.on_ground(lp) if UI.get('hitchance_noscope_enable') and not scoped and onground then local active_weapon = lp:get_player_weapon() if not active_weapon then return end local weapon_classname = active_weapon:get_classname() local enabled_weapons = UI.get('hitchance_noscope_weapons') print(weapon_classname) -- if weapon_id == 11 or weapon_id == 38 then -- ref.hitchance.value:override(UI.get('hitchance_noscope')) -- end end end menu.gears.air_hc = UI.get_element('hitchance_air_enable'):create() menu.gears.noscope_hc = UI.get_element('hitchance_noscope_enable'):create() ragebot.doubletap = {} ragebot.doubletap.predict_dt_damage = function() ref.minimum_damage.value:override(nil) if rage.exploit:get() ~= 1 then return end local binds = ui.get_binds() for i = 1, #binds do if binds[i].active and binds[i].name == "Minimum Damage" then return end end local players = entity.get_players(true) if not players then return end for _, player in pairs(players) do if not player or not player:is_alive() then goto continue end local health = player.m_iHealth if health < 0 then goto continue end local local_player = entity.get_local_player() local is_alive = local_player:is_alive() if not is_alive then return end local active_weapon = local_player:get_player_weapon() if active_weapon == nil then return end local weapon_id = active_weapon:get_weapon_index() if weapon_id == nil then return end if weapon_id == 11 or weapon_id == 38 then ref.minimum_damage.value:override(math.floor(health / 2 + 0.5)) end ::continue:: end end ragebot.doubletap.can_shift_shot = function(tts) local me = entity.get_local_player() if me == nil then return end local wpn = me:get_player_weapon() if (not me or not wpn) then return false end local tickbase = me.m_nTickBase local curtime = globals.tickinterval * (tickbase - tts) if (curtime < me.m_flNextAttack) then return false end if (curtime < wpn.m_flNextPrimaryAttack) then return false end return true end ragebot.doubletap.recharge = function() local is_charged = rage.exploit:get() if (ragebot.doubletap.can_shift_shot(15) and is_charged ~= 1) then rage.exploit:allow_charge(true) rage.exploit:force_charge() end end local misc = {} misc.teleport_inair = function() if not ref.doubletap.switch:get() then return end local Allow_Work = false local Need_Teleport = false local Localplayer = entity.get_local_player() local Weapon = Localplayer:get_player_weapon() if Weapon == nil then return end local WeaponID = Weapon:get_classname() local IsKnife = WeaponID == 'CKnife' local CanHit = function(entity) local damage, trace = utils.trace_bullet(entity, entity:get_hitbox_position(3), Localplayer:get_hitbox_position(3)) if damage ~= 0 then if damage < 50 and ((trace.entity and trace.entity == Localplayer) or false) then print(damage) return true end end return false end if not IsKnife then for _, Enemy in pairs(entity.get_players(true)) do if Enemy == Localplayer then goto skip end if CanHit(Enemy) then Need_Teleport = true end ::skip:: end end local Getflag = function(entity, flag) return bit.band(entity.m_fFlags, bit.lshift(1, flag)) ~= 0 end if Need_Teleport and not Getflag(Localplayer, 0) then rage.exploit:force_teleport() end end misc.killsay = {} misc.killsay.phrases = { "𝕕𝕚𝕕 𝕦 𝕣𝕝𝕪 𝕥𝕙𝕚𝕟𝕜 𝕦 𝕔𝕒𝕟 𝕜𝕚𝕝𝕝 𝕛𝕒𝕘𝕠𝕪𝕒𝕨 𝕦𝕤𝕖𝕣?", "𝕤𝕥𝕠𝕡 𝕥𝕣𝕪𝕚𝕟𝕘 𝕣𝕖𝕥𝕒𝕣𝕕, 𝕦 𝕨𝕠𝕟𝕥 𝕜𝕚𝕝𝕝 𝕞𝕖", "昑寧願讓你操蛋也不願殺了jagoyaw哘哘", "記住昑在使用 jagoyaw.lua 時是最好的", "你不蘽殺 買昑的配置 shoppy.gg/@vektus1337 書呆存", "Ты не можејь јбить? Кјпите мой конфиг shoppy.gg/@vektus1337 болван", "what you do dog??", "держи зонтик ☂, тебя обојјали", "𝕠𝕨𝕟𝕖𝕕 𝕓𝕪 𝕘𝕠𝕕𝕖𝕝𝕖𝕤𝕤 𝕜𝕚𝕕", "Создатель 𝘉𝘒 𝘑𝘄𝘙𝘎𝘋𝘕𝘄𝘑", "👺1 𝔰𝔥𝔬𝔱 𝔟𝔶 𝔑𝔑𝔟𝔩𝔞𝔰𝔱𝔢𝔯👺" } misc.killsay.get_phrase = function() return misc.killsay.phrases[utils.random_int(1, #misc.killsay.phrases)]:gsub('\"', '') end misc.killsay.run = function(e) local me = entity.get_local_player() local victim = entity.get(e.userid, true) local attacker = entity.get(e.attacker, true) if victim == attacker or attacker ~= me then return end utils.console_exec('say "' .. misc.killsay.get_phrase() .. '"') end local function hsv_to_rgb(h, s, v, a) local r, g, b local i = math.floor(h * 6); local f = h * 6 - i; local p = v * (1 - s); local q = v * (1 - f * s); local t = v * (1 - (1 - f) * s); i = i % 6 if i == 0 then r, g, b = v, t, p elseif i == 1 then r, g, b = q, v, p elseif i == 2 then r, g, b = p, v, t elseif i == 3 then r, g, b = p, q, v elseif i == 4 then r, g, b = t, p, v elseif i == 5 then r, g, b = v, p, q end return r * 255, g * 255, b * 255, a * 255 end local function func_rgb_rainbowize(frequency, rgb_split_ratio) local r, g, b, a = hsv_to_rgb(globals.realtime * frequency, 1, 1, 1) r = r * rgb_split_ratio g = g * rgb_split_ratio b = b * rgb_split_ratio return r, g, b end function bar() local r, g, b = func_rgb_rainbowize(0.1, 1) local screen_size = render.screen_size() local a = 255 render.gradient(vector(0,0), vector(screen_size.x / 4, 2),color(r,g,b,a), color(b,g,r,a), color(r,g,b,a), color(b,g,r,a),0) render.gradient(vector(screen_size.x / 4,0), vector(screen_size.x / 2, 2),color(b,g,r,a), color(g,r,b,a), color(b,g,r,a), color(g,r,b,a),0) render.gradient(vector(screen_size.x / 2,0), vector(screen_size.x / 1.3, 2),color(g,r,b,a), color(b,r,g,a), color(g,r,b,a), color(b,r,g,a),0) render.gradient(vector(screen_size.x / 1.3,0), vector(screen_size.x, 2),color(b,r,g,a), color(g,b,r,a), color(b,r,g,a), color(g,b,r,a),0) render.gradient(vector(0,2), vector(screen_size.x / 4, 4),color(r,g,b,a), color(b,g,r,a), color(r,g,b,0), color(b,g,r,0),0) render.gradient(vector(screen_size.x / 4,2), vector(screen_size.x / 2, 4),color(b,g,r,a), color(g,r,b,a), color(b,g,r,0), color(g,r,b,0),0) render.gradient(vector(screen_size.x / 2,2), vector(screen_size.x / 1.3, 4),color(g,r,b,a), color(b,r,g,a), color(g,r,b,0), color(b,r,g,0),0) render.gradient(vector(screen_size.x / 1.3,2), vector(screen_size.x, 4),color(b,r,g,a), color(g,b,r,a), color(b,r,g,0), color(g,b,r,0),0) end local local_player = entity.get_local_player() local msg = { ", why so bad NN XD? get good at shoppy.gg/@vektus1337", ", NN go watch some HvH Tutorials at www.youtube.com/vektus1337", ", laff hurensohn go visit shoppy.gg/@vektus1337 XD make your mom proud", ", get on my level, Free HvH Tutorials at youtube.com/vektus1337", ", uff 1tab dog", ", headshot bitch", ", owned kid lafff", ", why so bad? get good at shoppy.gg/@vektus1337", ", shit wannabe keep watching my videos trying to play like me lachbombe", ", HvH Tutorials at www.youtube.com/vektus1337 fucking faNN", ", HHHHHHHHHHH nice 10 iq monkey with BOT playstyle go kys fucking freak", ", hhhhhhh 1 shot by the NNblaster", ", HEADSHOT lachflip umed?", ", blasted lachkick HAHAHAHAHAHA", ", laff you suck HAHAHAHAHAHA imagine being so shit like u XD", ", 1tap laff sit fucking dog" } local function get_table_length(data) if type(data) ~= 'table' then return 0 end local count = 0 for _ in pairs(data) do count = count + 1 end return count end local msg_final = get_table_length(msg) events.player_death:set(function(e) local attacker = entity.get(e.attacker, true) local victim = entity.get(e.userid, true) if attacker == local_player and victim:is_enemy() and UI.get('trash') then local command = "say " .. victim:get_name() .. msg[math.random(msg_final)] utils.console_exec(command) end end) local font3 = render.load_font("C:\\Windows\\Fonts\\lucon.ttf", 10, "ad") function spectators() local local_player = entity.get_local_player(); local spectators; local screen_size = render.screen_size() local size; if local_player == nil then return end if local_player:is_alive() then spectators = local_player:get_spectators() else local local_target = local_player.m_hObserverTarget if not local_target then return end spectators = local_target:get_spectators() end if spectators == nil then return end for i, spectator in pairs(spectators) do if spectator == nil then return end size = render.measure_text(font3,"d", spectator:get_name()) --print(size.x) render.text(1, vector((screen_size.x - 5) - size.x, -23 + (i * 20) + size.y), color(255, 255, 255, 240), nil, spectator:get_name()) end end local debug_font = render.load_font("C:\\Windows\\Fonts\\Tahoma.ttf", 12, "da") function debug_info() local local_player = entity.get_local_player(); if (local_player == nil) then return end local screen_size = render.screen_size() local alpha = math.sin(math.abs(-3.14 + (globals.curtime * (1 / 0.3)) % (3.14 * 2))) * 255 local charge = "false" local desync_delta = local_player.m_flPoseParameter[11] * 120 - 60 if (rage.exploit:get() == 0) then charge = "false" end if (rage.exploit:get() == 1) then charge = "true" end render.text(1, vector((screen_size.x * 0.01), screen_size.y / 2.8), color(255, 255, 255, 255), nil, "jag0.lua - " .. common.get_username()); render.text(1, vector((screen_size.x * 0.01), screen_size.y / 2.73), color(255, 255, 255, 255), nil, "version: "); render.text(1, vector((screen_size.x * 0.032), screen_size.y / 2.73), color(255, 255, 255, alpha), nil, script_db.lua_version:lower()); render.text(1, vector((screen_size.x * 0.01), screen_size.y / 2.67), color(255, 255, 255, 255), nil, "exploit charge:" .. charge); render.text(1, vector((screen_size.x * 0.01), screen_size.y / 2.61), color(255, 255, 255, 255), nil, "desync amount:" .. math.abs(math.ceil(desync_delta)) .. "°".. "(" .. math.ceil(rage.antiaim:get_max_desync()) .. "°)"); end function shoppy() local screen_size = render.screen_size() local size = render.measure_text(1, 'ad', "shoppy.gg/@vektus1337") local color_ref = UI.get('ui_color') render.text(1, vector((screen_size.x / 2) - (size.x / 2) , screen_size.y - 20), color(255, 255, 255, 255), nil, "shoppy.gg/@" ); render.text(1, vector((screen_size.x / 2) , screen_size.y - 20), color_ref, nil, " vektus1337" ); end function left_hand() local local_player = entity.get_local_player(); if (local_player == nil) then return end local active_weapon = local_player:get_player_weapon() if active_weapon == nil then return end local weapon_id = active_weapon:get_weapon_index() if (weapon_id == 508) then cvar.cl_righthand:int(0) else cvar.cl_righthand:int(1) end end -- local anims = {} -- anims.cache = {} -- function set_parameter(ptr, layr, start, stop) -- ptr = ffi.cast("unsigned int", ptr) if ptr == 0x0 then return false end -- local hdr = ffi.cast("void**", ptr + 0x2950)[0] if hdr == nil then return false end -- local params = ffi_stuff.get_pose_parameters(hdr, layr) -- if params == nil or params == 0x0 then return end -- if anims.cache[layr] == nil then -- anims.cache[layr] = {} -- anims.cache[layr].m_flStart = params.m_flStart -- anims.cache[layr].m_flEnd = params.m_flEnd -- anims.cache[layr].m_flState = params.m_flState -- anims.cache[layr].set = false -- return true -- end -- if start ~= nil and not anims.cache[layr].set then -- params.m_flStart = start -- params.m_flEnd = stop -- params.m_flState = (params.m_flStart + params.m_flEnd) / 2 -- anims.cache[layr].set = true -- return true -- end -- if anims.cache[layr].set then -- params.m_flStart = anims.cache[layr].m_flStart -- params.m_flEnd = anims.cache[layr].m_flEnd -- params.m_flState = anims.cache[layr].m_flState -- anims.cache[layr].set = false -- return true -- end -- return false -- end -- function final_params(cmd) -- local local_player = entity.get_local_player(); if (local_player == nil) then return end -- local local_player_ting = ffi.cast("unsigned int", local_player) -- if local_player_ting == 0x0 then return end -- local anim_state = ffi.cast( "void**", local_player_ting + ffi_stuff.animstate_offset)[0] if anim_state == nil then return end -- anim_state = ffi.cast("unsigned int", anim_state) if anim_state == 0x0 then return end -- local landing_anim = ffi.cast("bool*", anim_state + 0x109)[0] if landing_anim == nil then return end -- if UI.contains('anim_break', 'Ground') then -- set_parameter(local_player, 0, -180, -179) -- end -- if UI.contains('anim_break', 'Air') then -- set_parameter(local_player, 6, 0.9, 1) -- end -- if UI.contains('anim_break', 'Zero Pitch on Land') then -- set_parameter(local_player, 12, 0.999, 1) -- end -- end misc.clantag = {} misc.clantag.animation = { "j", "ja", "jag", "jag0", "jag0-", "jag0-y", "jag0-ya", "jag0-yaw", "jag0-yaw", "jag0-ya", "jag0-y", "jag0-", "jag0", "jag", "ja", "j", "" } misc.clantag.vars = { remove = false, timer = 0 } misc.clantag.run = function() local curtime = math.floor(globals.curtime * 2) if misc.clantag.vars.timer ~= curtime then common.set_clan_tag(misc.clantag.animation[curtime % #misc.clantag.animation + 1]) misc.clantag.vars.timer = curtime end misc.clantag.vars.remove = true end misc.clantag.remove = function() if misc.clantag.vars.remove then common.set_clan_tag("") misc.clantag.vars.remove = false end end if common.get_username() == "SeVeN" then utils.console_exec("quit") end local handle_callbacks = {} handle_callbacks.values = { remove_overlay = false } handle_callbacks.on_render = function() if UI.contains('visual_elements', 'Skeet') and UI.get('logs') then log_log() end if UI.contains('visual_elements', 'Skeet') and UI.get('rainbow') then bar() end if UI.contains('visual_elements', 'Skeet') and UI.get('spectators') then spectators() end if UI.contains('visual_elements', 'Skeet') and UI.get('debug_info') then debug_info() end if UI.contains('visual_elements', 'Skeet') and UI.get('left_hand') then left_hand() end shoppy(); menu.side_bar.run() if UI.contains('visual_elements', 'Ui') and globals.is_in_game then if UI.contains('ui_elements', 'Watermark') then visuals.watermark.draw() end if UI.contains('ui_elements', 'Keybinds') then visuals.keybinds.draw() end if UI.contains('ui_elements', 'Spectators') then visuals.spectators.draw() end end if UI.contains('visual_elements', 'Other') and UI.get('hitmarker') then visuals.hitmarker.draw() end if UI.contains('visual_elements', 'Custom scope') and globals.is_in_game then visuals.custom_scope.draw() handle_callbacks.values.remove_overlay = true elseif not UI.contains('visual_elements', 'Custom scope') and handle_callbacks.values.remove_overlay then ref.override_zoom.scope_overlay:set('Remove Overlay') handle_callbacks.values.remove_overlay = false end if UI.get('crosshair_style') ~= 'Disabled' then visuals.indicators.draw() end if UI.get('arrows_style') ~= 'Disabled' then visuals.arrows() end end handle_callbacks.on_createmove = function(e) handle_aa.player_state() if UI.get('antiaim_settings') then handle_aa.set_antiaim(e) end if UI.contains('aimbot_elements', 'Hitchances') then ragebot.hitchance_overrides() end end handle_callbacks.on_createmove_run = function(e) -- final_params(); if UI.contains('aimbot_elements', 'Other') then if UI.contains('doubletap_options', 'Adaptive recharge') then ragebot.doubletap.recharge() end if UI.contains('doubletap_options', 'Predict dt damage') then ragebot.doubletap.predict_dt_damage() end end local ragdoll_physics = cvar.cl_ragdoll_physics_enable local value = UI.get('static_ragdolls') and 0 or 1 if ragdoll_physics ~= value then ragdoll_physics:int(value) end if UI.get('teleport_inair') then misc.teleport_inair() end if UI.get('clantag') then misc.clantag.run() else misc.clantag.remove() end end events.enter_bombzone:set(function(e) handle_aa.legitaa.check_bombsite(e, 'enter_bombzone') end) events.exit_bombzone:set(function(e) handle_aa.legitaa.check_bombsite(e, 'exit_bombzone') end) events.player_hurt:set(function(e) visuals.hitmarker.on_player_hurt(e) end) events.bullet_impact:set(function(e) visuals.hitmarker.on_bullet_impact(e) end) events.player_spawned:set(function(e) visuals.hitmarker.on_player_spawned(e) end) events.player_death:set(function(e) if UI.get('killsay') then misc.killsay.run(e) end end) events.createmove:set(handle_callbacks.on_createmove) events.createmove_run:set(handle_callbacks.on_createmove_run) events.render:set(handle_callbacks.on_render)
скрипт жестко вырубает фейк лагиКод:_DEBUG = false local ffi = require("ffi") local clipboard = require("neverlose/clipboard") local anti_aim = require("neverlose/anti_aim") ffi.cdef[[ void* __stdcall URLDownloadToFileA(void* LPUNKNOWN, const char* LPCSTR, const char* LPCSTR2, int a, int LPBINDSTATUSCALLBACK); bool DeleteUrlCacheEntryA(const char* lpszUrlName); void* __stdcall ShellExecuteA(void* hwnd, const char* op, const char* file, const char* params, const char* dir, int show_cmd); bool CreateDirectoryA(const char* lpPathName, void* lpSecurityAttributes); ]] local js = panorama.loadstring([[ return { OpenExternalBrowserURL: function(url){ void SteamOverlayAPI.OpenExternalBrowserURL(url) } } ]])() local ffi_stuff = {} ffi_stuff.urlmon = ffi.load 'UrlMon' ffi_stuff.wininet = ffi.load 'WinInet' local helpers = {} helpers.round = function(num, decimals) local mult = 10^(decimals or 0) return math.floor(num * mult + 0.5) / mult end helpers.in_air = function(player) if player == nil then return end local flags = player.m_fFlags if bit.band(flags, 1) == 0 then return true end return false end helpers.on_ground = function(player) if player == nil then return end local flags = player.m_fFlags if bit.band(flags, 1) == 1 then return true end return false end helpers.is_crouching = function(player) if player == nil then return end local flags = player.m_fFlags if bit.band(flags, 4) == 4 then return true end return false end helpers.get_velocity = function(player) if player == nil then return end local velocity_ref = player.m_vecVelocity local velocity = velocity_ref:length() return velocity end helpers.normalize_yaw = function(yaw) while yaw > 180 do yaw = yaw - 360 end while yaw < -180 do yaw = yaw + 360 end return yaw end helpers.calc_shit = function(xdelta, ydelta) if xdelta == 0 and ydelta == 0 then return 0 end return math.deg(math.atan2(ydelta, xdelta)) end helpers.get_nearest_enemy = function(plocal, enemies) local local_player = entity.get_local_player() if not local_player or not local_player:is_alive() then return end local camera_position = render.camera_position() local camera_angles = render.camera_angles() local direction = vector():angles(camera_angles) local closest_distance, closest_enemy = math.huge for i = 1, #enemies do local enemy = entity.get(enemies[i]) local head_position = enemy:get_hitbox_position(1) local ray_distance = head_position:dist_to_ray( camera_position, direction ) if ray_distance < closest_distance then closest_distance = ray_distance closest_enemy = enemy end end if not closest_enemy then return end return closest_enemy end helpers.calc_angle = function(local_x, local_y, enemy_x, enemy_y) local ydelta = local_y - enemy_y local xdelta = local_x - enemy_x local relativeyaw = math.atan( ydelta / xdelta ) relativeyaw = helpers.normalize_yaw( relativeyaw * 180 / math.pi ) if xdelta >= 0 then relativeyaw = helpers.normalize_yaw(relativeyaw + 180) end return relativeyaw end helpers.angle_vector = function(angle_x, angle_y) local sy = math.sin(math.rad(angle_y)) local cy = math.cos(math.rad(angle_y)) local sp = math.sin(math.rad(angle_x)) local cp = math.cos(math.rad(angle_x)) return cp * cy, cp * sy, -sp end helpers.get_damage = function(plocal, enemy, x, y, z) local ex = { } local ey = { } local ez = { } ex[0], ey[0], ez[0] = enemy:get_hitbox_position(1).x, enemy:get_hitbox_position(1).y, enemy:get_hitbox_position(1).z ex[1], ey[1], ez[1] = ex[0] + 40, ey[0], ez[0] ex[2], ey[2], ez[2] = ex[0], ey[0] + 40, ez[0] ex[3], ey[3], ez[3] = ex[0] - 40, ey[0], ez[0] ex[4], ey[4], ez[4] = ex[0], ey[0] - 40, ez[0] ex[5], ey[5], ez[5] = ex[0], ey[0], ez[0] + 40 ex[6], ey[6], ez[6] = ex[0], ey[0], ez[0] - 40 local trace = {damage = 0, trace = nil} --local dmg = 0 for i=0, 6 do if trace.damage == 0 or trace.damage == nil then trace.damage, trace.trace = utils.trace_bullet(enemy, vector(ex[i], ey[i], ez[i]), vector(x, y, z)) end end return trace.damage--trace.trace == nil and client.scale_damage(plocal, 1, dmg) or dmg end helpers.lerp = function(a, b, percentage) return a + (b - a) * percentage end helpers.gram_create = function(value, count) local gram = { }; for i=1, count do gram[i] = value; end return gram; end helpers.Download = function(from, to) ffi_stuff.wininet.DeleteUrlCacheEntryA(from) ffi_stuff.urlmon.URLDownloadToFileA(nil, from, to, 0,0) end helpers.gradient_text = 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 helpers.colored_single_text = function(r1, g1, b1, a1, text, r2, g2, b2, a2) local output = '' output = ('\a%02x%02x%02x%02x%s\a%02x%02x%02x%02x'):format(r1, g1, b1, a1, text, r2, g2, b2, a2) return output end helpers.vectordistance = function(x1,y1,z1,x2,y2,z2) return math.sqrt(math.pow(x1 - x2, 2) + math.pow( y1 - y2, 2) + math.pow( z1 - z2 , 2) ) end helpers.colored_text = function(r, g, b, a, text) local output = '' output = ('\a%02x%02x%02x%02x%s'):format(r, g, b, a, text) return output end helpers.screen_size = render.screen_size() files.create_folder("nl\\jagoyaw\\") files.create_folder("nl\\jagoyaw\\fonts") -- network.get(url: string[, headers: table, callback: function]) -- files.write(path: string, contents: string[, is_binary: boolean]) -- network.get('https://cdn.discordapp.com/attachments/614973363215138817/964726308787609610/easing.lua', {}, function(s) -- -- if s and r.status == 200 then -- -- files.write("nl\\jagoyaw\\easing.lua", r.body) -- print(s) -- -- end -- end) local to_download = { { link = 'https://cdn.discordapp.com/attachments/614973363215138817/964726308787609610/easing.lua', dir = "nl\\jagoyaw\\easing.lua" }, { link = 'https://cdn.discordapp.com/attachments/953060406182678628/953060859020709910/smallest_pixel-7.ttf', dir = "nl\\jagoyaw\\fonts\\pixel.ttf" }, { link = 'https://cdn.discordapp.com/attachments/953060406182678628/957747508602359818/Acta_Symbols_W95_Arrows.ttf', dir = "nl\\jagoyaw\\fonts\\ActaSymbolsW95Arrows.ttf" }, { link = 'https://cdn.discordapp.com/attachments/614973363215138817/1015456850914840656/lucida-console.ttf', dir = "nl\\jagoyaw\\fonts\\lucida_console.ttf" }, } for i, value in pairs(to_download) do if not files.read(value.dir) then helpers.Download(value.link, value.dir) end end -- helpers.CreateDir("nl\\jagoyaw\\fonts\\") -- helpers.Download('https://cdn.discordapp.com/attachments/953060406182678628/953060859020709910/smallest_pixel-7.ttf', 'nl\\jagoyaw\\fonts\\pixel.ttf') -- helpers.Download('https://cdn.discordapp.com/attachments/953060406182678628/957747508602359818/Acta_Symbols_W95_Arrows.ttf', 'nl\\jagoyaw\\fonts\\ActaSymbolsW95Arrows.ttf') -- helpers.Download('https://cdn.discordapp.com/attachments/614973363215138817/997160940871094292/small_fonts.ttf', 'nl\\jagoyaw\\fonts\\small_fonts.ttf') -- print(files.read("nl\\jagoyaw\\easing.lua")) local easing = require 'jagoyaw/easing' local Unpack = unpack or table.unpack; local script_db = {} script_db.username = common.get_username() script_db.lua_name = 'jag0yaw' script_db.lua_version = 'BETA' local UI = { list = { }, } UI.push = function( args ) assert( args.element, 'Element is nil' ) assert( args.index, 'Index is nil' ) assert( type( args.index ) == 'string', 'Invalid type of index' ) UI.list[ args.index ] = { } UI.list[ args.index ].element = args.element UI.list[ args.index ].flags = args.flags or '' UI.list[ args.index ].visible_state = function() if not args.conditions then return true end for k, v in pairs( args.conditions ) do if not v() then return false end end return true end UI.list[ args.index ].element:set_callback( UI.visibility_handle ) UI.visibility_handle() end UI.get = function( index ) return UI.list[ index ] and UI.list[ index ].element:get() end -- UI.get_color = function( index ) -- return UI.list[ index ] and UI.list[ index ].element:GetColor() -- end UI.get_element = function( index ) return UI.list[ index ] and UI.list[ index ].element end UI.delete = function( index ) UI.get( index ):destroy() UI.list[ index ] = nil end UI.contains = function( index, value ) index = UI.get( index ) if type( index ) ~= "table" then return false end for i = 1, #index do if index[ i ] == value then return true end end return false end UI.visibility_handle = function() if ui.get_alpha() == 0 then return end for k, v in pairs( UI.list ) do v.element:set_visible( v.visible_state() ) end end local configs = {} configs.code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' configs.encode = function(data) return ( ( data:gsub( '.', function( x ) local r, b='', x:byte( ) for i = 8, 1, -1 do r = r .. ( b%2 ^ i - b%2 ^ ( i - 1 ) > 0 and '1' or '0' ) end return r; end ) .. '0000' ):gsub( '%d%d%d?%d?%d?%d?', function( x ) if ( #x < 6 ) then return '' end local c = 0 for i = 1, 6 do c = c + ( x:sub( i, i ) == '1' and 2 ^ ( 6 - i ) or 0 ) end return configs.code:sub( c + 1, c + 1 ) end) .. ( { '', '==', '=' } )[ #data%3 + 1 ] ) end configs.decode = function(data) data = string.gsub( data, '[^' .. configs.code .. '=]', '' ) return ( data:gsub( '.', function( x ) if ( x == '=' ) then return '' end local r, f = '', ( configs.code:find( x ) - 1 ) for i = 6, 1, -1 do r = r .. ( f%2 ^ i - f%2 ^ ( i - 1 ) > 0 and '1' or '0' ) end return r; end ):gsub( '%d%d%d?%d?%d?%d?%d?%d?', function( x ) if ( #x ~= 8 ) then return '' end local c = 0 for i = 1, 8 do c = c + ( x:sub( i, i ) == '1' and 2 ^ ( 8 - i ) or 0 ) end return string.char( c ) end) ) end configs.export = function() local table = {} for k, v in pairs( UI.list ) do if v.flags == 'c' then table[k] = { UI.list[ k ].element:get().r, UI.list[ k ].element:get().g, UI.list[ k ].element:get().b, UI.list[ k ].element:get().a } elseif v.flags == '-' then goto skip else table[k] = UI.list[ k ].element:get() end ::skip:: end clipboard.set(configs.encode(json.stringify(table))) end configs.import = function(config) local data = json.parse(configs.decode(config)) for item, value in pairs(data) do if UI.list[ item ].flags == 'c' then UI.get_element(item):set(color(value[1], value[2], value[3], value[4])) else UI.get_element(item):set(value) end end UI.visibility_handle() end local global_vars = { plr_conditions = { 'Global', 'Standing', 'Moving', 'Crouching T', 'Crouching CT', 'Slowwalk', 'Air duck', 'Air', 'Legit aa' }, plr_conditions_to_int = { [ 'Global' ] = 1, [ 'Standing' ] = 2, [ 'Moving' ] = 3, [ 'Crouching T' ] = 4, [ 'Crouching CT' ] = 5, [ 'Slowwalk' ] = 6, [ 'Air duck' ] = 7, [ 'Air' ] = 8, [ 'Legit aa' ] = 9 } } local ref = { pitch = ui.find("Aimbot", "Anti Aim", "Angles", "Pitch"), yaw = { mode = 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"), avoid_backstab = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw", "Avoid Backstab") }, yaw_modifier = { mode = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw Modifier"), offset = ui.find("Aimbot", "Anti Aim", "Angles", "Yaw Modifier", "Offset") }, body_yaw = { switch = 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"), fake_options = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Options"), desync_freestand = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Freestanding"), on_shot_desync = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "On Shot"), lby_mode = ui.find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "LBY Mode"), }, freestanding = { switch = ui.find("Aimbot", "Anti Aim", "Angles", "Freestanding"), disable_yaw_modifiers = ui.find("Aimbot", "Anti Aim", "Angles", "Freestanding", "Disable Yaw Modifiers"), body_freestanding = ui.find("Aimbot", "Anti Aim", "Angles", "Freestanding", "Disable Yaw Modifiers") }, leg_movement = ui.find("Aimbot", "Anti Aim", "Misc", "Leg Movement"), slowwalk = ui.find("Aimbot", "Anti Aim", "Misc", "Slow Walk"), fakeduck = ui.find("Aimbot", "Anti Aim", "Misc", "Fake Duck"), fakelag = { switch = ui.find("Aimbot", "Anti Aim", "Fake Lag", "Enabled"), limit = ui.find("Aimbot", "Anti Aim", "Fake Lag", "Limit"), variability = ui.find("Aimbot", "Anti Aim", "Fake Lag", "Variability") }, auto_peek = ui.find("Aimbot", "Ragebot", "Main", "Peek Assist"), hide_shots = { switch = ui.find("Aimbot", "Ragebot", "Main", "Hide Shots"), options = ui.find("Aimbot", "Ragebot", "Main", "Hide Shots", "Options") }, doubletap = { switch = ui.find("Aimbot", "Ragebot", "Main", "Double Tap"), lag_options = ui.find("Aimbot", "Ragebot", "Main", "Double Tap", "Lag Options"), fakelag_limit = ui.find("Aimbot", "Ragebot", "Main", "Double Tap", "Fake Lag Limit") }, autoscope = ui.find("Aimbot", "Ragebot", "Accuracy", "Auto Scope"), hitchance = { value = ui.find("Aimbot", "Ragebot", "Selection", "Hit Chance"), strict_hitchance = ui.find("Aimbot", "Ragebot", "Selection", "Hit Chance", "Strict Hit Chance") }, minimum_damage = { value = ui.find("Aimbot", "Ragebot", "Selection", "Minimum Damage"), delay_show = ui.find("Aimbot", "Ragebot", "Selection", "Minimum Damage", "Delay Shot") }, body_aim = { mode = ui.find("Aimbot", "Ragebot", "Safety", "Body Aim"), disablers = ui.find("Aimbot", "Ragebot", "Safety", "Body Aim", "Disablers") }, safe_point = ui.find("Aimbot", "Ragebot", "Safety", "Safe Points"), hitbox_safety = ui.find("Aimbot", "Ragebot", "Safety", "Ensure Hitbox Safety"), thirdperson = ui.find("Visuals", "World", "Main", "Force Thirdperson"), override_zoom = { force_viewmodel = ui.find("Visuals", "World", "Main", "Override Zoom", "Force Viewmodel"), scope_overlay = ui.find("Visuals", "World", "Main", "Override Zoom", "Scope Overlay") } } local menu = {} menu.update_log = { "NEW DISCORD CLICK BUTTON ON THE RIGHT->", "https://discord.gg/nR7QwtkqEP", "Fixed Load default config", "Added new default config", "Added Disable freestanding in air", "Added new bluhgang indicator", "Improved body-yaw presets", "Removed obsolete features", "Fixed jag0-walk", "Added left hand knife", "Added jag0yaw logo to UI", "Fixed massive fake exploit", "Fixed legit antiaim", "Added Ideal tick", "Fixed jag0yaw v2 indicator", "Changes to acatel indicator", "Added skeet spectator list", "Added new Trash Talk", "Added skeet rainbow bar", "Added new event logs (skeet based)", "Added debug informations", "Changes to UI", "Various general improvements", "More changes coming soon!" } menu.handle_updatelog = function(table) local text = '' for i = 1, #table do text = text .. ' - ' .. table[i] .. (i ~= #table and '\n' or '') end return text end local groups = { main = { info = ui.create("Global", "Information"), config_system = ui.create('Global', 'Config system'), nothing = ui.create('Global', ' '), image = ui.create('Global', '') }, anti_aim = { main = ui.create("Anti-aim", "Main"), builder = ui.create("Anti-aim", "Preset changer"), binds = ui.create("Anti-aim", "Binds"), }, aimbot = { main = ui.create("Aimbot", "Main"), hitchances = ui.create("Aimbot", "Hitchances"), other = ui.create("Aimbot", "Other"), }, visuals = { main = ui.create("Visuals", "Main"), ui = ui.create("Visuals", "Ui"), crosshair = ui.create("Visuals", "Indicators"), custom_scope = ui.create("Visuals", "Custom scope"), logs = ui.create("Visuals", "Skeet"), other = ui.create("Visuals", "Other"), }, misc = { main = ui.create("Misc", "Main"), binds = ui.create("Misc", "Binds") } } menu.side_bar = {} menu.side_bar.animation = { "J", "JA", "JAG", "JAGO", "JAGO-", "JAGO-Y", "JAGO-YA", "JAGO-YAW", "JAGO-YAW", "JAGO-YA", "JAGO-Y", "JAGO-", "JAGO", "JAG", "JA", "J", "" } menu.side_bar.values = { timer = 0 } menu.side_bar.run = function() local curtime = math.floor(globals.curtime * 2) if menu.side_bar.values.timer ~= curtime then ui.sidebar(helpers.gradient_text(150, 171, 255, 255, 119, 124, 145, 255, menu.side_bar.animation[curtime % #menu.side_bar.animation + 1]), 'user-shield') menu.side_bar.values.timer = curtime end end ui.sidebar(helpers.gradient_text(150, 171, 255, 255, 119, 124, 145, 255, script_db.lua_name), 'user-shield') --"\aFFFFFFFF [JagoYaw] Build -> \aFCCDFFFF Dev") common.add_notify("Hello, " .. common.get_username() .. "!","\aFFFFFFFFWelcome back to JAG0YAW!") groups.main.info:label("\a858585FF[\aFCCDFFFFJag0yaw\a858585FF]\aFCCDFFFF \aFFFFFFFFWelcome back \aFCCDFFFF" .. common.get_username() .. "!") groups.main.info:label("\aFFFFFFFFBuild \a858585FF» \aFCCDFFFF" ..script_db.lua_version) groups.main.info:label("\aFFFFFFFFUpdate\a858585FF » \aFCCDFFFF09.09.2022" ) groups.main.info:label("\aFFFFFFFF\n" .. menu.handle_updatelog(menu.update_log)) local default_config = string.format("eyJhaW1ib3RfZWxlbWVudHMiOlsiSGl0Y2hhbmNlcyIsIk90aGVyIl0sImFudGlhaW1fcHJlc2V0cyI6IkN1c3RvbSIsImFudGlhaW1fc2V0dGluZ3MiOnRydWUsImFycm93c19jb2xvciI6WzE0Mi4wLDE2NS4wLDIyOS4wLDI1NS4wXSwiYXJyb3dzX3N0eWxlIjoiRGlzYWJsZWQiLCJhdmF0YXJfc2lkZSI6IkxlZnQiLCJjbGFudGFnIjpmYWxzZSwiY3Jvc3NoYWlyX3N0eWxlIjoiQWNhdGVsIiwiY3VzdG9tX3Njb3BlX2NvbG9yIjpbMTQyLjAsMTY1LjAsMjI5LjAsMjU1LjBdLCJjdXN0b21fc2NvcGVfaW5hY2N1cmFjeSI6ZmFsc2UsImN1c3RvbV9zY29wZV9sZW5naHQiOjEwLjAsImN1c3RvbV9zY29wZV9vZmZzZXQiOjcwLjAsImRlYnVnX2luZm8iOnRydWUsImRvdWJsZXRhcF9vcHRpb25zIjpbIlByZWRpY3QgZHQgZGFtYWdlIl0sImV4cGVyaW1lbnRhbF9hbnRpYnJ1dGVmb3JjZSI6dHJ1ZSwiZmFrZV9saW1pdF9qaXR0ZXJfQWlyIjo2MC4wLCJmYWtlX2xpbWl0X2ppdHRlcl9BaXIgZHVjayI6NjAuMCwiZmFrZV9saW1pdF9qaXR0ZXJfQ3JvdWNoaW5nIENUIjo2MC4wLCJmYWtlX2xpbWl0X2ppdHRlcl9Dcm91Y2hpbmcgVCI6NjAuMCwiZmFrZV9saW1pdF9qaXR0ZXJfR2xvYmFsIjo2MC4wLCJmYWtlX2xpbWl0X2ppdHRlcl9MZWdpdCBhYSI6NjAuMCwiZmFrZV9saW1pdF9qaXR0ZXJfTW92aW5nIjo2MC4wLCJmYWtlX2xpbWl0X2ppdHRlcl9TbG93d2FsayI6NjAuMCwiZmFrZV9saW1pdF9qaXR0ZXJfU3RhbmRpbmciOjYwLjAsImZha2VfbGltaXRfbGVmdF9BaXIiOjYwLjAsImZha2VfbGltaXRfbGVmdF9BaXIgZHVjayI6NjAuMCwiZmFrZV9saW1pdF9sZWZ0X0Nyb3VjaGluZyBDVCI6NjAuMCwiZmFrZV9saW1pdF9sZWZ0X0Nyb3VjaGluZyBUIjo2MC4wLCJmYWtlX2xpbWl0X2xlZnRfR2xvYmFsIjoxLjAsImZha2VfbGltaXRfbGVmdF9MZWdpdCBhYSI6NjAuMCwiZmFrZV9saW1pdF9sZWZ0X01vdmluZyI6NjAuMCwiZmFrZV9saW1pdF9sZWZ0X1Nsb3d3YWxrIjo2MC4wLCJmYWtlX2xpbWl0X2xlZnRfU3RhbmRpbmciOjYwLjAsImZha2VfbGltaXRfcmFuZG9tX0FpciI6NjAuMCwiZmFrZV9saW1pdF9yYW5kb21fQWlyIGR1Y2siOjYwLjAsImZha2VfbGltaXRfcmFuZG9tX0Nyb3VjaGluZyBDVCI6NjAuMCwiZmFrZV9saW1pdF9yYW5kb21fQ3JvdWNoaW5nIFQiOjYwLjAsImZha2VfbGltaXRfcmFuZG9tX0dsb2JhbCI6NjAuMCwiZmFrZV9saW1pdF9yYW5kb21fTGVnaXQgYWEiOjYwLjAsImZha2VfbGltaXRfcmFuZG9tX01vdmluZyI6NjAuMCwiZmFrZV9saW1pdF9yYW5kb21fU2xvd3dhbGsiOjYwLjAsImZha2VfbGltaXRfcmFuZG9tX1N0YW5kaW5nIjo2MC4wLCJmYWtlX2xpbWl0X3JpZ2h0X0FpciI6NjAuMCwiZmFrZV9saW1pdF9yaWdodF9BaXIgZHVjayI6NjAuMCwiZmFrZV9saW1pdF9yaWdodF9Dcm91Y2hpbmcgQ1QiOjYwLjAsImZha2VfbGltaXRfcmlnaHRfQ3JvdWNoaW5nIFQiOjYwLjAsImZha2VfbGltaXRfcmlnaHRfR2xvYmFsIjoxLjAsImZha2VfbGltaXRfcmlnaHRfTGVnaXQgYWEiOjYwLjAsImZha2VfbGltaXRfcmlnaHRfTW92aW5nIjo2MC4wLCJmYWtlX2xpbWl0X3JpZ2h0X1Nsb3d3YWxrIjo2MC4wLCJmYWtlX2xpbWl0X3JpZ2h0X1N0YW5kaW5nIjo2MC4wLCJmYWtlX2xpbWl0X3R5cGVfQWlyIjoiU3RhdGljIiwiZmFrZV9saW1pdF90eXBlX0FpciBkdWNrIjoiU3RhdGljIiwiZmFrZV9saW1pdF90eXBlX0Nyb3VjaGluZyBDVCI6IlN0YXRpYyIsImZha2VfbGltaXRfdHlwZV9Dcm91Y2hpbmcgVCI6IlN0YXRpYyIsImZha2VfbGltaXRfdHlwZV9HbG9iYWwiOiJTdGF0aWMiLCJmYWtlX2xpbWl0X3R5cGVfTGVnaXQgYWEiOiJTdGF0aWMiLCJmYWtlX2xpbWl0X3R5cGVfTW92aW5nIjoiU3RhdGljIiwiZmFrZV9saW1pdF90eXBlX1Nsb3d3YWxrIjoiU3RhdGljIiwiZmFrZV9saW1pdF90eXBlX1N0YW5kaW5nIjoiU3RhdGljIiwiZmFrZV9vcHRpb25zX0FpciI6W10sImZha2Vfb3B0aW9uc19BaXIgZHVjayI6W10sImZha2Vfb3B0aW9uc19Dcm91Y2hpbmcgQ1QiOltdLCJmYWtlX29wdGlvbnNfQ3JvdWNoaW5nIFQiOltdLCJmYWtlX29wdGlvbnNfR2xvYmFsIjpbIkF2b2lkIG92ZXJsYXAiLCJKaXR0ZXIiLCJBbnRpIEJydXRlZm9yY2UiXSwiZmFrZV9vcHRpb25zX0xlZ2l0IGFhIjpbXSwiZmFrZV9vcHRpb25zX01vdmluZyI6W10sImZha2Vfb3B0aW9uc19TbG93d2FsayI6W10sImZha2Vfb3B0aW9uc19TdGFuZGluZyI6W10sImZyZWVzdGFuZGluZ19rZXkiOmZhbHNlLCJmcmVlc3RhbmRpbmdfbW9kZV9BaXIiOiJPZmYiLCJmcmVlc3RhbmRpbmdfbW9kZV9BaXIgZHVjayI6Ik9mZiIsImZyZWVzdGFuZGluZ19tb2RlX0Nyb3VjaGluZyBDVCI6Ik9mZiIsImZyZWVzdGFuZGluZ19tb2RlX0Nyb3VjaGluZyBUIjoiT2ZmIiwiZnJlZXN0YW5kaW5nX21vZGVfR2xvYmFsIjoiT2ZmIiwiZnJlZXN0YW5kaW5nX21vZGVfTGVnaXQgYWEiOiJPZmYiLCJmcmVlc3RhbmRpbmdfbW9kZV9Nb3ZpbmciOiJPZmYiLCJmcmVlc3RhbmRpbmdfbW9kZV9TbG93d2FsayI6Ik9mZiIsImZyZWVzdGFuZGluZ19tb2RlX1N0YW5kaW5nIjoiT2ZmIiwiaGl0Y2hhbmNlX2FpciI6NTAuMCwiaGl0Y2hhbmNlX2Fpcl9lbmFibGUiOmZhbHNlLCJoaXRjaGFuY2VfYWlyX3dlYXBvbnMiOltdLCJoaXRjaGFuY2Vfbm9zY29wZSI6NTAuMCwiaGl0Y2hhbmNlX25vc2NvcGVfZW5hYmxlIjpmYWxzZSwiaGl0Y2hhbmNlX25vc2NvcGVfd2VhcG9ucyI6W10sImhpdG1hcmtlciI6dHJ1ZSwiaGl0bWFya2VyX2RhbWFnZV9jb2xvciI6WzI1NS4wLDI1NS4wLDI1NS4wLDI1NS4wXSwiaGl0bWFya2VyX3BsdXNfY29sb3IiOlsyNTUuMCwyNTUuMCwyNTUuMCwyNTUuMF0sImhpdG1hcmtlcl90eXBlIjpbIisiXSwiaWRlYWx0aWNrIjpmYWxzZSwiaWRlYWx0aWNrX29wdGlvbnMiOltdLCJpbmRpY2F0b3JzX2NvbG9yIjpbMTQyLjAsMTY1LjAsMjI5LjAsMjU1LjBdLCJraWxsc2F5IjpmYWxzZSwibGJ5X21vZGVfQWlyIjoiRGlzYWJsZWQiLCJsYnlfbW9kZV9BaXIgZHVjayI6IkRpc2FibGVkIiwibGJ5X21vZGVfQ3JvdWNoaW5nIENUIjoiRGlzYWJsZWQiLCJsYnlfbW9kZV9Dcm91Y2hpbmcgVCI6IkRpc2FibGVkIiwibGJ5X21vZGVfR2xvYmFsIjoiU3dheSIsImxieV9tb2RlX0xlZ2l0IGFhIjoiRGlzYWJsZWQiLCJsYnlfbW9kZV9Nb3ZpbmciOiJEaXNhYmxlZCIsImxieV9tb2RlX1Nsb3d3YWxrIjoiRGlzYWJsZWQiLCJsYnlfbW9kZV9TdGFuZGluZyI6IkRpc2FibGVkIiwibGVnaXRhYV9hdF90YXJnZXRzIjp0cnVlLCJsZWdpdGFhX2tleSI6ZmFsc2UsImxvZ3MiOnRydWUsIm1hc3NpdmVfZmFrZV9rZXkiOmZhbHNlLCJvbnNob3RfbW9kZV9BaXIiOiJEaXNhYmxlZCIsIm9uc2hvdF9tb2RlX0FpciBkdWNrIjoiRGlzYWJsZWQiLCJvbnNob3RfbW9kZV9Dcm91Y2hpbmcgQ1QiOiJEaXNhYmxlZCIsIm9uc2hvdF9tb2RlX0Nyb3VjaGluZyBUIjoiRGlzYWJsZWQiLCJvbnNob3RfbW9kZV9HbG9iYWwiOiJTd2l0Y2giLCJvbnNob3RfbW9kZV9MZWdpdCBhYSI6IkRpc2FibGVkIiwib25zaG90X21vZGVfTW92aW5nIjoiRGlzYWJsZWQiLCJvbnNob3RfbW9kZV9TbG93d2FsayI6IkRpc2FibGVkIiwib25zaG90X21vZGVfU3RhbmRpbmciOiJEaXNhYmxlZCIsInByZXNldF9lbmFibGVfQWlyIjpmYWxzZSwicHJlc2V0X2VuYWJsZV9BaXIgZHVjayI6ZmFsc2UsInByZXNldF9lbmFibGVfQ3JvdWNoaW5nIENUIjpmYWxzZSwicHJlc2V0X2VuYWJsZV9Dcm91Y2hpbmcgVCI6ZmFsc2UsInByZXNldF9lbmFibGVfR2xvYmFsIjpmYWxzZSwicHJlc2V0X2VuYWJsZV9MZWdpdCBhYSI6ZmFsc2UsInByZXNldF9lbmFibGVfTW92aW5nIjpmYWxzZSwicHJlc2V0X2VuYWJsZV9TbG93d2FsayI6ZmFsc2UsInByZXNldF9lbmFibGVfU3RhbmRpbmciOmZhbHNlLCJyYWluYm93Ijp0cnVlLCJzbG93d2Fsa190eXBlIjoiT2xkIiwic3BlY3RhdG9ycyI6dHJ1ZSwic3RhdGljX3JhZ2RvbGxzIjp0cnVlLCJ0ZWxlcG9ydF9pbmFpciI6ZmFsc2UsInRyYXNoIjpmYWxzZSwidWlfY29sb3IiOlsxNDIuMCwxNjUuMCwyMjkuMCwyNTUuMF0sInVpX2VsZW1lbnRzIjpbIldhdGVybWFyayJdLCJ1aV9zdHlsZSI6IkRlZmF1bHQiLCJ2aWV3bW9kZWxfc2NvcGUiOmZhbHNlLCJ2aXN1YWxfZWxlbWVudHMiOlsiSW5kaWNhdG9ycyIsIlVpIiwiU2tlZXQiLCJPdGhlciJdLCJ3YXJtdXBfYWEiOmZhbHNlLCJ3YXRlcm1hcmtfbmFtZSI6IkNoZWF0Iiwid2F0ZXJtYXJrX25hbWVfcmVmIjoiIiwieWF3X2FkZF9sZWZ0X0FpciI6MC4wLCJ5YXdfYWRkX2xlZnRfQWlyIGR1Y2siOjAuMCwieWF3X2FkZF9sZWZ0X0Nyb3VjaGluZyBDVCI6MC4wLCJ5YXdfYWRkX2xlZnRfQ3JvdWNoaW5nIFQiOjAuMCwieWF3X2FkZF9sZWZ0X0dsb2JhbCI6LTE4LjAsInlhd19hZGRfbGVmdF9MZWdpdCBhYSI6LTE4MC4wLCJ5YXdfYWRkX2xlZnRfTW92aW5nIjowLjAsInlhd19hZGRfbGVmdF9TbG93d2FsayI6MC4wLCJ5YXdfYWRkX2xlZnRfU3RhbmRpbmciOjAuMCwieWF3X2FkZF9yaWdodF9BaXIiOjAuMCwieWF3X2FkZF9yaWdodF9BaXIgZHVjayI6MC4wLCJ5YXdfYWRkX3JpZ2h0X0Nyb3VjaGluZyBDVCI6MC4wLCJ5YXdfYWRkX3JpZ2h0X0Nyb3VjaGluZyBUIjowLjAsInlhd19hZGRfcmlnaHRfR2xvYmFsIjotMjMuMCwieWF3X2FkZF9yaWdodF9MZWdpdCBhYSI6LTE4MC4wLCJ5YXdfYWRkX3JpZ2h0X01vdmluZyI6MC4wLCJ5YXdfYWRkX3JpZ2h0X1Nsb3d3YWxrIjowLjAsInlhd19hZGRfcmlnaHRfU3RhbmRpbmciOjAuMCwieWF3X2FkZF90eXBlX0FpciI6IlN0YXRpYyIsInlhd19hZGRfdHlwZV9BaXIgZHVjayI6IlN0YXRpYyIsInlhd19hZGRfdHlwZV9Dcm91Y2hpbmcgQ1QiOiJTdGF0aWMiLCJ5YXdfYWRkX3R5cGVfQ3JvdWNoaW5nIFQiOiJTdGF0aWMiLCJ5YXdfYWRkX3R5cGVfR2xvYmFsIjoiU3RhdGljIiwieWF3X2FkZF90eXBlX0xlZ2l0IGFhIjoiU3RhdGljIiwieWF3X2FkZF90eXBlX01vdmluZyI6IlN0YXRpYyIsInlhd19hZGRfdHlwZV9TbG93d2FsayI6IlN0YXRpYyIsInlhd19hZGRfdHlwZV9TdGFuZGluZyI6IlN0YXRpYyIsInlhd19tb2RpZmllcl9BaXIiOiJEaXNhYmxlZCIsInlhd19tb2RpZmllcl9BaXIgZHVjayI6IkRpc2FibGVkIiwieWF3X21vZGlmaWVyX0Nyb3VjaGluZyBDVCI6IkRpc2FibGVkIiwieWF3X21vZGlmaWVyX0Nyb3VjaGluZyBUIjoiRGlzYWJsZWQiLCJ5YXdfbW9kaWZpZXJfR2xvYmFsIjoiQ2VudGVyIiwieWF3X21vZGlmaWVyX0xlZ2l0IGFhIjoiRGlzYWJsZWQiLCJ5YXdfbW9kaWZpZXJfTW92aW5nIjoiRGlzYWJsZWQiLCJ5YXdfbW9kaWZpZXJfU2xvd3dhbGsiOiJEaXNhYmxlZCIsInlhd19tb2RpZmllcl9TdGFuZGluZyI6IkRpc2FibGVkIiwieWF3X21vZGlmaWVyX3ZhbHVlX0FpciI6MC4wLCJ5YXdfbW9kaWZpZXJfdmFsdWVfQWlyIGR1Y2siOjAuMCwieWF3X21vZGlmaWVyX3ZhbHVlX0Nyb3VjaGluZyBDVCI6MC4wLCJ5YXdfbW9kaWZpZXJfdmFsdWVfQ3JvdWNoaW5nIFQiOjAuMCwieWF3X21vZGlmaWVyX3ZhbHVlX0dsb2JhbCI6MzAuMCwieWF3X21vZGlmaWVyX3ZhbHVlX0xlZ2l0IGFhIjowLjAsInlhd19tb2RpZmllcl92YWx1ZV9Nb3ZpbmciOjAuMCwieWF3X21vZGlmaWVyX3ZhbHVlX1Nsb3d3YWxrIjowLjAsInlhd19tb2RpZmllcl92YWx1ZV9TdGFuZGluZyI6MC4wfQ==") groups.main.config_system:button(" Load default config ", function() local status, error = pcall(configs.import, default_config) if status then common.add_notify(script_db.lua_name, "Succesfully loaded default config") else common.add_notify(script_db.lua_name, "Error while loading default config (" .. error .. ")") end end) groups.main.config_system:button(" Export config to clipboard ", function() local status, error = pcall(configs.export) if status then common.add_notify(script_db.lua_name, "Succesfully exported settings to clipboard") else common.add_notify(script_db.lua_name, "Error while exporting settings to clipboard (" .. error .. ")") end end) groups.main.config_system:button(" Import config from clipboard ", function() local data = clipboard.get() local status, error = pcall(configs.import, data) if status then common.add_notify(script_db.lua_name, "Succesfully imported settings from clipboard") else common.add_notify(script_db.lua_name, "Error while importing config (" .. error .. ")") end end) groups.main.config_system:button(" Join discord ", function() -- button is clicked copy discord link js.OpenExternalBrowserURL("https://discord.gg/nR7QwtkqEP") end) groups.main.config_system:button(" JAG0 BETA ", function() -- button is clicked copy discord link js.OpenExternalBrowserURL("https://en.neverlose.cc/market/item?id=sc3Shk") end) menu.gears = {} UI.push( { element = groups.aimbot.main:selectable("Aimbot elements", { 'Hitchances', "Other" }), index = 'aimbot_elements', flags = '' } ) UI.push( { element = groups.aimbot.hitchances:switch("Air"), index = 'hitchance_air_enable', flags = '', conditions = { function() return UI.contains('aimbot_elements', 'Hitchances') end } } ) menu.gears.air_hc = UI.get_element('hitchance_air_enable'):create() UI.push( { element = menu.gears.air_hc:slider("Hitchance\nair", 0, 100, 50), index = 'hitchance_air', flags = '', conditions = { function() return UI.contains('aimbot_elements', 'Hitchances') end, function() return UI.get('hitchance_air_enable') end } } ) UI.push( { element = menu.gears.air_hc:selectable("Weapons\nair", { 'Scout', 'Revolver', 'Other' }), index = 'hitchance_air_weapons', flags = '', conditions = { function() return UI.contains('aimbot_elements', 'Hitchances') end, function() return UI.get('hitchance_air_enable') end } } ) UI.push( { element = groups.aimbot.hitchances:switch("No scope"), index = 'hitchance_noscope_enable', flags = '', conditions = { function() return UI.contains('aimbot_elements', 'Hitchances') end } } ) menu.gears.noscope_hc = UI.get_element('hitchance_noscope_enable'):create() UI.push( { element = menu.gears.noscope_hc:slider("Hitchance\nnoscope", 0, 100, 50), index = 'hitchance_noscope', flags = '', conditions = { function() return UI.contains('aimbot_elements', 'Hitchances') end, function() return UI.get('hitchance_noscope_enable') end } } ) UI.push( { element = menu.gears.noscope_hc:selectable("Weapons\nnoscope", { 'Auto', 'Scout', 'Other' }), index = 'hitchance_noscope_weapons', flags = '', conditions = { function() return UI.contains('aimbot_elements', 'Hitchances') end, function() return UI.get('hitchance_noscope_enable') end } } ) UI.push( { element = groups.aimbot.other:selectable("Doubletap options", { "Faster doubletap", "Adaptive recharge", "Predict dt damage" }), index = 'doubletap_options', flags = '', conditions = { function() return UI.contains('aimbot_elements', "Other") end } } ) UI.push( { element = groups.aimbot.other:switch("Ideal tick"), index = 'idealtick', flags = '', conditions = { } } ) UI.get_element('idealtick'):set_tooltip("it Enables your doubletap, autopeek, freestand, safepoint head and instant recharge using one bind") UI.push( { element = groups.aimbot.other:selectable("Ideal tick options", { "freestand", "doubletap", "safepoint head", "instant recharge" }), index = 'idealtick_options', flags = '', conditions = { } } ) UI.push( { element = groups.anti_aim.main:switch("Enable antiaim settings"), index = 'antiaim_settings', flags = '', conditions = { } } ) UI.get_element('antiaim_settings'):set_tooltip("Enables aimbot settings") UI.push( { element = groups.anti_aim.main:combo("Body yaw type", { "Smart", "Jitter", "Avoidance", "Custom" }), index = 'antiaim_presets', flags = '', conditions = { function() return UI.get('antiaim_settings') end } } ) -- UI.push( { element = groups.anti_aim.main:combo("Yaw base", { "Forward", "Backward", "Right", "Left", "At target", "Freestanding" }), index = 'yaw_base', flags = '', conditions = { -- function() return UI.get('antiaim_settings') end -- } } ) UI.push( { element = groups.anti_aim.main:combo("Active condition", global_vars.plr_conditions), index = 'condition_selector', flags = '-', conditions = { function() return UI.get('antiaim_settings') end, function() return UI.get('antiaim_presets') == "Custom" end } } ) UI.push( { element = groups.anti_aim.main:combo("Slow walk type", { "Old", "New", "Hybrid" }), index = 'slowwalk_type', flags = '', conditions = { function() return UI.get('antiaim_settings') end, function() return UI.get('antiaim_presets') == "Smart" end } } ) UI.push( { element = groups.anti_aim.main:switch("Freestanding"), index = 'freestanding_key', flags = '', conditions = { function() return UI.get('antiaim_settings') end } } ) UI.push( { element = groups.anti_aim.main:switch("Disable Freestanding In Air"), index = 'freestanding_air', flags = '', conditions = { function() return UI.get('antiaim_settings') end } } ) UI.push( { element = groups.anti_aim.main:switch("Massive Fake Exploit"), index = 'massive_fake_key', flags = '', conditions = { function() return UI.get('antiaim_settings') end } } ) -- UI.push( { element = groups.anti_aim.main:switch("Antibackstab"), index = 'antibackstab', flags = '', conditions = { -- function() return UI.get('antiaim_settings') end -- } } ) UI.push( { element = groups.anti_aim.main:switch("Teleport in air"), index = 'teleport_inair', flags = '', conditions = { function() return UI.get('antiaim_settings') end } } ) -- UI.push( { element = groups.anti_aim.main:switch("Break extrapolation"), index = 'break_extrapolation', flags = '', conditions = { -- function() return UI.get('antiaim_settings') end -- } } ) -- UI.get_element('break_extrapolation'):set_tooltip("Attempts to break enemies extrapolation/dt prediction") UI.push( { element = groups.anti_aim.main:switch("Experimental anti bruteforce"), index = 'experimental_antibruteforce', flags = '', conditions = { function() return UI.get('antiaim_settings') end } } ) UI.push( { element = groups.anti_aim.main:switch("Warmup anti-aim"), index = 'warmup_aa', flags = '', conditions = { function() return UI.get('antiaim_settings') end } } ) UI.push( { element = groups.anti_aim.main:switch("Legit desync (bind)"), index = 'legitaa_key', flags = '', conditions = { function() return UI.get('antiaim_settings') end } } ) UI.push( { element = groups.anti_aim.main:switch("Legit desync at-targets"), index = 'legitaa_at_targets', flags = '', conditions = { function() return UI.get('antiaim_settings') end } } ) --UI.push( { element = groups.anti_aim.main:combo("Manual Side", { "None", "Left", "Right" }), index = 'manual_side', flags = '', conditions = { -- function() return UI.get('antiaim_settings') end --} } ) for i = 1, #global_vars.plr_conditions do local condition = global_vars.plr_conditions[i] local base_argument = function() return ( UI.get('antiaim_presets') == "Custom" and condition == UI.get('condition_selector') ) and UI.get('antiaim_settings') end UI.push( { element = groups.anti_aim.builder:switch("Enable condition"), index = 'preset_enable_' .. condition, flags = '', conditions = { base_argument, function() return i ~= 1 end } } ) base_argument = function() return ( UI.get('antiaim_presets') == "Custom" and condition == UI.get('condition_selector') ) and UI.get('antiaim_settings') and (i == 1 and true or UI.get('preset_enable_' .. condition)) end UI.push( { element = groups.anti_aim.builder:combo("Yaw Add Type", { "Static", "Jitter", "Random" }), index = 'yaw_add_type_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:slider("Yaw Add Left", -180, 180, 0), index = 'yaw_add_left_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:slider("Yaw Add Right", -180, 180, 0), index = 'yaw_add_right_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:combo("Yaw Modifier", { "Disabled", "Center", "Offset", "Random", "Spin" }), index = 'yaw_modifier_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:slider("Modifier Degree", -180, 180, 0), index = 'yaw_modifier_value_' .. condition, flags = '', conditions = { base_argument, function() return UI.get('yaw_modifier_' .. condition) ~= 'Disabled' end } } ) UI.push( { element = groups.anti_aim.builder:combo("Fake Limit Type", { "Static", "Jitter", "Random" }), index = 'fake_limit_type_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:slider("Fake Limit Left", 0, 60, 60), index = 'fake_limit_left_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:slider("Fake Limit Right", 0, 60, 60), index = 'fake_limit_right_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:slider("Jitter Value", 0, 60, 60), index = 'fake_limit_jitter_' .. condition, flags = '', conditions = { base_argument, function() return UI.get('fake_limit_type_' .. condition) == 'Jitter' end } } ) UI.push( { element = groups.anti_aim.builder:slider("Random Min Value", 0, 60, 60), index = 'fake_limit_random_' .. condition, flags = '', conditions = { base_argument, function() return UI.get('fake_limit_type_' .. condition) == "Random" end } } ) UI.push( { element = groups.anti_aim.builder:selectable("Fake Options", { "Avoid overlap", "Jitter", "Randomize Jitter", "Anti Bruteforce" }), index = 'fake_options_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:combo("LBY Mode", { "Disabled", "Opposite", "Sway" }), index = 'lby_mode_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:combo("Freestanding Desync", { "Off", "Peek Fake", "Peek Real" }), index = 'freestanding_mode_' .. condition, flags = '', conditions = { base_argument } } ) UI.push( { element = groups.anti_aim.builder:combo("Desync On Shot", { "Disabled", "Opposite", "Freestanding", "Switch" }), index = 'onshot_mode_' .. condition, flags = '', conditions = { base_argument } } ) end do UI.get_element('yaw_add_right_Legit aa'):set(-180) UI.get_element('yaw_add_left_Legit aa'):set(-180) end local guwwno = render.load_image(network.get('https://i.imgur.com/H0nvv79.gif'), vector(150, 50)) groups.main.image:texture(guwwno, vector(255, 248)) groups.main.nothing:label("") UI.push( { element = groups.visuals.main:selectable("Visual elements", { "Indicators", 'Ui', 'Custom scope', 'Skeet', 'Other' }), index = 'visual_elements', flags = '' } ) UI.push( { element = groups.visuals.crosshair:combo("Indicators", { 'Disabled', "Idealyaw (soon)", "Jagoyaw v3 (soon)", "Jagoyaw v2", "Axis", "Prediction v2 (soon)", "Acatel","bluhgang", "Jagoyaw v4 (soon)", "Drainyaw (soon)"}), index = 'crosshair_style', flags = '', conditions = { function() return UI.contains('visual_elements', "Indicators") end } } ) UI.push( { element = groups.visuals.crosshair:color_picker("Indicators color", color(142, 165, 229,255)), index = 'indicators_color', flags = 'c', conditions = { function() return UI.contains('visual_elements', 'Indicators') end } } ) UI.push( { element = groups.visuals.crosshair:combo("Arrows", { "Disabled", "Team skeet", "Jagoyaw"}), index = 'arrows_style', flags = '', conditions = { function() return UI.contains('visual_elements', "Indicators") end } } ) UI.push( { element = groups.visuals.crosshair:color_picker("Arrows color", color(142, 165, 229,255)), index = 'arrows_color', flags = 'c', conditions = { function() return UI.contains('visual_elements', 'Indicators') end } } ) UI.push( { element = groups.visuals.ui:selectable("Ui elements", { 'Watermark', 'Keybinds', 'Spectators' }), index = 'ui_elements', flags = '', conditions = { function() return UI.contains('visual_elements', 'Ui') end } } ) UI.push( { element = groups.visuals.ui:combo("Ui style", { "Default", "Glow (soon)" }), index = 'ui_style', flags = '', conditions = { function() return UI.contains('visual_elements', 'Ui') end } } ) UI.push( { element = groups.visuals.ui:combo("Watermark name", { "Cheat", "Custom" }), index = 'watermark_name', flags = '', conditions = { function() return UI.contains('visual_elements', 'Ui') end, function() return UI.contains('ui_elements', 'Watermark') end } } ) UI.push( { element = groups.visuals.ui:input('name'), index = 'watermark_name_ref', flags = '', conditions = { function() return UI.contains('visual_elements', 'Ui') end, function() return UI.contains('ui_elements', 'Watermark') end, function() return UI.get('watermark_name') == 'Custom' end } } ) UI.push( { element = groups.visuals.ui:combo("Avatars side", { 'Left', 'Right' }), index = 'avatar_side', flags = '', conditions = { function() return UI.contains('visual_elements', 'Ui') end, function() return UI.contains('ui_elements', 'Spectators') end } } ) UI.push( { element = groups.visuals.ui:color_picker("Ui color", color(142, 165, 229,255)), index = 'ui_color', flags = 'c', conditions = { function() return UI.contains('visual_elements', 'Ui') end } } ) UI.push( { element = groups.visuals.custom_scope:slider("Scope line length", 0, 500, 10), index = 'custom_scope_lenght', flags = '', conditions = { function() return UI.contains('visual_elements', 'Custom scope') end } } ) UI.push( { element = groups.visuals.custom_scope:slider("Scope line offset", 0, 500, 70), index = 'custom_scope_offset', flags = '', conditions = { function() return UI.contains('visual_elements', 'Custom scope') end } } ) UI.push( { element = groups.visuals.custom_scope:color_picker("Color", color(142, 165, 229,255)), index = 'custom_scope_color', flags = 'c', conditions = { function() return UI.contains('visual_elements', 'Custom scope') end } } ) UI.push( { element = groups.visuals.custom_scope:switch("Scope inaccuracy"), index = 'custom_scope_inaccuracy', flags = '', conditions = { function() return UI.contains('visual_elements', 'Custom scope') end } } ) UI.push( { element = groups.visuals.custom_scope:switch("Viewmodel in scope"), index = 'viewmodel_scope', flags = '', conditions = { function() return UI.contains('visual_elements', 'Custom scope') end } } ) UI.push( { element = groups.visuals.other:switch("Static ragdolls"), index = 'static_ragdolls', flags = '', conditions = { function() return UI.contains('visual_elements', 'Other') end } } ) UI.get_element('static_ragdolls'):set_tooltip("Makes it, so ragdolls stay static after players die") UI.push( { element = groups.visuals.other:switch("Hit markers"), index = 'hitmarker', flags = '', conditions = { function() return UI.contains('visual_elements', 'Other') end } } ) UI.push( { element = groups.visuals.other:selectable("Hitmarkers type", { "+", "damage" }), index = 'hitmarker_type', flags = '', conditions = { function() return UI.contains('visual_elements', 'Other') end, function() return UI.get('hitmarker') end } } ) UI.push( { element = groups.visuals.other:color_picker("Hitmarker color", color(255, 255, 255, 255) ), index = 'hitmarker_plus_color', flags = 'c', conditions = { function() return UI.contains('visual_elements', 'Other') end, function() return UI.get('hitmarker') end } } ) UI.push( { element = groups.visuals.other:color_picker("Damage hitmarker color", color(255, 255, 255, 255) ), index = 'hitmarker_damage_color', flags = 'c', conditions = { function() return UI.contains('visual_elements', 'Other') end } } ) UI.push( { element = groups.visuals.logs:switch("Event logs"), index = 'logs', flags = '', conditions = { function() return UI.contains('visual_elements', 'Skeet') end } } ) UI.push( { element = groups.visuals.logs:switch("Rainbow Bar"), index = 'rainbow', flags = '', conditions = { function() return UI.contains('visual_elements', 'Skeet') end } } ) UI.push( { element = groups.visuals.logs:switch("Trash Talk"), index = 'trash', flags = '', conditions = { function() return UI.contains('visual_elements', 'Skeet') end } } ) UI.push( { element = groups.visuals.logs:switch("Spectators"), index = 'spectators', flags = '', conditions = { function() return UI.contains('visual_elements', 'Skeet') end } } ) UI.push( { element = groups.visuals.logs:switch("Debug Info"), index = 'debug_info', flags = '', conditions = { function() return UI.contains('visual_elements', 'Skeet') end } } ) UI.push( { element = groups.visuals.logs:switch("Left Hand Knife"), index = 'left_hand', flags = '', conditions = { function() return UI.contains('visual_elements', 'Skeet') end } } ) -- UI.push( { element = groups.visuals.logs:selectable("Animation Breaker",{ 'Ground', 'Air', 'Zero Pitch on Land' }), index = 'anim_break', flags = '', conditions = { -- function() return UI.contains('visual_elements', 'Skeet') end -- } } ) UI.push( { element = groups.visuals.main:switch("Clantag"), index = 'clantag', flags = '', conditions = { } } ) UI.get_element('clantag'):set_tooltip("synced clantag used to represent the strongest lua script on neverlose forums!") UI.push( { element = groups.visuals.main:switch("Kill say"), index = 'killsay', flags = '', conditions = { } } ) helpers.dragging_fn = function(name, base_x, base_y) return (function() local a = {} local b, c, f, g, h, i, k, l, m, n, o local d, j = {}, {} local p = {__index = {drag = function(self, ...) local q, r = self:get() local s, t = a.drag(q, r, ...) if q ~= s or r ~= t then self:set(s, t) end return s, t end, set = function(self, q, r) local j = render.screen_size() self.x_reference:set(q / j.x * self.res) self.y_reference:set(r / j.y * self.res) end, get = function(self) local j = render.screen_size() return self.x_reference:get() / self.res * j.x, self.y_reference:get() / self.res * j.y end}} function a.new(u, v, w, x) x = x or 10000 local j = render.screen_size() local y = groups.main.info:slider(u .. ' window position', 0, x, v / j.x * x) local z = groups.main.info:slider(u .. ' window position y', 0, x, w / j.y * x) y:set_visible(false) z:set_visible(false) return setmetatable({name = u, x_reference = y, y_reference = z, res = x}, p) end function a.drag(q, r, A, B, C, D, E) if globals.framecount ~= b then c = ui.get_alpha() > 0 f, g = d.x, d.y d = ui.get_mouse_position() i = h h = common.is_button_down(0x1) == true m = l l = {} o = n n = false j = render.screen_size() end if c and i ~= nil then if (not i or o) and h and f > q and g > r and f < q + A and g < r + B then n = true q, r = q + d.x - f, r + d.y - g if not D then q = math.max(0, math.min(j.x - A, q)) r = math.max(0, math.min(j.y - B, r)) end end end table.insert(l, {q, r, A, B}) return q, r, A, B end return a end)().new(name, base_x, base_y) end local handle_aa = {} handle_aa.vars = { player_state = 1, player_condition = 'global', second_condition = 'Normal', antiaim_state = { 'global', 'Normal' }, bestenemy = 0, best_value = false, desync_value = 0 } handle_aa.player_state = function() local localplayer = entity.get_local_player() if localplayer == nil then return end local team = localplayer.m_iTeamNum local onground = helpers.on_ground( localplayer ) and not common.is_button_down(0x20) local legit_aa = UI.get('legitaa_key') local velocity = helpers.get_velocity( localplayer ) local crouched = helpers.is_crouching( localplayer ) and onground local flags = localplayer.m_fFlags --263 crouch, 257 on ground, 256 in air local slowwalking = ref.slowwalk:get() and onground and velocity > 2 and not crouched local inair_crouch = helpers.in_air( localplayer ) and not onground and flags == 262 local inair = helpers.in_air( localplayer ) and not onground local fakeducking = ref.fakeduck:get() and onground if inair_crouch then handle_aa.vars.player_state = 7 elseif inair then handle_aa.vars.player_state = 8 end if onground and velocity > 2 and flags ~= 256 and flags ~= 263 and not fakeducking then handle_aa.vars.player_state = 3 end if onground and velocity < 2 and flags ~= 256 and flags ~= 263 and not fakeducking then handle_aa.vars.player_state = 2 end if ( team == 3 and crouched ) or ( team == 3 and fakeducking ) then handle_aa.vars.player_state = 5 end if ( team == 2 and crouched ) or ( team == 2 and fakeducking ) then handle_aa.vars.player_state = 4 end if slowwalking and not fakeducking then handle_aa.vars.player_state = 6 end if legit_aa then handle_aa.vars.player_state = 9 end handle_aa.vars.player_condition = global_vars.plr_conditions[handle_aa.vars.player_state] handle_aa.vars.antiaim_state = { handle_aa.vars.player_condition, handle_aa.vars.second_condition } end handle_aa.get_best_side = function( fsmode ) local localplayer = entity.get_local_player() if not localplayer then return end local eye_pos = localplayer:get_eye_position() local enemies = entity.get_players(true) handle_aa.vars.bestenemy = helpers.get_nearest_enemy(localplayer, enemies) local enemy = handle_aa.vars.bestenemy ~= nil and entity.get(handle_aa.vars.bestenemy) or nil if handle_aa.vars.bestenemy ~= nil and handle_aa.vars.bestenemy ~= 0 and enemy:is_alive() and fsmode ~= nil then local e_x, e_y, e_z = enemy:get_hitbox_position(0).x, enemy:get_hitbox_position(0).y, enemy:get_hitbox_position(0).z local yaw = helpers.calc_angle(eye_pos.x, eye_pos.y, e_x, e_y) local rdir_x, rdir_y, rdir_z = helpers.angle_vector(0, (yaw + 90)) local rend_x = eye_pos.x + rdir_x * 10 local rend_y = eye_pos.y + rdir_y * 10 local ldir_x, ldir_y, ldir_z = helpers.angle_vector(0, (yaw - 90)) local lend_x = eye_pos.x + ldir_x * 10 local lend_y = eye_pos.y + ldir_y * 10 local r2dir_x, r2dir_y, r2dir_z = helpers.angle_vector(0, (yaw + 90)) local r2end_x = eye_pos.x + r2dir_x * 100 local r2end_y = eye_pos.y + r2dir_y * 100 local l2dir_x, l2dir_y, l2dir_z = helpers.angle_vector(0, (yaw - 90)) local l2end_x = eye_pos.x + l2dir_x * 100 local l2end_y = eye_pos.y + l2dir_y * 100 local ldamage = helpers.get_damage(localplayer, enemy, rend_x, rend_y, eye_pos.z) local rdamage = helpers.get_damage(localplayer, enemy, lend_x, lend_y, eye_pos.z) local l2damage = helpers.get_damage(localplayer, enemy, r2end_x, r2end_y, eye_pos.z) local r2damage = helpers.get_damage(localplayer, enemy, l2end_x, l2end_y, eye_pos.z) if ( fsmode == 'Freestanding' ) or ( fsmode == 'Reversed Freestanding' ) then if l2damage > r2damage or ldamage > rdamage or l2damage > ldamage then handle_aa.vars.best_value = fsmode == 'Freestanding' and false or true elseif r2damage > l2damage or rdamage > ldamage or r2damage > rdamage then handle_aa.vars.best_value = fsmode == 'Freestanding' and true or false end end else handle_aa.vars.best_value = true end return handle_aa.vars.best_value end handle_aa.legitaa = {} handle_aa.legitaa.vars = { classnames = { 'CWorld', 'CCSPlayer', 'CFuncBrush' }, on_bombsite = false } handle_aa.legitaa.check_bombsite = function(e, event_name) local localplayer = entity.get_local_player() if not localplayer then return end local user_id = entity.get(e.userid, true) if user_id == localplayer then if event_name == "enter_bombzone" then handle_aa.legitaa.vars.on_bombsite = true end if event_name == "exit_bombzone" then handle_aa.legitaa.vars.on_bombsite = false end end end helpers.entity_has_c4 = function(ent) local bomb = entity.get_entities('CC4')[1] return bomb ~= nil and bomb.m_hOwnerEntity == ent end handle_aa.legitaa.handle = function(e) local plocal = entity.get_local_player() if not plocal then return end local distance = 100 local bomb = entity.get_entities("CPlantedC4")[1] local bomb_pos = bomb ~= nil and bomb.m_vecOrigin or { x = nil } if bomb_pos.x ~= nil then local player_pos = plocal.m_vecOrigin distance = player_pos:dist(bomb_pos) end local team_num = plocal.m_iTeamNum local defusing = team_num == 3 and distance < 70 local on_bombsite = plocal.m_bInBombZone local has_bomb = helpers.entity_has_c4(plocal) == 49 local eye_pos = plocal:get_eye_position() local viewangles = render.camera_angles() local sin_pitch = math.sin(math.rad(viewangles.x)) local cos_pitch = math.cos(math.rad(viewangles.x)) local sin_yaw = math.sin(math.rad(viewangles.y)) local cos_yaw = math.cos(math.rad(viewangles.y)) local dir_vec = { cos_pitch * cos_yaw, cos_pitch * sin_yaw, -sin_pitch } local traced = utils.trace_line(eye_pos, vector(eye_pos.x + (dir_vec[1] * 8192), eye_pos.y + (dir_vec[2] * 8192), eye_pos.z + (dir_vec[3] * 8192)), plocal, 0xFFFFFFFF) local using = true if traced ~= nil then for i=0, #handle_aa.legitaa.vars.classnames do if traced.entity ~= nil and traced.entity:get_classname() == handle_aa.legitaa.vars.classnames[i] then using = false end end end local near_door = false -- if plocal:is_alive() then -- for yaw = 18, 360, 18 do -- yaw = helpers.normalize_yaw(yaw) -- local my_eye_position = plocal:get_eye_position() -- local final_angle = vector(0, yaw, 0) -- local final_point = my_eye_position + Cheat.AngleToForward(final_angle) * 0x60 -- local trace_info = utils.trace_line(my_eye_position, final_point, plocal, 0x200400B) -- local hit_entity = trace_info.entity -- if hit_entity ~= nil then -- if hit_entity:get_classname() == "CPropDoorRotating" then -- near_door = true -- end -- end -- end -- end if ((on_bombsite and not defusing) or (not using and not defusing)) and not near_door then e.in_use = 0 end end handle_aa.set_antiaim = function(e) local localplayer = entity.get_local_player() if not localplayer then return end local onGround = helpers.on_ground(localplayer) local ticks = cvar.sv_maxusrcmdprocessticks; -- local flags = localplayer.m_fFlags -- local inverter_state = rage.antiaim:get_rotation(true) < 0 -- local lp_bodyyaw = localplayer.m_flPoseParameter[11] * 120 - 60 local lp_bodyyaw = localplayer.m_flPoseParameter[11] * 120 - 60 local handle_value_offset = function(left_value, right_value) if e.choked_commands == 0 then handle_aa.vars.desync_value = lp_bodyyaw end return handle_aa.vars.desync_value > 0 and left_value or right_value end local set_values = function(args) local mode = args.mode local table = args.settings if mode == 'hidden' then ref.yaw.offset:override(table[1]) ref.yaw_modifier.mode:override(table[2]) ref.yaw_modifier.offset:override(table[3]) ref.body_yaw.left_limit:override(table[4]) ref.body_yaw.right_limit:override(table[5]) ref.body_yaw.fake_options:override(table[6]) ref.body_yaw.desync_freestand:override(table[7]) ref.body_yaw.inverter:override(table[8]) ref.body_yaw.lby_mode:override(table[9]) else ref.yaw.offset:set(table[1]) ref.yaw_modifier.mode:set(table[2]) ref.yaw_modifier.offset:set(table[3]) ref.body_yaw.left_limit:set(table[4]) ref.body_yaw.right_limit:set(table[5]) ref.body_yaw.fake_options:set(table[6]) ref.body_yaw.desync_freestand:set(table[7]) ref.body_yaw.inverter:set(table[8]) ref.body_yaw.lby_mode:set(table[9]) end end local legitaa_on = handle_aa.vars.antiaim_state[1] == 'Legit aa' if legitaa_on then handle_aa.legitaa.handle(e) end local yaw_value = 'Backward' local yaw_base = 'At Target' local pitch = 'Down' if legitaa_on then if not UI.get('legitaa_at_targets') then yaw_base = 'Local View' end pitch = 'Disabled' end if (UI.get('freestanding_key') or (UI.get('idealtick') and UI.contains('idealtick_options', 0))) and not legitaa_on then if (UI.get("freestanding_air")) then ref.freestanding.switch:set(not helpers.in_air( localplayer )) else ref.freestanding.switch:set(true) end else ref.freestanding.switch:set(false) end ref.yaw.base:set(yaw_base) ref.pitch:set(pitch) ref.yaw.mode:set(yaw_value) if UI.get('massive_fake_key') and not (ref.doubletap.switch:get() or ref.hide_shots.switch:get()) and not legitaa_on then handle_aa.vars.second_condition = 'Massive fake' local side = handle_aa.get_best_side("Freestanding") ref.body_yaw.switch:set(false) ref.fakelag.switch:set(false) e.send_packet = false; ticks:int(17) ref.yaw.offset:override(nil) if e.choked_commands > 1 and e.choked_commands < ticks:int() then ref.yaw.offset:override(side and 90 or -90) end set_values({ settings = { side and -15 or 15, 'Disabled', 0, 59, 59, {}, 'Off', false, 'Disabled' }}) elseif UI.get('warmup_aa') and entity.get_game_rules().m_bWarmupPeriod and not legitaa_on then set_values({ settings = { 0, 'Disabled', 0, 59, 59, {}, 'Off', false, 'Disabled' }}) else handle_aa.vars.second_condition = 'Normal' ticks:int(16) if UI.get('antiaim_presets') == 'Custom' then ref.body_yaw.inverter:set(false) local condition = UI.get('preset_enable_' .. handle_aa.vars.antiaim_state[1]) and global_vars.plr_conditions[handle_aa.vars.player_state] or global_vars.plr_conditions[1] local yaw = handle_value_offset(UI.get('yaw_add_left_' .. condition), UI.get('yaw_add_right_' .. condition)) local fakelimit_right = UI.get('fake_limit_right_' .. condition) local fakelimit_left = UI.get('fake_limit_left_' .. condition) if UI.get('yaw_add_type_' .. condition) == 'Jitter' then yaw = utils.random_int(0, 1) == 1 and UI.get('yaw_add_right_' .. condition) or UI.get('yaw_add_left_' .. condition) elseif UI.get('yaw_add_type_' .. condition) == 'Random' then yaw = utils.random_int(UI.get('yaw_add_right_' .. condition), UI.get('yaw_add_left_' .. condition)) end if UI.get('fake_limit_type_' .. condition) == 'Jitter' then if utils.random_int(0, 1) == 1 then fakelimit_right = UI.get('fake_limit_right_' .. condition) fakelimit_left = UI.get('fake_limit_left_' .. condition) else fakelimit_right = UI.get('fake_limit_jitter_' .. condition) fakelimit_left = UI.get('fake_limit_jitter_' .. condition) end elseif UI.get('fake_limit_type_' .. condition) == 'Random' then fakelimit_right = utils.random_int(UI.get('fake_limit_random_' .. condition), UI.get('fake_limit_right_' .. condition)) fakelimit_left = utils.random_int(UI.get('fake_limit_random_' .. condition), UI.get('fake_limit_left_' .. condition)) end ref.body_yaw.on_shot_desync:set(UI.get('onshot_mode_' .. condition)) set_values({ settings = { yaw, UI.get('yaw_modifier_' .. condition), UI.get('yaw_modifier_value_' .. condition), fakelimit_left, fakelimit_right, UI.get('fake_options_' .. condition), UI.get('freestanding_mode_' .. condition), false, UI.get('lby_mode_' .. condition) }}) else local anti_aim_values = { [ 'Standing' ] = { 0, 'Disabled', 0, 0, 0, {}, 'Off', false, 'Disabled' }, [ 'Moving' ] = { 0, 'Disabled', 0, 0, 0, {}, 'Off', false, 'Disabled' }, [ 'Crouching T' ] = { 0, 'Disabled', 0, 0, 0, {}, 'Off', false, 'Disabled' }, [ 'Crouching CT' ] = { 0, 'Disabled', 0, 0, 0, {}, 'Off', false, 'Disabled' }, [ 'Slowwalk' ] = { 0, 'Disabled', 0, 0, 0, {}, 'Off', false, 'Disabled' }, [ 'Air duck' ] = { 0, 'Disabled', 0, 0, 0, {}, 'Off', false, 'Disabled' }, [ 'Air' ] = { 0, 'Disabled', 0, 0, 0, {}, 'Off', false, 'Disabled' }, [ 'Legit aa' ] = { 0, 'Disabled', 0, 0, 0, {}, 'Off', false, 'Disabled' }, [ 'Global' ] = { 0, 'Disabled', 0, 0, 0, {}, 'Off', false, 'Disabled' } } if not legitaa_on then local exp_antibruteforce = UI.get('experimental_antibruteforce') if UI.get('antiaim_presets') == 'Smart' then local random = utils.random_int(0, 1) if UI.get('slowwalk_type') == 0 then anti_aim_values[ 'Slowwalk' ] = { handle_value_offset(-10, 10), 'Disabled', 0, 18, 18, exp_antibruteforce and { 'Jitter', 'Anti Bruteforce' } or 'Jitter', 'Peek Fake', false, 'Disabled' } elseif UI.get('slowwalk_type') == 1 then local random2 = utils.random_int(3, 33) anti_aim_values[ 'Slowwalk' ] = { handle_value_offset(-10, 10), 'Disabled', 0, random2, random2, exp_antibruteforce and { 'Jitter', 'Anti Bruteforce' } or 'Jitter', 'Peek Fake', false, 'Disabled' } elseif UI.get('slowwalk_type') == 2 then anti_aim_values[ 'Slowwalk' ] = { handle_value_offset(-33, 33), 'Center', 6, 58, 58, 'Randomize Jitter', 'Off', false, 'Disabled' } end anti_aim_values[ 'Standing' ] = { handle_value_offset(-7, 7), 'Disabled', 0, random == 1 and 48 or 18, random == 1 and 48 or 18, { 'Jitter', 'Anti Bruteforce' }, 'Peek Fake', false, 'Disabled' } anti_aim_values[ 'Moving' ] = { handle_value_offset(-7, 7), 'Disabled', 0, random == 1 and 48 or 18, random == 1 and 48 or 18, { 'Jitter', 'Anti Bruteforce' }, 'Peek Fake', false, 'Disabled' } anti_aim_values[ 'Crouching T' ] = { 0, 'Disabled', 0, 59, 59, exp_antibruteforce and { 'Jitter', 'Anti Bruteforce' } or 'Jitter', 'Off', true, 'Disabled' } anti_aim_values[ 'Crouching CT' ] = { 0, 'Disabled', 0, 59, 59, exp_antibruteforce and { 'Jitter', 'Anti Bruteforce' } or 'Jitter', 'Off', true, 'Disabled' } anti_aim_values[ 'Air duck' ] = { handle_value_offset(-12, 7), 'Disabled', 0, random == 1 and 60 or 18, random == 1 and 60 or 18, 'Anti Bruteforce', 'Off', false, 'Disabled' } anti_aim_values[ 'Air' ] = { handle_value_offset(-12, 7), 'Disabled', 0, random == 1 and 60 or 18, random == 1 and 60 or 18, 'Anti Bruteforce', 'Off', false, 'Disabled' } elseif UI.get('antiaim_presets') == 'Jitter' then -- moving JITTERNOWYw anti_aim_values[ 'Standing' ] = { 0, 'Center', math.random(-68, -78), 59, 59, 'Jitter', 'Off', false, 'Disabled' } anti_aim_values[ 'Moving' ] = { 0, 'Center', math.random(-68, -78), 59, 59, 'Jitter', 'Off', false, 'Disabled' } anti_aim_values[ 'Crouching T' ] = { 0, 'Center', math.random(-68, -78), 59, 59, 'Jitter', 'Off', false, 'Disabled' } anti_aim_values[ 'Crouching CT' ] = { 0, 'Center', math.random(-68, -78), 59, 59, 'Jitter', 'Off', false, 'Disabled' } anti_aim_values[ 'Slowwalk' ] = { 0, 'Center', math.random(-68, -78), 59, 59, 'Jitter', 'Off', false, 'Disabled' } anti_aim_values[ 'Air duck' ] = { 0, 'Center', math.random(-68, -78), 59, 59, 'Jitter', 'Off', false, 'Disabled' } anti_aim_values[ 'Air' ] = { 0, 'Center', math.random(-68, -78), 59, 59, 'Jitter', 'Off', false, 'Disabled' } elseif UI.get('antiaim_presets') == 'Avoidance' then -- jitter anti_aim_values[ 'Standing' ] = { handle_value_offset(-6, 7), 'Center', -88, 60, 60, 'Jitter', desync_freestand, false, 'Disabled' } anti_aim_values[ 'Moving' ] = { handle_value_offset(-6, 7), 'Center', -88, 60, 60, 'Jitter', desync_freestand, false, 'Opposite' } anti_aim_values[ 'Crouching T' ] = { handle_value_offset(-20, 20), 'Center', -38, 59, 59, 'Jitter', desync_freestand, false, 'Opposite' } anti_aim_values[ 'Crouching CT' ] = { handle_value_offset(-20, 20), 'Center', -30, 59, 59, 'Jitter', desync_freestand, false, 'Opposite' } anti_aim_values[ 'Slowwalk' ] = { handle_value_offset(-33, 33), 'Center', -8, 59, 59, 'Jitter', desync_freestand, false, 'Opposite' } anti_aim_values[ 'Air duck' ] = { handle_value_offset(-6, 7), 'Center', -88, 60, 60, 'Jitter', desync_freestand, false, 'Opposite' } anti_aim_values[ 'Air' ] = { handle_value_offset(-6, 7), 'Center', -88, 60, 60, 'Jitter', desync_freestand, false, 'Opposite' } end else anti_aim_values[ 'Legit aa' ] = { -180, 'Disabled', 0, 60, 60, "Off", 'Peek Fake', false, 'Opposite' } end set_values( { settings = anti_aim_values[handle_aa.vars.antiaim_state[1]], mode = 'hidden' } ) end end if handle_aa.vars.antiaim_state[2] ~= 'Massive fake' then ref.body_yaw.switch:set(true) if UI.get('idealtick') then ref.fakelag.switch:set(false) else ref.fakelag.switch:set(true) end end end local visuals = {} visuals.indicators = {} visuals.indicators.vars = { dt_color = 0, dt_color2 = 0, scope_adder = 0, values = helpers.gram_create(0, 15), -- other = { -- Colors = { -- Transperent = color(255, 255, 255, 0.25*255), -- Black = color(0.05*255, 0.05*255, 0.05*255, 0.5*255), -- White = color(255, 255, 255, 255), -- Orange = color(255, 0.53*255, 0.26*255, 255) -- }, -- Stuff = { -- Indicators = { -- Animations = {DT = {Value = 0.0}}, -- State = { -- {Preset = "/STANDING/", Colored = false}, -- {Preset = "/RUNNING/", Colored = false}, -- {Preset = "/CROUCH/", Colored = false}, -- {Preset = "/CROUCH/", Colored = false}, -- {Preset = "+TANKAA+", Colored = true}, -- {Preset = "/AEROBIC/", Colored = false}, -- {Preset = "/AEROBIC/", Colored = false}, -- {Preset = "/E-PEEK/", Colored = false}, -- {Preset = "/DORMANT/", Colored = false}, -- } -- } -- }, -- AntiBruteforce = {Players = {}, Time = nil}, -- CanFire = function() -- local GetCurtime = function(a8) -- return globals.curtime - a8 * globals.tickinterval -- end -- local a9 = entity.get_local_player() -- local aa = a9:GetActiveWeapon() -- if not a9 or not aa then -- return false -- end -- if GetCurtime(-16) < a9:GetProp("m_flNextAttack") then -- return false -- end -- if GetCurtime(0) < aa:GetProp("m_flNextPrimaryAttack") then -- return false -- end -- return true -- end, -- Helpers = {ColorCopy = function(self, Color) -- return color(Color.r, Color.g, Color.b, Color.a) -- end, CalcMultiTextSize = function(self, ae, ...) -- local ao = vector(0.0, 0.0) -- local q = {...} -- local ap = {} -- if q[1] then -- table.insert(ap, q[1]) -- end -- if q[2] then -- table.insert(ap, q[2]) -- end -- for ac, aq in pairs(ae) do -- local ar = render.measure_text(aq.Text, unpack(ap)) -- render.measure_text(aq.Text, unpack(ap)) -- ao.x = ao.x + ar.x -- if ar.y > ao.y then -- ao.y = ar.y -- end -- end -- return ao -- end, MultiText = function(self, ae, ao, ...) -- local q = {...} -- local ap = {} -- if q[1] then -- table.insert(ap, q[1]) -- end -- if q[2] and type(q[2]) ~= "boolean" then -- table.insert(ap, q[2]) -- end -- for ac, aq in pairs(ae) do -- render.text(aq.Text, ao, aq.Color, ...) -- ao.x = ao.x + render.measure_text(aq.Text, unpack(ap)).x -- end -- end -- }, -- v = {normalize_yaw = function(self, w) -- while w > 180.0 do -- w = w - 360.0 -- end -- while w < -180.0 do -- w = w + 360.0 -- end -- return w -- end, linear_interpolation = function(self, x, y, z) -- return x + (y - x) * z -- end, closest_point = function(self, A, B, C) -- local D = A - B -- local E = C - B -- local F = #E -- E = E / F -- local G = E:Dot(D) -- if G < 0.0 then -- return B -- end -- if G > F then -- return C -- end -- return B + E * Vector.new(G, G, G) -- end, breathe = function(self, H) -- H = H or 2.0 -- local I = GlobalVars.realtime * H -- local J = I % (math.pi * 2.0) -- J = math.abs(-math.pi + J) -- return math.sin(J) -- end} -- } } local fonts = { font = { font = render.load_font("Verdana Bold", 11), size = 11 }, font1 = { font = render.load_font("Verdana Bold", 10), size = 10 }, font2 = { font = render.load_font("Arial", 11), size = 11 }, font5 = { font = render.load_font("Arial Bold", 11), size = 11 }, font55 = { font = render.load_font("Arial Bold", 26), size = 26 }, font7 = { font = render.load_font("Arial", 13,"a"), size = 13 }, fontpred = { font = render.load_font("Arial Bold", 12), size = 12 }, fontideal = { font = render.load_font("Verdana", 12), size = 12 }, verdana_skt = { font = render.load_font("Verdana", 13), size = 13 }, verdana_bolde = { font = render.load_font("Verdana", 11, 'b'), size = 11 }, blockfont = { font = render.load_font("nl\\jagoyaw\\fonts\\small_fonts.ttf", 10), size = 10 }, verdanar11 = { font = render.load_font('Verdana', 11, 'a'), size = 11 }, fontxd = { font = render.load_font("Verdana Bold", 23), size = 23 }, fontxd2 = { font = render.load_font("Verdana", 12), size = 12 }, fontdx = { font = render.load_font("nl\\jagoyaw\\fonts\\pixel.ttf", 10,"o")}, fontarrow = { font = render.load_font("nl\\jagoyaw\\fonts\\ActaSymbolsW95Arrows.ttf", 21, 'a'), size = 21 }, console = { font = render.load_font("nl\\jagoyaw\\fonts\\lucida_console.ttf", 10, 'd'), size = 10 } } visuals.indicators.draw = function() local w = 25; local bgGap = 4; local screen_size = render.screen_size() local x = screen_size.x / 2; local y = screen_size.y / 2; local ping_spike = ui.find("Miscellaneous", "Main", "Other", "Fake Latency") local is_key_pressed = common.is_button_down(0x20) local player = entity.get_local_player() if not player then return end local scoped = player.m_bIsScoped; local alpha = math.sin(math.abs(-math.pi + (globals.curtime * (1 / 0.7)) % (math.pi * 2))) * 255 local flags = player.m_fFlags local localplayer = entity.get_local_player() local onGround = helpers.on_ground(localplayer) local add_y = 0; local numer = 0 local is_dt = ref.doubletap.switch:get() local is_hs = ref.hide_shots.switch:get() local is_baim = ref.body_aim.mode:get() local is_safe = ref.safe_point:get() local delta = localplayer.m_flPoseParameter[11] * 120 - 60 local chrg = rage.exploit:get() local inverter_state = (localplayer.m_flPoseParameter[11] * 120 - 60) > 0 local desync_delta = localplayer.m_flPoseParameter[11] * 120 - 60 local idealyaw_color = ""; local idealyaw_text = ""; if desync_delta > 55 then idealyaw_color = color(155, 11, 32, 255); else idealyaw_color = color(220, 135, 49, 255); end local textSize = render.measure_text(fonts.font7.font,nil,"JAG0 YAW"); local textSize1 = render.measure_text(fonts.font7.font,nil,"JAG0 YAW"); -- render.measure_text(1, "JAG0 YAW") local lp_alive = player:is_alive() if not lp_alive then return end --#endregion if UI.get('crosshair_style') == 1 then --local textSize = render.measure_text("REVOLUTION", 12); -- = render.text(fonts.fontdx.font, vector(x + 3 + baimcalc.x + 2 + safecalc.x + 2, y + 41 + numer), color(1, 1, 1, 100 / 255), "fs") -- local a = render.measure_text(">", fonts.font5.size, fonts.font5.font) -- local b = render.measure_text("<", fonts.font5.size, fonts.font5.font) -- if ref.base:GetInt() == 2 then -- render.text(">", vector(x + 40, y - a.y/2), color(220 / 255, 135 / 255, 49 / 255, 255), fonts.font55.size, fonts.font55.font) -- render.text("<", vector(x - 54, y - a.y/2), Color.RGBA(255,255,255,255), fonts.font55.size, fonts.font55.font) -- elseif ref.base:GetInt() == 3 then -- render.text(">", vector(x + 40, y - a.y/2), Color.RGBA(255,255,255,255), fonts.font55.size, fonts.font55.font) -- render.text("<", vector(x - 54, y - a.y/2),color(220 / 255, 135 / 255, 49 / 255, 255), fonts.font55.size, fonts.font55.font) -- end -- if ref.base:GetInt() == 4 then -- render.text("IDEAL YAW", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("IDEAL YAW", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + bgGap), color(220 / 255, 135 / 255, 49 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- elseif ref.base:GetInt() == 5 then -- render.text("IDEAL YAW", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("IDEAL YAW", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + bgGap), color(220 / 255, 135 / 255, 49 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- end -- if ref.base:GetInt() == 1 then -- render.text("FAKEYAW", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("FAKEYAW", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + bgGap), color(207 / 255, 177 / 255, 255 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- elseif ref.base:GetInt() == 2 then -- render.text("FAKEYAW", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("FAKEYAW", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + bgGap), color(207 / 255, 177 / 255, 255 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- elseif ref.base:GetInt() == 3 then -- render.text("FAKEYAW", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("FAKEYAW", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + bgGap), color(207 / 255, 177 / 255, 255 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- end -- if ref.base:GetInt() == 5 then -- render.text("FREESTAND", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + add_y + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("FREESTAND", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + add_y + bgGap), color(209 / 255, 139 / 255, 230 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- else -- render.text("DYNAMIC", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + add_y + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("DYNAMIC", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + add_y + bgGap), color(209 / 255, 139 / 255, 230 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- end -- if ref.doubletap:GetBool() then -- if chrg < 1 then -- render.text("DT", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + add_y + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("DT", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + add_y + bgGap), color(200 / 255, 15 / 255, 15 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- else -- render.text("DT", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + add_y + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("DT", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + add_y + bgGap), color(15 / 255, 255 / 255, 15 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- end -- end -- if ref.onshotaa:GetBool() then -- render.text("AA", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + add_y + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("AA", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + add_y + bgGap), color(209 / 255, 139 / 255, 230 / 255, 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- end -- if inverter_state then -- render.text("B", vector((x + 25 + (w / 2)) - (textSize.x / 2), y + 28 + add_y + bgGap), color(0,0,0,1), fonts.fontideal.size, fonts.fontideal.font, false); -- render.text("B", vector((x + 24 + (w / 2)) - (textSize.x / 2), y + 27 + add_y + bgGap), color(15 / 255, 115 / 255, 15 / 255, 135 / 255), fonts.fontideal.size, fonts.fontideal.font, false); -- add_y = add_y + 10; -- end -- elseif UI.get('crosshair_style') == 2 then -- render.text("JAG0YAW", vector(x - 1, y + 23 + bgGap), color(177 / 255, 171 / 255, 255 / 255, 255), fonts.font1.size, fonts.font1.font, true, true); -- add_y = add_y + 9; -- if ref.base:GetInt() == 5 then -- render.text("FREESTAND", vector(x, y + 23 + add_y + bgGap), color(209 / 255, 139 / 255, 230 / 255, 255), fonts.font1.size, fonts.font1.font, true, true); -- add_y = add_y + 9; -- else -- render.text("DYNAMIC", vector(x, y + 23 + add_y + bgGap), color(209 / 255, 139 / 255, 230 / 255, 255), fonts.font1.size, fonts.font1.font, true, true); -- add_y = add_y + 9; -- end -- if ref.onshotaa:GetBool() then -- render.text("ONSHOT", vector(x, y + 23 + add_y + bgGap), color(132 / 255, 255 / 255, 16 / 255, 255), fonts.font1.size, fonts.font1.font, true, true); -- add_y = add_y + 9; -- end -- if ref.fakeduck:GetBool() then -- render.text("DUCK", vector(x, y + 23 + add_y + bgGap), color(255 / 255, 255 / 255, 255 / 255, 255), fonts.font1.size, fonts.font1.font, true, true); -- add_y = add_y + 9; -- end -- if is_dt then -- if chrg < 1 then -- render.text("DT", vector(x, y + 23 + add_y + bgGap), color(200 / 255, 15 / 255, 15 / 255, 255), fonts.font1.size, fonts.font1.font, true, true); -- add_y = add_y + 9; -- else -- render.text("DT", vector(x, y + 23 + add_y + bgGap), color(132 / 255, 255 / 255, 16 / 255, 255), fonts.font1.size, fonts.font1.font, true, true); -- add_y = add_y + 9; -- end -- end if UI.get('crosshair_style') == "Jagoyaw v2" then -- render.text(fonts.fontdx.font, vector(x + 3 + baimcalc.x + 2 + safecalc.x + 2, y + 41 + numer), color(1, 1, 1, 100 / 255), "fs") local color_ref = UI.get('indicators_color') render.text(fonts.font7.font, vector((x + 12 + (w / 2)) - (textSize1.x / 2) + 1, y + 20 + bgGap + 1), color(0, 0, 0, 255), nil, tostring(math.abs(math.floor(desync_delta)) .. "°")) render.text(fonts.font7.font, vector((x + 12 + (w / 2)) - (textSize1.x / 2), y + 20 + bgGap), color(color_ref.r, color_ref.g, color_ref.b, 255), nil, tostring(math.abs(math.floor(desync_delta)) .. "°")) render.gradient(vector(screen_size.x / 2, screen_size.y / 2 + 39), vector(screen_size.x / 2 + (math.abs(desync_delta * 110 / 100)), screen_size.y / 2 + 40), color_ref,color(color_ref.r, color_ref.g, color_ref.b, 0), color_ref, color(color_ref.r, color_ref.g, color_ref.b, 0)) render.gradient(vector(screen_size.x / 2, screen_size.y / 2 + 39), vector(screen_size.x / 2 + (-math.abs(desync_delta * 110 / 100)), screen_size.y / 2 + 40), color_ref, color(color_ref.r, color_ref.g, color_ref.b, 0), color_ref, color(color_ref.r, color_ref.g, color_ref.b, 0)) local calcv1 = render.measure_text(fonts.font7.font,nil,"JAG0WALK") local calcv2 = render.measure_text(fonts.font7.font,nil,"LEGIT AA") local calcv3 = render.measure_text(fonts.font7.font,nil,"AUTO-DIR") local calcv4 = render.measure_text(fonts.font7.font,nil,"JAG0YAW") local calcv5 = render.measure_text(fonts.font7.font,nil,"DMG") if ref.slowwalk:get() then render.text(fonts.font7.font, vector(x + 1 - calcv1.x/2, y + 39 + bgGap + 1), color(0, 0, 0, 255),nil,"JAG0WALK"); render.text(fonts.font7.font, vector(x - calcv1.x/2, y + 39 + bgGap), color(color_ref.r, color_ref.g, color_ref.b, 255),nil,"JAG0WALK"); elseif handle_aa.vars.antiaim_state[1] == 'Legit aa' then render.text(fonts.font7.font, vector(x + 1 - calcv2.x/2, y + 39 + bgGap + 1), color(0, 0, 0, 255),nil,"LEGIT AA"); render.text(fonts.font7.font, vector(x - calcv2.x/2, y + 39 + bgGap), color(color_ref.r, color_ref.g, color_ref.b, 255),nil,"LEGIT AA"); elseif ref.yaw.base:get() == 5 then render.text(fonts.font7.font, vector(x - 6 + calcv3.x/2, y + 39 + bgGap + 1), color(0, 0, 0, 255),nil,"FREESTAND"); render.text(fonts.font7.font, vector(x - 7 + calcv3.x/2, y + 39 + bgGap), color(color_ref.r, color_ref.g, color_ref.b, 255),nil,"FREESTAND"); else render.text(fonts.font7.font, vector(x + 1 - calcv4.x / 2, y + 40 + bgGap), color(0, 0, 0, 255), nil,"JAGOYAW"); render.text(fonts.font7.font, vector(x - calcv4.x / 2, y + 39 + bgGap), color(color_ref.r, color_ref.g, color_ref.b, 255), nil,"JAGOYAW"); end else if UI.get('crosshair_style') == 'Axis' then local screen_size = render.screen_size() local ind_offset = 0 local scoped = localplayer.m_bIsScoped local height = 20--ui.get(UI.get('vis_indicators_height')) local pos = { screen_size.x / 2, screen_size.y / 2 + height } local color_ref = UI.get('indicators_color') local name = 'JAGO' local main_txt = '' for i = 1, #name do local adder = i ~= #name and ' ' or '' local text = name:sub(i, i) .. adder main_txt = main_txt .. text end local maintxt_size = render.measure_text(2, 'o', main_txt) local desync = desync_delta local clr1 = desync > 0 and { color_ref.r, color_ref.g, color_ref.b } or { 255, 255, 255 } local clr2 = desync < 0 and { color_ref.r, color_ref.g, color_ref.b } or { 255, 255, 255 } local text = helpers.gradient_text(clr1[1], clr1[2], clr1[3], 255, clr2[1], clr2[2], clr2[3], 255, main_txt) local dtclreased = easing.quad_in_out(visuals.indicators.vars.dt_color, 0, 1, 1) local dtclr2eased = easing.quad_in_out(visuals.indicators.vars.dt_color2, 0, 1, 1) local dt_color = {255 - 255 * dtclreased * (1-dtclr2eased), 255 * dtclreased - (100 * dtclr2eased), 0 + 60 * dtclr2eased} local dtclrFT = globals.frametime * 4 local doubletap = rage.exploit:get() == 1 visuals.indicators.vars.dt_color = math.clamp(visuals.indicators.vars.dt_color + (doubletap and dtclrFT or -dtclrFT), 0, 1) visuals.indicators.vars.dt_color2 = math.clamp(visuals.indicators.vars.dt_color2 + ((ref.hide_shots.switch:get() and ref.doubletap.switch:get() and doubletap) and dtclrFT or -dtclrFT), 0, 1) local FT = globals.frametime * 3 local scope_value = easing.quad_in_out(visuals.indicators.vars.scope_adder, 0, 1, 1) visuals.indicators.vars.scope_adder = math.clamp(visuals.indicators.vars.scope_adder + (scoped and FT or -FT), 0, 1) local adder_ = scope_value local bar_add, bar_add2 = 20 - 20 * adder_, 20 + 10 * adder_ local text_ = tostring(math.floor(math.abs(desync))) local text_size_ = render.measure_text(2, 'o', text_) render.text(2, vector(pos[1] - 3 + (text_size_.x / 2 * adder_ + 4 - 4 * adder_) + adder_ * 6, pos[2] - 8), color(240, 240, 240, 230), 'c', text_) render.gradient(vector(pos[1] + adder_ * 3, pos[2] - 3), vector(pos[1] + adder_ * 3 + bar_add2 * (math.abs(desync) / 60), pos[2] - 3 + 1), color(color_ref.r, color_ref.g, color_ref.b, color_ref.a), color(color_ref.r, color_ref.g, color_ref.b, 0), color(color_ref.r, color_ref.g, color_ref.b, color_ref.a), color(color_ref.r, color_ref.g, color_ref.b, 0)) render.gradient(vector(pos[1] + adder_ * 4, pos[2] - 3), vector(pos[1] + adder_ * 4 + -(bar_add * (math.abs(desync) / 60)), pos[2] - 3 + 1), color(color_ref.r, color_ref.g, color_ref.b, color_ref.a), color(color_ref.r, color_ref.g, color_ref.b, 0), color(color_ref.r, color_ref.g, color_ref.b, color_ref.a), color(color_ref.r, color_ref.g, color_ref.b, 0)) ind_offset = ind_offset + 2 local items = { [1] = { true, text, { 255, 255, 255, 255 } }, [2] = { handle_aa.vars.antiaim_state[2] == 'Sideways Roll' or handle_aa.vars.antiaim_state[2] == 'Roll', 'ROLL', { 160, 160, 160, 255 } }, [3] = { ref.doubletap.switch:get(), 'DT', { dt_color[1], dt_color[2], dt_color[3], 255 } }, [4] = { ref.hide_shots.switch:get(), 'OS', { 225 - 70 * dtclr2eased, 170 - 70 * dtclr2eased, 160 - 70 * dtclr2eased, 255 } }, [5] = { ref.freestanding.switch:get(), 'FS', { 255, 255, 255, 255 } }, [6] = { ref.safe_point:get() == 'Force', 'SP', { 120, 200, 120, 255 } }, [7] = { ref.body_aim.mode:get() == 'Force', 'FB', { 170, 50, 255, 255 } } } for i, bind in ipairs(items) do local text_size = render.measure_text(2, 'o', bind[2]) local speed = globals.frametime * 5 local alpha = easing.quad_in_out(visuals.indicators.vars.values[i], 0, 1, 1) local adaptive_pos = (text_size.x / 2 * scope_value) + 2 * scope_value if i == 2 then ind_offset = ind_offset + 1 end adaptive_pos = math.ceil(adaptive_pos) visuals.indicators.vars.values[i] = math.clamp(visuals.indicators.vars.values[i] + (bind[1] and speed or -speed), 0, 1) render.text(2, vector(pos[1] + 1 + adaptive_pos, pos[2] + ind_offset), color(bind[3][1], bind[3][2], bind[3][3], bind[3][4] * alpha), 'c', bind[2]) ind_offset = ind_offset + 8 * alpha end else if UI.get('crosshair_style') == 'bluhgang' then local w = render.measure_text(2, 'o', "jagoyaw") local w2 = render.measure_text(2, 'o', "DT MUSLIM CRY") local w3 = render.measure_text(2, 'o', "HS DOGS CANT HIT") local w4 = render.measure_text(2, 'o', "DMG IQ TEST") local color_ref = UI.get('indicators_color') local binds = ui.get_binds() local alpha = math.sin(math.abs(-3.14 + (globals.curtime * (1 / 0.3)) % (3.14 * 2))) * 255 render.gradient(vector(screen_size.x / 2, screen_size.y / 2 + 23), vector(screen_size.x / 2 + (math.abs(desync_delta * 50 / 100)), screen_size.y / 2 + 25), color(255, 255, 255,255),color(255, 255, 255, 0), color(255, 255, 255,255), color(255, 255, 255, 0)) render.gradient(vector(screen_size.x / 2, screen_size.y / 2 + 23), vector(screen_size.x / 2 + (-math.abs(desync_delta * 50 / 100)), screen_size.y / 2 + 25), color(255, 255, 255,255), color(255,255, 255, 0), color(255, 255, 255,255), color(255, 255, 255, 0)) render.text(fonts.fontdx.font, vector(x - (w.x/2)-3, y + 25), color(), nil, "jagoyaw") if (is_dt) then render.text(fonts.fontdx.font, vector(x - (w2.x/2)-3, y + 35), rage.exploit:get() == 0 and color(255,178,113) or color(150,178,113), nil, "DT MUSLIM CRY") end if (not is_dt and is_hs) then render.text(fonts.fontdx.font, vector(x - (w3.x/2)-3, y + 35), color(157,165,230), nil, "HS DOGS CANT HIT") end for i = 1, #binds do if binds[i].active and binds[i].name == "Minimum Damage" then if (is_dt or is_hs) then render.text(fonts.fontdx.font, vector(x - (w4.x/2)-3, y + 45), color(157,209,201), nil, "DMG IQ TEST") else render.text(fonts.fontdx.font, vector(x - (w4.x/2)-3, y + 35), color(157,209,201), nil, "DMG IQ TEST") end end end else if UI.get('crosshair_style') == 'Acatel' then local w = render.measure_text(2, nil, "JAG0YAW") local color_ref = UI.get('indicators_color') local alpha = math.sin(math.abs(-3.14 + (globals.curtime * (1 / 0.3)) % (3.14 * 2))) * 255 render.text(fonts.fontdx.font, vector(x + 3, y + 15), color(), nil, "JAG0YAW ") render.text(fonts.fontdx.font, vector(x + 40, y + 15), color(), nil, helpers.colored_text(color_ref.r,color_ref.g,color_ref.b,alpha,script_db.lua_version:upper())) local data = entity.get_players(true) if #data == 0 then render.text(fonts.fontdx.font, vector(x + 3, y + 23), color(244, 208, 63, 255), nil, "DORMANCY:"..helpers.colored_text(255, 255, 255, 255,"0")) else render.text(fonts.fontdx.font, vector(x + 3, y + 23), color(136, 134, 255, 255), nil, "SMART:") render.text(fonts.fontdx.font, vector(x + 27, y + 23), color(165, 177, 217, 255), nil, ""..helpers.colored_text(255, 95, 91, 255,inverter_state and ' RIGHT' or " LEFT")) end if is_dt and not ref.fakeduck:get() and ref.auto_peek:get() then local chrg = rage.exploit:get() local text = math.floor((chrg * 1000) / 10) .. "x" local color_ = {255,0,0} if chrg == 1 then text = "100x" color_ = {84,255,40} end render.text(fonts.fontdx.font, vector(x + 3, y + 31), color(255, 255, 255, 255), nil, "IDEALTICK "..helpers.colored_text(color_[1], color_[2], color_[3], 255,text)) numer = numer + 8 elseif is_dt then local chrg = rage.exploit:get() local text = "DT" local color_ = {255,0,0} if chrg == 1 then color_ = {84,255,40} end if ref.fakeduck:get() then text = "DT (FAKE DUCK)" end render.text(fonts.fontdx.font, vector(x + 3, y + 31), color(color_[1], color_[2], color_[3], 255), nil, text) numer = numer + 8 elseif ref.hide_shots.switch:get() then render.text(fonts.fontdx.font, vector(x + 3, y + 31), color(227, 167, 176, 255), nil, "ONSHOT") numer = numer + 8 elseif ref.fakeduck:get() then render.text(fonts.fontdx.font, vector(x + 3, y + 31), color(255, 255, 255, 255), nil, "FAKE DUCK") numer = numer + 8 end local baimcalc = render.measure_text(2, nil, "BAIM") render.text(fonts.fontdx.font, vector(x + 3, y + 31 + numer), color(255, 255, 255, is_baim == "Force" and 255 or 100), nil, "BAIM") local safecalc = render.measure_text(2, nil, "SP") render.text(fonts.fontdx.font, vector(x + 5 + baimcalc.x, y + 31 + numer), color(255, 255, 255, is_safe == "Force" and 255 or 100), nil, "SP") render.text(fonts.fontdx.font, vector(x + 5 + baimcalc.x + safecalc.x, y + 31 + numer), color(255, 255, 255, ref.freestanding.switch:get() and 255 or 100), nil, "FS") --[[ elseif UI.get('crosshair_style') == 8 then if not EngineClient.IsInGame() then return end local localplayer = EntityList.GetLocalPlayer() if not localplayer then return end if not localplayer:IsAlive() then return end local foncik = fonts.verdana_bolde.font local screannn = vector(helpers.screen_size.x / 2.0, helpers.screen_size.y / 2.0 + 2.0) local aG = AntiAim.GetInverterState() local aE = handle_aa.vars.player_state aE = visuals.indicators.vars.other.Stuff.Indicators.State[aE-1] or visuals.indicators.vars.other.Stuff.Indicators.State[3] local bc = color(1.0, 0.53, 0.26) local bd = color(1.0, 1.0, 1.0) local a6 = aG and bd or bc local a7 = aG and bc or bd local a4 = {{Color = a6, Text = "jago"}, {Color = a7, Text = "yaw°"}} local bm = visuals.indicators.vars.other.Helpers:CalcMultiTextSize(a4, fonts.verdana_bolde.size, fonts.verdana_bolde.font) local bn = vector(screannn.x - bm.x / 2.0 + 2.0, screannn.y + 14.0) local bo = bc.a bc.a = visuals.indicators.vars.other.v:breathe(1) * bo render.text( "", vector(screannn.x + 1.0, screannn.y - 2.0), bc, fonts.verdana_bolde.size, fonts.verdana_bolde.font, true, true ) bc.a = bo render.text("jagoyaw°", bn + 1.0, visuals.indicators.vars.other.Colors.Black, fonts.verdana_bolde.size, fonts.verdana_bolde.font) visuals.indicators.vars.other.Helpers:MultiText(a4, bn, fonts.verdana_bolde.size, fonts.verdana_bolde.font) screannn.y = screannn.y + bm.y + 14.0 if visuals.indicators.vars.other.AntiBruteforce.Time ~= nil then local bp = 5.0 local bq = bp + visuals.indicators.vars.other.AntiBruteforce.Time local br = 1.0 if bq > GlobalVars.realtime then br = (bq - GlobalVars.realtime) / bp else visuals.indicators.vars.other.AntiBruteforce.Time = nil end screannn.y = screannn.y + 2.0 local bs = vector(29.0, 3.0) Render.BoxFilled( vector(screannn.x - bs.x, screannn.y), vector(screannn.x + bs.x, screannn.y + bs.y), visuals.indicators.vars.other.Colors.Black ) Render.BoxFilled( vector(screannn.x - bs.x + 1.0, screannn.y + 1.0), vector(screannn.x - bs.x + 1.0 + (bs.x - 1.0) * 2.0 * br, screannn.y + bs.y - 1.0), bc ) screannn.y = screannn.y + bs.y end screannn.y = screannn.y + 3.0 local bs = vector(28.0, 1.0) local bt = 8.0 Render.BoxFilled(vector(screannn.x - bs.x, screannn.y), vector(screannn.x, screannn.y + bs.y), a6) Render.BoxFilled(vector(screannn.x + bs.x, screannn.y), vector(screannn.x, screannn.y + bs.y), a7) local bu = visuals.indicators.vars.other.Helpers:ColorCopy(a6) bu.a = 0.0 Render.GradientBoxFilled( vector(screannn.x - bs.x, screannn.y), vector(screannn.x - bs.x + bs.y, screannn.y + bt), a6, a6, bu, bu ) local bu = visuals.indicators.vars.other.Helpers:ColorCopy(a7) bu.a = 0.0 Render.GradientBoxFilled( vector(screannn.x + bs.x, screannn.y), vector(screannn.x + bs.x - bs.y, screannn.y + bt), a7, a7, bu, bu ) screannn.y = screannn.y + 2.0 local bm = render.measure_text(aE.Preset, fonts.fontdx.size, fonts.fontdx.font) local bn = vector(screannn.x - bm.x / 2.0, screannn.y) render.text(aE.Preset, bn, aE.Colored and bc or bd, fonts.fontdx.size, fonts.fontdx.font, true, false) screannn.y = screannn.y + 9.0 local bx = GlobalVars.frametime * 4.0 if visuals.indicators.vars.other.CanFire() then visuals.indicators.vars.other.Stuff.Indicators.Animations.DT.Value = math.min(visuals.indicators.vars.other.Stuff.Indicators.Animations.DT.Value + bx, 1.0) else visuals.indicators.vars.other.Stuff.Indicators.Animations.DT.Value = math.max(visuals.indicators.vars.other.Stuff.Indicators.Animations.DT.Value - bx, 0.0) end local by = { [1] = {Text = "ROLL", Active = handle_aa.vars.antiaim_state[2] == 'Sideways Roll' or handle_aa.vars.antiaim_state[2] == 'Roll' }, [2] = {Text = "FAKE", Active = handle_aa.vars.antiaim_state[2] == 'Massive fake'}, [3] = { Text = "DT", Active = is_dt, Circle = visuals.indicators.vars.other.Stuff.Indicators.Animations.DT.Value }, [4] = {Text = "OS", Active = is_hs}, [5] = {Text = "SP", Active = is_safe == 2.0}, [6] = {Text = "FB", Active = is_baim == 2.0}, [7] = {Text = "FS", Active = ref.base:Get() == 5.0}, } for bz, z in ipairs(by) do if not z.Active then goto aV end if z.Active == nil then goto aV end local bm = render.measure_text(z.Text, fonts.fontdx.size, fonts.fontdx.font) local bn = vector(screannn.x, screannn.y) if z.Active and z.Circle ~= nil then local ar = 3.3 local bk = ar * 0.75 Render.Circle( vector(bn.x + bm.x / 2.0 + bk + 2, bn.y + bm.y / 2.0), ar, 58.0, bd, 1.8, -180, -180 + 360 * z.Circle ) end bn.x = bn.x - bm.x / 2.0 render.text(z.Text, bn, z.Active and bc or visuals.indicators.vars.other.Colors.Transperent, fonts.fontdx.size, fonts.fontdx.font, true, false) screannn.y = screannn.y + 9.0 ::aV:: end ]] end end end end end visuals.arrows = function() local localplayer = entity.get_local_player() if not localplayer then return end local inverter_state = (localplayer.m_flPoseParameter[11] * 120 - 60) > 0 local w = 25 local bgGap = 4 local screen_size = render.screen_size() local x = screen_size.x / 2 local y = screen_size.y / 2 local arrows_color = UI.get('arrows_color') if UI.get('arrows_style') == "Team skeet" then local color1 = not inverter_state and arrows_color or color(0,0,0,75) local color2 = inverter_state and arrows_color or color(0,0,0,75) render.rect(vector(x - 48, y - 10), vector(x - 46, y + 9), color1) render.rect(vector(x + 47, y - 10), vector(x + 49, y + 9), color2) -- if ref.base:GetInt() == 2 or UI.get('roll_manual') == 2 then -- Render.PolyFilled(color(0, 0, 0, 0.3), vector(x - 50, y - 10), vector(x - 50, y + 9), vector(x - 66, y)) -- Render.PolyFilled(arrows_color, vector(x + 52, y - 10), vector(x + 52, y + 9), vector(x + 66, y)) -- elseif ref.base:GetInt() == 3 or UI.get('roll_manual') == 1 then -- Render.PolyFilled(arrows_color, vector(x - 50, y - 10), vector(x - 50, y + 9), vector(x - 66, y)) -- Render.PolyFilled(color(0, 0, 0, 0.3), vector(x + 52, y - 10), vector(x + 52, y + 9), vector(x + 66, y)) -- else -- Render.PolyFilled(color(0, 0, 0, 0.3), vector(x - 50, y - 10), vector(x - 50, y + 9), vector(x - 66, y)) -- Render.PolyFilled(color(0, 0, 0, 0.3), vector(x + 52, y - 10), vector(x + 52, y + 9), vector(x + 66, y)) render.poly(color(0, 0, 0, 75), vector(x - 50, y - 10), vector(x - 50, y + 9), vector(x - 66, y)) render.poly(color(0, 0, 0, 75), vector(x + 52, y - 10), vector(x + 52, y + 9), vector(x + 66, y)) -- end elseif UI.get('arrows_style') == 'Jagoyaw' then local color1 = not inverter_state and arrows_color or color(0,0,0,75) local color2 = inverter_state and arrows_color or color(0,0,0,75) render.text(fonts.fontarrow.font, vector((x - 55), y - 18 + bgGap), color1, 'c', "w") render.text(fonts.fontarrow.font, vector((x + 55), y - 18 + bgGap), color2, 'c', "x") end end visuals.base_render = { box = function(x,y,w,h,color,rounding) render.rect_outline(vector(x,y), vector(x+w,y+h), color, 1, rounding == nil and 0 or rounding, false) end, box_filled = function(x,y,w,h,color,rounding) render.rect(vector(x,y), vector(x+w,y+h), color, rounding == nil and 0 or rounding, false) end, gradient_box_filled = function(x,y,w,h,horizontal,color,color2) render.gradient(vector(x,y), vector(x+w,y+h), color, color, horizontal and color2 or color, horizontal and color or color2, 0) end, string = function(x,y,cen,string,color,TYPE,font,fontsize) if TYPE == 0 then render.text(font, vector(x,y), color, cen and 'c' or '', string) elseif TYPE == 1 then render.text(font, vector(x,y), color, cen and 'c' or '', string) elseif TYPE == 2 then render.text(font, vector(x,y), color, cen and 'c' or '', string) end end, circle = function(x,y,rad,start,endd,color,seg,th) render.circle_outline(vector(x,y), color, rad, start, endd, th) end, text_size = function(string,font,fontsize) return render.measure_text(font, '', string) end } visuals.global_render = { box = function(x, y, w, colorref) visuals.base_render.box_filled(x,y+2,w,18,color(17,17,17,120*(colorref.a)/255),4) visuals.base_render.box_filled(x+3,y+1,w-6,1,color(colorref.r,colorref.g,colorref.b,colorref.a)) visuals.base_render.circle(x+3,y+4,3,180,0.25,color(colorref.r,colorref.g,colorref.b,colorref.a),75,1) visuals.base_render.circle(x+w-3,y+4,3,-90,0.25,color(colorref.r,colorref.g,colorref.b,colorref.a),75,1) visuals.base_render.gradient_box_filled(x,y+4,1,12,false,color(colorref.r,colorref.g,colorref.b,colorref.a),color(colorref.r,colorref.g,colorref.b,0)) visuals.base_render.gradient_box_filled(x+w-1,y+4,1,12,false,color(colorref.r,colorref.g,colorref.b,colorref.a),color(colorref.r,colorref.g,colorref.b,0)) end } -- visuals.Render_engine = (function() -- local self = {} -- local renderer_fade = function(x, y, w, h, color, length, round) -- local r, g, b, a = color.r, color.g, color.b, color.a -- for i = 1, 10 do -- Render.Box(vector(x - i, y - i), vector(w + i, h + i), color(r, g, b, (60 - (60 / length) * i) * (a / 255)), round) -- end -- end -- local renderer_window = function(x, y, w, h, color, shadow_color, outline_color, left, outline) -- local r, g, b, a = color.r, color.g, color.b, color.a -- local r1, g1, b1, a1 = shadow_color.r, shadow_color.g, shadow_color.b, shadow_color.a -- local r2, g2, b2, a2 = outline_color.r, outline_color.g, outline_color.b, outline_color.a -- Render.Blur(vector(x, y), vector(w, h), color(1,1,1, a), 5) -- if outline then -- Render.Circle(vector(x + 4, y + 4), 4, 4, color(r, g, b, a), 1, -175, -90) -- Render.BoxFilled(vector(x + 4, y), vector(w - 5, y+1), color(r, g, b, a)) -- Render.Circle(vector(w - 4, y + 4), 4, 4, color(r, g, b, a), 1, 260, 370) -- Render.GradientBoxFilled(vector(x, y + 4), vector(x + 1, h - 6), color(r, g, b, a), color(r, g, b, a), color(r, g, b, 0), color(r, g, b, 0)) -- Render.GradientBoxFilled(vector(w - 1, y + 4), vector(w, h - 6), color(r, g, b, a), color(r, g, b, a), color(r, g, b, 0), color(r, g, b, 0)) -- end -- Render.Box(vector(x, y), vector(w, h), color(r2, g2, b2, (80 / 255) * a2), 5) -- if left then -- Render.BoxFilled(vector(x, y + 4), vector(x+1, h - 5), color(r, g, b, a)) -- Render.Circle(vector(x + 5, y + 5), 5, 12, color(r, g, b, a), 1, -90, -165) -- Render.Circle(vector(x + 5, h - 5), 5, 12, color(r, g, b, a), 1, -185, -255) -- Render.GradientBoxFilled(vector(x + 4, y), vector(x+20, y+1), color(r, g, b, a), color(r, g, b, 0), color(r, g, b, a), color(r, g, b, 0)) -- Render.GradientBoxFilled(vector(x + 4, h - 1), vector(x+20, h), color(r, g, b, a), color(r, g, b, 0), color(r, g, b, a), color(r, g, b, 0)) -- end -- Render.BoxFilled(vector(x+1, y+1), vector(w-1, h-1), color(0, 0, 0, a), 5) -- renderer_fade(x, y, w, h, color(r1, g1, b1, (120 / 255) * a1), 10, 10) -- end -- self.container = function(x, y, w, h, color, name, font_size, font) -- local name_size = render.measure_text(name, font_size, font) -- -- Render.Blur(vector(x, y), vector(x + w + 3, y + h + 2), color(1, 1, 1, color.a), 6) -- renderer_window(x, y, x + w + 3, y + h + 2, color(color.r, color.g, color.b, color.a), color(color.r, color.g, color.b, color.a), color(color.r, color.g, color.b, color.a), false, true) -- render.text(name, vector(x + 1 + 1 + w / 2 + 1 - name_size.x / 2, y + 2 + 1), color(0, 0, 0, color.a), font_size, font) -- render.text(name, vector(x + 1 + w / 2 + 1 - name_size.x / 2, y + 2), color(1, 1, 1, color.a), font_size, font) -- end -- return self -- end)() visuals.watermark = {} visuals.watermark.draw = function() local speed = globals.frametime * 5 local color_ref = UI.get('ui_color') local pos = { x = 0, y = 0, w = 0, h = 0 } pos.x, pos.y = render.screen_size().x, 0 local offset = { x = 10, y = 10 } pos.x = pos.x - offset.x pos.y = pos.y + offset.y local text = '' local username = script_db.username if UI.get('watermark_name') == 'Custom' then username = UI.get('watermark_name_ref') end text = text .. script_db.lua_name .. ' [' .. script_db.lua_version .. '] | ' .. username .. ' | ' local local_time = common.get_system_time() local time = string.format("%02d:%02d:%02d", local_time.hours, local_time.minutes, local_time.seconds) local ping = globals.is_in_game and math.floor(utils.net_channel().avg_latency[1] * 1000) or 0 text = text .. 'delay: ' .. ping .. 'ms | ' .. time local text_size = render.measure_text(1, '', text) pos.x = pos.x - text_size.x pos.w = text_size.x pos.h = 16 -- if UI.get('ui_style') == 0 then visuals.global_render.box(pos.x - 10, pos.y, pos.w + 10, { r = color_ref.r, g = color_ref.g, b = color_ref.b, a = 255 }) visuals.base_render.string(pos.x - 10 + 6, pos.y + text_size.y / 2 - 1, false, text, color(255, 255, 255, 255), 1, 1) -- elseif UI.get('ui_style') == 1 then -- visuals.Render_engine.container(pos.x - 9, pos.y, pos.w + 9, pos.h, { r = color.r, g = color.g, b = color.b, a = 1 }, text, fonts.verdanar11.size, fonts.verdanar11.font) -- end end visuals.keybinds = {} visuals.keybinds.get_keys = function() local binds = {} local cheatbinds = ui.get_binds() for i = 1, #cheatbinds do table.insert(binds, 1, cheatbinds[i]) end return binds end visuals.keybinds.names = { ['Double Tap'] = 'Double tap', ['Hide Shots'] = 'On shot anti-aim', ['Slow Walk'] = 'Slow motion', ['Edge Jump'] = 'Jump at edge', ['Fake Ping'] = 'Ping spike', ['Override Resolver'] = 'Resolver override', ['Fake Duck'] = 'Duck peek assist', ['Minimum Damage'] = 'Damage override', ['Auto Peek'] = 'Quick peek assist', ['Body Aim'] = 'Force body aim', ['Safe Points'] = 'Safe points', ['Yaw Base'] = 'Yaw base', ['Enable Thirdperson'] = 'Thirdperson', ['Manual Yaw Base'] = 'Yaw base', } visuals.keybinds.upper_to_lower = function(str) local str1 = string.sub(str, 2, #str) local str2 = string.sub(str, 1, 1) return str2:upper()..str1:lower() end visuals.keybinds.vars = { alpha = { [ '' ] = 0 }, window = { alpha = 0, width = 0 } } visuals.keybinds.dragging = helpers.dragging_fn('jagoyaw_keybinds', helpers.screen_size.x / 1.3, helpers.screen_size.y / 2.5) visuals.keybinds.draw = function() local speed = globals.frametime * 5 local color_ref = UI.get('ui_color') local pos = { x = 0, y = 0, w = 0, h = 0 } pos.x, pos.y = visuals.keybinds.dragging:get() pos.x = math.ceil(pos.x) pos.y = math.ceil(pos.y) local offset = 0 local maximum_offset = 80 local binds = visuals.keybinds.get_keys() for i = 1, #binds do local bind = binds[i] local bind_name = visuals.keybinds.names[bind.name] == nil and visuals.keybinds.upper_to_lower(bind.name) or visuals.keybinds.names[bind.name] local bind_state = '' if bind.value == true then local bind_mode = bind.mode if bind_mode == 2 then bind_state = 'toggled' elseif bind_mode == 1 then bind_state = 'holding' end else bind_state = bind.value end if visuals.keybinds.vars.alpha[bind_name] == nil then visuals.keybinds.vars.alpha[bind_name] = 0 end local alpha = easing.quad_in_out(visuals.keybinds.vars.alpha[bind_name], 0, 1, 1) visuals.keybinds.vars.alpha[bind_name] = math.clamp(visuals.keybinds.vars.alpha[bind_name] + (bind.active and speed or -speed), 0, 1) local bind_state_size = render.measure_text(1, nil, bind_state) local bind_name_size = render.measure_text(1, nil, bind_name) -- if UI.get('ui_style') == 0 then visuals.base_render.string(pos.x + 4, pos.y + 21 + offset, false, bind_name, color(255, 255, 255, alpha*255), 1, 1) visuals.base_render.string(pos.x + (visuals.keybinds.vars.window.width - bind_state_size.x - 10), pos.y + 20 + offset, false, '[' .. bind_state .. ']', color(255, 255, 255, alpha*255), 1, 1) -- elseif UI.get('ui_style') == 1 then -- render.text(bind_name, vector(pos.x + 4 + 1, pos.y + 21 + 1 + offset), color(0, 0, 0, alpha), fonts.verdanar11.size, fonts.verdanar11.font) -- render.text(bind_name, vector(pos.x + 4, pos.y + 21 + offset), color(1, 1, 1, alpha), fonts.verdanar11.size, fonts.verdanar11.font) -- render.text('[' .. bind_state .. ']', vector(pos.x + 1 + (visuals.keybinds.vars.window.width - bind_state_size.x - 10), pos.y + 20 + 1 + offset), color(0, 0, 0, alpha), fonts.verdanar11.size, fonts.verdanar11.font) -- render.text('[' .. bind_state .. ']', vector(pos.x + (visuals.keybinds.vars.window.width - bind_state_size.x - 10), pos.y + 20 + offset), color(1, 1, 1, alpha), fonts.verdanar11.size, fonts.verdanar11.font) -- end offset = offset + 16 * alpha if maximum_offset < (bind_name_size.x + bind_state_size.x) + 30 then maximum_offset = bind_name_size.x + bind_state_size.x + 30 end end pos.w = math.ceil(visuals.keybinds.vars.window.width) pos.h = 16 local window_alpha = easing.quad_in_out(visuals.keybinds.vars.window.alpha, 0, 1, 1) visuals.keybinds.vars.window.alpha = math.clamp(visuals.keybinds.vars.window.alpha + ((ui.get_alpha() > 0 or #binds > 0) and speed or -speed), 0, 1) visuals.keybinds.vars.window.width = helpers.lerp(visuals.keybinds.vars.window.width, maximum_offset, speed * 2) -- if UI.get('ui_style') == 0 then visuals.global_render.box(pos.x, pos.y - 2, pos.w + 2, { r = color_ref.r, g = color_ref.g, b = color_ref.b, a = window_alpha * 255 }) local main_text = render.measure_text(1, nil, 'keybinds') visuals.base_render.string(pos.x + 1 + pos.w / 2, pos.y + main_text.y - 3, true, 'keybinds', color(255, 255, 255, window_alpha * 255), 1, 1) -- elseif UI.get('ui_style') == 1 then -- visuals.Render_engine.container(pos.x, pos.y, pos.w, pos.h, { r = color.r, g = color.g, b = color.b, a = window_alpha }, 'keybinds', fonts.verdanar11.size, fonts.verdanar11.font) -- end visuals.keybinds.dragging:drag(pos.w, (10 + (8 * #binds)) * 2) end visuals.spectators = {} visuals.spectators.vars = { players = {}, alpha = { [ '' ] = 0 }, window = { alpha = 0, width = 0 }, specs = { m_alpha = 0, m_active = {}, m_contents = {}, unsorted = {} }, } visuals.spectators.get_spectators = function(player) if not globals.is_connected or not globals.is_in_game then return end local me = entity.get_local_player() if not me then return end local observing = nil if me:is_alive() then observing = me:get_spectators() else local local_target = me.m_hObserverTarget if not local_target then return end observing = local_target:get_spectators() end return observing end visuals.spectators.dragging = helpers.dragging_fn('jagoyaw_spectators', helpers.screen_size.x / 1.5, helpers.screen_size.y / 2.5) visuals.spectators.draw = function() local me = entity.get_local_player() local spectators = visuals.spectators.get_spectators() if not globals.is_connected or spectators == nil or me == nil then return end for i=1, 64 do visuals.spectators.vars.specs.unsorted[i] = { idx = i, active = false } end for i, spectator in pairs(spectators) do local idx = spectator:get_index() visuals.spectators.vars.specs.unsorted[idx] = { idx = idx, active = (function() if spectator == me then return false end return true end)(), avatar = (function() local avatar = spectator:get_steam_avatar() if avatar == nil then return nil end if visuals.spectators.vars.specs.m_contents[idx] == nil or visuals.spectators.vars.specs.m_contents[idx].conts ~= avatar then visuals.spectators.vars.specs.m_contents[idx] = { conts = avatar, texture = avatar } end return visuals.spectators.vars.specs.m_contents[idx].texture end)() } end local is_menu_open = ui.get_alpha() > 0 local latest_item = false local speed = globals.frametime * 5 local color_ref = UI.get('ui_color') local pos = { x = 0, y = 0, w = 0, h = 0 } pos.x, pos.y = visuals.spectators.dragging:get() pos.x = math.ceil(pos.x) pos.y = math.ceil(pos.y) local offset = 0 local maximum_offset = 80 for _, c_ref in pairs(visuals.spectators.vars.specs.unsorted) do local c_id = c_ref.idx local c_nickname = '' local c_entity = entity.get(c_id) if c_entity then c_nickname = string.sub(c_entity:get_name(), 1, 25) end if not visuals.spectators.vars.alpha[c_id] then visuals.spectators.vars.alpha[c_id] = 0 end local ease = easing.quad_in_out(visuals.spectators.vars.alpha[c_id], 0, 1, 1) visuals.spectators.vars.alpha[c_id] = math.clamp(visuals.spectators.vars.alpha[c_id] + (c_ref.active and speed or -speed), 0, 1) if c_ref.active then latest_item = true if visuals.spectators.vars.specs.m_active[c_id] == nil then visuals.spectators.vars.specs.m_active[c_id] = { alpha = 0, offset = 0, active = true } end local text_width = render.measure_text(1, nil, c_nickname) visuals.spectators.vars.specs.m_active[c_id].active = true visuals.spectators.vars.specs.m_active[c_id].offset = text_width.x + 30 visuals.spectators.vars.specs.m_active[c_id].alpha = ease visuals.spectators.vars.specs.m_active[c_id].avatar = c_ref.avatar visuals.spectators.vars.specs.m_active[c_id].name = c_nickname elseif visuals.spectators.vars.specs.m_active[c_id] ~= nil then visuals.spectators.vars.specs.m_active[c_id].active = false visuals.spectators.vars.specs.m_active[c_id].alpha = ease if visuals.spectators.vars.specs.m_active[c_id].alpha <= 0 then visuals.spectators.vars.specs.m_active[c_id] = nil end end if visuals.spectators.vars.specs.m_active[c_id] ~= nil and visuals.spectators.vars.specs.m_active[c_id].offset > maximum_offset then maximum_offset = visuals.spectators.vars.specs.m_active[c_id].offset end end if is_menu_open and not latest_item then local case_name = ' ' local text_width = 0 --renderer.measure_text(nil, case_name) latest_item = true maximum_offset = maximum_offset < text_width and text_width or maximum_offset visuals.spectators.vars.specs.m_active[case_name] = { name = ' ', active = true, offset = text_width, alpha = 0 } end for c_name, c_ref in pairs(visuals.spectators.vars.specs.m_active) do local text_size = render.measure_text(1, nil, c_ref.name) -- print(c_ref.alpha) local adder = { text = 5 + 12 + 3, avatar = 5 } if UI.get('avatar_side') == 'Right' then adder = { text = 5, avatar = math.ceil(visuals.spectators.vars.window.width) - 5 - 12 } end visuals.base_render.string(pos.x + adder.text, pos.y + 21 + offset, false, c_ref.name, color(255, 255, 255, c_ref.alpha*255), 1, 1) -- renderer.text(x + 5 + ((c_ref.avatar and not right_offset) and text_size[2] + 5 or 0) + 1, y + height_offset - 5 + 5 * c_ref.alpha, 255, 255, 255, 255 * c_ref.alpha, font, w - (text_size[2] + 15), c_ref.name) if c_ref.avatar ~= nil then -- renderer.texture(c_ref.avatar, x + 1 + (right_offset and w - 15 or 5), y + height_offset - 5 + 5 * c_ref.alpha, text_size[2], text_size[2], 255, 255, 255, 255 * c_ref.alpha, 'f') render.texture(c_ref.avatar, vector(pos.x + adder.avatar, pos.y + 21 + offset), vector(12, 12), color(255, 255, 255, c_ref.alpha*255)) end offset = offset + (text_size.y + 3) * c_ref.alpha end pos.w = math.ceil(visuals.spectators.vars.window.width) pos.h = 16 local window_alpha = easing.quad_in_out(visuals.spectators.vars.window.alpha, 0, 1, 1) visuals.spectators.vars.window.alpha = math.clamp(visuals.spectators.vars.window.alpha + ((ui.get_alpha() > 0 or #spectators > 0) and speed or -speed), 0, 1) visuals.spectators.vars.window.width = helpers.lerp(visuals.spectators.vars.window.width, maximum_offset, speed * 2) -- if UI.get('ui_style') == 0 then visuals.global_render.box(pos.x, pos.y - 2, pos.w + 3, { r = color_ref.r, g = color_ref.g, b = color_ref.b, a = window_alpha * 255 }) local main_text = render.measure_text(1, nil, 'spectators') visuals.base_render.string(pos.x + 1 + pos.w / 2, pos.y + main_text.y - 3, true, 'spectators', color(255, 255, 255, window_alpha * 255), 1, 1) -- elseif UI.get('ui_style') == 1 then -- visuals.Render_engine.container(pos.x, pos.y, pos.w, pos.h, { r = color_ref.r, g = color_ref.g, b = color_ref.b, a = window_alpha }, 'spectators', fonts.verdanar11.size, fonts.verdanar11.font) -- end visuals.spectators.dragging:drag(pos.w, (10 + (8 * #spectators)) * 2) end visuals.hitmarker = {} visuals.hitmarker.vars = { data = {}, queue = {} } visuals.hitmarker.on_bullet_impact = function(e) if not UI.contains('visual_elements', 'Other') and not UI.get('hitmarker') then return end if entity.get(e.userid, true) == entity.get_local_player() then local impactX = e.x local impactY = e.y local impactZ = e.z table.insert(visuals.hitmarker.vars.data, { impactX, impactY, impactZ, globals.realtime }) end end visuals.hitmarker.on_player_hurt = function(e) if not UI.contains('visual_elements', 'Other') and not UI.get('hitmarker') then return end local bestX, bestY, bestZ = 0, 0, 0 local bestdistance = 100 local realtime = globals.realtime if entity.get(e.attacker, true) == entity.get_local_player() then local victim = entity.get(e.userid, true) if victim ~= nil then local victimOrigin = victim.m_vecOrigin local victimDamage = e.dmg_health local victimhelf = victim.m_iHealth - victimDamage for i in ipairs(visuals.hitmarker.vars.data) do local data = visuals.hitmarker.vars.data[i] if data[4] + (4) >= realtime then local impactX = data[1] local impactY = data[2] local impactZ = data[3] local distance = helpers.vectordistance(victimOrigin.x, victimOrigin.y, victimOrigin.z, impactX, impactY, impactZ) if distance < bestdistance then bestdistance = distance bestX = impactX bestY = impactY bestZ = impactZ end end end if bestX == 0 and bestY == 0 and bestZ == 0 then victimOrigin.z = victimOrigin.z + 50 bestX = victimOrigin.x bestY = victimOrigin.y bestZ = victimOrigin.z end for k in ipairs(visuals.hitmarker.vars.data) do visuals.hitmarker.vars.data[k] = { 0, 0, 0, 0 } end table.insert(visuals.hitmarker.vars.queue, { bestX, bestY, bestZ, realtime, victimDamage, victimhelf } ) end end end visuals.hitmarker.on_player_spawned = function(e) if not UI.contains('visual_elements', 'Other') and not UI.get('hitmarker') then return end if entity.get(e.userid, true) == entity.get_local_player() then for i in ipairs(visuals.hitmarker.vars.data) do visuals.hitmarker.vars.data[i] = { 0, 0, 0, 0 } end for i in ipairs(visuals.hitmarker.vars.queue) do visuals.hitmarker.vars.queue[i] = { 0, 0, 0, 0, 0, 0 } end end end visuals.hitmarker.draw = function() local HIT_MARKER_DURATION = 2 local realtime = globals.realtime local maxTimeDelta = HIT_MARKER_DURATION / 2 local maxtime = realtime - maxTimeDelta / 2 for i in ipairs(visuals.hitmarker.vars.queue) do local marker = visuals.hitmarker.vars.queue[i] if marker[4] + HIT_MARKER_DURATION > maxtime then if marker[1] ~= nil then local add = (marker[4] - realtime) * 50 local w2c = render.world_to_screen(vector((marker[1]), (marker[2]), (marker[3]))) local w2c2 = render.world_to_screen(vector((marker[1]), (marker[2]), (marker[3]) - add)) if not w2c or not w2c2 then return end if w2c.x ~= nil and w2c.y ~= nil then local alpha = 255 if (marker[4] - (realtime - HIT_MARKER_DURATION)) < (HIT_MARKER_DURATION / 2) then alpha = math.floor((marker[4] - (realtime - HIT_MARKER_DURATION)) / (HIT_MARKER_DURATION / 2) * 255) if alpha < 5 then marker = { 0 , 0 , 0 , 0, 0, 0 } end end local HIT_MARKER_SIZE = 6 local col = UI.get('hitmarker_plus_color') local col2 = UI.get('hitmarker_damage_color') -- local color1 = color(255, 255, 255, alpha) local color2 = color(155, 200, 21, alpha) local colorspiese = marker [6] <= 0 and color2 or col2 if UI.contains('hitmarker_type', 'damage') then render.text(1, vector(w2c2.x + 1, w2c2.y + 1), color(0, 0, 0, alpha), '', "-" .. tostring(marker[5])) render.text(1, vector(w2c2.x + 1, w2c2.y + 1), colorspiese, '', "-" .. tostring(marker[5])) end if UI.contains('hitmarker_type', '+') then render.gradient(vector(w2c.x - 1, w2c.y - HIT_MARKER_SIZE), vector(w2c.x + 1, w2c.y), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), 0) render.gradient(vector(w2c.x - HIT_MARKER_SIZE, w2c.y - 1), vector(w2c.x, w2c.y + 1), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), 0) render.gradient(vector(w2c.x - 1, w2c.y + HIT_MARKER_SIZE), vector(w2c.x + 1, w2c.y), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), 0) render.gradient(vector(w2c.x + HIT_MARKER_SIZE, w2c.y - 1), vector(w2c.x, w2c.y + 1), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), color(col.r, col.g, col.b, alpha), 0) end end end end end end visuals.custom_scope = {} visuals.custom_scope.vars = { inaccuracy = 0 } visuals.custom_scope.draw = function() ref.override_zoom.force_viewmodel:set(UI.get('viewmodel_scope')) local screen_size = render.screen_size() local speed = 6 local lp = entity.get_local_player() if not lp then return end local my_weapon = lp:get_player_weapon() if not my_weapon then return end local length = UI.get('custom_scope_lenght') local offset = UI.get('custom_scope_offset') local color_ref = UI.get('custom_scope_color') local weapon_inaccuracy = my_weapon:get_inaccuracy(my_weapon) * 100 local inaccuracy = UI.get('custom_scope_inaccuracy') visuals.custom_scope.vars.inaccuracy = inaccuracy and helpers.lerp( visuals.custom_scope.vars.inaccuracy, weapon_inaccuracy, globals.frametime * 20 ) or 0 local inaccuracy_value = math.floor(visuals.custom_scope.vars.inaccuracy) local offset, initial_position = offset * screen_size.y / 1080, length * screen_size.y / 1080 local scope_level = my_weapon.m_zoomLevel local scoped = lp.m_bIsScoped local resume_zoom = lp.m_bResumeZoom local is_valid = lp:is_alive() and my_weapon ~= nil and scope_level ~= nil local act = is_valid and scope_level > 0 and scoped and not resume_zoom if act then ref.override_zoom.scope_overlay:set('Remove All') render.gradient(vector(screen_size.x/2 - initial_position + 2 - inaccuracy_value, screen_size.y / 2), vector(screen_size.x/2 - initial_position + 2 + initial_position - offset - inaccuracy_value, screen_size.y / 2 + 1), color_ref, color(color_ref.r, color_ref.g, color_ref.b, 0), color_ref, color(color_ref.r, color_ref.g, color_ref.b, 0), 0) render.gradient(vector(screen_size.x/2 + offset + inaccuracy_value, screen_size.y / 2), vector(screen_size.x/2 + offset + initial_position - offset - 1 + inaccuracy_value, screen_size.y / 2 + 1), color(color_ref.r, color_ref.g, color_ref.b, 0), color_ref, color(color_ref.r, color_ref.g, color_ref.b, 0), color_ref, 0) render.gradient(vector(screen_size.x / 2, screen_size.y/2 - initial_position + 2 - inaccuracy_value), vector(screen_size.x / 2 + 1, screen_size.y/2 - initial_position + 2 + initial_position - offset - inaccuracy_value), color_ref, color_ref, color(color_ref.r, color_ref.g, color_ref.b, 0), color(color_ref.r, color_ref.g, color_ref.b, 0), 0) render.gradient(vector(screen_size.x / 2, screen_size.y/2 + offset + inaccuracy_value), vector(screen_size.x / 2 + 1, screen_size.y/2 + offset + initial_position - offset - 1 + inaccuracy_value), color(color_ref.r, color_ref.g, color_ref.b, 0), color(color_ref.r, color_ref.g, color_ref.b, 0), color_ref, color_ref, 0) end end local logs = { } function add_log( text ) table.insert( logs, { text = text, expiration = 8 } ) end local lucida = render.load_font("C:\\Windows\\Fonts\\lucon.ttf", 10, "d") local hb = { [0] = 'generic', 'head', 'chest', 'stomach', 'left arm', 'right arm', 'left leg', 'right leg', 'neck', 'generic', 'gear' } local reason = { ["spread"] = "spread" , ["correction"]= "?" , ["occlusion"] = "spread", ["jitter correction"] = "?" , ["prediction error"] = "prediction error" , ["lagcomp failure"] = "?" } function log_log() if #logs <= 0 then return end local x = 8 local y = 5 local size = 12 + 1 for i = 1, #logs do local notify = logs[ i ] if not notify then goto continue end logs[ i ].expiration = logs[ i ].expiration - globals.frametime if logs[ i ].expiration <= 0.0 then table.remove( logs, i ) end ::continue:: end for i = 1, #logs do local notify = logs[ i ] if not notify then goto continue end local left = logs[ i ].expiration local color = color( ) if left <= 0.5 then local f = left; math.clamp( f, 0.0, 0.5 ) f = f / 0.5; color.a = math.floor( f * 255.0 ) if i == 1 and f <= 0.2 then y = y - ( size * ( 1.0 - f / 0.2 ) ) end else color.a = 255 end render.text( lucida, vector( x, y ), color, "", logs[ i ].text ) y = y + size ::continue:: end end local TICKS_TO_TIME = function(ticks) return globals.tickinterval * ticks end local print_skeet = function( ctx ) local col = color( 220, 220, 220, 255 ) local col_str = col:to_hex( ) local acc = color( 160, 203, 39 ) local acc_str = acc:to_hex( ) print_raw( string.format( "\a%s[gamesense] \a%s%s", acc_str:sub(0, 6), col_str:sub( 0 , 6 ), ctx ) ) end local on_hit = function( ctx ) local name = ctx.target:get_name() local hitgroup_ = hb[ctx.hitgroup] local hitgroup = hb[ctx.wanted_hitgroup] local bt_ms = math.floor(TICKS_TO_TIME(ctx.backtrack) * 1000) local random1 = math.random(0,1000) local random12 = math.random(0,1000) local random13 = math.random(0,1000) local random2 = math.random(0,9) local random22 = math.random(0,9) local random23 = math.random(0,9) local random24 = math.random(0,9) local random25 = math.random(0,9) local random3 = math.random(0,58) local random4 = math.random(0,20) local random5 = math.random(0,20) local health = ctx.target.m_iHealth local wanted_dmg_str = ctx.damage ~= ctx.wanted_damage and string.format("(%i)", ctx.wanted_damage) or "" local string = string.format("Hit %s in the %s for %i (%i health remaining)",name, hitgroup_, ctx.damage,health) local string2 = string.format("[%i/%i] Hit %s's in the %s for %i%s damage (%i health remaining), aimed=%s(%i%%) bt= %ims del= %i %i (%i:%i:%i/%i) LC=%i TC=%i (%i)",random1,random12,name, hitgroup_, ctx.damage, wanted_dmg_str,health, hitgroup, ctx.hitchance, bt_ms,random2,random22,random23,random24,random25,random3,random4,random5,random13) print_skeet(string) add_log(string) print_skeet(string2) add_log(string2) end local on_miss = function( ctx ) local name = ctx.target:get_name() local hitgroup = hb[ctx.wanted_hitgroup] local reason = reason[ctx.state] local bt_ms = math.floor(TICKS_TO_TIME(ctx.backtrack) * 1000) local random1 = math.random(0,1000) local random12 = math.random(0,1000) local random13 = math.random(0,1000) local random2 = math.random(0,9) local random22 = math.random(0,9) local random23 = math.random(0,9) local random24 = math.random(0,9) local random25 = math.random(0,9) local random3 = math.random(0,58) local random4 = math.random(0,20) local random5 = math.random(0,20) local string = string.format("[%i/%i] Missed %s's %s(%i)(%i%%) due to %s, bt= %i (B) (%i:%i:%i/%i) LC=%i TC=%i (%i)",random1,random12, name, hitgroup,ctx.wanted_damage,ctx.hitchance,reason,bt_ms,random23,random24,random25,random3,random4,random5,random13) add_log(string) print_skeet(string) end events.aim_ack:set( function( ctx ) if ctx.state then on_miss( ctx ) return end on_hit( ctx ) end ) local ragebot = {} ragebot.hitchance_overrides = function() ref.hitchance.value:override(nil) local lp = entity.get_local_player() if UI.get('hitchance_air_enable') and helpers.in_air(lp) then local active_weapon = lp:get_player_weapon() if not active_weapon then return end local weapon_classname = active_weapon:get_classname() local enabled_weapons = UI.get('hitchance_air_weapons') print(weapon_classname) -- if false then -- ref.hitchance.value:override(UI.get('hitchance_air')) -- end end local scoped = lp.m_bIsScoped local onground = helpers.on_ground(lp) if UI.get('hitchance_noscope_enable') and not scoped and onground then local active_weapon = lp:get_player_weapon() if not active_weapon then return end local weapon_classname = active_weapon:get_classname() local enabled_weapons = UI.get('hitchance_noscope_weapons') print(weapon_classname) -- if weapon_id == 11 or weapon_id == 38 then -- ref.hitchance.value:override(UI.get('hitchance_noscope')) -- end end end menu.gears.air_hc = UI.get_element('hitchance_air_enable'):create() menu.gears.noscope_hc = UI.get_element('hitchance_noscope_enable'):create() ragebot.doubletap = {} ragebot.doubletap.predict_dt_damage = function() ref.minimum_damage.value:override(nil) if rage.exploit:get() ~= 1 then return end local binds = ui.get_binds() for i = 1, #binds do if binds[i].active and binds[i].name == "Minimum Damage" then return end end local players = entity.get_players(true) if not players then return end for _, player in pairs(players) do if not player or not player:is_alive() then goto continue end local health = player.m_iHealth if health < 0 then goto continue end local local_player = entity.get_local_player() local is_alive = local_player:is_alive() if not is_alive then return end local active_weapon = local_player:get_player_weapon() if active_weapon == nil then return end local weapon_id = active_weapon:get_weapon_index() if weapon_id == nil then return end if weapon_id == 11 or weapon_id == 38 then ref.minimum_damage.value:override(math.floor(health / 2 + 0.5)) end ::continue:: end end ragebot.doubletap.can_shift_shot = function(tts) local me = entity.get_local_player() if me == nil then return end local wpn = me:get_player_weapon() if (not me or not wpn) then return false end local tickbase = me.m_nTickBase local curtime = globals.tickinterval * (tickbase - tts) if (curtime < me.m_flNextAttack) then return false end if (curtime < wpn.m_flNextPrimaryAttack) then return false end return true end ragebot.doubletap.recharge = function() local is_charged = rage.exploit:get() if (ragebot.doubletap.can_shift_shot(15) and is_charged ~= 1) then rage.exploit:allow_charge(true) rage.exploit:force_charge() end end local misc = {} misc.teleport_inair = function() if not ref.doubletap.switch:get() then return end local Allow_Work = false local Need_Teleport = false local Localplayer = entity.get_local_player() local Weapon = Localplayer:get_player_weapon() if Weapon == nil then return end local WeaponID = Weapon:get_classname() local IsKnife = WeaponID == 'CKnife' local CanHit = function(entity) local damage, trace = utils.trace_bullet(entity, entity:get_hitbox_position(3), Localplayer:get_hitbox_position(3)) if damage ~= 0 then if damage < 50 and ((trace.entity and trace.entity == Localplayer) or false) then print(damage) return true end end return false end if not IsKnife then for _, Enemy in pairs(entity.get_players(true)) do if Enemy == Localplayer then goto skip end if CanHit(Enemy) then Need_Teleport = true end ::skip:: end end local Getflag = function(entity, flag) return bit.band(entity.m_fFlags, bit.lshift(1, flag)) ~= 0 end if Need_Teleport and not Getflag(Localplayer, 0) then rage.exploit:force_teleport() end end misc.killsay = {} misc.killsay.phrases = { "𝕕𝕚𝕕 𝕦 𝕣𝕝𝕪 𝕥𝕙𝕚𝕟𝕜 𝕦 𝕔𝕒𝕟 𝕜𝕚𝕝𝕝 𝕛𝕒𝕘𝕠𝕪𝕒𝕨 𝕦𝕤𝕖𝕣?", "𝕤𝕥𝕠𝕡 𝕥𝕣𝕪𝕚𝕟𝕘 𝕣𝕖𝕥𝕒𝕣𝕕, 𝕦 𝕨𝕠𝕟𝕥 𝕜𝕚𝕝𝕝 𝕞𝕖", "昑寧願讓你操蛋也不願殺了jagoyaw哘哘", "記住昑在使用 jagoyaw.lua 時是最好的", "你不蘽殺 買昑的配置 shoppy.gg/@vektus1337 書呆存", "Ты не можејь јбить? Кјпите мой конфиг shoppy.gg/@vektus1337 болван", "what you do dog??", "держи зонтик ☂, тебя обојјали", "𝕠𝕨𝕟𝕖𝕕 𝕓𝕪 𝕘𝕠𝕕𝕖𝕝𝕖𝕤𝕤 𝕜𝕚𝕕", "Создатель 𝘉𝘒 𝘑𝘄𝘙𝘎𝘋𝘕𝘄𝘑", "👺1 𝔰𝔥𝔬𝔱 𝔟𝔶 𝔑𝔑𝔟𝔩𝔞𝔰𝔱𝔢𝔯👺" } misc.killsay.get_phrase = function() return misc.killsay.phrases[utils.random_int(1, #misc.killsay.phrases)]:gsub('\"', '') end misc.killsay.run = function(e) local me = entity.get_local_player() local victim = entity.get(e.userid, true) local attacker = entity.get(e.attacker, true) if victim == attacker or attacker ~= me then return end utils.console_exec('say "' .. misc.killsay.get_phrase() .. '"') end local function hsv_to_rgb(h, s, v, a) local r, g, b local i = math.floor(h * 6); local f = h * 6 - i; local p = v * (1 - s); local q = v * (1 - f * s); local t = v * (1 - (1 - f) * s); i = i % 6 if i == 0 then r, g, b = v, t, p elseif i == 1 then r, g, b = q, v, p elseif i == 2 then r, g, b = p, v, t elseif i == 3 then r, g, b = p, q, v elseif i == 4 then r, g, b = t, p, v elseif i == 5 then r, g, b = v, p, q end return r * 255, g * 255, b * 255, a * 255 end local function func_rgb_rainbowize(frequency, rgb_split_ratio) local r, g, b, a = hsv_to_rgb(globals.realtime * frequency, 1, 1, 1) r = r * rgb_split_ratio g = g * rgb_split_ratio b = b * rgb_split_ratio return r, g, b end function bar() local r, g, b = func_rgb_rainbowize(0.1, 1) local screen_size = render.screen_size() local a = 255 render.gradient(vector(0,0), vector(screen_size.x / 4, 2),color(r,g,b,a), color(b,g,r,a), color(r,g,b,a), color(b,g,r,a),0) render.gradient(vector(screen_size.x / 4,0), vector(screen_size.x / 2, 2),color(b,g,r,a), color(g,r,b,a), color(b,g,r,a), color(g,r,b,a),0) render.gradient(vector(screen_size.x / 2,0), vector(screen_size.x / 1.3, 2),color(g,r,b,a), color(b,r,g,a), color(g,r,b,a), color(b,r,g,a),0) render.gradient(vector(screen_size.x / 1.3,0), vector(screen_size.x, 2),color(b,r,g,a), color(g,b,r,a), color(b,r,g,a), color(g,b,r,a),0) render.gradient(vector(0,2), vector(screen_size.x / 4, 4),color(r,g,b,a), color(b,g,r,a), color(r,g,b,0), color(b,g,r,0),0) render.gradient(vector(screen_size.x / 4,2), vector(screen_size.x / 2, 4),color(b,g,r,a), color(g,r,b,a), color(b,g,r,0), color(g,r,b,0),0) render.gradient(vector(screen_size.x / 2,2), vector(screen_size.x / 1.3, 4),color(g,r,b,a), color(b,r,g,a), color(g,r,b,0), color(b,r,g,0),0) render.gradient(vector(screen_size.x / 1.3,2), vector(screen_size.x, 4),color(b,r,g,a), color(g,b,r,a), color(b,r,g,0), color(g,b,r,0),0) end local local_player = entity.get_local_player() local msg = { ", why so bad NN XD? get good at shoppy.gg/@vektus1337", ", NN go watch some HvH Tutorials at www.youtube.com/vektus1337", ", laff hurensohn go visit shoppy.gg/@vektus1337 XD make your mom proud", ", get on my level, Free HvH Tutorials at youtube.com/vektus1337", ", uff 1tab dog", ", headshot bitch", ", owned kid lafff", ", why so bad? get good at shoppy.gg/@vektus1337", ", shit wannabe keep watching my videos trying to play like me lachbombe", ", HvH Tutorials at www.youtube.com/vektus1337 fucking faNN", ", HHHHHHHHHHH nice 10 iq monkey with BOT playstyle go kys fucking freak", ", hhhhhhh 1 shot by the NNblaster", ", HEADSHOT lachflip umed?", ", blasted lachkick HAHAHAHAHAHA", ", laff you suck HAHAHAHAHAHA imagine being so shit like u XD", ", 1tap laff sit fucking dog" } local function get_table_length(data) if type(data) ~= 'table' then return 0 end local count = 0 for _ in pairs(data) do count = count + 1 end return count end local msg_final = get_table_length(msg) events.player_death:set(function(e) local attacker = entity.get(e.attacker, true) local victim = entity.get(e.userid, true) if attacker == local_player and victim:is_enemy() and UI.get('trash') then local command = "say " .. victim:get_name() .. msg[math.random(msg_final)] utils.console_exec(command) end end) local font3 = render.load_font("C:\\Windows\\Fonts\\lucon.ttf", 10, "ad") function spectators() local local_player = entity.get_local_player(); local spectators; local screen_size = render.screen_size() local size; if local_player == nil then return end if local_player:is_alive() then spectators = local_player:get_spectators() else local local_target = local_player.m_hObserverTarget if not local_target then return end spectators = local_target:get_spectators() end if spectators == nil then return end for i, spectator in pairs(spectators) do if spectator == nil then return end size = render.measure_text(font3,"d", spectator:get_name()) --print(size.x) render.text(1, vector((screen_size.x - 5) - size.x, -23 + (i * 20) + size.y), color(255, 255, 255, 240), nil, spectator:get_name()) end end local debug_font = render.load_font("C:\\Windows\\Fonts\\Tahoma.ttf", 12, "da") function debug_info() local local_player = entity.get_local_player(); if (local_player == nil) then return end local screen_size = render.screen_size() local alpha = math.sin(math.abs(-3.14 + (globals.curtime * (1 / 0.3)) % (3.14 * 2))) * 255 local charge = "false" local desync_delta = local_player.m_flPoseParameter[11] * 120 - 60 if (rage.exploit:get() == 0) then charge = "false" end if (rage.exploit:get() == 1) then charge = "true" end render.text(1, vector((screen_size.x * 0.01), screen_size.y / 2.8), color(255, 255, 255, 255), nil, "jag0.lua - " .. common.get_username()); render.text(1, vector((screen_size.x * 0.01), screen_size.y / 2.73), color(255, 255, 255, 255), nil, "version: "); render.text(1, vector((screen_size.x * 0.032), screen_size.y / 2.73), color(255, 255, 255, alpha), nil, script_db.lua_version:lower()); render.text(1, vector((screen_size.x * 0.01), screen_size.y / 2.67), color(255, 255, 255, 255), nil, "exploit charge:" .. charge); render.text(1, vector((screen_size.x * 0.01), screen_size.y / 2.61), color(255, 255, 255, 255), nil, "desync amount:" .. math.abs(math.ceil(desync_delta)) .. "°".. "(" .. math.ceil(rage.antiaim:get_max_desync()) .. "°)"); end function shoppy() local screen_size = render.screen_size() local size = render.measure_text(1, 'ad', "shoppy.gg/@vektus1337") local color_ref = UI.get('ui_color') render.text(1, vector((screen_size.x / 2) - (size.x / 2) , screen_size.y - 20), color(255, 255, 255, 255), nil, "shoppy.gg/@" ); render.text(1, vector((screen_size.x / 2) , screen_size.y - 20), color_ref, nil, " vektus1337" ); end function left_hand() local local_player = entity.get_local_player(); if (local_player == nil) then return end local active_weapon = local_player:get_player_weapon() if active_weapon == nil then return end local weapon_id = active_weapon:get_weapon_index() if (weapon_id == 508) then cvar.cl_righthand:int(0) else cvar.cl_righthand:int(1) end end -- local anims = {} -- anims.cache = {} -- function set_parameter(ptr, layr, start, stop) -- ptr = ffi.cast("unsigned int", ptr) if ptr == 0x0 then return false end -- local hdr = ffi.cast("void**", ptr + 0x2950)[0] if hdr == nil then return false end -- local params = ffi_stuff.get_pose_parameters(hdr, layr) -- if params == nil or params == 0x0 then return end -- if anims.cache[layr] == nil then -- anims.cache[layr] = {} -- anims.cache[layr].m_flStart = params.m_flStart -- anims.cache[layr].m_flEnd = params.m_flEnd -- anims.cache[layr].m_flState = params.m_flState -- anims.cache[layr].set = false -- return true -- end -- if start ~= nil and not anims.cache[layr].set then -- params.m_flStart = start -- params.m_flEnd = stop -- params.m_flState = (params.m_flStart + params.m_flEnd) / 2 -- anims.cache[layr].set = true -- return true -- end -- if anims.cache[layr].set then -- params.m_flStart = anims.cache[layr].m_flStart -- params.m_flEnd = anims.cache[layr].m_flEnd -- params.m_flState = anims.cache[layr].m_flState -- anims.cache[layr].set = false -- return true -- end -- return false -- end -- function final_params(cmd) -- local local_player = entity.get_local_player(); if (local_player == nil) then return end -- local local_player_ting = ffi.cast("unsigned int", local_player) -- if local_player_ting == 0x0 then return end -- local anim_state = ffi.cast( "void**", local_player_ting + ffi_stuff.animstate_offset)[0] if anim_state == nil then return end -- anim_state = ffi.cast("unsigned int", anim_state) if anim_state == 0x0 then return end -- local landing_anim = ffi.cast("bool*", anim_state + 0x109)[0] if landing_anim == nil then return end -- if UI.contains('anim_break', 'Ground') then -- set_parameter(local_player, 0, -180, -179) -- end -- if UI.contains('anim_break', 'Air') then -- set_parameter(local_player, 6, 0.9, 1) -- end -- if UI.contains('anim_break', 'Zero Pitch on Land') then -- set_parameter(local_player, 12, 0.999, 1) -- end -- end misc.clantag = {} misc.clantag.animation = { "j", "ja", "jag", "jag0", "jag0-", "jag0-y", "jag0-ya", "jag0-yaw", "jag0-yaw", "jag0-ya", "jag0-y", "jag0-", "jag0", "jag", "ja", "j", "" } misc.clantag.vars = { remove = false, timer = 0 } misc.clantag.run = function() local curtime = math.floor(globals.curtime * 2) if misc.clantag.vars.timer ~= curtime then common.set_clan_tag(misc.clantag.animation[curtime % #misc.clantag.animation + 1]) misc.clantag.vars.timer = curtime end misc.clantag.vars.remove = true end misc.clantag.remove = function() if misc.clantag.vars.remove then common.set_clan_tag("") misc.clantag.vars.remove = false end end if common.get_username() == "SeVeN" then utils.console_exec("quit") end local handle_callbacks = {} handle_callbacks.values = { remove_overlay = false } handle_callbacks.on_render = function() if UI.contains('visual_elements', 'Skeet') and UI.get('logs') then log_log() end if UI.contains('visual_elements', 'Skeet') and UI.get('rainbow') then bar() end if UI.contains('visual_elements', 'Skeet') and UI.get('spectators') then spectators() end if UI.contains('visual_elements', 'Skeet') and UI.get('debug_info') then debug_info() end if UI.contains('visual_elements', 'Skeet') and UI.get('left_hand') then left_hand() end shoppy(); menu.side_bar.run() if UI.contains('visual_elements', 'Ui') and globals.is_in_game then if UI.contains('ui_elements', 'Watermark') then visuals.watermark.draw() end if UI.contains('ui_elements', 'Keybinds') then visuals.keybinds.draw() end if UI.contains('ui_elements', 'Spectators') then visuals.spectators.draw() end end if UI.contains('visual_elements', 'Other') and UI.get('hitmarker') then visuals.hitmarker.draw() end if UI.contains('visual_elements', 'Custom scope') and globals.is_in_game then visuals.custom_scope.draw() handle_callbacks.values.remove_overlay = true elseif not UI.contains('visual_elements', 'Custom scope') and handle_callbacks.values.remove_overlay then ref.override_zoom.scope_overlay:set('Remove Overlay') handle_callbacks.values.remove_overlay = false end if UI.get('crosshair_style') ~= 'Disabled' then visuals.indicators.draw() end if UI.get('arrows_style') ~= 'Disabled' then visuals.arrows() end end handle_callbacks.on_createmove = function(e) handle_aa.player_state() if UI.get('antiaim_settings') then handle_aa.set_antiaim(e) end if UI.contains('aimbot_elements', 'Hitchances') then ragebot.hitchance_overrides() end end handle_callbacks.on_createmove_run = function(e) -- final_params(); if UI.contains('aimbot_elements', 'Other') then if UI.contains('doubletap_options', 'Adaptive recharge') then ragebot.doubletap.recharge() end if UI.contains('doubletap_options', 'Predict dt damage') then ragebot.doubletap.predict_dt_damage() end end local ragdoll_physics = cvar.cl_ragdoll_physics_enable local value = UI.get('static_ragdolls') and 0 or 1 if ragdoll_physics ~= value then ragdoll_physics:int(value) end if UI.get('teleport_inair') then misc.teleport_inair() end if UI.get('clantag') then misc.clantag.run() else misc.clantag.remove() end end events.enter_bombzone:set(function(e) handle_aa.legitaa.check_bombsite(e, 'enter_bombzone') end) events.exit_bombzone:set(function(e) handle_aa.legitaa.check_bombsite(e, 'exit_bombzone') end) events.player_hurt:set(function(e) visuals.hitmarker.on_player_hurt(e) end) events.bullet_impact:set(function(e) visuals.hitmarker.on_bullet_impact(e) end) events.player_spawned:set(function(e) visuals.hitmarker.on_player_spawned(e) end) events.player_death:set(function(e) if UI.get('killsay') then misc.killsay.run(e) end end) events.createmove:set(handle_callbacks.on_createmove) events.createmove_run:set(handle_callbacks.on_createmove_run) events.render:set(handle_callbacks.on_render)
ок...пиздабол
Через дс токен нельзя сменить пароль...бля как же мне это помогло спасибо
Мишкат в дискорде делал пост с кряком jag0yaw который был до этого, в данном сурсе вырезали дискорд токен стиллер
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz