ffi.cdef[[
bool CreateDirectoryA(const char* lpPathName, void* lpSecurityAttributes);
bool DeleteUrlCacheEntryA(const char* lpszUrlName);
void* __stdcall URLDownloadToFileA(void* LPUNKNOWN, const char* LPCSTR, const char* LPCSTR2, int a, int LPBINDSTATUSCALLBACK);
int CreateDirectoryA(const char*, void*);
void* CreateFileA(const char*, uintptr_t, uintptr_t, void*, uintptr_t, uintptr_t, void*);
uintptr_t GetFileSize(void*, uintptr_t*);
int ReadFile(void*, void*, uintptr_t, uintptr_t*, void*);
int CloseHandle(void*);
]]
local animations = {
anim_list = {}
}
local visuals = {
indicators = {}
}
local file_downloader = {}
file_downloader.urlmon = ffi.load('UrlMon')
file_downloader.wininet = ffi.load('WinInet')
file_downloader.download_file_from_url = function(from, to)
file_downloader.wininet.DeleteUrlCacheEntryA(from)
file_downloader.urlmon.URLDownloadToFileA(nil, from, to, 0,0)
end
file_downloader.ct = ffi.typeof('char[?]')
file_downloader.c_invalid_handle_value = ffi.cast('void*', -1)
package.loaded.readfile = function(filename)
local fp = ffi.C.CreateFileA(filename, 0x80000000, 3, nil, 3, 128, nil)
if file_downloader.c_invalid_handle_value ~= fp then
local size = ffi.C.GetFileSize(fp, nil)
local buf = file_downloader.ct(size + 1)
ffi.C.ReadFile(fp, buf, size, nil, nil)
ffi.C.CloseHandle(fp)
return ffi.string(buf, size)
end
end
file_downloader.game_path_str = EngineClient.GetGameDirectory()
file_downloader.game_path = string.gsub(file_downloader.game_path_str, '\\csgo', '\\')
local files_to_download = {
'nl\\melancholia\\small_pixel.ttf', 'nl\\melancholia\\1.png', 'nl\\melancholia\\2.png', 'nl\\melancholia\\3.png', 'nl\\melancholia\\4.png', 'nl\\melancholia\\5.png', 'nl\\melancholia\\6.png', 'nl\\melancholia\\7.png', 'nl\\melancholia\\8.png', 'nl\\melancholia\\9.png', 'nl\\melancholia\\velocity_warning.png'
}
local image = {}
for i = 1, #files_to_download do
if package.loaded.readfile(files_to_download[i]) then
for i=1, 9 do
image[i] = Render.LoadImageFromFile(('nl\\melancholia\\%s.png'):format(i), Vector2.new(25, 25))
end
else
ffi.C.CreateDirectoryA('nl\\melancholia\\', NULL)
file_downloader.download_file_from_url('https://cdn.discordapp.com/attachments/947429839101624320/952177172557234227/small_pixel.ttf', 'nl\\melancholia\\small_pixel.ttf')
file_downloader.download_file_from_url('https://cdn.discordapp.com/attachments/967383362241167420/988498559575941130/velocity_warning.png', 'nl\\melancholia\\velocity_warning.png')
file_downloader.download_file_from_url('https://cdn.discordapp.com/attachments/967383362241167420/989535076482158612/1.png', 'nl\\melancholia\\1.png')
file_downloader.download_file_from_url('https://cdn.discordapp.com/attachments/967383362241167420/989535089039925308/2.png', 'nl\\melancholia\\2.png')
file_downloader.download_file_from_url('https://cdn.discordapp.com/attachments/967383362241167420/989535107276759070/3.png', 'nl\\melancholia\\3.png')
file_downloader.download_file_from_url('https://cdn.discordapp.com/attachments/967383362241167420/989535116068012032/4.png', 'nl\\melancholia\\4.png')
file_downloader.download_file_from_url('https://cdn.discordapp.com/attachments/967383362241167420/989535127631712266/5.png', 'nl\\melancholia\\5.png')
file_downloader.download_file_from_url('https://cdn.discordapp.com/attachments/967383362241167420/989535142051708958/6.png', 'nl\\melancholia\\6.png')
file_downloader.download_file_from_url('https://cdn.discordapp.com/attachments/967383362241167420/989535152923357194/7.png', 'nl\\melancholia\\7.png')
file_downloader.download_file_from_url('https://cdn.discordapp.com/attachments/967383362241167420/990682553419714631/8.png', 'nl\\melancholia\\8.png')
file_downloader.download_file_from_url('https://cdn.discordapp.com/attachments/967383362241167420/989535189493485568/9.png', 'nl\\melancholia\\9.png')
table.insert(miscellaneous.stuff, {text2 = {
name = '',
hit = '',
who = Cheat.GetCheatUserName(),
in_the = ', reload script!',
where = '',
for_ = '',
how_much = '',
damage = '',
how_muc_r = '',
health = ''
}, alpha = 0, alpha1 = 0, type = 'Hit', time = GlobalVars.realtime})
end
end
function C_BasePlayer:GetVelocity() first_velocity = self:GetProp('m_vecVelocity[0]') second_velocity = self:GetProp('m_vecVelocity[1]') speed = math.floor(math.sqrt(first_velocity * first_velocity + second_velocity * second_velocity)) return speed end
animations.math_clamp = function(value, min, max)
return math.min(max, math.max(min, value))
end
local refs = {
minimum_damage = Menu.FindVar("Aimbot","Ragebot","Accuracy","Minimum Damage"),
body_aim = Menu.FindVar("Aimbot","Ragebot","Misc","Body Aim"),
safe_points = Menu.FindVar("Aimbot","Ragebot","Misc","Safe Points"),
double_tap = Menu.FindVar("Aimbot","Ragebot","Exploits","Double Tap"),
hide_shots = Menu.FindVar("Aimbot","Ragebot","Exploits","Hide Shots"),
fakeduck = Menu.FindVar('Aimbot', 'Anti Aim', 'Misc', 'Fake Duck'),
}
local ui = {
visuals = Menu.Switch("Main", "Enable this hueten", false),
}
animations.math_lerp = function(a, b_, t)
local t = animations.math_clamp(GlobalVars.frametime * (0.045 * 175), 0, 1)
if type(a) == 'userdata' then
r, g, b, a = a.r, a.g, a.b, a.a
e_r, e_g, e_b, e_a = b_.r, b_.g, b_.b, b_.a
r = animations.math_lerp(r, e_r, t)
g = animations.math_lerp(g, e_g, t)
b = animations.math_lerp(b, e_b, t)
a = animations.math_lerp(a, e_a, t)
return Color.new(r, g, b, a)
end
local d = b_ - a
d = d * t
d = d + a
if b_ == 0 and d < 0.01 and d > -0.01 then
d = 0
elseif b_ == 1 and d < 1.01 and d > 0.99 then
d = 1
end
return d
end
animations.anim_new = function(name, new, remove, speed)
if not animations.anim_list[name] then
animations.anim_list[name] = {}
animations.anim_list[name].color = Color.new(0, 0, 0, 0)
animations.anim_list[name].number = 0
animations.anim_list[name].call_frame = true
end
if remove == nil then
animations.anim_list[name].call_frame = true
end
if speed == nil then
speed = 0.010
end
if type(new) == 'userdata' then
lerp = animations.math_lerp(animations.anim_list[name].color, new, speed)
animations.anim_list[name].color = lerp
return lerp
end
lerp = animations.math_lerp(animations.anim_list[name].number, new, speed)
animations.anim_list[name].number = lerp
return lerp
end
local ragebot = {}
ragebot.player_info_prev = {}
for i = 1, 64 do
ragebot.player_info_prev[i] = {
origin = Vector.new(0, 0, 0),
}
end
local screen_size = EngineClient.GetScreenSize()
visuals.indicators.Render_Shadow = function(start_pos, endpos, color)
Render.GradientBoxFilled(start_pos, Vector2.new(start_pos.x + ((endpos.x - start_pos.x) / 2), endpos.y), Color.RGBA(0.0, 0.0, 0.0, 0.0), color, Color.RGBA(0.0, 0.0, 0.0, 0.0), color)
Render.GradientBoxFilled(Vector2.new(start_pos.x + ((endpos.x - start_pos.x) / 2), start_pos.y), endpos, color, Color.RGBA(0.0, 0.0, 0.0, 0.0), color, Color.RGBA(0.0, 0.0, 0.0, 0.0))
end
visuals.indicators.Render_Indicator = function(i, col, cur)
local position = Vector2.new(20, (screen_size.y / 1.55) + (39 * cur))
visuals.indicators.Render_Shadow(Vector2.new(position.x - 10, position.y - 7), Vector2.new(position.x + 22, position.y + 26), Color.new(0, 0, 0, 0.21 * col.a))
Render.Image(image[i], Vector2.new(20, ((screen_size.y / 1.55) + (39 * cur))-3), Vector2.new(25, 25), col)
--Render.Text(text, positionS, Color.new(0.13, 0.13, 0.13, 0.49 * col.a), 24, fonts.calibrib24)
--Render.Text(text, position, col, 24, fonts.calibrib24)
end
visuals.indicators.indicator2 = function()
if not EngineClient.IsConnected() or not EntityList.GetLocalPlayer():IsAlive() or EntityList.GetLocalPlayer() == nil then
return
end
local cur_dmg = refs.minimum_damage:GetInt()
if cur_dmg > 100 then cur_dmg = '+'..cur_dmg-100 end
local isDmg = false
local isPing = false
local binds = Cheat.GetBinds()
for i = 1, #binds do
bind = binds[i]
if bind:GetName() == 'Minimum Damage' and bind:IsActive() then
isDmg = true
end
if bind:GetName() == 'Fake Ping' and bind:IsActive() then
isPing = true
end
end
local anims2 = {
indicators_stylel = animations.anim_new('ui.visuals:Get()', ui.visuals:Get() and 1 or 0)
}
if anims2.indicators_stylel >= 0.01 then
local current_pos = 1
--if ui.additional_ind:GetBool(1) then
-- indicators.Render_Indicator(tostring(cur_dmg), Color.RGBA(213, 213, 214, 255 * indicators_style4), current_pos); current_pos = current_pos - 1;
--else
-- if isDmg then
-- indicators.Render_Indicator('Damage: '..tostring(cur_dmg), Color.RGBA(213, 213, 214, 255 * indicators_style4), current_pos); current_pos = current_pos - 1;
-- end
--end
local colors = Color.new(.51, .76, .07)
for k, v in pairs(ragebot.player_info_prev) do
if k ~= nil then
if v[3] then
colors = Color.new(.98, .87, .11)
break
end
end
end
local s_indicators =
{
{
img = 3,
color = Exploits.GetCharge() == 1 and Color.new(.83, .83, .83) or Color.new(1, 0, 0),
bool = refs.double_tap:Get(),
},
{
img = 4,
color = Color.new(.51, .76, .07),
bool = refs.hide_shots:Get()
},
{
img = 9,
color = Color.new(.83, .83, .83),
bool = isDmg
},
{
img = 1,
color = Color.new(.83, .83, .83),
bool = refs.safe_points:Get() == 2
},
{
img = 6,
color = Color.new(.83, .83, .83),
bool = refs.body_aim:Get() == 2
},
{
img = 2,
color = Color.new(.51, .76, .07),
bool = isPing
},
{
img = 5,
color = EntityList.GetLocalPlayer():GetVelocity() > 260 and Color.new(.51, .76, .07) or Color.new(1, 0, 0),
bool = bit.band(EntityList.GetLocalPlayer():GetProp('m_fFlags'), bit.lshift(1,0)) == 0
},
{
img = 7,
color = Color.new(.83, .83, .83),
bool = refs.fakeduck:Get()
},
-- {
-- img = 8,
-- color = colors,
-- bool = ui.dormant_aimbot:Get()
-- }
}
--visuals.indicators.Render_Indicator('DUCK', Color.new(.83, .83, .83), current_pos); current_pos = current_pos - 1;
for idx, value in pairs(s_indicators) do
--local width = Render.CalcTextSize(v.text, 9, fonts.pixel9)
anims2.alpha2 = animations.anim_new(('alpha2 %s'):format(idx), value.bool and 1 or 0)
anims2.color2 = animations.anim_new(('color2 %s'):format(idx), Color.new(value.color.r, value.color.g, value.color.b, anims2.alpha2*anims2.indicators_stylel))
if anims2.alpha2 > 0.01 then
--Render.Text(v.text, Vector2.new(screen_size.x/2-width.x/2 + 3 + anims.add_x, screen_size.y/2+add_y), anims.color, 9, fonts.pixel9, true)
--visuals.indicators.Render_Indicator(tostring(cur_dmg), Color.RGBA(213, 213, 214, 255 * indicators_style4), current_pos); current_pos = current_pos - 1;
visuals.indicators.Render_Indicator(value.img, anims2.color2, current_pos); current_pos = current_pos - 1;
end
end
end
end
Cheat.RegisterCallback("draw", function()
visuals.indicators.indicator2()
end)