--#$gang gang gang$
-- Dumped by Spencer dc: not_spencer
--[[
Zetsu ~ gamesex.technology
Coder: vironseio
Build: thirst
]]
--#endregion
--#типо базы
local lua = {}
lua.configs = {}
--#типо конец базы
--#пиздатое окно запуска
local lua_banner = [[
Greetings, dear friend!
Thank you for your purchase - you made a
great choice, and now luck will always be
on your side! ;3
Don't forget: with our product even the
impossible becomes real.
Wishing you cool frags and lots of fun -
you deserve it! อป
Sincerely,
Zetsu Team! હત
]]
local lua_color = {r = 255, g = 108, b = 108}
client.exec("clear")
client.color_log(255, 255, 255, " \n \n \n \n \n ")
client.color_log(lua_color.r, lua_color.g, lua_color.b, lua_banner)
client.color_log(255, 255, 255, " \n \n \n \n \n ")
client.color_log(255, 255, 255, " \n \n \n \n \n ")
client.color_log(255, 255, 255, "Welcome to\0")
client.color_log(lua_color.r, lua_color.g, lua_color.b, " Zetsu.Technologyอป\0")
--#конец пиздатого окна
--#типо базы
local pui = require('gamesense/pui')
local base64 = require('gamesense/base64')
local clipboard = require('gamesense/clipboard')
local antiaim_data = require('gamesense/antiaim_funcs')
local vector = require('vector')
local ffi = require('ffi')
local weapons = require('gamesense/csgo_weapons')
lua.entity = require('gamesense/entity')
--#типо конец базы
--#region drag
local draggable = {}
draggable.__index = draggable
function draggable:new(name, base_x, base_y, width, height)
local screen_w, screen_h = client.screen_size()
local pos_x_slider = pui.slider('LUA', 'B', name .. ' Position X', 0, 10000, base_x / screen_w * 10000)
local pos_y_slider = pui.slider('LUA', 'B', name .. ' Position Y', 0, 10000, base_y / screen_h * 10000)
pos_x_slider:set_visible(false)
pos_y_slider:set_visible(false)
local obj = setmetatable({
name = name,
width = width or 200,
height = height or 100,
x_slider = pos_x_slider,
y_slider = pos_y_slider,
is_dragging = false,
offset_x = 0,
offset_y = 0
}, draggable)
return obj
end
function draggable:get_position()
local screen_w, screen_h = client.screen_size()
local x = self.x_slider:get() / 10000 * screen_w
local y = self.y_slider:get() / 10000 * screen_h
return x, y
end
function draggable:set_position(x, y)
local screen_w, screen_h = client.screen_size()
self.x_slider:set(x / screen_w * 10000)
self.y_slider:set(y / screen_h * 10000)
end
function draggable:start_drag(mouse_x, mouse_y)
local x, y = self:get_position()
self.is_dragging = true
self.offset_x = mouse_x - x
self.offset_y = mouse_y - y
end
function draggable:stop_drag()
self.is_dragging = false
end
function draggable:handle_drag()
local mouse_x, mouse_y = ui.mouse_position()
if self.is_dragging then
local new_x = mouse_x - self.offset_x
local new_y = mouse_y - self.offset_y
local screen_w, screen_h = client.screen_size()
new_x = math.max(0, math.min(screen_w - self.width, new_x))
new_y = math.max(0, math.min(screen_h - self.height, new_y))
self:set_position(new_x, new_y)
if not client.key_state(0x01) then
self:stop_drag()
end
else
local x, y = self:get_position()
local is_hovering = mouse_x >= x and mouse_x <= x + self.width and mouse_y >= y and mouse_y <= y + self.height
if is_hovering and ui.is_menu_open() and client.key_state(0x01) then
self:start_drag(mouse_x, mouse_y)
end
end
end
--#endregion
--#region render
local render = renderer
local screen = vector(client.screen_size())
render.frame_count = 0
render.frame_string = 0
math.exploit = function ()
local me = entity.get_local_player()
if not me then return end
local tickcount = globals.tickcount()
local tickbase = entity.get_prop(me, 'm_nTickBase')
return tickcount > tickbase
end
render.get_frame = function ( sel, answer )
render.frame_count = 0.9 * render.frame_count + 0.1 * globals.absoluteframetime()
if globals.tickcount() % sel == 1 then
render.frame_string = tostring(1 / render.frame_count)
end
if answer == 'string' then
return math.floor(render.frame_string)
elseif answer == 'count' then
return math.floor(render.frame_count)
end
end
render.round_rect = function (x, y, width, height, radius, r, g, b, a)
local top_left_x, top_left_y = x + radius, y + radius
local top_right_x, top_right_y = x + width - radius, y + radius
local bottom_left_x, bottom_left_y = x + radius, y + height - radius
local bottom_right_x, bottom_right_y = x + width - radius, y + height - radius
-- circle
render.circle(top_left_x, top_left_y, r, g, b, a, radius, 180, 0.25) -- up left
render.circle(top_right_x, top_right_y, r, g, b, a, radius, 90, 0.25) -- up right
render.circle(bottom_left_x, bottom_left_y, r, g, b, a, radius, 270, 0.25) -- down left
render.circle(bottom_right_x, bottom_right_y, r, g, b, a, radius, 0, 0.25) -- down right
-- rect
render.rectangle(x + radius, y, width - radius * 2, radius, r, g, b, a) -- up
render.rectangle(x + radius, y + height - radius, width - radius * 2, radius, r, g, b, a) -- down
render.rectangle(x, y + radius, radius, height - radius * 2, r, g, b, a) -- left
render.rectangle(x + width - radius, y + radius, radius, height - radius * 2, r, g, b, a) -- right
render.rectangle(x + radius, y + radius, width - radius * 2, height - radius * 2, r, g, b, a)
end
render.shadow = function(x, y, width, height, radius, glow_size, r, g, b, a)
for i = glow_size, 1, -1 do
local alpha = a * (i / glow_size) * 0.6
if alpha <= 0 then
goto continue
end
render.round_rect(x - i, y - i, width + i * 2, height + i * 2, radius, r, g, b, alpha)
end
render.round_rect(x, y, width, height, radius, r, g, b, a)
::continue::
end
--#endregion
--#region lua.sounds
local function bind_signature(module, interface, signature, typestring)
local interface = client.create_interface(module, interface) or error('invalid interface', 2)
local instance = client.find_signature(module, signature) or error('invalid signature', 2)
local success, typeof = pcall(ffi.typeof, typestring)
if not success then
error(typeof, 2)
end
local fnptr = ffi.cast(typeof, instance) or error('invalid typecast', 2)
return function(...)
return fnptr(interface, ...)
end
end
local function vmt_entry(instance, index, type)
return ffi.cast(type, (ffi.cast('void***', instance)[0])[index])
end
local function vmt_bind(module, interface, index, typestring)
local instance = client.create_interface(module, interface) or error('invalid interface')
local success, typeof = pcall(ffi.typeof, typestring)
if not success then
error(typeof, 2)
end
local fnptr = vmt_entry(instance, index, typeof) or error('invalid vtable')
return function(...)
return fnptr(instance, ...)
end
end
local int_ptr = ffi.typeof('int[1]')
local char_buffer = ffi.typeof('char[?]')
local find_first = bind_signature('filesystem_stdio.dll', 'VFileSystem017', '\x55\x8B\xEC\x6A\x00\xFF\x75\x10\xFF\x75\x0C\xFF\x75\x08\xE8\xCC\xCC\xCC\xCC\x5D', 'const char*(__thiscall*)(void*, const char*, const char*, int*)')
local find_next = bind_signature('filesystem_stdio.dll', 'VFileSystem017', '\x55\x8B\xEC\x83\xEC\x0C\x53\x8B\xD9\x8B\x0D\xCC\xCC\xCC\xCC', 'const char*(__thiscall*)(void*, int)')
local find_close = bind_signature('filesystem_stdio.dll', 'VFileSystem017', '\x55\x8B\xEC\x53\x8B\x5D\x08\x85', 'void(__thiscall*)(void*, int)')
local current_directory = bind_signature('filesystem_stdio.dll', 'VFileSystem017', '\x55\x8B\xEC\x51\x8B\x45\x08\x8B\x4D\x0C\x50\x8B\xC8\xE8\xCC\xCC\xCC\xCC\x83\xC4\x04\x89\x45\xFC\x5D\xC2\x08\x00', 'void(__thiscall*)(void*, char*, int)')
local sound_files = {}
local function get_sounds(path)
local find_handle_ptr = int_ptr(0)
for i, v in ipairs(sound_files) do
sound_files[i] = nil
end
local first_file = find_first(path .. '\\*.wav', 'GAME', find_handle_ptr)
if first_file ~= nil then
table.insert(sound_files, first_file)
while true do
local next_file = find_next(find_handle_ptr[0])
if next_file == nil then
break
end
table.insert(sound_files, next_file)
end
end
find_close(find_handle_ptr[0])
end
local function play_sound(name)
if name == nil then
return
end
client.exec('play ' .. name)
end
lua.sounds = {}
lua.sounds.hitsound_types = { "Zetsu", "Bell", "Cod", "Bubble", "Neverlose" }
lua.sounds.killsound_types = { "None", "Arena_switch" }
--#endregion
--#region lua.createmove
lua.createmove = {}
lua.createmove.allow_charge = false
function lua.createmove.run()
end
client.set_event_callback('on_paint', lua.createmove.run)
client.set_event_callback('on_command', lua.createmove.allow_charge)
client.set_event_callback('on_command', lua.createmove.allow_charge)