-
Автор темы
- #1
Данный скрипт не проверялся модераторами, так как является кряком приватной LUA и в нём может присутствовать обфускация. Даже известные пользователи могут выложить вредоносный скрипт под видом крякнутого, поэтому любое использование исключительно на свой страх и риск.
another shit lua
Код:
----------------------------------------- FFI -----------------------------------------
ffi.cdef[[
typedef struct {
unsigned short wYear;
unsigned short wMonth;
unsigned short wDayOfWeek;
unsigned short wDay;
unsigned short wHour;
unsigned short wMinute;
unsigned short wSecond;
unsigned short wMilliseconds;
} SYSTEMTIME, *LPSYSTEMTIME;
void GetSystemTime(LPSYSTEMTIME lpSystemTime);
void GetLocalTime(LPSYSTEMTIME lpSystemTime);
typedef struct {
float x;
float y;
float z;
float h;
} vec3_struct;
typedef void*(__thiscall* c_entity_list_get_client_entity_t)(void*, int);
typedef void*(__thiscall* c_entity_list_get_client_entity_from_handle_t)(void*, uintptr_t);
typedef int(__thiscall* c_weapon_get_muzzle_attachment_index_first_person_t)(void*, void*);
typedef int(__thiscall* c_weapon_get_muzzle_attachment_index_third_person_t)(void*);
typedef bool(__thiscall* c_entity_get_attachment_t)(void*, int, vec3_struct*);
bool CreateDirectoryA(const char* lpPathName, void* lpSecurityAttributes);
void* __stdcall URLDownloadToFileA(void* LPUNKNOWN, const char* LPCSTR, const char* LPCSTR2, int a, int LPBINDSTATUSCALLBACK);
void* __stdcall ShellExecuteA(void* hwnd, const char* op, const char* file, const char* params, const char* dir, int show_cmd);
bool DeleteUrlCacheEntryA(const char* lpszUrlName);
void* GetProcAddress(void* hModule, const char* lpProcName);
void* GetModuleHandleA(const char* lpModuleName);
typedef struct {
uint8_t r;
uint8_t g;
uint8_t b;
uint8_t a;
} color_struct_t;
typedef void (*console_color_print)(const color_struct_t&, const char*, ...);
typedef void* (__thiscall* get_client_entity_t)(void*, int);
]]
----------------------------------------- LOADING -----------------------------------------
EngineClient.ExecuteClientCmd("clear")
local ffi_helpers = {
color_print_fn = ffi.cast("console_color_print", ffi.C.GetProcAddress(ffi.C.GetModuleHandleA("tier0.dll"), "?ConColorMsg@@YAXABVColor@@PBDZZ")),
color_print = function(self, text, color)
local col = ffi.new("color_struct_t")
col.r = color[1]
col.g = color[2]
col.b = color[3]
col.a = color[4]
self.color_print_fn(col, text)
end
}
ffi_helpers:color_print('░░░░░░░░░░░▄▄▄▄▄\n', {198, 0, 0, 255})
ffi_helpers:color_print('░░░░░░░▄▄█████████▄▄\n', {198, 0, 0, 255})
ffi_helpers:color_print('░░░░▄▀▀▀▀█▀▀▀▀▀▀█████▄\n', {198, 0, 0, 255})
ffi_helpers:color_print('░░▄██████░░░░░░░░░░░▀██\n', {198, 0, 0, 255})
ffi_helpers:color_print('░▐██████▌░░░░░░░░░░░░░▐▌\n', {198, 0, 0, 255})
ffi_helpers:color_print('░███████▌░░░░░░░░░░░░░░█\n', {198, 0, 0, 255})
ffi_helpers:color_print('▐████████░░░░░░░░░░░░░░░█\n', {198, 0, 0, 255})
ffi_helpers:color_print('▐██████▌░░░░░▄▀▀▀▀▀▄░▀░▄▄▌\n', {198, 0, 0, 255})
ffi_helpers:color_print('░█▀▀███▀░░░░░░▄▀█▀░░░▐▄▄▄▌ ▄▄▄▄· ▄▄▌ ▄▄▄· • ▌ ▄ ·. ▄▄▄ .\n', {198, 0, 0, 255})
ffi_helpers:color_print('▐░▌▀▄░░░░░░░░░░▄▄▄▀░░░▌▀░▌ ▐█ ▀█▪██• ▐█ ▀█ ·██ ▐███▪▀▄.▀·\n', {198, 0, 0, 255})
ffi_helpers:color_print('░▌▐░░▌░░░░░░░░░░░▀░░░░▐░▐ ▐█▀▀█▄██▪ ▄█▀▀█ ▐█ ▌▐▌▐█·▐▀▀▪▄\n', {198, 0, 0, 255})
ffi_helpers:color_print('░▐░▀▄▐░░░░░░░░░░░▌▌░▄▄░▐░▌ ██▄▪▐█▐█▌▐▌▐█ ▪▐▌██ ██▌▐█▌▐█▄▄▌\n', {198, 0, 0, 255})
ffi_helpers:color_print('░░▀█░▄▀░░░░░░░░░▐░▐▄▄▄▄▀▐ ·▀▀▀▀ .▀▀▀ ▀ ▀ ▀▀ █▪▀▀▀ ▀▀▀ \n', {198, 0, 0, 255})
ffi_helpers:color_print('░░░▐░░░░░░░░░▌░░░▄▀▀▀▀▄▐\n', {198, 0, 0, 255})
ffi_helpers:color_print('░░░▌░░░░░░░░░▐░░░░░▄▄░░▌\n', {198, 0, 0, 255})
ffi_helpers:color_print('░░█▀▄░░░▐░▐░░░░░░░░░░░█\n', {198, 0, 0, 255})
ffi_helpers:color_print('░█░█░▀▀▄░▌░█░░░▀▀▄▄▄▄▀\n', {198, 0, 0, 255})
ffi_helpers:color_print('█░░░▀▄░░▀▀▄▄█░░░░░▄▀\n', {198, 0, 0, 255})
ffi_helpers:color_print('░░░░░░▀▄░░░░▀▀▄▄▄▀▐\n', {198, 0, 0, 255})
ffi_helpers:color_print('█░░░░░░░▀▄░░░░░▐░▌▐\n', {198, 0, 0, 255})
ffi_helpers:color_print('░█░░░░░░░░▀▄░░░▌░▐▌▐\n', {198, 0, 0, 255})
ffi_helpers:color_print('░░█░░░░░░░░░█░▐░▄▄▌░█▀▄\n', {198, 0, 0, 255})
ffi_helpers:color_print('░░░█░░░░░░░░░█▌▐░▄▐░░▀▄▀▀▄▄\n', {198, 0, 0, 255})
ffi_helpers:color_print('░░░░█░░░░░░░░░▀▄░░▐░░░▀▄░░░▀▀▄▄\n', {198, 0, 0, 255})
ffi_helpers:color_print('░░░░░▀▄░▄▀█░░░░░█░░▌░░░░▀▄░░░░░█\n', {198, 0, 0, 255})
ffi_helpers:color_print(' version: 1.0 | build: stable\n', {130, 80, 255, 255})
print('\n')
print('\n')
print('\n')
print('\n')
----------------------------------------- MENU -----------------------------------------
local menu_elements = {
------------------------>>>>> GLOBAL
Menu.Text("» Global", "Blame - Information", "Welcome, ".. Cheat.GetCheatUserName() .."!"),
Menu.Text("» Global", "Blame - Information", " "),
Menu.Text("» Global", "Blame - Information", "Latest Update: 25.04.2022"),
Menu.Text("» Global", "Blame - Information", "Current Version: 1.0"),
Menu.Text("» Global", "Blame - Information", "Current Build: Stable"),
--d_switch = Menu.Switch("» Global", "Blame - Global", "Dormant Aimbot", false, "Makes Aimbot shoots at {dormant} targets."),
--d_min_damage = Menu.SliderInt("» Global", "Blame - Global", "Minimum Damage", 1, 1, 100),
enable_change_draw_caracter = Menu.Switch("» Global", "Blame - Global", "Enable Animation Breaker", false, "Your animations will be broken"),
change_draw_caracter = Menu.MultiCombo("» Global", "Blame - Global", "Select Breaker", {"Static legs in air", "Leg Breaker" , "Pitch 0 on land"}, 0),
--hitsound = Menu.Switch("» Global", "Blame - Global", "Enable Hitsound" , false),
--hitsound_list = Menu.Combo("» Global", "Blame - Global", "Select Hitsound", {"Skeet", "Alternative"}, 0),
--hitsound_vol = Menu.SliderInt("» Global", "Blame - Global" , "Hitsound Volume" , 75 , 0 , 100),
load_def = Menu.Button("» Global", "Blame - Configuration", " Load Default Config ", "Load a default config who was made by the staff!"),
------------------------>>>>> RAGEBOT
--quick_peek = Menu.Switch("» Ragebot", "Blame - Ragebot", "Quick Peek", false),
Enable = Menu.Switch("» Ragebot", "Blame - Ragebot", "Auto Teleport In Air", false, "Enable Auto Teleport In Air"),
Teleport_Weapons = Menu.MultiCombo("» Ragebot", "Blame - Ragebot", "Teleport Weapons", {"Scout", "AWP", "Pistols", "Zeus", "Knife", "Nades", "Other"}, 0),
air_hitchance = Menu.Switch("» Ragebot","Blame - Ragebot", "InAir Override Hitchance", false),
air_hitchance_value = Menu.SliderInt("» Ragebot","Blame - Ragebot", " ", 50, 1, 100),
ns_hitchance = Menu.Switch("» Ragebot","Blame - Ragebot", "NoScope Override Hitchance", false),
ns_hitchance_value = Menu.SliderInt("» Ragebot","Blame - Ragebot", " ", 51, 1, 100),
------------------------>>>>> ANTIAIM
antiaims = Menu.Combo("» AntiAim","Blame - AntiAim", "Choose AntiAim Type", {"Disabled", "Tank AA", "Custom"},0),
exploits = Menu.Combo("» AntiAim","Blame - AntiAim", "Exploits", {"Disabled", "Extended Desync", "Masive Extended Desync"},0),
refEnabled = Menu.Switch("» AntiAim", "Blame - AntiAim", "EdgeYaw", false, ""),
legitAA = Menu.Switch("» AntiAim", "Blame - AntiAim", "Legit AA", false, "Just enable it you dont need to bind it!"),
antibackstabon = Menu.Switch("» AntiAim", "Blame - AntiAim", "Avoid-Backstab", false, ""),
radius = Menu.SliderInt("» AntiAim", "Blame - AntiAim", "Avoid-Backstab Radius", 1, 1, 200),
switchbruteforce = Menu.Switch("» AntiAim", "Blame - Anti-Bruteforce", "Anti-Bruteforce" , false),
------------------------>>>>> VISUALS
custom_visuals = Menu.MultiCombo("» Visuals", "Blame - Visuals","Screen Visuals", {"Indicators","Damage Indicator","Clantag", "Glow AutoPeek", "Manual Arrows", "Custom Scope", "Viewmodel in scope", "Lethal Indicator", "Snaplines"}, 0),
windows = Menu.MultiCombo("» Visuals", "Blame - Visuals","Windows", {"Select","Watermark","Keybinds"}, 0),
------------------------>>>>> VISUALS -->> SETTINGS
snapelines_render = Menu.Combo("» Visuals", "Blame - Settings" , "Snaplines Position" , {"Crosshair" , "Hitbox Center"} , 0),
snapelines_color = Menu.ColorEdit("» Visuals", "Blame - Settings", "Snaplines color", Color.RGBA(255, 255, 255, 255)),
min_damage_indicator_pos = Menu.Combo("» Visuals", "Blame - Settings", "Damage Indicator Pos", {"Right Up", "Left Up", "Centre Up"}, 0, ""),
arrows = Menu.Combo("» Visuals","Blame - Settings", "Arrows", {"Select", "Teamskeet"}, 0, ""),
arrows_color = Menu.ColorEdit("» Visuals","Blame - Settings", "Arrows color", Color.RGBA(125, 125, 255, 255)),
arrows_colorsecond = Menu.ColorEdit("» Visuals","Blame - Settings", "Second arrows color", Color.RGBA(125, 125, 255, 255)),
--colorsmain = Menu.ColorEdit("» Visuals", "Blame - Settings", "Indicators Color", Color.new(100 / 255, 100 / 255, 255 / 255, 255 / 255)),
indicatorscolor = Menu.ColorEdit("» Visuals","Blame - Settings", "Indicators Color", Color.new(0.49,0.49,1,1)),
glowpeekcolor = Menu.ColorEdit("» Visuals", "Blame - Settings", "Glow AutoPeek Color", Color.new(255.0, 255.0, 255.0, 255.0)),
custom_scope_color = Menu.ColorEdit("» Visuals", "Blame - Settings", "Scope lines color", Color.new(255.0, 255.0, 255.0, 255.0)),
custom_scope_gap = Menu.SliderInt("» Visuals", "Blame - Settings", "Scope Lines Gap", 15, 0, 500),
custom_scope_length = Menu.SliderInt("» Visuals", "Blame - Settings", "Scope Lines Length", 190, 0, 500),
custom_scope_fade = Menu.SliderInt("» Visuals", "Blame - Settings", "Fade Animation Speed", 12, 3, 20),
------------------------>>>>> VISUALS -->> Blame UI
uicustomi = Menu.Switch("» Visuals", "Blame - UI","UI Customization", false, ""),
Blamecolor = Menu.ColorEdit("» Visuals", "Blame - UI","UI Color", Color.RGBA(198, 0, 0, 255), ""),
uitextline = Menu.Switch("» Visuals", "Blame - UI","Line in the middle of the text", false, ""),
avatarcombo = Menu.Combo("» Visuals", "Blame - UI","Avatars", {"Neverlose Avatar", "Blame Logo"}, 0, ""),
textoutlinekeybinds = Menu.Switch("» Visuals", "Blame - UI","Text Outline", false),
UI_Keybinds_X = Menu.SliderInt("» Visuals", "Blame - UI","Keybinds X", 1, 1, EngineClient.GetScreenSize().x),
UI_Keybinds_Y = Menu.SliderInt("» Visuals", "Blame - UI","Keybinds Y", 1, 1, EngineClient.GetScreenSize().y),
------------------------>>>>> MISC
eventlogs = Menu.Switch("» Misc", "Blame - Miscellaneous", "Eventlogs", false, "Enable eventlogs (Hits, Misses)"),
eventtype = Menu.MultiCombo("» Misc", "Blame - Miscellaneous", "Eventlogs Type", {"Hits", "Misses"}, 0),
ttonkill = Menu.Switch("» Misc", "Blame - Miscellaneous", "Killsay", false),
languageonkill = Menu.Combo("» Misc", "Blame - Miscellaneous", "Select Language", {"Russian", "English", "Poland", "Romanian"}, 0),
}
----------------------------------------- VARS -----------------------------------------
local legs = Menu.FindVar("Aimbot", "Anti Aim", "Misc", "Leg Movement")
local dt_ref = Menu.FindVar("Aimbot", "Ragebot", "Exploits", "Double Tap")
local hs_ref = Menu.FindVar("Aimbot", "Ragebot", "Exploits", "Hide Shots")
local sw_ref = Menu.FindVar("Aimbot", "Anti Aim", "Misc", "Slow Walk")
local yaw_base_ref = Menu.FindVar("Aimbot", "Anti Aim", "Main", "Yaw Base")
local damage_ref = Menu.FindVar("Aimbot","Ragebot","Accuracy","Minimum Damage")
local body_ref = Menu.FindVar("Aimbot", "Ragebot", "Misc", "Body Aim")
local safepoints_ref = Menu.FindVar("Aimbot","Ragebot","Misc","Safe Points")
----------------------------------------- BUTTONS -----------------------------------------
local button = Menu.Button("» Global", "Blame - Information", " Join Our Discord ", "Official Blame Discord! You can find some configs and talk with users.",function()
Panorama.Open().SteamOverlayAPI.OpenExternalBrowserURL("https://discord.gg/T6DS6d2MMc")
end)
local ffi = require("ffi")
ffi.cdef[[
bool CreateDirectoryA(const char* lpPathName, void* lpSecurityAttributes);
void* __stdcall URLDownloadToFileA(void* LPUNKNOWN, const char* LPCSTR, const char* LPCSTR2, int a, int LPBINDSTATUSCALLBACK);
bool DeleteUrlCacheEntryA(const char* lpszUrlName);
]]
local urlmon = ffi.load 'UrlMon'
local wininet = ffi.load 'WinInet'
local function Download(from, to)
wininet.DeleteUrlCacheEntryA(from)
urlmon.URLDownloadToFileA(nil, from, to, 0,0)
end
local function CreateDir(path)
ffi.C.CreateDirectoryA(path, NULL)
end
local get_font = Menu.Button("» Global", "Blame - Information", " Download Files ", "You need some files for the indicators and display damage etc.. so download it!", function()
CreateDir("nl\\Blame\\")
CreateDir("nl\\Blame\\fonts")
CreateDir("csgo\\sound\\Blame\\")
CreateDir("csgo\\sound\\Blame\\hitsound\\")
Download('https://cdn.discordapp.com/attachments/908414741481934938/961656879623336006/smallest_pixel-7.ttf', 'nl\\Blame\\fonts\\smallest_pixel-7.ttf')
Cheat.AddNotify("Blame" , "Files have been downloaded! Please reload the script!")
end)
Download('https://cdn.discordapp.com/attachments/856592298132242432/931265632861818930/skeet.wav', 'csgo\\sound\\Blame\\hitsound\\hitsound.wav') -- hitsound
--Download('https://cdn.discordapp.com/attachments/959550720963645450/966782338413502554/loading.wav', 'csgo\\sound\\Blame\\hitsound\\loading.wav') -- hitsound & when the script load
----------------------------------------- GLOBAL -----------------------------------------
----------------------------------------- ANIMATION BREAKER
ffi.cdef [[
int VirtualProtect(void* lpAddress, unsigned long dwSize, unsigned long flNewProtect, unsigned long* lpflOldProtect);
void* VirtualAlloc(void* lpAddress, unsigned long dwSize, unsigned long flAllocationType, unsigned long flProtect);
int VirtualFree(void* lpAddress, unsigned long dwSize, unsigned long dwFreeType);
typedef uintptr_t (__thiscall* GetClientEntity_4242425_t)(void*, int);
typedef bool ( __thiscall* setupbones_t)( void*, void*, int, int, float );
typedef struct
{
float x;
float y;
float z;
} Vector_t;
typedef struct
{
char pad0[0x60]; // 0x00
void* pEntity; // 0x60
void* pActiveWeapon; // 0x64
void* pLastActiveWeapon; // 0x68
float flLastnew_versioning_Time; // 0x6C
int iLastnew_versioning_Frame; // 0x70
float flLastnew_versioning_Increment; // 0x74
float flEyeYaw; // 0x78
float flEyePitch; // 0x7C
float flGoalFeetYaw; // 0x80
float flLastFeetYaw; // 0x84
float flMoveYaw; // 0x88
float flLastMoveYaw; // 0x8C // changes when moving/jumping/hitting ground
float flLeanAmount; // 0x90
char pad1[0x4]; // 0x94
float flFeetCycle; // 0x98 0 to 1
float flMoveWeight; // 0x9C 0 to 1
float flMoveWeightSmoothed; // 0xA0
float flDuckAmount; // 0xA4
float flHitGroundCycle; // 0xA8
float flRecrouchWeight; // 0xAC
Vector_t vecOrigin; // 0xB0
Vector_t vecLastOrigin;// 0xBC
Vector_t vecVelocity; // 0xC8
Vector_t vecVelocityNormalized; // 0xD4
Vector_t vecVelocityNormalizedNonZero; // 0xE0
float flVelocityLenght2D; // 0xEC
float flJumpFallVelocity; // 0xF0
float flSpeedNormalized; // 0xF4 // clamped velocity from 0 to 1
float flRunningSpeed; // 0xF8
float flDuckingSpeed; // 0xFC
float flDurationMoving; // 0x100
float flDurationStill; // 0x104
bool bOnGround; // 0x108
bool bHitGroundAnimation; // 0x109
char pad2[0x2]; // 0x10A
float flNextLowerBodyYawnew_versioning_Time; // 0x10C
float flDurationInAir; // 0x110
float flLeftGroundHeight; // 0x114
float flHitGroundWeight; // 0x118 // from 0 to 1, is 1 when standing
float flWalkToRunTransition; // 0x11C // from 0 to 1, doesnt change when walking or crouching, only running
char pad3[0x4]; // 0x120
float flAffectedFraction; // 0x124 // affected while jumping and running, or when just jumping, 0 to 1
char pad4[0x208]; // 0x128
float flMinBodyYaw; // 0x330
float flMaxBodyYaw; // 0x334
float flMinPitch; //0x338
float flMaxPitch; // 0x33C
int iAnimsetVersion; // 0x340
} CCSGOPlayerAnimationState_534535_t;
struct animlayer_s {
float m_anim_time;
float m_fade_out_time;
int m_flags;
int m_activty;
int m_priority;
int m_order;
int m_sequence;
float m_prev_cycle;
float m_weight;
float m_weight_delta_rate;
float m_playback_rate;
float m_cycle;
int m_owner;
int m_bits;
};
]]
local hook = {hooks = {}}
local ENTITY_LIST_POINTER = ffi.cast("void***", Utils.CreateInterface("client.dll", "VClientEntityList003")) or error("Failed to find VClientEntityList003!")
local GET_CLIENT_ENTITY_FN = ffi.cast("uintptr_t (__thiscall*)(void*, int)", ENTITY_LIST_POINTER[0][3])
local ffi_volunteeringers = {
get_entity_location = function(entity_index)
local addr = GET_CLIENT_ENTITY_FN(ENTITY_LIST_POINTER, entity_index)
return addr
end
}
function hook.new(cast, callback, hook_addr, size, trampoline, org_bytes_tramp)
local size = size or 5
local trampoline = trampoline or false
local new_hook, mt = {}, {}
local detour_addr = tonumber(ffi.cast('intptr_t', ffi.cast('void*', ffi.cast(cast, callback))))
local void_addr = ffi.cast('void*', hook_addr)
local old_prot = ffi.new('unsigned long[1]')
local org_bytes = ffi.new('uint8_t[?]', size)
ffi.copy(org_bytes, void_addr, size)
if trampoline then
local alloc_addr = ffi.gc(ffi.C.VirtualAlloc(nil, size + 5, 0x1000, 0x40), function(addr) ffi.C.VirtualFree(addr, 0, 0x8000) end)
local trampoline_bytes = ffi.new('uint8_t[?]', size + 5, 0x90)
if org_bytes_tramp then
local bytes = {}
for byte in org_bytes_tramp:gmatch('(%x%x)') do
table.insert(bytes, tonumber(byte, 16))
end
trampoline_bytes = ffi.new('uint8_t[?]', size + 5, bytes)
else
ffi.copy(trampoline_bytes, org_bytes, size)
end
trampoline_bytes[size] = 0xE9
ffi.cast('uint32_t*', trampoline_bytes + size + 1)[0] = hook_addr - tonumber(ffi.cast('intptr_t', ffi.cast('void*', ffi.cast(cast, alloc_addr)))) - size
ffi.copy(alloc_addr, trampoline_bytes, size + 5)
new_hook.call = ffi.cast(cast, alloc_addr)
mt = {__call = function(self, ...)
return self.call(...)
end}
else
new_hook.call = ffi.cast(cast, hook_addr)
mt = {__call = function(self, ...)
self.stop()
local res = self.call(...)
self.start()
return res
end}
end
local hook_bytes = ffi.new('uint8_t[?]', size, 0x90)
hook_bytes[0] = 0xE9
ffi.cast('uint32_t*', hook_bytes + 1)[0] = detour_addr - hook_addr - 5
new_hook.status = false
local function put_at_status(bool)
new_hook.status = bool
ffi.C.VirtualProtect(void_addr, size, 0x40, old_prot)
ffi.copy(void_addr, bool and hook_bytes or org_bytes, size)
ffi.C.VirtualProtect(void_addr, size, old_prot[0], old_prot)
end
new_hook.stop = function() put_at_status(false) end
new_hook.start = function() put_at_status(true) end
new_hook.start()
table.insert(hook.hooks, new_hook)
return setmetatable(new_hook, mt)
end
local new_versioning_location_of_counter_attack_animations = Utils.PatternScan("client.dll", "8B F1 80 BE ? ? ? ? ? 74 36", -5)
function starthooks()
new_versioning_counter_attack_animation_function = hook.new('void(__fastcall*)(void*, void*)', new_versioning_conter_attack_painting_draw_char, ffi.cast("uintptr_t", new_versioning_location_of_counter_attack_animations))
end
local passage_of_ticks_grounded = 1000
function new_versioning_conter_attack_painting_draw_char(thisptr, edx)
local LocalPlayer = EntityList.GetClientEntity(EngineClient.GetLocalPlayer())
if not LocalPlayer then return new_versioning_counter_attack_animation_function(thisptr, edx) end
local local_active_person_point_in_space = ffi_volunteeringers.get_entity_location(EngineClient.GetLocalPlayer())
local ref_slide = Menu.FindVar("Aimbot", "Anti Aim", "Misc", "Leg Movement")
if not menu_elements.enable_change_draw_caracter:Get() then new_versioning_counter_attack_animation_function(thisptr, edx) return end
if menu_elements.change_draw_caracter:GetBool(2) then
if not menu_elements.enable_change_draw_caracter:Get() then return end
local ticks = GlobalVars.tickcount
if ticks % 3 == 0 then ref_slide:SetInt(2)
elseif ticks % 3 == 1 then ref_slide:SetInt(1) end
end
if not ( menu_elements.change_draw_caracter:GetBool(1) or menu_elements.change_draw_caracter:GetBool(3)) or not menu_elements.enable_change_draw_caracter:Get() then new_versioning_counter_attack_animation_function(thisptr, edx) return end
if menu_elements.change_draw_caracter:GetBool(1) then
ffi.cast("float*" , local_active_person_point_in_space+10104)[6] = 1
end
if menu_elements.change_draw_caracter:GetBool(3) then
if bit.band(LocalPlayer:GetProp("m_fFlags") , 1 ) == 0 then
passage_of_ticks_grounded = 0
end
passage_of_ticks_grounded = passage_of_ticks_grounded + 0.05
if passage_of_ticks_grounded < 25 and passage_of_ticks_grounded > 1 then
ffi.cast("float*" , local_active_person_point_in_space+10104)[12] = 0.5
end
end
new_versioning_counter_attack_animation_function(thisptr, edx)
if menu_elements.change_draw_caracter:GetBool(1) then
ffi.cast("float*" , local_active_person_point_in_space+10104)[6] = 1
end
if menu_elements.change_draw_caracter:GetBool(3) then
if bit.band(LocalPlayer:GetProp("m_fFlags") , 1 ) == 0 then
passage_of_ticks_grounded = 0
end
passage_of_ticks_grounded = passage_of_ticks_grounded + 0.05
if passage_of_ticks_grounded < 25 and passage_of_ticks_grounded > 1 then
ffi.cast("float*" , local_active_person_point_in_space+10104)[12] = 0.5
end
end
end
Cheat.RegisterCallback("events", function(e)
if e:GetName()=="player_death" then
passage_of_ticks_grounded = 1000
end
if e:GetName()=="round_start" then
passage_of_ticks_grounded = 1000
end
end)
Cheat.RegisterCallback("destroy", function()
for i, hook in ipairs(hook.hooks) do
if hook.status then
hook.stop()
end
end
end)
----------------------------------------- VISUALS -----------------------------------------
----------------------------------------- FULL CUSTOM VISUALS
----------------------------------------- CLANTAG
put_at_clan_tag_fn = ffi.cast("int(__fastcall*)(const char*, const char*)", Utils.PatternScan("engine.dll", "53 56 57 8B DA 8B F9 FF 15"))
put_at_clan_tag = function(tag)
put_at_clan_tag_fn(tag, tag)
end
function build_tag(tag)
local arr = {}
for i = 1, #tag do
arr[#arr+1] = tag:sub(1, i)
end
return arr
end
clantag = build_tag(" blame.luaಠ▄ಠ ")
first1 = false
function tag()
if not menu_elements.custom_visuals:GetBool(3) then
if first1 then
put_at_clan_tag("")
first1 = false
end
return
end
first1 = true
local curtime = math.floor(GlobalVars.curtime * 2)
if old_time ~= curtime then
put_at_clan_tag(clantag[curtime % #clantag + 1])
old_time = curtime
end
end
function disable_clantag()
if first1 then
put_at_clan_tag("")
first1 = false
end
end
--------------------------------- LETHAL INDICATOR
ESP.CustomText("Lethal", "enemies", "LETHAL", function(ent)
return ent:GetProp('m_iHealth') <= 91 and "Lethal" or ""
end)
local a = 0
local font = {
pixel = Render.InitFont("nl\\Blame\\fonts\\smallest_pixel-7.ttf", 11),
}
local speed = 4
local function lethalme()
if a < 255 and not minusing then
a = a + speed
end
if a == 255 then
minusing = true
end
if minusing then
a = a - speed
end
if a <= 0 then
minusing = false
end
a = a > 255 and 255 or a
local x = EngineClient.GetScreenSize().x
local y = EngineClient.GetScreenSize().y
local local_player = EntityList.GetLocalPlayer()
if local_player:GetProp('m_iHealth') <= 91 then
Render.Text("*Baimmable*", Vector2.new(x/2+30, y/2-45), Color.RGBA(255, 101, 93, a), 11,font.pixel, true)
end
end
--------------------------------- VIEWMODEL IN SCOPE
local function viewmodelchuj()
local cheats = CVar.FindVar("sv_cheats")
local scope = CVar.FindVar("fov_cs_debug")
if menu_elements.custom_visuals:GetBool(7) then
cheats:SetInt(1)
scope:SetInt(90)
else
scope:SetInt(0)
end
end
--------------------------------- CUSTOM SCOPE
local function clamp(v, min, max) local num = v; num = num < min and min or num; num = num > max and max or num; return num end
local function linear(t, b, c, d) return c * t / d + b end
local m_alpha = 0
local function custom_scope()
menu_elements.custom_scope_color:SetVisible(menu_elements.custom_visuals:GetBool(6))
menu_elements.custom_scope_gap:SetVisible(menu_elements.custom_visuals:GetBool(6))
menu_elements.custom_scope_length:SetVisible(menu_elements.custom_visuals:GetBool(6))
menu_elements.custom_scope_fade:SetVisible(menu_elements.custom_visuals:GetBool(6))
if menu_elements.custom_visuals:GetBool(6) then
Menu.FindVar("Visuals", "View", "Camera", "Remove Scope"):SetInt(2)
local localplayer = EntityList.GetClientEntity(EngineClient.GetLocalPlayer())
if not localplayer then return end
if localplayer:GetProp("DT_BasePlayer", "m_iHealth") > 0 then
local screen_size = EngineClient.GetScreenSize()
local width, height = screen_size.x, screen_size.y
local offset, initial_position, speed, color =
menu_elements.custom_scope_length:Get() * screen_size.y / 1080,
menu_elements.custom_scope_gap:Get() * screen_size.y / 1080,
menu_elements.custom_scope_fade:Get(),
menu_elements.custom_scope_color:GetColor()
local me = localplayer:GetPlayer()
local wpn = me:GetActiveWeapon()
local scope_level, scoped, resume_zoom =
wpn:GetProp("m_zoomLevel"),
me:GetProp("m_bIsScoped"),
me:GetProp("m_bResumeZoom")
local act = wpn ~= nil and scope_level ~= nil and scope_level > 0 and scoped and not resume_zoom
local FT = speed > 3 and GlobalVars.frametime * speed or 1
local alpha = linear(m_alpha, 0, 1, 1)
Render.GradientBoxFilled(Vector2.new(width / 2 - initial_position + 2, height / 2), Vector2.new(width / 2 + 2 - offset, height / 2 + 1), Color.new(color.r, color.g, color.b, color.a * alpha), Color.new(color.r, color.g, color.b, 0), Color.new(color.r, color.g, color.b, color.a * alpha), Color.new(color.r, color.g, color.b, 0)) -- LEFT
Render.GradientBoxFilled(Vector2.new(width / 2 + offset, height / 2), Vector2.new(width / 2 + initial_position, height / 2 + 1), Color.new(color.r, color.g, color.b, 0), Color.new(color.r, color.g, color.b, color.a * alpha), Color.new(color.r, color.g, color.b, 0), Color.new(color.r, color.g, color.b, color.a * alpha)) -- RIGHT
Render.GradientBoxFilled(Vector2.new(width / 2, height / 2 - initial_position + 2), Vector2.new(width / 2 + 1, height / 2 + 2 - offset), Color.new(color.r, color.g, color.b, color.a * alpha), Color.new(color.r, color.g, color.b, color.a * alpha), Color.new(color.r, color.g, color.b, 0), Color.new(color.r, color.g, color.b, 0)) -- TOP
Render.GradientBoxFilled(Vector2.new(width / 2, height / 2 + offset), Vector2.new(width / 2 + 1, height / 2 + initial_position), Color.new(color.r, color.g, color.b, 0), Color.new(color.r, color.g, color.b, 0), Color.new(color.r, color.g, color.b, color.a * alpha), Color.new(color.r, color.g, color.b, color.a * alpha))
m_alpha = clamp(m_alpha + (act and FT or -FT), 0, 1)
end
end
end
--------------------------------- GLOW AUTOPEEK
local autopeekuwu = Menu.FindVar("Miscellaneous","Main","Movement","Auto Peek")
local function glowautopeek()
local lp = EntityList.GetLocalPlayer()
if autopeekuwu:Get() and menu_elements.custom_visuals:GetBool(4) then
if autopeek_origin == nil then
autopeek_origin = lp:GetProp('m_vecOrigin')
end
for i = 1, 60 do
local autopeek_value = 1/i
if i <= 60 then
autopeek_value = autopeek_value + 1.5
end
local autopeek_color = menu_elements.glowpeekcolor:GetColor()
if autopeekuwu:Get() then
Render.Circle3DFilled(autopeek_origin, 28, i / -2.5, Color.new(autopeek_color.r, autopeek_color.g, autopeek_color.b, autopeek_value / 40 * autopeek_color.a))
Render.Circle3DFilled(autopeek_origin, 18, i / -2.6, Color.new(autopeek_color.r, autopeek_color.g, autopeek_color.b, autopeek_value / 40 * autopeek_color.a))
end
end
else
autopeek_origin = nil
end
end
--------------------------------- MANUAL ARROWS
local function drawArrows()
local arrows = menu_elements.arrows:Get()
local lp = EntityList.GetClientEntity(EngineClient.GetLocalPlayer())
if lp == nil then return end
if lp:GetPlayer():IsAlive() then
local invert = AntiAim.GetInverterState() == false
local manual = Menu.FindVar("Aimbot", "Anti Aim", "Main", "Yaw Base")
local x = EngineClient.GetScreenSize().x/2
local y = EngineClient.GetScreenSize().y/2
if menu_elements.custom_visuals:GetBool(5) and menu_elements.arrows:Get(1) then
local LPx = Vector2.new(x - 43, y + 9)
local LPy = Vector2.new(x - 43, y - 9)
local LPz = Vector2.new(x - 56, y)
local RPx = Vector2.new(x + 43, y + 9)
local RPy = Vector2.new(x + 43, y - 9)
local RPz = Vector2.new(x + 56, y)
Render.PolyFilled(manual:GetInt() == 2 and menu_elements.arrows_color:Get() or Color.RGBA(25, 25, 25, 150), RPx, RPz, RPy)
Render.PolyFilled(manual:GetInt() == 3 and menu_elements.arrows_color:Get() or Color.RGBA(25, 25, 25, 150), LPx, LPz, LPy)
Render.BoxFilled(Vector2.new(x - 40, y - 9), Vector2.new(x - 42, y + 10), invert and Color.RGBA(25, 25, 25, 150) or menu_elements.arrows_colorsecond:Get())
Render.BoxFilled(Vector2.new(x + 40, y - 9), Vector2.new(x + 42, y + 10), invert and menu_elements.arrows_colorsecond:Get() or Color.RGBA(25, 25, 25, 150))
end
end
end
--------------------------------- INDICATORS
local font =
{
pixel = Render.InitFont("nl\\Blame\\fonts\\smallest_pixel-7.ttf", 10),
}
local normalize_yaw = function(yaw)
while yaw > 180 do yaw = yaw - 360 end
while yaw < -180 do yaw = yaw + 360 end
return yaw
end
local function indicatorsdrwa()
if menu_elements.custom_visuals:GetBool(1) then
local lp = EntityList.GetClientEntity(EngineClient.GetLocalPlayer())
if not lp then return end
local health = lp:GetProp("m_iHealth")
if health > 0 then
local color = Color.new(menu_elements.indicatorscolor:GetColor().r, menu_elements.indicatorscolor:GetColor().g, menu_elements.indicatorscolor:GetColor().b)
local x = EngineClient.GetScreenSize().x
local y = EngineClient.GetScreenSize().y
local ay = 19
local dmg = false
local binds = Cheat.GetBinds()
for i = 1, #binds do
local bind = binds[i]
if bind:GetName() == 'Minimum Damage' then
dmg = true
end
end
--fake
local desync = AntiAim.GetFakeRotation()
local real = AntiAim.GetCurrentRealRotation()
local delta_to_draw = math.abs(normalize_yaw(real % 360 - desync % 360)) / 2
local fake = string.format("%.1f", delta_to_draw)
--Render Indicators
local Render_Indicator = function(text, ay2, color, size, font, outline, sas)
local ts = Render.CalcTextSize(text, size, font)
Render.Text(text, Vector2.new(x/2-ts.x/2 - sas, y/2+ay2), color, size, font, outline)
end
--render
local alpha = math.min(math.floor(math.sin((GlobalVars.realtime%3) * 4) * 175 + 50), 255)
local sz = Render.CalcTextSize("0°", 10, font.pixel)
Render_Indicator("Blame", ay, color, 10, font.pixel, true, sz.x)
--Render_Indicator("*".. aa_state .."*", ay, color, 10, font.pixel, true, sz.x)
local sz = Render.CalcTextSize("Blame", 10, font.pixel)
Render_Indicator(""..math.floor(fake).."°", ay, Color.RGBA(255, 255, 255, 255), 10, font.pixel, true, -sz.x/2)
ay = ay + 10
if dt_ref:GetBool() then
Render_Indicator("DT", ay, Exploits.GetCharge() == 1 and Color.RGBA(80, 255, 80, 255) or Color.RGBA(255, 80, 80, 255), 10, font.pixel, true, 0)
ay = ay + 10
end
if hs_ref:GetBool() then
Render_Indicator("HS", ay, Color.RGBA(250, 173, 181, 255), 10, font.pixel, true, 0)
ay = ay + 10
end
if safepoints_ref:GetInt() == 2 then
Render_Indicator("SP", ay, Color.RGBA(255, 255, 255, 255), 10, font.pixel, true, 0)
ay = ay + 10
end
if body_ref:GetInt() == 2 then
Render_Indicator("BAIM", ay, Color.RGBA(255, 255, 255, 255), 10, font.pixel, true, 0)
ay = ay + 10
end
local local_player1 = EngineClient.GetLocalPlayer()
local player = EntityList.GetClientEntity(local_player1)
local is_moving = #(EntityList.GetLocalPlayer():GetProp("m_vecVelocity"))>5
if not player then
return
end
local flags = player:GetProp("m_fFlags")
local aa_state = "STANDING"
if is_moving then
aa_state = "MOVING"
end
if (flags == 256) then
aa_state = "AIR"
end
if player:GetProp("m_flDuckAmount") > 0.9 then
aa_state = "CROUCHING"
end
if sw_ref:GetBool() then
aa_state = "SLOW-WALKING"
end
local ts = Render.CalcTextSize("Blame", 10, font.pixel)
Render.Text("*".. aa_state .."*", Vector2.new(x/-ts.x, y/2), color, 10, font.pixel, true)
end
end
end
--------------------------------- DAMAGE INDICATOR
local dmg_indicator_font = Render.InitFont("nl\\Blame\\fonts\\smallest_pixel-7.ttf", 10)
local damage_screen = EngineClient.GetScreenSize()
local vecPositions = {
[0] = Vector2.new(damage_screen.x/2 + 10, damage_screen.y/2 - 30),
[1] = Vector2.new(damage_screen.x/2 - 15, damage_screen.y/2 - 30),
[2] = Vector2.new(damage_screen.x/2 - 2, damage_screen.y/2 - 30)
}
local function damage_indicator_dmg()
local player1234 = EntityList.GetLocalPlayer();
if not player1234 then return end
local lifeState1234 = player1234:GetProp("m_lifeState");
if not lifeState1234 then
if menu_elements.custom_visuals:GetBool(2) then
Render.Text(tostring(Menu.FindVar("Aimbot", "Ragebot", "Accuracy", "Minimum Damage"):GetInt()) , vecPositions[menu_elements.min_damage_indicator_pos:GetInt()], Color.new(1.0, 1.0, 1.0, 1.0), 10, dmg_indicator_font, true)
end
end
end
--------------------------------- SNAPLINES
function is_alive1234()
local player = EntityList.GetLocalPlayer()
if not player then return end
local lifeState = player:GetProp("m_lifeState")
return not lifeState
end
TP = Menu.FindVar("Visuals", "View", "Thirdperson", "Enable Thirdperson")
function snape_lines()
if not is_alive1234() then return end
if not menu_elements.custom_visuals:GetBool(9) then return end
local screen_size = EngineClient.GetScreenSize()
local lines_color = menu_elements.snapelines_color:GetColor()
local players = EntityList.GetPlayers()
local local_player = EntityList.GetLocalPlayer()
for _, player_ptr in ipairs(players) do
if player_ptr == local_index or player_ptr:IsTeamMate() then goto skip end
local position = Render.WorldToScreen(player_ptr:GetEyePosition())
local pos2 = Render.WorldToScreen(EntityList.GetLocalPlayer():GetHitboxCenter(5))
local vec = Cheat.AngleToForward(EngineClient.GetViewAngles())
pos2 = TP:Get() and pos2 or Render.WorldToScreen(EntityList.GetLocalPlayer():GetRenderOrigin())
local lifeState = player_ptr:GetProp("m_lifeState"); if lifeState then goto skip end
if player_ptr:IsDormant() then goto skip end
if menu_elements.snapelines_render:GetInt()==0 then
Render.Line(position, Vector2.new(screen_size.x / 2, screen_size.y / 2), lines_color)
end
if menu_elements.snapelines_render:GetInt()==1 then
Render.Line(position, pos2, lines_color)
end
::skip::
end
end
-- snaplines end
--------------------------------- TRASHTALK
local phrases = {
"1 пидорасина ебаная спи",
"l2p bot",
"iq ? HAHAHA",
"BY SANCHEZJ (◣_◢)",
"sleep",
"обоссан",
"GLhf.exe Activated",
"ᛈᗗᛈᗴῷ Кᗗᛕ δ৮ᛈᛠᚦᚖאᚖᚨนҋ",
"ᛈᗗᛈᗗለᗗ ᛠ৮ ᛈᚖᛒᛈᗴᛗ",
"ты понимаешь, что клитор твоей матери эта зона чрезвычайно опасная ??",
"сру в тя в классе",
"У тебя бешенство начинается?",
"Звучит, как иди на хуй",
"Это выгодно мне/тебе/нам",
"ой иди на хуй !!!!",
"похуй я Же говорю я Бобрик из Гетто!",
"как же я с тебя ору",
"НЕ делай одолжений, просто делай мне минет!",
"хуем тибя щас уебу)0",
"сасеш норм)0",
"чота ты сосешь мне)0",
"чота мать тваю выкинул)0",
"гариш слетая)0",
"ЕБАТЬ ТЫ НИЩИЙ, СОСИ)0))",
"УБИТО СОСЁШЬ МНЕ, КУКОЛД)0))",
"нихуя я тя красиво бомбанул",
"может уже купишь луашку Blame.lua? Я устал тебя ебашить((",
"легко сочнярик",
"уебище учись играть",
"изи мусорила ебанная",
"я твоей матери горло ёршиком промывал что бы заглатывала лучше ебаная свинья",
"ебаный сын подъезда как ты пикаешь",
"сын ебаной жирной жабы"
}
local english = {
"I'll keep hitting Baim until you die",
"I'll put my dick down your throat",
"you got it wrong HAHAHAHAH",
"Nice desync, is that Eternity?",
"You get Baim and you run XD",
"Fucking bitch from the countryside",
"Did you shoot with your left hand? XD",
"Nice miss sucker HAAHAH",
"You were looking in the wrong direction",
"What was that xd",
"Go take a bath and give me a blowjob",
"You're a bitch from the village looking for ravens with a bag",
"I'm a famous shepherd, give you my dick to graze",
"Hi boy are you lost?",
"You're so fat you can be seen through three walls",
"beautiful",
"sit dog",
"You and your dad's stomach is constantly sticking out ... Baim!",
"uff... I'm the King of Baim! $$",
"Hallelujah, you sucked my .!.",
"lol i disabled the resolver xDD",
"The most nervous dinner of my life",
"BaIm bAiM BaIm",
"Okay, I'm silent, I'm leaving you alone",
"Hmm ... I don't know how to tell you this, but ... did you see me as a firefighter when I put my dick on your shoulder?",
"I put my cock on your chest",
"Will you send the cfg to osiris?",
'˜" ° • .˜ "° • 1 • °" ˜. • ° "˜',
"easy xD",
"I fucked you through the wall",
"I hit your head with my dick",
"1 enters in baldness head",
"Look at it on the right side, at least you hit the wall xD",
"ESC -> Help and Options -> How to Play",
"For pregnant girls, I recommend skeet with vitamins",
"Hakuna matataaaa, how 1 comes hereeee...",
"You looked at me like you nodded",
"fuck you, fuck me like a villager",
"Are you scared? Yeah!",
"grill cold ice cream",
}
local poland = {
"Będę walił Baima, aż zginiesz",
"Włożę ci penisa w gardło",
"źle trafiłeś HAHAHAHAH",
"Dobry desync, to ethernity?",
"Dostajesz Baima i uciekasz XD",
"Jebana suka ze wsi",
"Strzelałeś lewą ręką? XD",
"Nice miss frajerze HAAHAH",
"Patrzyłeś w złą stronę",
"co to było xd",
"Idź się umyj i zrób mi loda",
"Jesteś suką ze wsi szukającą kruków z woreczkiem",
"Jestem znanym pasterzem, daję Ci kutasa do wypasania",
"Cześć chłopcze, zgubiłeś się?",
"Jesteś tak gruby, że było cie widać przez trzy ściany",
"VeRy NeRvoS BaIm",
"pięknie",
"siadaj psie",
"Tobie i twojemu staremu ciągle wystaje brzuch... Baim!",
"uff... Król Baim'a! $$",
"Alleluja, obciągnąłęś mi.!.",
"lol, wyłączyłem resolver xDD",
"Najbardziej nerwowa kolacja w moim życiu",
"BaIm bAiM BaIm",
"Dobra milczę, daję ci spokój",
"Nie no, żartowałem xD",
"Hmm… Nie wiem, jak ci to powiedzieć, ale… czy postrzegałeś mnie jako strażaka, gdy położyłem ci penisa na ramieniu?",
"kładę Ci fiuta na piersi",
"Podeślesz cfg do osirisa?",
'˜" ° • .˜ "° • 1 • °" ˜. • ° "˜',
"łatwo xD",
"Zajebałem Ci liścia przez ścianę",
"uderzyłem Ci w głowę kutasem",
"1 wchodzi w łysinę",
"Spójrz na to dobrą stroną, przynajmniej ściane obiłeś xD",
"ESC -> Pomoc i opcje -> Jak grać",
"Dziewczynom w ciąży polecam skeeta z witaminami",
"Hakuna matataaaa, jak 1 wchodzi tuuu...",
"Tak na mnie patrzyłeś, jakbyś skinął głową",
"pieprz się, pieprz mnie jak wieśniak",
"Boisz się? Taaak!",
"grilluj zimnego loda",
}
local romanian = {
'stai jos dog',
'sugi pula',
'Ai cumva cheat-ul ala de la Llama?',
'efortless',
'foaie verde castravete ti-am dat 1 prin perete',
'cand pun ochiu in luneta o vad pe ma-ta pe mocheta',
'Juan ',
'foaie verde si-o spatula ti-am dat cap cu ma-ta-n pula',
'mama coaie am dat click manual zici ca sunt alien cosminel',
'1 by esoterik bro',
'1 by pleata lui darth',
'foaie verde be the heda ti-ai luat tap de la wanheda',
'fie viata cat de grea iti dau tap ce pula mea',
'foaie verde butelie intra glontu in chelie',
'hacker de sentimente sparg capuri si apartamente',
'skeet in buzunare sa-i dau tap lui fleeekkk',
'Priveste partea buna, macar ai dat 100 damage la peretele din spatele meu !',
'ESC --> volunteering & Options --> How to Play',
'1 1 1 VeRy NeRvOs hEaDsHoT 1 1 1',
'Pt fetele gravide recomand skeet cu vitamine.',
'1 tie 1 lui ma-ta',
'Asa a dat si ma-ta ochii peste cum ai dat tu cu capul',
'futu-ti mortii ma-tii sa-ti fut de taran',
'Tragem pula in mamele voastre!!!',
'Te-ai speriat? Eu da!',
'ai capul ala zici ca e made in china',
'da-te ca-mi bag pula',
'ai gresit 1way-ul',
'alo baiatu, te-ai pierdut ? iti bag waze-u ?',
'Ai corpul ala zici ca e halba de bere.',
'ai corpul ala zici ca e lumanare de botez.',
'VeRy NeRvoS BaIm',
'stai jos caine',
'Tu si Oana Roman ce mai stati cu burta pe afara.',
'apas f pt tine <3',
'scz eram cu legitbotu on',
'rostogoli-mi-as pula-n ma-ta cum se rostogoleste crocodilu-n apa',
'coaie ce corp ai zici ca esti desenat cu stanga',
'foaie verde de cucuta hai la tata sa te futa',
'aleluia ai luat muia .!.',
'nice desync, esti cu eternity ?',
'lol aveam resolver-ul off.',
'Cel mai nervos baim din viata mea',
'asta ajunge la war montage ms ms',
'BaIm bAiM BaIm',
'ceapa verde foaie iute uite baimu cum se duce',
'Foaie verde praf de ciori iti iei baim pana mori',
'Foaie verde si-o lamaie iti dau baim si iei muie',
'foaie verde acadea ia cu baim in pula mea',
'sunt haiduc cunoscut, iti dau pula la pascut',
'sunt tac-tu, hai sa-ti dau lape',
'ba..nu stiu cum sa-ti spun, dar...isi mai da ma-ta filme ca-i pompier de cand i-am pus pula peste umar?',
'sa-ti pun pula pe piept ',
'hai back to canal boschetare',
'hai la gratar sa-ti frig o muie',
"smecherii fut",
"fraierii isi iau cap"
}
local function get_phrase()
return phrases[Utils.RandomInt(1, #phrases)]:gsub('\"', '')
end
local function get_phrase2()
return english[Utils.RandomInt(1, #english)]:gsub('\"', '')
end
local function get_phrase3()
return poland[Utils.RandomInt(1, #poland)]:gsub('\"', '')
end
local function get_phrase4()
return romanian[Utils.RandomInt(1, #romanian)]:gsub('\"', '')
end
Cheat.RegisterCallback("events", function(event)
if not menu_elements.ttonkill:Get() then return end
if event:GetName() ~= "player_death" then return end
local me = EntityList.GetLocalPlayer()
local victim = EntityList.GetPlayerForUserID(event:GetInt("userid"))
local attacker = EntityList.GetPlayerForUserID(event:GetInt("attacker"))
if victim == attacker or attacker ~= me then return end
if menu_elements.languageonkill:GetInt()==0 then
EngineClient.ExecuteClientCmd('say "' .. get_phrase() .. '"')
end
if menu_elements.languageonkill:GetInt()==1 then
EngineClient.ExecuteClientCmd('say "' .. get_phrase2() .. '"')
end
if menu_elements.languageonkill:GetInt()==2 then
EngineClient.ExecuteClientCmd('say "' .. get_phrase3() .. '"')
end
if menu_elements.languageonkill:GetInt()==3 then
EngineClient.ExecuteClientCmd('say "' .. get_phrase4() .. '"')
end
end)
--------------------------------- EVENTLOGS
local math_lib = {
clamp = function(val, lower, upper)
if lower > upper then lower, upper = upper, lower end
return math.max(lower, math.min(upper, val))
end
}
local lua = {
color = Color.RGBA(157, 162, 255, 255),
font = Render.InitFont('nl\\Blame\\fonts\\smallest_pixel-7.ttf', 11),
screen = EngineClient.GetScreenSize(),
logs = {
stuff = {},
num = 0,
reason = {
[1] = 'unknown',
[2] = 'spread',
[3] = 'occlusion',
[4] = 'prediction error'
},
hitgroups = {
[0] = "generic",
[1] = "head",
[2] = "chest",
[3] = "stomach",
[4] = "left arm",
[5] = "right arm",
[6] = "left leg",
[7] = "right leg",
[10] = "gear"
}
}
}
local render = {
box = function(string,y,alpha)
local stringsize = Render.CalcTextSize(string,11,lua.font).x
Render.BoxFilled(Vector2.new(lua.screen.x/2-stringsize/2-4.1,lua.screen.y-100-y),Vector2.new(lua.screen.x/2+stringsize/2+4.1,lua.screen.y-80-y),Color.RGBA(0,0,0,120), 18)
Render.Box(Vector2.new(lua.screen.x/2-stringsize/2-4.1,lua.screen.y-100-y),Vector2.new(lua.screen.x/2+stringsize/2+4.1,lua.screen.y-80-y),lua.color, 18)
Render.Text(string,Vector2.new(lua.screen.x/2,lua.screen.y-90-y),lua.color,11,lua.font,true,true)
end
}
function eventdraw()
lua.color = Color.RGBA(255,255,255,254)
for i, log in ipairs(lua.logs.stuff) do
render.box(log.text,i*28,255)
if log.time + 4.5 < GlobalVars.realtime then table.remove(lua.logs.stuff,i) end
end
end
function eventshot(shot)
lua.logs.num = lua.logs.num + 1
if menu_elements.eventlogs:Get() and menu_elements.eventtype:Get(1) then
local player = EntityList.GetClientEntity(EngineClient.GetLocalPlayer())
if not player then return end
if player:GetProp("m_iHealth") > 0 then
if shot.reason == 0 then
table.insert(lua.logs.stuff,{text = '[Blame] Hit ' .. EntityList.GetClientEntity(shot.target_index):GetPlayer():GetName() .. "'s in " .. lua.logs.hitgroups[math_lib.clamp(shot.hitgroup,0,10)] .. ' for ' .. shot.damage .. ' damage [spread: ' .. string.format('%.3f°',shot.spread_degree) .. '] [hitchance:' .. shot.hitchance ..' | backtrack:' .. shot.backtrack ..']',time = GlobalVars.realtime})
print('[Blame] Hit ' .. EntityList.GetClientEntity(shot.target_index):GetPlayer():GetName() .. "'s in " .. lua.logs.hitgroups[math_lib.clamp(shot.hitgroup,0,10)] .. ' for ' .. shot.damage .. ' damage [spread: ' .. string.format('%.3f°',shot.spread_degree) .. '] [hitchance:' .. shot.hitchance ..' | backtrack:' .. shot.backtrack ..']')
end
end
end
end
function eventmiss(shot)
lua.logs.num = lua.logs.num + 1
if menu_elements.eventlogs:Get() and menu_elements.eventtype:Get(2) then
local player = EntityList.GetClientEntity(EngineClient.GetLocalPlayer())
if not player then return end
if player:GetProp("m_iHealth") > 0 then
if not shot.reason == 0 then
table.insert(lua.logs.stuff,{text = '[Blame] Missed shot in ' .. EntityList.GetClientEntity(shot.target_index):GetPlayer():GetName() .. "'s " .. lua.logs.hitgroups[math_lib.clamp(shot.wanted_hitgroup,0,10)] .. ' due to ' .. lua.logs.reason[shot.reason] .. ' [spread: ' .. string.format('%.3f°',shot.spread_degree) .. '] [hitchance:' .. shot.hitchance ..' | backtrack:' .. shot.backtrack ..']',time = GlobalVars.realtime})
print('[Blame] Missed shot in ' .. EntityList.GetClientEntity(shot.target_index):GetPlayer():GetName() .. "'s " .. lua.logs.hitgroups[math_lib.clamp(shot.wanted_hitgroup,0,10)] .. ' due to ' .. lua.logs.reason[shot.reason] .. ' [spread: ' .. string.format('%.3f°',shot.spread_degree) .. '] [hitchance:' .. shot.hitchance ..' | backtrack: '.. shot.backtrack ..']')
end
end
end
end
--------------------------------- KEYBINDS & WATERMARK
local Font = {
Verdana = Render.InitFont('Verdana', 11,{'r'}),
Verdana2 = Render.InitFont('Verdana', 13,{'r'}),
Tahoma = Render.InitFont("Tahoma", 8),
pixel = Render.InitFont("nl\\Blame\\fonts\\smallest_pixel-7.ttf", 11),
}
local function GetPing()
if EngineClient.GetNetChannelInfo() ~= nil then
return string.format("%1.f", math.max(0.0, EngineClient.GetNetChannelInfo():GetLatency(0)) * 1000.0)
else
return "0"
end
end
local function GetTime()
local hours = math.floor((math.floor(Utils.UnixTime() / 1000) / 3600 + 3) % 24)
local minutes = math.floor(math.floor(Utils.UnixTime() / 1000) / 60 % 60)
local sec = math.floor(math.floor(Utils.UnixTime() / 1000) % 60)
if sec < 10 then sec = "0" .. sec end
if minutes < 10 then minutes = "0" .. minutes end
if hours < 10 then hours = "0" .. hours end
return hours .. ":" .. minutes .. ":" .. sec
end
-------------------------------------------------------- WATERMARK
-- avatar from neverlose
local image_size = Vector2.new(33, 33)
local url = "https://en.neverlose.cc/static/avatars/"..Cheat.GetCheatUserName().. ".png"
local bytes = Http.Get(url)
local avatar = Render.LoadImage(bytes, image_size)
-- Blame logo
local image_size1 = Vector2.new(42, 42)
local url1 = "https://cdn.discordapp.com/attachments/959550720963645450/967451535585984582/Nowy_projekt.png"
local bytes1 = Http.Get(url1)
local Blamelogo = Render.LoadImage(bytes1, image_size1)
local function watermark()
if menu_elements.windows:GetBool(2) then
local x = EngineClient.GetScreenSize().x
local y = EngineClient.GetScreenSize().y
local uicolor = menu_elements.Blamecolor:Get()
local text = Cheat.GetCheatUserName().. " delay: " .. GetPing() .."ms " .. string.format("%s", GetTime())
local textSize = Render.CalcTextSize(text, 11, Font.Verdana)
local position = Vector2.new(EngineClient:GetScreenSize().x - textSize.x - 13, 30)
------ RIGHT BOX WITH INFORMATIONS
Render.Box(Vector2.new(position.x - 4, position.y - 21), Vector2.new(position.x + textSize.x + 4, position.y + 18), uicolor, 5)
Render.BoxFilled(Vector2.new(position.x - 3, position.y - 20), Vector2.new(position.x + textSize.x + 3, position.y + 17), Color.RGBA(0, 0, 0, 211), 4)
Render.Text(text, Vector2.new(position.x, position.y - 10), Color.RGBA(255, 255, 255, 255), 11, Font.Verdana, false)
--Render.Text("Blame", Vector2.new(position.x + 10, position.y - 18), Color.RGBA(255, 255, 255, 255), 11, Font.pixel, false)
--Render.Text("Stable", Vector2.new(position.x + 10, position.y + 2), Color.RGBA(255, 255, 255, 255), 11, Font.pixel, false)
------ AVATAR
------ Render.Circle(Vector2.new(position.x - 46, position.y - 18), 1.0, 30, uicolor)
Render.Box(Vector2.new(position.x - 51, position.y - 21), Vector2.new(position.x - 9, position.y + 18), uicolor, 5)
Render.BoxFilled(Vector2.new(position.x - 50, position.y - 20), Vector2.new(position.x - 10, position.y + 17), Color.RGBA(0, 0, 0, 211), 4)
------ DOWN LOGO
--Render.Box(Vector2.new(position.x - 101, position.y - 21), Vector2.new(position.x - 59, position.y + 18), uicolor, 4)
--Render.BoxFilled(Vector2.new(position.x - 100, position.y - 20), Vector2.new(position.x - 60, position.y + 17), Color.RGBA(0, 0, 0, 211), 4)
if menu_elements.avatarcombo:Get() == 0 then
Render.Image(avatar, Vector2.new(position.x - 46, position.y - 18), image_size)
else
Render.Image(Blamelogo, Vector2.new(position.x - 50, position.y - 24), image_size1)
end
if menu_elements.uitextline:GetBool() then
Render.Box(Vector2.new(position.x + 31, position.y + 15), Vector2.new(position.x + 31, position.y - 19), uicolor) -- line
Render.Box(Vector2.new(position.x + 94, position.y + 15), Vector2.new(position.x + 94, position.y - 19), uicolor) -- line
end
end
end
-------------------------------------------------------- KEYBINDS
local function color(r, g, b, a) return Color.new(r / 255, g / 255, b / 255, a / 255) end
local function clamp(val, min, max) if val > max then return max end if min > val then return min end return val end
local function render_adaptive_box(type, x, y, name, alpha)
local name_size = Render.CalcTextSize(name, 12, Font.Verdana)
Render.Box(Vector2.new(x, y), Vector2.new(x + 150, y + 27), Color.new(menu_elements.Blamecolor:GetColor().r, menu_elements.Blamecolor:GetColor().g, menu_elements.Blamecolor:GetColor().b, 255 * alpha), 5)
Render.BoxFilled(Vector2.new(x, y), Vector2.new(x + 150, y + 27), color(0, 0, 0, 110 * alpha), 4)
Render.Text(name, Vector2.new(x + 150 / 2 - name_size.x / 2, y + 7), Color.new(255,255,255, 255 * alpha), 13, Font.Verdana2, menu_elements.textoutlinekeybinds:GetBool())
end
local keybinds_alpha = 0
local in_bounds = function(area, point)
return point.x > area.x and point.x < area.x2 and point.y > area.y and point.y < area.y2;
end
local new = function(x, y, w, h)
local area_info_t = {
x = x,
y = y,
x2 = x + w,
y2 = y + h
}
return area_info_t;
end
local point = function(x, y)
local point_info_t = {
x = x,
y = y
}
return point_info_t;
end
local drag = false
local width = 0
local function draw_keybinds()
if menu_elements.windows:GetBool(3) then
local binds = Cheat.GetBinds()
local keybinds_next_line = 0
local keybinds_x = menu_elements.UI_Keybinds_X:GetInt()
local keybinds_y = menu_elements.UI_Keybinds_Y:GetInt()
if #binds > 0 or Cheat.IsMenuVisible() then
keybinds_alpha = clamp(keybinds_alpha + (1 / .15) * GlobalVars.frametime, 0, 1)
else
keybinds_alpha = clamp(keybinds_alpha - (1 / .15) * GlobalVars.frametime, 0, 1)
end
local function render_binds(binds)
if not binds:IsActive() then return end
local bind_name = binds:GetName()
local bind_state = binds:GetMode()
local statetext = string.format("")
if bind_state == 0 then
statetext = string.format("[toggled]")
else
statetext = string.format("[holding]")
end
local binds_state_size = Render.CalcTextSize(statetext, 11, Font.Verdana)
Render.Text(bind_name, Vector2.new(keybinds_x + 1, keybinds_y + 27 + keybinds_next_line), Color.new(255,255,255,keybinds_alpha), 11, Font.Verdana, menu_elements.textoutlinekeybinds:GetBool())
Render.Text(statetext, Vector2.new(keybinds_x + 149 - binds_state_size.x, keybinds_y + 27 + keybinds_next_line), Color.new(255,255,255,keybinds_alpha), 11, Font.Verdana, menu_elements.textoutlinekeybinds:GetBool())
keybinds_next_line = keybinds_next_line + 16
end
render_adaptive_box("keybinds", keybinds_x, keybinds_y, "keybinds", keybinds_alpha)
for i = 1, #binds do
render_binds(binds[i])
end
local mouse = Cheat.GetMousePos()
local max_width = 0
width = math.max(150, max_width)
if Cheat.IsKeyDown(1) then
if mouse.x >= menu_elements.UI_Keybinds_X:GetInt() and mouse.y >= menu_elements.UI_Keybinds_Y:GetInt() and mouse.x <= menu_elements.UI_Keybinds_X:GetInt() + width and mouse.y <= menu_elements.UI_Keybinds_Y:GetInt() + 18 or drag then
if not drag then
drag = true
else
menu_elements.UI_Keybinds_X:SetInt(mouse.x - math.floor(width / 2))
menu_elements.UI_Keybinds_Y:SetInt(mouse.y - 8)
end
end
else
drag = false
end
end
end
--------------------------------- EVENTLOGS
----------------------------------------- RAGEBOT -----------------------------------------
----------------------------------------- QUCIKPEEK
----------------------------------------- air/noscope hitchange dmg
----------------------------------------- ANTIAIM -----------------------------------------
----------------------------------------- OTHER FUNCTIONS ANTIAIM...
----------------------------------------- ANTIBACKSTAB
----------------------------------------- ANTIBRUTEFORCE
local anti_brute = {
working = false,
num_phases = Menu.SliderInt("» AntiAim", "Blame - Anti-Bruteforce","" , 2 , 2 , 10),
cur_phase = 0,
timer = 0,
phases = {},
adjust_abrute = function(self)
local n = self.num_phases:Get()
local b = menu_elements.switchbruteforce:Get()
self.add_phase:SetVisible(b)
self.remove_phase:SetVisible(b)
for i=1 , 10 do
self.phases[i]:SetVisible(i-1<n and b)
end
end
}
for i=1 , 10 do
anti_brute.phases[i] = Menu.SliderInt("» AntiAim", "Blame - Anti-Bruteforce", "Phase "..i , 60 , -60 , 60)
end
anti_brute.num_phases:SetVisible(false)
anti_brute.add_phase = Menu.Button("» AntiAim", "Blame - Anti-Bruteforce", "Add Phase" , "" , function()
if anti_brute.num_phases:Get() > 9 then
Cheat.AddNotify("Blame.lua" , "Cannot add more phases")
return
end
anti_brute.num_phases:Set( anti_brute.num_phases:Get() +1)
anti_brute:adjust_abrute()
end)
anti_brute.remove_phase = Menu.Button("» AntiAim", "Blame - Anti-Bruteforce", "Remove Phase" , "" , function()
if anti_brute.num_phases:Get() < 3 then
Cheat.AddNotify("Blame.lua" , "Cannot remove more phases")
return
end
anti_brute.num_phases:Set( anti_brute.num_phases:Get() -1)
anti_brute:adjust_abrute()
end)
menu_elements.switchbruteforce:RegisterCallback(function() anti_brute:adjust_abrute() end)
anti_brute:adjust_abrute()
local abrute_pred = function()
if not anti_brute.working then return end
if (not anti_brute.working) or #anti_brute.phases==0 then return end
if not menu_elements.switchbruteforce:Get() then return end
anti_brute.timer = anti_brute.timer - GlobalVars.interval_per_tick
if anti_brute.timer < 0 then anti_brute.timer = 0 end
if anti_brute.timer == 0 and (anti_brute.working ) then anti_brute.working= false end
--print(globals.abrute_phases , globals.abrute_phase , #ui.aa.phases)
if anti_brute.phases[anti_brute.cur_phase +1] and anti_brute.working then
AntiAim.OverrideInverter( anti_brute.phases[anti_brute.cur_phase +1]:Get() < 0)
AntiAim.OverrideLimit(math.abs( anti_brute.phases[anti_brute.cur_phase +1]:Get()))
end
end
--------------- extended desync
Cheat.RegisterCallback("prediction", function(cmd)
if not menu_elements.extendeddesync:GetBool(1) then return end
if sw_ref:Get() or EntityList.GetLocalPlayer():GetProp("m_vecVelocity"):Length() <20 then
local side = AntiAim.GetInverterState() and 1 or -1
cmd.viewangles.roll = 44 * side
end
end)
--------------- legitaa
local start_curtime = GlobalVars.curtime
local reference_pitch = Menu.FindVar("Aimbot", "Anti Aim", "Main", "Pitch")
local reference_yawbase = Menu.FindVar("Aimbot", "Anti Aim", "Main", "Yaw Base")
local yawbase_backup = reference_yawbase:Get()
local override_legitAA = true
local function legitaa(cmd)
if menu_elements.legitAA:GetBool() then
local localp = EntityList.GetLocalPlayer()
local legitAA = true
if not localp then return end
Entities = {}
table.insert(Entities, EntityList.GetEntitiesByName("CPlantedC4"))
table.insert(Entities, EntityList.GetEntitiesByName("CHostage"))
for Entity in pairs(Entities) do
for i in pairs(Entities[Entity]) do
local localplayer_origin = localp:GetRenderOrigin()
local entity_origin = Entities[Entity][i]:GetRenderOrigin()
local entity_distance = localplayer_origin:DistTo(entity_origin)
local distance = entity_distance < 65 and entity_distance > 1
local localplayer_is_ct = localp:GetProp("m_iTeamNum") == 3
if distance and localplayer_is_ct then
menu_elements.legitAA = false
end
end
end
if bit.band(cmd.buttons, 32) == 32 and menu_elements.legitAA then
if GlobalVars.curtime - start_curtime > 0.02 then
cmd.buttons = bit.band(cmd.buttons, bit.bnot(32))
reference_pitch:Set(0)
if override_legitAA then
yawbase_backup = reference_yawbase:Get()
override_legitAA = false
end
reference_yawbase:Set(0)
AntiAim.OverrideYawOffset(0 -Menu.FindVar("Aimbot", "Anti Aim", "Main", "Yaw Add"):Get())
end
else
reference_pitch:Set(1)
if not override_legitAA then
reference_yawbase:Set(yawbase_backup)
override_legitAA = true
end
start_curtime = GlobalVars.curtime
end
end
end
Cheat.RegisterCallback("pre_prediction", function(cmd)
legitaa(cmd)
end)
Cheat.RegisterCallback("draw", draw)
--------------- edgeyaw blat
function VectorLerp(vecSource, vecDestination, flPercentage)
return vecSource + (vecDestination - vecSource) * flPercentage
end
function NormalizeYaw(flYaw)
while flYaw > 180 do flYaw = flYaw - 360 end
while flYaw < -180 do flYaw = flYaw + 360 end
return flYaw
end
local refEnabled = menu_elements.refEnabled
local vecTraceStart = Vector.new()
Cheat.RegisterCallback('pre_prediction', function(UserCmd)
if not refEnabled:GetBool() then return end
local iLocalPlayerEntIndex = EngineClient.GetLocalPlayer()
if not iLocalPlayerEntIndex then return end
local pLocalPlayerEntity = EntityList.GetClientEntity(iLocalPlayerEntIndex)
local pLocalPlayer = pLocalPlayerEntity:GetPlayer()
local flVelocityZ = pLocalPlayer:GetProp('m_vecVelocity[2]')
local bInJump = bit.band(UserCmd.buttons, 2) == 2
if flVelocityZ ~= 0 or bInJump then return end
if ClientState.m_choked_commands == 0 then
vecTraceStart = pLocalPlayer:GetEyePosition()
end
local aTraceEnd = {}
local angViewAngles = EngineClient.GetViewAngles()
for flYaw = 18, 360, 18 do
flYaw = NormalizeYaw(flYaw)
local angEdge = QAngle.new(0, flYaw, 0)
local vecTraceEnd = vecTraceStart + Cheat.AngleToForward(angEdge) * 0x60
local traceInfo = EngineTrace.TraceRay(vecTraceStart, vecTraceEnd,
pLocalPlayerEntity, 0x200400B)
local flFraction = traceInfo.fraction
local pEntity = traceInfo.hit_entity
if pEntity and pEntity:GetClassName() == 'CWorld' and flFraction < 0.3 then
aTraceEnd[#aTraceEnd + 1] = {
vecTraceEnd = traceInfo.endpos,
flYaw = flYaw
}
end
end
table.sort(aTraceEnd, function(a, b) return a.flYaw < b.flYaw end)
local angEdge
if #aTraceEnd >= 2 then
local vecTraceCenter = VectorLerp(aTraceEnd[1].vecTraceEnd,
aTraceEnd[#aTraceEnd].vecTraceEnd, 0.5)
angEdge = Cheat.VectorToAngle(vecTraceStart - vecTraceCenter)
end
if angEdge then
local flYaw = angViewAngles.yaw
local flEdgeYaw = angEdge.yaw
local flDiff = NormalizeYaw(flEdgeYaw - flYaw)
if math.abs(flDiff) < 90 then
flDiff = 0
flYaw = NormalizeYaw(flEdgeYaw + 180)
end
-- Static yaw
local flNewYaw = -flYaw
-- Apply edge yaw
flNewYaw = NormalizeYaw(flNewYaw + flEdgeYaw + 180)
flNewYaw = NormalizeYaw(flNewYaw + flDiff)
AntiAim.OverrideYawOffset(flNewYaw)
end
end)
----------------------------------------- FULL AA (PRESETS & CUSTOM AA)
local ref = {}
ref.antiaim = Menu.FindVar("Aimbot", "Anti Aim", "Main", "Enable Anti Aim")
ref.base = Menu.FindVar("Aimbot", "Anti Aim", "Main", "Yaw Base")
ref.yawadd = Menu.FindVar("Aimbot", "Anti Aim", "Main", "Yaw Add")
ref.yawmodifier = Menu.FindVar("Aimbot", "Anti Aim", "Main", "Yaw Modifier")
ref.yawmodifierdegree = Menu.FindVar("Aimbot", "Anti Aim", "Main", "Modifier Degree")
ref.inverter = Menu.FindVar("Aimbot", "Anti Aim", "Fake Angle", "Inverter")
ref.leftlimit = Menu.FindVar("Aimbot", "Anti Aim", "Fake Angle", "Left Limit")
ref.rightlimit = Menu.FindVar("Aimbot", "Anti Aim", "Fake Angle", "Right Limit")
ref.fakeoptions = Menu.FindVar("Aimbot", "Anti Aim", "Fake Angle", "Fake Options")
ref.desync_freestand = Menu.FindVar("Aimbot", "Anti Aim", "Fake Angle", "Freestanding Desync")
ref.lbymode = Menu.FindVar("Aimbot", "Anti Aim", "Fake Angle", "LBY Mode")
ref.onshot = Menu.FindVar("Aimbot", "Anti Aim", "Fake Angle", "Desync On Shot")
local left_limit = Menu.FindVar("Aimbot","Anti Aim","Fake Angle","Left Limit")
local right_limit = Menu.FindVar("Aimbot","Anti Aim","Fake Angle","Right Limit")
local options = Menu.FindVar("Aimbot","Anti Aim","Fake Angle","Fake Options")
local lby_mode = Menu.FindVar("Aimbot","Anti Aim","Fake Angle","LBY Mode")
local freestand = Menu.FindVar("Aimbot","Anti Aim","Fake Angle","Freestanding Desync")
local onshot = Menu.FindVar("Aimbot","Anti Aim","Fake Angle","Desync On Shot")
local yaw_base = Menu.FindVar("Aimbot","Anti Aim","Main","Yaw Base")
local SW = Menu.FindVar("Aimbot","Anti Aim","Misc","Slow Walk")
local FD = Menu.FindVar("Aimbot","Anti Aim","Misc","Fake Duck")
local pitch = Menu.FindVar("Aimbot","Anti Aim","Main","Pitch")
local yaw_add = Menu.FindVar("Aimbot","Anti Aim","Main","Yaw Add")
local yaw_modifier = Menu.FindVar("Aimbot","Anti Aim","Main","Yaw Modifier")
local modifier_degree = Menu.FindVar("Aimbot","Anti Aim","Main","Modifier Degree")
local state = {"Shared", "Stand", "Moving", "Air", "Duck", "Slow walk"}
local uiaantiaim = {}
uiaantiaim.aa = {}
uiaantiaim.aa[0] =
{
antiaim = Menu.Combo("» AntiAim","Blame - AntiAim Builder", "Conditions", state, 0),
}
for i = 1, 6 do
uiaantiaim.aa[i] = {
custom_enable = Menu.Switch("» AntiAim","Blame - AntiAim Builder", string.format("Enable %s AntiAim", state[i]), false, string.format("Override %s settings", state[i])),
custom_yaw_base = Menu.Combo("» AntiAim","Blame - AntiAim Builder", "Yaw Base", {"Forward", "Backward", "Right", "Left", "At Target", "Freestanding"}, 1),
custom_yaw_add_left = Menu.SliderInt("» AntiAim","Blame - AntiAim Builder", "Yaw Add Left", 0, -180, 180),
custom_yaw_add_right = Menu.SliderInt("» AntiAim","Blame - AntiAim Builder", "Yaw Add Right", 0, -180, 180),
custom_yaw_modifier = Menu.Combo("» AntiAim","Blame - AntiAim Builder", "Yaw Modifier", {"Disabled", "Center", "Offset", "Random", "Spin"}, 0),
custom_modifier_degree = Menu.SliderInt("» AntiAim","Blame - AntiAim Builder", "Modifier Degree", 0, -180, 180),
custom_fake_type = Menu.Combo("» AntiAim","Blame - AntiAim Builder","Fake Type", {"Static","Jitter","Random"}, 0),
custom_left_limit = Menu.SliderInt("» AntiAim","Blame - AntiAim Builder", "Left Limit", 60, 0, 60),
custom_right_limit = Menu.SliderInt("» AntiAim","Blame - AntiAim Builder", "Right Limit", 60, 0, 60),
custom_left_limit2 = Menu.SliderInt("» AntiAim","Blame - AntiAim Builder", "Left Limit [2]", 60, 0, 60),
custom_right_limit2 = Menu.SliderInt("» AntiAim","Blame - AntiAim Builder", "Right Limit [2]", 60, 0, 60),
custom_options = Menu.MultiCombo("» AntiAim","Blame - AntiAim Builder","Fake Options", {"Avoid Overlap","Jitter","Randomize Jitter", "Anti Bruteforce"}, 0),
custom_lby = Menu.Combo("» AntiAim","Blame - AntiAim Builder","LBY Mode", {"Disabled","Opposite","Sway"}, 1),
custom_fs = Menu.Combo("» AntiAim","Blame - AntiAim Builder","Freestanding Desync", {"Off","Peek Fake","Peek Real"}, 0),
custom_onshot = Menu.Combo("» AntiAim","Blame - AntiAim Builder","Desync On Shot", {"Disabled","Opposite","Freestanding","Switch"}, 0),
}
end
--in air check omgggggggggggg
function C_BasePlayer:InAir()
return bit.band(self:GetProp("m_fFlags"), bit.lshift(1,0)) == 0
end
--crouch check rly work
function C_BasePlayer:Crouch()
return self:GetProp("m_flDuckAmount") > 0.8
end
--velocity get 100%
function C_BasePlayer:GetVelocity()
return self:GetProp("m_vecVelocity"):Length2D()
end
--something for anti aim (best function 100%)
function yaw(h, l, y)
h:SetInt(AntiAim.GetInverterState() and l or y)
end
--one more best function for aa
function jitter(c, q)
return math.random(0, 1) == 0 and c or q
end
function tankaa()
if menu_elements.antiaims:Get(1) then
if Cheat.IsMenuVisible() then
ref.antiaim:Set(true)
ref.base:Set(4)
ref.yawadd:Set(0)
ref.yawmodifier:Set(0)
ref.yawmodifierdegree:Set(0)
ref.inverter:Set(false)
ref.leftlimit:Set(0)
ref.rightlimit:Set(0)
ref.fakeoptions:Set(0)
ref.desync_freestand:Set(0)
ref.lbymode:Set(0)
ref.onshot:Set(0)
else
ref.antiaim:Set(true)
ref.base:Set(4)
ref.yawadd:Set(0)
ref.yawmodifier:Set(1)
ref.yawmodifierdegree:Set(60)
ref.inverter:Set(true)
ref.leftlimit:Set(18)
ref.rightlimit:Set(18)
ref.fakeoptions:Set(2)
ref.desync_freestand:Set(0)
ref.lbymode:Set(1)
ref.onshot:Set(2)
end
end
if menu_elements.antiaims:Get(2) then
local lp = EntityList.GetLocalPlayer()
if lp == nil then return end
local players = EntityList.GetPlayers()
local active_weapon = lp:GetPlayer():GetActiveWeapon()
if active_weapon == nil then return end
if SW:Get() and uiaantiaim.aa[6].custom_enable:Get() then
--slow walk
stateid = 6
elseif lp:InAir() and uiaantiaim.aa[4].custom_enable:Get() then
--air
stateid = 4
elseif lp:Crouch() and uiaantiaim.aa[5].custom_enable:Get() or FD:Get() and uiaantiaim.aa[5].custom_enable:Get() then
--duck
stateid = 5
elseif lp:GetVelocity() > 2 and uiaantiaim.aa[3].custom_enable:Get() then
--move
stateid = 3
elseif lp:GetVelocity() < 2 and uiaantiaim.aa[2].custom_enable:Get() then
--stand
stateid = 2
else
--shared
stateid = 1
end
pitch:Set(1)
yaw(yaw_add, uiaantiaim.aa[stateid].custom_yaw_add_left:Get(), uiaantiaim.aa[stateid].custom_yaw_add_right:Get())
yaw_modifier:Set(uiaantiaim.aa[stateid].custom_yaw_modifier:Get())
modifier_degree:Set(uiaantiaim.aa[stateid].custom_modifier_degree:Get())
if uiaantiaim.aa[stateid].custom_fake_type:Get() == 0 then
left_limit:Set(uiaantiaim.aa[stateid].custom_left_limit:Get())
right_limit:Set(uiaantiaim.aa[stateid].custom_right_limit:Get())
elseif uiaantiaim.aa[stateid].custom_fake_type:Get() == 1 then
left_limit:Set(jitter(uiaantiaim.aa[stateid].custom_left_limit:Get(), uiaantiaim.aa[stateid].custom_left_limit2:Get()))
right_limit:Set(jitter(uiaantiaim.aa[stateid].custom_right_limit:Get(), uiaantiaim.aa[stateid].custom_right_limit2:Get()))
elseif uiaantiaim.aa[stateid].custom_fake_type:Get() == 2 then
left_limit:Set(math.random(uiaantiaim.aa[stateid].custom_left_limit:Get(), uiaantiaim.aa[stateid].custom_left_limit2:Get()))
right_limit:Set(math.random(uiaantiaim.aa[stateid].custom_right_limit:Get(), uiaantiaim.aa[stateid].custom_right_limit2:Get()))
end
options:Set(uiaantiaim.aa[stateid].custom_options:Get())
lby_mode:Set(uiaantiaim.aa[stateid].custom_lby:Get())
freestand:Set(uiaantiaim.aa[stateid].custom_fs:Get())
onshot:Set(uiaantiaim.aa[stateid].custom_onshot:Get())
end
end
local function visualfunc()
local vis = function(s, d)
s:SetVisible(d)
end
local set =
{
anti_aim = menu_elements.antiaims:Get() == 2
}
--anti aim
vis(uiaantiaim.aa[0].antiaim, set.anti_aim)
currentid = uiaantiaim.aa[0].antiaim:Get()+1
uiaantiaim.aa[1].custom_enable:SetBool(true)
vis(uiaantiaim.aa[1].custom_enable, false)
vis(uiaantiaim.aa[2].custom_enable, set.anti_aim and currentid == 2)
vis(uiaantiaim.aa[3].custom_enable, set.anti_aim and currentid == 3)
vis(uiaantiaim.aa[4].custom_enable, set.anti_aim and currentid == 4)
vis(uiaantiaim.aa[5].custom_enable, set.anti_aim and currentid == 5)
vis(uiaantiaim.aa[6].custom_enable, set.anti_aim and currentid == 6)
for i = 1, 6 do
local isAA = set.anti_aim and uiaantiaim.aa[i].custom_enable:Get()
local isAAF = uiaantiaim.aa[i].custom_fake_type:Get() == 1 and isAA or uiaantiaim.aa[i].custom_fake_type:Get() == 2 and isAA
vis(uiaantiaim.aa[i].custom_yaw_base, isAA and currentid == i)
vis(uiaantiaim.aa[i].custom_yaw_add_left, isAA and currentid == i)
vis(uiaantiaim.aa[i].custom_yaw_add_right, isAA and currentid == i)
vis(uiaantiaim.aa[i].custom_yaw_modifier, isAA and currentid == i)
vis(uiaantiaim.aa[i].custom_modifier_degree, isAA and currentid == i)
vis(uiaantiaim.aa[i].custom_left_limit, isAA and currentid == i)
vis(uiaantiaim.aa[i].custom_right_limit, isAA and currentid == i)
vis(uiaantiaim.aa[i].custom_left_limit2, isAAF and currentid == i)
vis(uiaantiaim.aa[i].custom_right_limit2, isAAF and currentid == i)
vis(uiaantiaim.aa[i].custom_options, isAA and currentid == i)
vis(uiaantiaim.aa[i].custom_lby, isAA and currentid == i)
vis(uiaantiaim.aa[i].custom_fs, isAA and currentid == i)
vis(uiaantiaim.aa[i].custom_onshot, isAA and currentid == i)
vis(uiaantiaim.aa[i].custom_fake_type, isAA and currentid == i)
end
end
-- FULL AA END
----------------------------------------- MENU VISIBLITY -----------------------------------------
local function menuvisiblity()
menu_elements.air_hitchance_value:SetVisible(menu_elements.air_hitchance:Get())
menu_elements.ns_hitchance_value:SetVisible(menu_elements.ns_hitchance:Get())
menu_elements.Teleport_Weapons:SetVisible(menu_elements.Enable:Get())
menu_elements.change_draw_caracter:SetVisible(menu_elements.enable_change_draw_caracter:GetBool())
menu_elements.glowpeekcolor:SetVisible(menu_elements.custom_visuals:GetBool(4))
menu_elements.arrows:SetVisible(menu_elements.custom_visuals:GetBool(5))
menu_elements.arrows_color:SetVisible(menu_elements.custom_visuals:GetBool(5))
menu_elements.arrows_colorsecond:SetVisible(menu_elements.custom_visuals:GetBool(5))
menu_elements.indicatorscolor:SetVisible(menu_elements.custom_visuals:GetBool(1))
menu_elements.snapelines_color:SetVisible(menu_elements.custom_visuals:GetBool(9))
menu_elements.snapelines_render:SetVisible(menu_elements.custom_visuals:GetBool(9))
menu_elements.uitextline:SetVisible(menu_elements.uicustomi:GetBool() and menu_elements.windows:GetBool(2))
menu_elements.Blamecolor:SetVisible(menu_elements.uicustomi:GetBool() and menu_elements.windows:GetBool(2) and menu_elements.windows:GetBool(3))
menu_elements.avatarcombo:SetVisible(menu_elements.uicustomi:GetBool() and menu_elements.windows:GetBool(2))
menu_elements.UI_Keybinds_X:SetVisible(menu_elements.windows:GetBool(3) and menu_elements.uicustomi:GetBool())
menu_elements.UI_Keybinds_Y:SetVisible(menu_elements.windows:GetBool(3) and menu_elements.uicustomi:GetBool())
menu_elements.textoutlinekeybinds:SetVisible(menu_elements.windows:GetBool(3) and menu_elements.uicustomi:GetBool())
menu_elements.min_damage_indicator_pos:SetVisible(menu_elements.custom_visuals:GetBool(2))
end
----------------------------------------- LOCALS -----------------------------------------
function GetEnemies()
local Enemies = {}
for _, Player in pairs(EntityList.GetPlayers()) do
if (not Player:IsTeamMate() and Player:IsAlive()) then
table.insert(Enemies, Player:GetPlayer())
end
end
return Enemies
end
function C_BasePlayer:CanHit()
local Localplayer = EntityList.GetLocalPlayer()
local TraceInfo = Cheat.FireBullet(self, self:GetEyePosition(), Localplayer:GetEyePosition())
if (TraceInfo.damage > 0 and ((TraceInfo.trace.hit_entity and TraceInfo.trace.hit_entity:GetPlayer() == Localplayer) or false)) then
return true
end
return false
end
function C_BasePlayer:GetFlag(shift)
return bit.band(self:GetProp("m_fFlags"), bit.lshift(1, shift)) ~= 0
end
function C_BasePlayer:IsLocalPlayer()
return self == EntityList.GetLocalPlayer()
end
function C_BasePlayer:IsEnemy()
return EntityList.GetLocalPlayer() and self:IsTeamMate() == false
end
----------------------------------------- CALLBACKS -----------------------------------------
EngineClient.ExecuteClientCmd("playvol Blame\\hitsound\\hitsound.wav 0.75")
Cheat.RegisterCallback("prediction", function(cmd)
if (menu_elements.Enable:Get() and menu_elements.Teleport_Weapons:Get() ~= 0 and dt_ref:Get()) then
local Allow_Work = false
local Need_Teleport = false
local Localplayer = EntityList.GetLocalPlayer()
local Weapon = Localplayer:GetActiveWeapon()
local WeaponID = Weapon:GetWeaponID()
local IsScout = WeaponID == 40
local IsAWP = WeaponID == 9
local IsPistols = Weapon:IsPistol()
local IsZeus = WeaponID == 31
local IsKnife = Weapon:IsKnife()
local IsNades = Weapon:IsGrenade()
for i, Weapons in pairs({
IsScout,
IsAWP,
IsPistols,
IsZeus,
IsKnife,
IsNades,
not (IsScout or IsAWP or IsPistols or IsZeus or IsKnife or IsNades)
}) do
if (menu_elements.Teleport_Weapons:Get(i) and Weapons) then
Allow_Work = true
end
end
if (Allow_Work) then
for _, Enemy in pairs(GetEnemies()) do
if (not Enemy:IsDormant() and Enemy:CanHit()) then
Need_Teleport = true
end
end
end
if (Need_Teleport and not Localplayer:GetFlag(0)) then
Exploits.ForceTeleport()
end
end
tankaa()
end)
Cheat.RegisterCallback("draw", function()
glowautopeek()
menuvisiblity()
custom_scope()
viewmodelchuj()
visualfunc()
indicatorsdrwa()
drawArrows()
watermark()
tag()
draw_keybinds()
damage_indicator_dmg()
snape_lines()
eventdraw()
end)
Cheat.RegisterCallback('registered_shot',function(shot)
eventshot(shot)
eventmiss(shot)
end)
starthooks()
----------------------------------------- CONFIGS -----------------------------------------
local ffi = require("ffi")
--@ffi
ffi.cdef[[
typedef int(__thiscall* GetClipboardTextCount_t)(void*);
typedef void(__thiscall* GetClipboardText_t)(void*, int, const char*, int);
typedef struct {
uint8_t r, g, b, a;
} color_struct_t;
typedef struct {
unsigned short wYear;
unsigned short wMonth;
unsigned short wDayOfWeek;
unsigned short wDay;
unsigned short wHour;
unsigned short wMinute;
unsigned short wSecond;
unsigned short wMilliseconds;
} SYSTEMTIME, *LPSYSTEMTIME;
void GetSystemTime(LPSYSTEMTIME lpSystemTime);
void GetLocalTime(LPSYSTEMTIME lpSystemTime);
typedef struct {
uint8_t r;
uint8_t g;
uint8_t b;
uint8_t a;
} color_struct_t;
typedef void (__cdecl* console_color_print)(void*,const color_struct_t&, const char*, ...);
typedef float*(__thiscall* bound)(void*);
typedef void*(__thiscall* c_entity_list_get_client_entity_t)(void*, int);
typedef void*(__thiscall* c_entity_list_get_client_entity_from_handle_t)(void*, uintptr_t);
struct pose_params_t {
char pad[8];
float m_flStart;
float m_flEnd;
float m_flState;
};
bool PlaySound(const char *pszSound, void *hmod, uint32_t fdwSound);
]]
local vgui_system010 = Utils.CreateInterface("vgui2.dll", "VGUI_System010")
local raw_vgui_system010 = ffi.cast(ffi.typeof("void***"), vgui_system010) or error("raw_VGUI_System010", 2)
local GetClipboardTextCount = ffi.cast("GetClipboardTextCount_t", raw_vgui_system010[0][7]) or error("GetClipboardTextCount")
local GetClipboardText = ffi.cast("GetClipboardText_t", raw_vgui_system010[0][11]) or error("GetClipboardText")
local GetClipboardData = function()
local text_len = GetClipboardTextCount(raw_vgui_system010[0][7])
if text_len <= 0 then return "" end
local buffer = ffi.new('char[?]', text_len)
local size = text_len * ffi.sizeof('char[?]', text_len)
GetClipboardText(raw_vgui_system010[0][11], 0, buffer, size)
return ffi.string(buffer, text_len - 1)
end
local js = Panorama.Open()
js.JSON = Panorama.LoadString([[
return {
stringify: JSON.stringify,
parse: JSON.parse
};
]], "CSGOMainMenu")()
local lp = EntityList.GetLocalPlayer()
if not EngineClient.IsConnected() then return end
if SW:Get() and uiaantiaim.aa[6].custom_enable:Get() then
--slow walk
stateid = 6
elseif lp:InAir() and uiaantiaim.aa[4].custom_enable:Get() then
--air
stateid = 4
elseif lp:Crouch() and uiaantiaim.aa[5].custom_enable:Get() or FD:Get() and uiaantiaim.aa[5].custom_enable:Get() then
--duck
stateid = 5
elseif lp:GetVelocity() > 2 and uiaantiaim.aa[3].custom_enable:Get() then
--move
stateid = 3
elseif lp:GetVelocity() < 2 and uiaantiaim.aa[2].custom_enable:Get() then
--stand
stateid = 2
else
--shared
stateid = 1
end
local get_config_from_elements = {
menu_elements.enable_change_draw_caracter,
menu_elements.change_draw_caracter,
menu_elements.Enable,
menu_elements.Teleport_Weapons,
menu_elements.air_hitchance,
menu_elements.air_hitchance_value,
menu_elements.ns_hitchance,
menu_elements.ns_hitchance_value,
menu_elements.antiaims,
menu_elements.exploits,
menu_elements.refEnabled,
menu_elements.legitAA,
menu_elements.switchbruteforce,
menu_elements.custom_visuals,
menu_elements.windows,
menu_elements.min_damage_indicator_pos,
menu_elements.arrows,
menu_elements.custom_scope_gap,
menu_elements.custom_scope_length,
menu_elements.custom_scope_fade,
menu_elements.uicustomi,
menu_elements.uitextline,
menu_elements.avatarcombo,
menu_elements.textoutlinekeybinds,
menu_elements.UI_Keybinds_X,
menu_elements.UI_Keybinds_Y,
menu_elements.eventlogs,
menu_elements.eventtype,
menu_elements.ttonkill,
menu_elements.languageonkill,
--menu_elements.snapelines_color,
menu_elements.snapelines_render,
------------- uiaantiaim
uiaantiaim.aa[2].custom_enable,
uiaantiaim.aa[3].custom_enable,
uiaantiaim.aa[4].custom_enable,
uiaantiaim.aa[5].custom_enable,
uiaantiaim.aa[6].custom_enable,
uiaantiaim.aa[1].custom_yaw_add_left,
uiaantiaim.aa[2].custom_yaw_add_left,
uiaantiaim.aa[3].custom_yaw_add_left,
uiaantiaim.aa[4].custom_yaw_add_left,
uiaantiaim.aa[5].custom_yaw_add_left,
uiaantiaim.aa[6].custom_yaw_add_left,
uiaantiaim.aa[1].custom_yaw_add_right,
uiaantiaim.aa[2].custom_yaw_add_right,
uiaantiaim.aa[3].custom_yaw_add_right,
uiaantiaim.aa[4].custom_yaw_add_right,
uiaantiaim.aa[5].custom_yaw_add_right,
uiaantiaim.aa[6].custom_yaw_add_right,
uiaantiaim.aa[1].custom_yaw_modifier,
uiaantiaim.aa[2].custom_yaw_modifier,
uiaantiaim.aa[3].custom_yaw_modifier,
uiaantiaim.aa[4].custom_yaw_modifier,
uiaantiaim.aa[5].custom_yaw_modifier,
uiaantiaim.aa[6].custom_yaw_modifier,
uiaantiaim.aa[1].custom_modifier_degree,
uiaantiaim.aa[2].custom_modifier_degree,
uiaantiaim.aa[3].custom_modifier_degree,
uiaantiaim.aa[4].custom_modifier_degree,
uiaantiaim.aa[5].custom_modifier_degree,
uiaantiaim.aa[6].custom_modifier_degree,
uiaantiaim.aa[1].custom_fake_type,
uiaantiaim.aa[2].custom_fake_type,
uiaantiaim.aa[3].custom_fake_type,
uiaantiaim.aa[4].custom_fake_type,
uiaantiaim.aa[5].custom_fake_type,
uiaantiaim.aa[6].custom_fake_type,
uiaantiaim.aa[1].custom_left_limit,
uiaantiaim.aa[2].custom_left_limit,
uiaantiaim.aa[3].custom_left_limit,
uiaantiaim.aa[4].custom_left_limit,
uiaantiaim.aa[5].custom_left_limit,
uiaantiaim.aa[6].custom_left_limit,
uiaantiaim.aa[1].custom_right_limit,
uiaantiaim.aa[2].custom_right_limit,
uiaantiaim.aa[3].custom_right_limit,
uiaantiaim.aa[4].custom_right_limit,
uiaantiaim.aa[5].custom_right_limit,
uiaantiaim.aa[6].custom_right_limit,
uiaantiaim.aa[1].custom_left_limit2,
uiaantiaim.aa[2].custom_left_limit2,
uiaantiaim.aa[3].custom_left_limit2,
uiaantiaim.aa[4].custom_left_limit2,
uiaantiaim.aa[5].custom_left_limit2,
uiaantiaim.aa[6].custom_left_limit2,
uiaantiaim.aa[1].custom_right_limit2,
uiaantiaim.aa[2].custom_right_limit2,
uiaantiaim.aa[3].custom_right_limit2,
uiaantiaim.aa[4].custom_right_limit2,
uiaantiaim.aa[5].custom_right_limit2,
uiaantiaim.aa[6].custom_right_limit2,
uiaantiaim.aa[1].custom_options,
uiaantiaim.aa[2].custom_options,
uiaantiaim.aa[3].custom_options,
uiaantiaim.aa[4].custom_options,
uiaantiaim.aa[5].custom_options,
uiaantiaim.aa[6].custom_options,
uiaantiaim.aa[1].custom_lby,
uiaantiaim.aa[2].custom_lby,
uiaantiaim.aa[3].custom_lby,
uiaantiaim.aa[4].custom_lby,
uiaantiaim.aa[5].custom_lby,
uiaantiaim.aa[6].custom_lby,
uiaantiaim.aa[1].custom_fs,
uiaantiaim.aa[2].custom_fs,
uiaantiaim.aa[3].custom_fs,
uiaantiaim.aa[4].custom_fs,
uiaantiaim.aa[5].custom_fs,
uiaantiaim.aa[6].custom_fs,
uiaantiaim.aa[1].custom_onshot,
uiaantiaim.aa[2].custom_onshot,
uiaantiaim.aa[3].custom_onshot,
uiaantiaim.aa[4].custom_onshot,
uiaantiaim.aa[5].custom_onshot,
uiaantiaim.aa[6].custom_onshot
}
local save = Menu.Button("» Global", "Blame - Configuration", " Save Config ", "Save the config to clipboard!")
local load = Menu.Button("» Global", "Blame - Configuration", " Load Config ", "Load the config from clipboard")
save:RegisterCallback(function()
local config = {}
for i = 1, #config do
print(config[i])
config[i] = nil
end
for i = 1, #get_config_from_elements do
config[i] = get_config_from_elements[i]:Get()
end
js.SteamOverlayAPI.CopyTextToClipboard(js.JSON.stringify(config))
end)
load:RegisterCallback(function()
local status, config = pcall(function() return js.JSON.parse(GetClipboardData()) end)
if not status then return end
for i = 1, #config do
get_config_from_elements[i]:Set(config[i])
end
end)