Code:
--[[
-================================-
Hera v4 - A Garry's Mod aimbot [Multi-Hack]
-================================-
]]--
/************************************
Name: Localizing
Purpose: Make the cheat run faster
************************************/
local g = table.Copy(_G)
local Hera = {} -- Nothing!
Hera.settings = {} -- Not started yet.
Hera.hooks = {} -- Store hooks in a table
Her*****ncommands = {} -- Store concommands in a table
Her*****nvars = {} -- Store the ConVars in a table
Hera.timers = {} -- Store Timers in a table
Her*****nes = { normal = {}, hl2 = {}, custom = {}} -- I probably won't even need this, I won't have NoSpread for a long time. Anyways, store cones here.
Hera.files = {"Hera.lua","Log.txt"} -- Files to hide and protect
Hera.version = "4.1" -- Version of the cheat.
Hera.ents = { -- ents to be picked up by entity esp, add more if you want.
"ent_pot",
"npc_vendor",
"weapon_perp_glock",
"ent_item",
"ent_prop_item",
"sent_spawnpoint",
"spawned_weapon",
"spawned_shipment",
"weed_plant",
"gift",
"spawned_money",
"base_item",
"weapon_ak47_dayz",
"weapon_mp5_dayz",
"weapon_deagle_dayz",
"sapphire_money_printer",
"amethyst_money_printer",
"topaz_money_printer",
"emerald_money_printer",
"msc_scrapnug",
"food_rawant",
"ent_resource",
"food_rawhead",
"gmodz_item", -- TPS DayZ
}
Hera.dontlog = { -- commands to be ignored by the runconsolecommand logger
"+jump",
"-jump",
"+attack",
"-attack",
"impulse"
}
Hera.badcmds = { -- commands to be blocked
"__ac",
"__imacheater",
"gm_possess",
"achievementRefresh", -- fuck u lifepunch
"__uc_", -- RIOT
"_____b__c",
"___m",
"sc",
"bg",
"bm",
"kickme",
"gw_iamacheater",
"ima******",
"birdcage_browse",
"reportmod",
"_fuckme",
"st_openmenu",
"_NOPENOPE",
"__ping",
"ar_check",
"GForceRecoil",
"~__ac_auth",
"blade_client_check",
"blade_client_detected_message",
"disconnect",
"exit",
"retry",
"kill",
"-voicerecord",
"+voicerecord",
"dac_imcheating", -- fuck u bich
"dac_pleasebanme", -- fuck u bich
}
Hera.invalidents = {"player","prop_physics","viewmodel",} -- Ents to not show on the ESP
Hera.weapons = {["weapon_crossbow"] = 3110,}
Hera.spectators = {} -- Store spectators here.
Hera.admins = {} -- store admins here
Her*****nfig = {} -- user config
local colors = {}
red = Color(255,0,0,255);
black = Color(0,0,0,255);
green = Color(0,255,0,255);
white = Color(255,255,255,255);
blue = Color(0,0,255,255);
cyan = Color(0,255,255,255);
pink = Color(255,0,255,255);
blue = Color(0,0,255,255);
grey = Color(100,100,100,255);
gold = Color(255,228,0,255);
lblue = Color(155,205,248);
lgreen = Color(174,255,0);
iceblue = Color(116,187,251,255);
local _G = table.Copy(_G)
local math = _G.math
local string = _G.string
local hook = _G.hook
local table = _G.table
local timer = _G.timer
local surface = _G.surface
local concommand = _G.concommand
local cvars = _G.cvars
local ents = _G.ents
local player = _G.player
local team = _G.team
local util = _G.util
local draw = _G.draw
local usermessage = _G.usermessage
local vgui = _G****ui
local http = _G.http
local cam = _G.cam
local render = _G.render
local MsgN = _G.MsgN
local Msg = _G.Msg
local Vector = _G.Vector
local Angle = _G.Angle
local pairs = _G.pairs
local ipairs = _G.ipairs
local CreateSound = _G.CreateSound
local setmetatable = _G.setmetatable
local Sound = _G.Sound
local print = _G.print
local pcall = _G.pcall
local type = _G.type
local LocalPlayer = _G.LocalPlayer
local KeyValuesToTable = _G.KeyValuesToTable
local TableToKeyValues = _G.TableToKeyValues
local Color = _G.Color
local CreateClientConVar = _G.CreateClientConVar
local ErrorNoHalt = _G.ErrorNoHalt
local IsValid = _G.IsValid
local CreateMaterial = _G.CreateMaterial
local tonumber = _G.tonumber
local tostring = _G.tostring
local CurTime = _G.CurTime
local FrameTime = _G.FrameTime
local ScrW = _G.ScrW
local ScrH = _G.ScrH
local SetClipboardText = _G.SetClipboardText
local GetHostName = _G.GetHostName
local unpack = _G.unpack
local AddConsoleCommand = _G.AddConsoleCommand
local require = _G.require
local include = _G.include
local MOVETYPE_OBSERVER = _G.MOVETYPE_OBSERVER
local MOVETYPE_NONE = _G.MOVETYPE_NONE
local TEXT_ALIGN_LEFT = _G.TEXT_ALIGN_LEFT
local TEXT_ALIGN_TOP = _G.TEXT_ALIGN_TOP
local TEXT_ALIGN_RIGHT = _G.TEXT_ALIGN_RIGHT
local TEXT_ALIGN_BOTTOM = _G.TEXT_ALIGN_BOTTOM
local IN_JUMP = _G.IN_JUMP
local IN_FORWARD = _G.IN_FORWARD
local IN_BACK = _G.IN_BACK
local IN_MOVERIGHT = _G.IN_MOVERIGHT
local IN_MOVELEFT = _G.IN_MOVELEFT
local IN_SPEED = _G.IN_SPEED
local IN_DUCK = _G.IN_DUCK
local TEAM_SPECTATOR = 1002
-- old [detour]
local old_filecdir = file.CreateDir;
local old_filedel = file.Delete;
local old_fileexist = file.Exists;
local old_fileexistex = file.ExistsEx;
local old_filefind = file.Find;
local old_filefinddir = file.FindDir;
local old_filefindil = file.FindInLua;
local old_fileisdir = file.IsDir;
local old_fileread = file.Read;
local old_filerename = file.Rename;
local old_filesize = file.Size;
local old_filetfind = file.TFind;
local old_filetime = file.Time;
local old_filewrite = file.Write;
local old_dbginfo = debug.getinfo;
local old_dbginfo = debug.getupvalue;
local old_cve = ConVarExists;
local old_gcv = GetConVar;
local old_gcvn = GetConVarNumber;
local old_gcvs = GetConVarString;
local old_rcc = RunConsoleCommand;
local old_hookadd = hook.Add;
local old_hookrem = hook.Remove;
local old_ccadd = concommand.Add;
local old_ccrem = concommand.Remove;
local old_cvaracc = cvars.AddChangeCallback;
local old_cvargcvc = cvars.GetConVarCallbacks;
local old_cvarchange = cvars.OnConVarChanged;
local old_require = require;
local old_eccommand = engineConsoleCommand;
--Fonts--
surface.CreateFont("ESPFont",{font = "ScoreboardText", size = 17, weight = 400, antialias = 0})
surface.CreateFont("ESPFont_Small",{font = "Default", size = 12, weight = 200, antialias = 0})
surface.CreateFont("Logo",{font = "akbar", size = 21, weight = 400, antialias = 0})
surface.CreateFont("Hera_ScoreboardText",{font = "ScoreboardText", size = 15, weight = 700, antialias = 0})
surface.CreateFont("Hera_coolvetica",{font = "coolvetica", size = 16, weight = 500, antialias = 0})
surface.CreateFont("Hera_hvh",{font = "ScoreboardTextt", size = 15, weight = 1000, antialias = 1})
g.rawset(_G, "RunConsoleCommand", oRunConsoleCommand)
--Materials--
function Hera:CreateMaterial()
local BaseInfo = {
["$basetexture"] = "models/debug/debugwhite",
["$model"] = 1,
["$translucent"] = 1,
["$alpha"] = 1,
["$nocull"] = 1,
["$ignorez"] = 1
}
local mat
if GetConVarString("Hera_ESP_Chams_Material") == "Solid" then
mat = CreateMaterial( "hera_solid", "VertexLitGeneric", BaseInfo )
elseif GetConVarString("Hera_ESP_Chams_Material") == "Wireframe" then
mat = CreateMaterial( "hera_wire", "Wireframe", BaseInfo )
end
return mat
end
/**************************************
Name: Logger
Purpose: Logs functions and shit
**************************************/
concommand.Add("Hera_StartLog",function()
file.Write("Hera/log.txt","Log created: ("..os.date()..") \n")
end)
function Log(msg)
file.Append("Hera/log.txt","["..os.date().."]: "..msg.."\n")
end
Log("Loading....")
/*******************************************
Name: Print/Chat functions
Purpose: Notify the user of what's going on
********************************************/
function Hera.Print(msg)
print("[Hera] "..msg)
end
function Hera.Notify(dosound,col,msg)
if col then
col = col
end
chat.AddText(
iceblue, "[Hera] ",
col, msg)
if dosound == sound then
local beep = Sound( "/buttons/button17.wav" )
local beepsound = CreateSound( LocalPlayer(), beep )
beepsound:Play()
end
end
/***********************************************
Name: Hook functions
Purpose: Add hooks and protect from anticheats
************************************************/
-- Addhook
local function AddHook(Type,Function)
Name = Type.." | "..math.random(1,1000),math.random(1,2000),math.random(1,3000) -- Simple hook names
Hera.Print("[ADDED] Hook: ["..Type.."] | Name: "..Name.."")
return old_hookadd(Type,Name,Function)
end
-- RemoveHook
local function RemoveHook(Type,Function)
Hera.Print("[REMOVED] Hook: ["..Type.."]")
return old_hookrem(Type,Function)
end
/**********************************
Name: File Shit
Purpose: Anything relating to file.
***********************************/
-- Write file
function AddFile(Name,Data)
Hera.Print("[WROTE] File: "..Name.."")
return old_filewrite(Name,Data)
end
/**************
Random String
**************/
function RandomString( len )
local ret = ""
for i = 1 , len do
ret = ret .. string.char( math.random( 65 , 116 ) )
end
return ret
end
/**********************
Name: Timer shit
Purpose: Anything timer
***********************/
function AddTimer( sec, rep, func )
local index = RandomString( 10 )
Hera.timers[ index ] = sec
timer.Create( index, sec, rep, func )
end
/******************************************
Name: ConCommand Shit
Purpose: Anything related to concommands
********************************************/
function AddCMD(Name,Function)
Hera.Print("[ADDED] ConCommand: "..Name.."")
return old_ccadd(Name,Function)
end
function RemoveCMD(Name)
Hera.Print("[REMOVED] ConCommand: "..Name.."")
return old_ccrem(Name)
end
/*******************************************
Name: ConVars
Purpose: Anything with ConVars
********************************************/
-- AddConVar
function AddConVar(convar,str,save,data)
return CreateClientConVar("Hera_"..convar,str,true,false), Hera.Print("[ADDED] ConVar: Hera_"..convar.." ["..str.."]")
end
/***************************************
Name: RunConsoleCommand shit
Purpose: Detours, Loggers, blockers
****************************************/
function RunConsoleCommand(cmd,...)
if !table.HasValue(Hera.dontlog, cmd) then
Hera.Print("RunConsoleCommand: "..cmd)
Log("RunConsoleCommand: "..cmd)
end
if !table.HasValue(Hera.badcmds,cmd) then
return old_rcc(cmd,...)
else
Hera.Notify(sound,red,"Blocked command: "..cmd)
Log("BLOCKED COMMAND: "..cmd)
return
end
end
/**************************************
Name: Entity Shit
Purpose: Anything to do with entities
***************************************/
-- entity finder [addent]
function AddEnt(entclass)
if(!table.HasValue(Hera.ents,entclass)) then
table.insert(Hera.ents,entclass)
Hera.Print("[ADDED] Ent: "..entclass.." to ESP")
file.Write("Hera/ents.txt", glon.encode( Hera.ents ))
end
end
-- entity finder [removeent]
function RemoveEnt(entclass)
for k, v in pairs(Hera.ents) do
if(string.Trim(v) == entclass) then
Hera.ents[k] = nil
Hera.Print("[REMOVED] Ent: "..entclass.." from the ESP")
end
end
file.Write("Hera/ents.txt", glon.encode( Hera.ents ))
end
-- entity finder [clear ents]
function ClearEnts()
Hera.ents = {}
file.Write("Hera/ents.txt", glon.encode( Hera.ents ))
end
-- entity finder [IsCustomEnt()]
function IsCustomEnt( entclass )
return table.HasValue( Hera.ents, entclass )
end
/**************************
Name: Derma shit
Purpose: Anything Derma
***************************/
function AddCheckBox( text, cvar, parent, x, y, tt )
local checkbox = vgui.Create( "DCheckBoxLabel", parent )
checkbox:SetPos( x, y )
checkbox:SetText( text )
checkbox:SetConVar( cvar )
checkbox:SetTextColor(white)
checkbox:SetTooltip( tt or "No Tool Tip" )
checkbox:SizeToContents()
end
// AddSlider for the derma
function AddSlider( text, cvar, parent, min, max, decimals, x, y, wide, tt )
local slider = vgui.Create( "DNumSlider" )
slider:SetParent( parent )
slider:SetPos( x, y )
slider:SetWide( wide )
slider:SetText( text )
--slider:SetTextColor(BLACK)
slider:SetMin( min )
slider:SetMax( max )
slider:SetDecimals( decimals )
slider:SetConVar( cvar )
slider:SetTooltip( tt or "No Tool Tip" )
end
Gradient = surface.GetTextureID( "gui/gradient" )
function DrawBox( x, y, wide, tall, dropsize )
draw****undedBoxEx( 4, x, y, wide, dropsize, iceblue, true, true, false, false )
draw****undedBoxEx( 4, x, y + dropsize, wide, tall - dropsize, Color( 0, 0, 0, 100 ), false, false, true, true )
end
/********************************************************
Name: Hide the cheat from client
Purpose: Don't show the where the cheat loads from, etc
*********************************************************/
function error(...) Hera.Notify(red,"Error in the Lua script!") end
function Error(...) Hera.Notify(red,"Error in the Lua script!") end
function ErrorNoHalt(...) Hera.Notify(red,"Error in the Lua script!") end
/*************************
Name: CreatePos
Purpose: Create a position
Credits: BaconBot
***************************/
function CreatePos(v)
local ply = LocalPlayer()
local center = v:LocalToWorld( v:OBBCenter() )
local min, max = v:OBBMins(), v:OBBMaxs()
local dim = max - min local z = max + min
local frt = ( v:GetForward() ) * ( dim.y / 2 )
local rgt = ( v:GetRight() ) * ( dim.x / 2 )
local top = ( v:GetUp() ) * ( dim.z / 2 )
local bak = ( v:GetForward() * -1 ) * ( dim.y / 2 )
local lft = ( v:GetRight() * -1 ) * ( dim.x / 2 )
local btm = ( v:GetUp() * -1 ) * ( dim.z / 2 )
local s = 1
local FRT = center + frt / s + rgt / s + top / s; FRT = FRT:ToScreen()
local BLB = center + bak / s + lft / s + btm / s; BLB = BLB:ToScreen()
local FLT = center + frt / s + lft / s + top / s; FLT = FLT:ToScreen()
local BRT = center + bak / s + rgt / s + top / s; BRT = BRT:ToScreen()
local BLT = center + bak / s + lft / s + top / s; BLT = BLT:ToScreen()
local FRB = center + frt / s + rgt / s + btm / s; FRB = FRB:ToScreen()
local FLB = center + frt / s + lft / s + btm / s; FLB = FLB:ToScreen()
local BRB = center + bak / s + rgt / s + btm / s; BRB = BRB:ToScreen()
local z = 100
if ( v:Health() <= 50 ) then z = 100 end
local x, y = ( ( v:Health() / 100 ) ), 1
if ( v:Health() <= 0 ) then x = 1 end
local FRT3 = center + frt + rgt + top / x; FRT3 = FRT3; FRT3 = FRT3:ToScreen()
local BLB3 = center + bak + lft + btm / x; BLB3 = BLB3; BLB3 = BLB3:ToScreen()
local FLT3 = center + frt + lft + top / x; FLT3 = FLT3; FLT3 = FLT3:ToScreen()
local BRT3 = center + bak + rgt + top / x; BRT3 = BRT3; BRT3 = BRT3:ToScreen()
local BLT3 = center + bak + lft + top / x; BLT3 = BLT3; BLT3 = BLT3:ToScreen()
local FRB3 = center + frt + rgt + btm / x; FRB3 = FRB3; FRB3 = FRB3:ToScreen()
local FLB3 = center + frt + lft + btm / x; FLB3 = FLB3; FLB3 = FLB3:ToScreen()
local BRB3 = center + bak + rgt + btm / x; BRB3 = BRB3; BRB3 = BRB3:ToScreen()
local x, y, z = 1.1, 0.9, 1
local FRT2 = center + frt / y + rgt / z + top / x; FRT2 = FRT2:ToScreen()
local BLB2 = center + bak / y + lft / z + btm / x; BLB2 = BLB2:ToScreen()
local FLT2 = center + frt / y + lft / z + top / x; FLT2 = FLT2:ToScreen()
local BRT2 = center + bak / y + rgt / z + top / x; BRT2 = BRT2:ToScreen()
local BLT2 = center + bak / y + lft / z + top / x; BLT2 = BLT2:ToScreen()
local FRB2 = center + frt / y + rgt / z + btm / x; FRB2 = FRB2:ToScreen()
local FLB2 = center + frt / y + lft / z + btm / x; FLB2 = FLB2:ToScreen()
local BRB2 = center + bak / y + rgt / z + btm / x; BRB2 = BRB2:ToScreen()
local maxX = math.max( FRT.x,BLB.x,FLT.x,BRT.x,BLT.x,FRB.x,FLB.x,BRB.x )
local minX = math.min( FRT.x,BLB.x,FLT.x,BRT.x,BLT.x,FRB.x,FLB.x,BRB.x )
local maxY = math.max( FRT.y,BLB.y,FLT.y,BRT.y,BLT.y,FRB.y,FLB.y,BRB.y )
local minY = math.min( FRT.y,BLB.y,FLT.y,BRT.y,BLT.y,FRB.y,FLB.y,BRB.y )
local minYhp2 = math.min( FRT.y,BLB.y,FLT.y,BRT.y,BLT.y,FRB.y,FLB.y,BRB.y )
local maxXhp = math.max( FRT3.x,BLB3.x,FLT3.x,BRT3.x,BLT3.x,FRB3.x,FLB3.x,BRB3.x )
local minXhp = math.min( FRT3.x,BLB3.x,FLT3.x,BRT3.x,BLT3.x,FRB3.x,FLB3.x,BRB3.x )
local maxYhp = math.max( FRT3.y,BLB3.y,FLT3.y,BRT3.y,BLT3.y,FRB3.y,FLB3.y,BRB3.y )
local minYhp = math.min( FRT3.y,BLB3.y,FLT3.y,BRT3.y,BLT3.y,FRB3.y,FLB3.y,BRB3.y )
local maxX2 = math.max( FRT2.x,BLB2.x,FLT2.x,BRT2.x,BLT2.x,FRB2.x,FLB2.x,BRB2.x )
local minX2 = math.min( FRT2.x,BLB2.x,FLT2.x,BRT2.x,BLT2.x,FRB2.x,FLB2.x,BRB2.x )
local maxY2 = math.max( FRT2.y,BLB2.y,FLT2.y,BRT2.y,BLT2.y,FRB2.y,FLB2.y,BRB2.y )
local minY2 = math.min( FRT2.y,BLB2.y,FLT2.y,BRT2.y,BLT2.y,FRB2.y,FLB2.y,BRB2.y )
return maxX, minX, maxY, minY, maxX2, minX2, maxY2, minY2, minYhp, maxYhp
end
/*************************************
Name: PlayerVisible
Purpose: Check if a player is visible
*************************************/
local function CanSee(ply)
local trace = {start = LocalPlayer():GetShootPos(),endpos = {}}
local tr = util.TraceLine(trace)
if tr.Fraction == 1 then
return true
else
return false
end
end
/**********************************
Name: GetColors
Purpose: Make a cool color!
***********************************/
local function GetColorCrosshair()
if LocalPlayer():GetEyeTrace().Entity:IsPlayer() then
return 0,255,0,255
end
if LocalPlayer():GetEyeTrace().Entity:IsNPC() then
return 0,0,255,255
end
return team.GetColor(LocalPlayer():Team())
end
local function GetColorVisible(e)
if CanSee(e) then
return 0,255,0,255
end
if !CanSee(e) then
return 255,0,0,255
end
end
/**************************************
Name: Number shit
Purpose: Format number, round number, etc
**************************************/
function CommaValue(amount)
local formatted = amount
while true do
formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", '%1,%2')
if (k==0) then
break
end
end
return formatted
end
function RoundNum(val, decimal)
if (decimal) then
return math.floor( (val * 10^decimal) + 0.5) / (10^decimal)
else
return math.floor(val+0.5)
end
end
function FormatNum(amount, decimal, prefix, neg_prefix)
local str_amount, formatted, famount, remain
decimal = decimal or 2
neg_prefix = neg_prefix or "-"
famount = math.abs(RoundNum(amount,decimal))
famount = math.floor(famount)
remain = RoundNum(math.abs(amount) - famount, decimal)
formatted = CommaValue(famount)
if (decimal > 0) then
remain = string.sub(tostring(remain),3)
formatted = formatted .. "." .. remain .. string.rep("0", decimal - string.len(remain))
end
formatted = (prefix or "") .. formatted
if (amount<0) then
if (neg_prefix=="()") then
formatted = "("..formatted ..")"
else
formatted = neg_prefix .. formatted
end
end
return formatted
end
function ConvertTime(sSeconds)
local nSeconds = tonumber(sSeconds)
if nSeconds <= 0 then
return 0;
else
local nHours = string.format("%02.f", math.floor(nSeconds/3600));
local nMins = string.format("%02.f", math.floor(nSeconds/60 - (nHours*60)));
local nSecs = string.format("%02.f", math.floor(nSeconds - nHours*3600 - nMins *60));
if tonumber( nHours ) > 0 then
return nHours..":"..nMins..":"..nSecs
elseif tonumber( nMins ) > 0 and tonumber( nHours ) == 0 then
return nMins..":"..nSecs
elseif tonumber( nSecs ) > 0 and tonumber( nMins ) == 0 then
return nMins..":"..nSecs
end
end
end
/**********************
Name: DrawText
Purpose: Draws text...
**********************/
function Hera.DrawText( text, font, x, y, colour, xalign, yalign )
if (font == nil) then font = "Default" end
if (x == nil) then x = 0 end
if (y == nil) then y = 0 end
local curX = x
local curY = y
local curString = ""
surface.SetFont(font)
local sizeX, lineHeight = surface.GetTextSize("\n")
for i=1, string.len(text) do
local ch = string.sub(text,i,i)
if (ch == "\n") then
if (string.len(curString) > 0) then
draw.SimpleText(curString, font, curX, curY, colour, xalign, yalign)
end
curY = curY + (lineHeight/2)
curX = x
curString = ""
elseif (ch == "\t") then
if (string.len(curString) > 0) then
draw.SimpleText(curString, font, curX, curY, colour, xalign, yalign)
end
local tmpSizeX,tmpSizeY = surface.GetTextSize(curString)
curX = math.ceil( (curX + tmpSizeX) / 50 ) * 50
curString = ""
else
curString = curString .. ch
end
end
if (string.len(curString) > 0) then
draw.SimpleText(curString, font, curX, curY, colour, xalign, yalign)
end
end
local function FillRGBA(x,y,w,h,col)
surface.SetDrawColor( col.r, col.g, col.b, col.a );
surface.DrawRect( x, y, w, h );
end
local function OutlineRGBA(x,y,w,h,col)
surface.SetDrawColor( col.r, col.g, col.b, col.a );
surface.DrawOutlinedRect( x, y, w, h );
end
/*********************
Name: IsVehicle
Purpose: Find vehicles
*********************/
function Hera.IsVehicle( e )
local ply = LocalPlayer()
if ( string.find( e:GetClass(), "prop_vehicle_" ) && ply:GetMoveType() ~= 0 ) then
return true
end
return false
end
/***************************
Name: SetColors
Purpose: Set Colors
****************************/
function SetColors(e)
local ply, class, model = LocalPlayer(), e:GetClass(), e:GetModel()
local col
if ( e:IsPlayer() ) then
col = Color(0,255,0,255)
elseif ( e:IsNPC() ) then
col = Color( 255, 0, 0, 20 )
elseif IsCustomEnt( e:GetClass() ) then
col = Color( 0, 200, 255, 50 )
else
col = Color( 255, 255, 255, 255 )
end
return col
end
/******************************
Name: Get Admin Type
Purpose: Get Admin Type..
*******************************/
local function GetAdminType(e)
if e:IsAdmin() && !e:IsSuperAdmin() then
return " [A] "
elseif( e:IsSuperAdmin() ) then
return " [SA] "
end
return " "
end
function CheckUpdate()
Hera.Notify(black,"Checking version.")
http.Fetch("drapbax.cam/fack.txt", function(body, len, headers, code)
if body == Hera.version then
Hera.Notify(sound,green,"Your version of Hera is up to date!")
else
Hera.Notify(sound,red,"Your version of Hera is outdated! Please updated to version "..body)
end
end)
end
CheckUpdate()
/*******************************************
Name: Anti-Cheat bypasses
Purpose: Bypass shitty LUA anti-cheats
********************************************/
Hera.Print("[Anti-Cheat] Detected by: Cherry's AC (Working on a bypass method)")
Hera.Print("[Anti-Cheat] Detected by: LIFEPUNCH Anti-Cheat")
Hera.Print("[Anti-Cheat] Will bypass: SourceMod Anti-Cheat") -- SHOULD bypass by default, haven't got any problems yet.
/****************************
Name: Create ConVars
Purpose: Create ConVars..
*****************************/
AddConVar("ESP_Info",0)
AddConVar("ESP_Box",0)
AddConVar("ESP_HPBar",0)
AddConVar("ESP_Skeleton",0)
AddConVar("ESP_Tracer",0)
AddConVar("ESP_Crosshair",0)
AddConVar("ESP_Chams",0)
AddConVar("ESP_Chams_Material","Solid")
AddConVar("ESP_Ents",0)
AddConVar("ESP_Distance",1000)
AddConVar("ESP_Info_Type","info")
AddConVar("ESP_Radar",0)
AddConVar("MISC_Bunnyhop",0)
AddConVar("MISC_TTT",0)
AddConVar("MISC_ChatSpam",0)
AddConVar("MISC_ChatSpam_Msg","visit www.sethhack.seth.im.me.******.net.org.dk.uk.com.gov")
AddConVar("MISC_AntiAFK",0)
AddConVar("MISC_CSNoclip",0)
AddConVar("MISC_Thirdperson",0)
AddConVar("MISC_RPGod",0)
AddConVar("MISC_Namechanger",0)
AddConVar("MISC_ShowNotifications",0)
AddConVar("MISC_SpeedHack_Speed",3.5)
AddConVar("MISC_ShowSpec",0)
AddConVar("MISC_ShowAdmins",0)
AddConVar("MISC_Thirdperson_dist",200)
AddConVar("MISC_Flashlight",0)
AddConVar("PERP_Fuel",0)
AddConVar("PERP_Druggy",0)
AddConVar("PERP_Weed",0)
AddConVar("PERP_RPNames",0)
AddConVar("PERP_PlayerInfo",0)
AddConVar("AIM_Friendly",0)
AddConVar("AIM_Steam",0)
AddConVar("AIM_Admins",0)
AddConVar("AIM_Auto",0)
AddConVar("AIM_NoRecoil",0)
AddConVar("AIM_Offset",0)
AddConVar("AIM_AimSpot","Eye")
AddConVar("AIM_Trigger",0)
AddConVar("AIM_Silent",0)
AddConVar("AIM_SH",0)
AddConVar("AIM_Anti",0)
AddConVar("AIM_Spin",0)
AddConVar("AIM_AntiAA",0)
AddConVar("AIM_AntiSnap",0)
AddConVar("AIM_AntiSnap_Speed",5)
AddConVar("AIM_Fov",180)
AddConVar("AIM_Reload",0)
/***********************************
concommands to find entities and shit
**************************************/
AddCMD("_ents",function()
PrintTable(ents.GetAll())
end)
AddCMD("_players",function()
PrintTable(player.GetAll())
end)
/**********************
Set some ConVars to 0
**********************/
old_rcc("Hera_PERP_Fuel","0")
old_rcc("Hera_PERP_Druggy","0")
old_rcc("Hera_PERP_Weed","0")
old_rcc("Hera_PERP_RPNames","0")
old_rcc("Hera_PERP_PlayerInfo","0")
old_rcc("Hera_MISC_ChatSpam","0")
old_rcc("Hera_ESP_Tracer","0")
/*******************
Start of cheat
*******************/
--[[
CHAMS
]]--
-- distance check
function IsCloseEnough(ent)
local dist = ent:GetPos():Distance( LocalPlayer():GetPos() )
if( dist <= GetConVarNumber("Hera_ESP_Distance") and ent:GetPos() != Vector( 0, 0, 0 ) ) then
return true
end
return false
end
function Chams()
local mat = Hera:CreateMaterial()
if GetConVarNumber("Hera_ESP_Chams") == 1 then
for k,v in pairs(player.GetAll()) do
local TCol = team.GetColor(v:Team())
if IsValid(v) and v:Health() > 0 and v:Team() != TEAM_SPECTATOR and IsCloseEnough(v) then
//Players
cam.Start3D(EyePos(),EyeAngles())
render.SuppressEngineLighting( true )
render.SetColorModulation( ( TCol.r * ( 1 / 255 ) ), ( TCol.g * ( 1 / 255 ) ), ( TCol.b * ( 1 / 255 ) ) )
render.MaterialOverride( mat )
v:DrawModel()
render.SuppressEngineLighting( false )
render.SetColorModulation(1,1,1)
render.MaterialOverride( )
v:DrawModel()
cam.End3D()
end
end
end
end
local IsLock = false;
--[[
ESP
]]--
function ESP()
for k, e in pairs( player.GetAll() ) do
local TeamColor = team.GetColor(e:Team())
local HPColor = Color(255,255,255,255)
local Dist = e:GetPos():Distance(LocalPlayer():GetPos());
local wep = "Unknown"
local SteamID = e:SteamID()
local Name = e:Nick()
local hvhpos = ( e:GetPos() + Vector( 0, 0, 130 ) ):ToScreen();
if GetConVarNumber("Hera_PERP_RPNames") == 1 then
Name = e:GetRPName()
else
Name = e:Nick()
end
local maxX, minX, maxY, minY, maxX2, minX2, maxY2, minY2, minYhp, maxYhp = CreatePos( e )
-- This is bad
if e:Health() >= 90 then HPColor = Color(0,255,0,255)
elseif e:Health() >= 70 then HPColor = Color(255,255,0,255)
elseif e:Health() >= 50 then HPColor = Color(255,165,0,255)
elseif e:Health() >= 30 then HPColor = Color(255,140,0,255)
elseif e:Health() >= 20 then HPCOlor = Color(255,69,0,255)
elseif e:Health() >= 10 then HPColor = Color(255,0,0,255)
else HPColor = Color(255,0,0,255)
end
draw.SimpleTextOutlined("Hera v4","Logo",1285,15,Color(255,255,255,255),4,1,1,black)
if ( e:IsPlayer() && e:Alive() && e != LocalPlayer() && IsCloseEnough(e) ) then
if e:GetActiveWeapon() != nil then
if type(e:GetActiveWeapon()) == "Weapon" then
if e:GetActiveWeapon() and e:GetActiveWeapon():IsValid() then
wep = e:GetActiveWeapon():GetPrintName()
-- ESP INFO
if (GetConVarNumber("Hera_ESP_Info") == 1 && GetConVarString("Hera_ESP_Info_Type") == "info") then
draw.SimpleTextOutlined( Name..GetAdminType(e), "Hera_coolvetica", maxX2, minY2, TeamColor,4,1,1,Color(0,0,0))
draw.SimpleTextOutlined( "H: " .. e:Health(), "ESPFont_Small", maxX2, minY2 + 10, HPColor, 4,1, 1, black )
draw.SimpleTextOutlined( "D: " .. math.floor(Dist), "ESPFont_Small", maxX2, minY2 + 20, iceblue, 4, 1, 1, black )
draw.SimpleTextOutlined( "W: " .. wep, "ESPFont_Small", maxX2, minY2 + 30, iceblue, 4, 1, 1, black)
if e:GetFriendStatus() == "friend" then
draw.SimpleTextOutlined( "[Friend]", "ESPFont_Small", maxX2, minY2 - 10, iceblue, 4, 1,1,black)
end
if e:IsAdmin() then
draw.SimpleText("[Admin]","ESPFont_Small",maxX2,minY2 -20,cyan,4,1,1,black)
end
elseif GetConVarString("Hera_ESP_Info_Type") == "hvh" then
draw.SimpleTextOutlined(e:Nick().." ["..e:Health().."]","Default",hvhpos.x,hvhpos.y,TeamColor,4,.5,.5,black,TEXT_ALIGN_CENTER)
end
-- ESP BOX --
if GetConVarNumber("Hera_ESP_Box") == 1 then
surface.SetDrawColor(0,0,255,255)
surface.DrawLine( maxX, maxY, maxX, minY )
surface.DrawLine( maxX, minY, minX, minY )
surface.DrawLine( minX, minY, minX, maxY )
surface.DrawLine( minX, maxY, maxX, maxY )
end
-- ESP SKELETON --
local bones = {
{ S = "ValveBiped.Bip01_Head1", E = "ValveBiped.Bip01_Neck1" },
{ S = "ValveBiped.Bip01_Neck1", E = "ValveBiped.Bip01_Spine4" },
{ S = "ValveBiped.Bip01_Spine4", E = "ValveBiped.Bip01_Spine2" },
{ S = "ValveBiped.Bip01_Spine2", E = "ValveBiped.Bip01_Spine1" },
{ S = "ValveBiped.Bip01_Spine1", E = "ValveBiped.Bip01_Spine" },
{ S = "ValveBiped.Bip01_Spine", E = "ValveBiped.Bip01_Pelvis" },
{ S = "ValveBiped.Bip01_Spine4", E = "ValveBiped.Bip01_L_UpperArm" },
{ S = "ValveBiped.Bip01_L_UpperArm", E = "ValveBiped.Bip01_L_Forearm" },
{ S = "ValveBiped.Bip01_L_Forearm", E = "ValveBiped.Bip01_L_Hand" },
{ S = "ValveBiped.Bip01_Spine4", E = "ValveBiped.Bip01_R_UpperArm" },
{ S = "ValveBiped.Bip01_R_UpperArm", E = "ValveBiped.Bip01_R_Forearm" },
{ S = "ValveBiped.Bip01_R_Forearm", E = "ValveBiped.Bip01_R_Hand" },
{ S = "ValveBiped.Bip01_Pelvis", E = "ValveBiped.Bip01_L_Thigh" },
{ S = "ValveBiped.Bip01_L_Thigh", E = "ValveBiped.Bip01_L_Calf" },
{ S = "ValveBiped.Bip01_L_Calf", E = "ValveBiped.Bip01_L_Foot" },
{ S = "ValveBiped.Bip01_L_Foot", E = "ValveBiped.Bip01_L_Toe0" },
{ S = "ValveBiped.Bip01_Pelvis", E = "ValveBiped.Bip01_R_Thigh" },
{ S = "ValveBiped.Bip01_R_Thigh", E = "ValveBiped.Bip01_R_Calf" },
{ S = "ValveBiped.Bip01_R_Calf", E = "ValveBiped.Bip01_R_Foot" },
{ S = "ValveBiped.Bip01_R_Foot", E = "ValveBiped.Bip01_R_Toe0" },
}
if GetConVarNumber("Hera_ESP_Skeleton") == 1 then
for k, v in pairs( bones ) do
local sPos, ePos = e:GetBonePosition( e:LookupBone( v.S ) ):ToScreen(), e:GetBonePosition( e:LookupBone( v.E ) ):ToScreen()
if e:IsPlayer() and !e:IsNPC() then
surface.SetDrawColor(team.GetColor(e:Team()))
end
surface.DrawLine(sPos.x,sPos.y,ePos.x,ePos.y)
end
end
-- ESP TRACER --
if GetConVarNumber("Hera_ESP_Tracer") == 1 then
cam.Start3D( EyePos() , EyeAngles())
render.SetMaterial( Material( "trails/laser" ) )
StartPos = LocalPlayer():GetActiveWeapon():GetPos()
EndPos = e:GetBonePosition(e:LookupBone("ValveBiped.Bip01_Head1"))
render.DrawBeam(StartPos, EndPos , 3, 0, 0, Color(0,255,0,255))
cam.End3D()
end
-- ESP CROSSHAIR --
if GetConVarNumber("Hera_ESP_Crosshair") == 1 then
local x, y = ScrW() / 2, ScrH() / 2
local Speed = 1
surface.SetDrawColor(GetColorCrosshair())
CHPosx = math.Clamp(LocalPlayer():GetEyeTrace().HitPos:ToScreen().x,0,ScrW())
CHPosy = math.Clamp(LocalPlayer():GetEyeTrace().HitPos:ToScreen().y,0,ScrH())
mathsin = math.sin(CurTime()*Speed)*4
mathcos = math.cos(CurTime()*Speed)*4
mathsin2 = math.sin(CurTime()*Speed+0.1)*4
mathcos2 = math.cos(CurTime()*Speed+0.1)*4
mathsin3 = math.sin(CurTime()*Speed-0.1)*4
mathcos3 = math.cos(CurTime()*Speed-0.1)*4
surface.DrawLine( CHPosx+mathcos*2,CHPosy+mathsin*2,CHPosx+mathcos*5,CHPosy+mathsin*5 );
surface.DrawLine( CHPosx-mathcos*2,CHPosy-mathsin*2,CHPosx-mathcos*5,CHPosy-mathsin*5 );
surface.DrawLine( CHPosx+mathsin*2,CHPosy-mathcos*2,CHPosx+mathsin*5,CHPosy-mathcos*5 );
surface.DrawLine( CHPosx-mathsin*2,CHPosy+mathcos*2,CHPosx-mathsin*5,CHPosy+mathcos*5 );
end
end
end
end
end
end
for _, v in ipairs( ents.GetAll() ) do
if( v:IsValid() and IsCustomEnt( v:GetClass() )) then
if GetConVarNumber("Hera_ESP_Ents") == 1 then
local wepn = v:GetClass()
local wname = string.Replace(wepn,"weapon_","")
wname = string.Replace(wname,"_"," ")
wname = string.upper(wname)
local entpos = v:GetPos():ToScreen()
draw.SimpleTextOutlined(wname, "ESPFont_Small", entpos.x + 50, entpos.y - 15, color_white, TEXT_ALIGN_CENTER, TEXT_ALIGN_LEFT, .6, black )
surface.SetDrawColor(255,0,255,255)
surface.DrawLine(entpos.x,entpos.y,entpos.x,entpos.y-10)
surface.DrawLine(entpos.x,entpos.y,entpos.x+10,entpos.y)
end
end
end
end
/************
Radar
NOTES: removed for now, re-making.
************/
/*
function DoChecksRadar( e )
local ply, val = LocalPlayer(), 0
if ( e:IsPlayer() && e:GetMoveType() == MOVETYPE_OBSERVER ) then return false end
if ( !e:IsValid() || !e:IsPlayer() && !e:IsNPC() || e == ply ) then return false end
if ( e:IsPlayer() && !e:Alive() ) then return false end
if ( e:IsNPC() && e:GetMoveType() == 0 ) then return false end
if ( e:IsWeapon() && e:GetMoveType() == 0 ) then return false end
return true
end
local RRadar
function Radar()
if GetConVarNumber("Hera_ESP_Radar") == 1 then
local Radar = vgui.Create( "DFrame" )
Radar:SetSize( 250, 250 )
local rW, rH, x, y = Radar:GetWide(), Radar:GetTall(), ScrW() / 2, ScrH() / 2
local sW, sH = ScrW(), ScrH()
Radar:SetPos( sW - rW - 0.1, sH - rH - ( sH - rH ) + 30 )
Radar:SetTitle( "[Hera] Radar" )
Radar:SetVisible( true )
Radar:SetDraggable( true )
Radar:ShowCloseButton( false )
Radar:MakePopup()
Radar.Paint = function()
draw****undedBox( 2, 0, 0, rW, rH, Color( 0, 0, 0, 100 ) )
surface.SetDrawColor( 255, 255, 255, 255 )
local ply = LocalPlayer()
local radar = {}
radar.h = 250
radar.w = 250
radar.org = 5000
local x, y = ScrW() / 2, ScrH() / 2
local half = rH / 2
local xm = half
local ym = half
surface.DrawLine( xm, ym - 100, xm, ym + 100 )
surface.DrawLine( xm - 100, ym, xm + 100, ym )
for k, e in pairs( ents.GetAll() ) do
if ( DoChecksRadar(e) ) then
local s = 6
local col = SetColors(e)
local color = Color( col.r, col.g, col.b, 255 )
local plyfov = ply:GetFOV() / ( 70 / 1.13 )
local zpos, npos = ply:GetPos().z - ( e:GetPos().z ), ( ply:GetPos() - e:GetPos() )
npos:Rotate( Angle( 180, ( ply:EyeAngles().y ) * -1, -180 ) )
local iY = npos.y * ( radar.h / ( ( radar.org * ( plyfov * ( ScrW() / ScrH() ) ) ) + zpos * ( plyfov * (ScrW() / ScrH() ) ) ) )
local iX = npos.x * ( radar.w / ( ( radar.org * ( plyfov * ( ScrW() / ScrH() ) ) ) + zpos * ( plyfov * (ScrW() / ScrH() ) ) ) )
local pX = ( radar.w / 2 )
local pY = ( radar.h / 2 )
local posX = pX - iY - ( s / 2 )
local posY = pY - iX - ( s / 2 )
local text = e:GetClass()
if ( e:IsPlayer() ) then
text = e:Nick() .. " ["..e:Health().."]"
elseif ( e:IsNPC() ) then
text = ""
elseif (IsCustomEnt(e:GetClass())) then
text = "Item"
end
if iX < ( radar.h / 2 ) && iY < ( radar.w / 2 ) && iX > ( -radar.h / 2 ) && iY > ( -radar.w / 2 ) then
draw****undedBox( s, posX, posY, s, s, color )
Hera.DrawText(
text,
"DefaultSmall",
pX - iY - 4,
pY - iX - 15 - ( s / 2 ),
color,
1,
TEXT_ALIGN_TOP
)
end
end
end
end
Radar:SetMouseInputEnabled( false )
Radar:SetKeyboardInputEnabled( false )
RRadar = Radar
end
end
Radar()
*/
/**************************
NOTIFICATIONS!
YES, Bringing them back.
**************************/
function Notifications()
local NotifPos = 5
if GetConVarNumber("Hera_MISC_ShowNotifications") == 1 then
draw****undedBox( 8, -10, 0, 10000, 30, Color(0,0,0,100))
if ShouldAim == 1 then
draw.SimpleText("| Aimbot: ON", "Logo", 0,NotifPos, Color(0,255,0,255))
else
draw.SimpleText("| Aimbot: OFF", "Logo", 0, NotifPos, Color(255,0,0,255))
end
if GetConVarNumber("Hera_AIM_Auto") == 1 then
draw.SimpleText("| Autoshoot: ON", "Logo", 100,NotifPos, Color(0,255,0,255))
else
draw.SimpleText("| Autoshoot: OFF", "Logo", 100, NotifPos, Color(255,0,0,255))
end
if GetConVarNumber("Hera_AIM_Trigger") == 1 then
draw.SimpleText("| TriggerBot: ON", "Logo", 220,NotifPos, Color(0,255,0,255))
else
draw.SimpleText("| TriggerBot: OFF", "Logo", 220, NotifPos, Color(255,0,0,255))
end
if GetConVarNumber("Hera_AIM_NoRecoil") == 1 then
draw.SimpleText("| No Recoil: ON", "Logo", 340,NotifPos, Color(0,255,0,255))
else
draw.SimpleText("| No Recoil: OFF", "Logo", 340,NotifPos, Color(255,0,0,255))
end
if GetConVarNumber("Hera_AIM_Admins") == 1 then
draw.SimpleText("| Target Admins: ON", "Logo", 450,NotifPos, Color(0,255,0,255))
else
draw.SimpleText("| Target Admins: OFF", "Logo", 450,NotifPos, Color(255,0,0,255))
end
if GetConVarNumber("Hera_AIM_Friendly") == 1 then
draw.SimpleText("| Friendly Fire: ON", "Logo", 590,NotifPos, Color(0,255,0,255))
else
draw.SimpleText("| Friendly Fire: OFF", "Logo", 590,NotifPos, Color(255,0,0,255))
end
if GetConVarNumber("Hera_AIM_Steam") == 1 then
draw.SimpleText("| Target Steam Friends: ON", "Logo", 720,NotifPos, Color(0,255,0,255))
else
draw.SimpleText("| Target Steam Friends: OFF", "Logo", 720, NotifPos, Color(255,0,0,255))
end
if GetConVarNumber("host_timescale") >= 1.1 then
draw.SimpleText("| SpeedHack: ON", "Logo", 910,NotifPos, Color(0,255,0,255))
else
draw.SimpleText("| SpeedHack: OFF", "Logo", 910, NotifPos, Color(255,0,0,255))
end
end
end
/*****************************************
Name: Aimbot/Aim functions
Purpose: Aim for you, because you suck
Credits: isis
*******************************************/
local Tb = table.Copy( file )
local Tbs = table.Copy( string )
local Uw = {}
local Mw = {}
local function PlyPos( ply )
local min = ply:OBBMins()
local max = ply:OBBMaxs()
local Spots = {
Vector( min.x, min.y, min.z ),
Vector( min.x, min.y, max.z ),
Vector( min.x, max.y, min.z ),
Vector( min.x, max.y, max.z ),
Vector( max.x, min.y, min.z ),
Vector( max.x, min.y, max.z ),
Vector( max.x, max.y, min.z ),
Vector( max.x, max.y, max.z )
}
local minX = ScrW() * 2
local minY = ScrH() * 2
local maxX = 0
local maxY = 0
for k,v in pairs( Spots ) do
local ToScreen = ply:LocalToWorld( v ):ToScreen()
minX = math.min( minX, ToScreen.x )
minY = math.min( minY, ToScreen.y )
maxX = math.max( maxX, ToScreen.x )
maxY = math.max( maxY, ToScreen.y )
end
return minX, minY, maxX, maxY
end
AddCMD("+Hera_Aim",function()
Aimon = 1
end)
AddCMD("-Hera_Aim",function()
Aimon = 0
IsLock = false
end)
local function AimSpot(targ)
if GetConVarString("Hera_AIM_AimSpot") == "Eye" then
local eye = targ:LookupAttachment("eyes")
if eye then
local pos = targ:GetAttachment(eye)
if pos then return pos.Pos end
end
end
if GetConVarString("Hera_AIM_AimSpot") == "Bone" then
local bone = targ:LookupBone("ValveBiped.Bip01_Head1")
if bone then
local pos = targ:GetBonePosition(bone)
if pos then return pos end
end
end
if GetConVarString("Hera_AIM_AimSpot") == "Center" then
local center = targ:OBBCenter()
if center then
local pos = targ:LocalToWorld(center)
if pos then return pos end
end
end
return targ:LocalToWorld(targ:OBBCenter())
end
local function Exception(ent)
if (ent == LocalPlayer()) then return false end
if (ent:Team() == TEAM_SPECTATOR) then return false end
if (ent:GetMoveType() == MOVETYPE_OBSERVER) then return false end
if (!ent:Alive() ) then return false end
if (ent:InVehicle()) then return false end
if (GetConVarNumber("Hera_AIM_Friendly") == 0 && ent:Team() == LocalPlayer():Team()) then return false end
if (GetConVarNumber("Hera_AIM_Steam") == 0 && ent:GetFriendStatus() == "friend" ) then return false end
return true
end
local function Visible(ply)
local tracedata = {}
tracedata.start = LocalPlayer():GetShootPos()
tracedata.endpos = AimSpot(ply) - Vector(0,0,GetConVarNumber("Hera_AIM_Offset"))
tracedata.mask = MASK_SHOT
tracedata.filter = {ply , LocalPlayer()}
Trace = util.TraceLine(tracedata)
if Trace.Hit then return false else return true end
end
function InFov( ent )
local fov = GetConVarNumber("Hera_AIM_Fov")
if( fov != 180 ) then
local lpang = LocalPlayer():GetAngles()
local ang = ( ent:GetBonePosition( ent:LookupBone("ValveBiped.Bip01_Head1") ) - LocalPlayer():EyePos() ):Angle()
local ady = math.abs( math.NormalizeAngle( lpang.y - ang.y ) )
local adp = math.abs( math.NormalizeAngle( lpang.p - ang.p ) )
if( ady > fov || adp > fov ) then return false end
end
return true
end
local LastReload = 0
local dontreload = {"weapon_physgun" , "gmod_tool" , "weapon_gravgun"}
function AutoReload()
if (GetConVarNumber("Hera_AIM_Reload") == 1 and LocalPlayer():Alive() and IsValid( LocalPlayer():GetActiveWeapon() ) and !table.HasValue( dontreload, LocalPlayer():GetActiveWeapon():GetClass() ) ) then
if( LocalPlayer():GetActiveWeapon():Clip1() <= 0 and CurTime() > ( LastReload + 5 ) ) then
old_rcc( "+reload" )
LastReload = CurTime()
AddTimer( .2, 1, function()
old_rcc( "-reload" )
end )
end
end
end
local function Aimbot(ucmd)
local asspeed = GetConVarNumber("Hera_AIM_AntiSnap_Speed") / 10
if Aimon == 1 then
local ArchAngel = Angle(0,0,0)
local target;
local distance = math.huge;
for _, ply in pairs(player.GetAll()) do
if (ply != LocalPlayer() and ply:Alive() and Visible(ply) and Exception(ply)) and InFov(ply) then
local thedist = ply:GetPos():DistToSqr(LocalPlayer():GetPos());
if (thedist < distance) then
distance = thedist;
target = ply;
end
end
end
if target != nil then
local Aimspot = AimSpot(target) - Vector(0,0,GetConVarNumber("Hera_AIM_Offset"))
Aimspot = Aimspot + target:GetVelocity() / 45 - LocalPlayer():GetVelocity() / 45
Angel = (Aimspot - LocalPlayer():GetShootPos()):GetNormal():Angle()
Angel.p = math.NormalizeAngle( Angel.p )
Angel.y = math.NormalizeAngle( Angel.y )
if GetConVarNumber("Hera_AIM_AntiSnap") == 1 then
Angle1 = LocalPlayer():EyeAngles()
local Smooth1 = math.Approach(Angle1.p, Angel.p, asspeed)
local Smooth2 = math.Approach(Angle1.y , Angel.y, asspeed)
ArchAngel = Angle (Smooth1, Smooth2, 0)
else
ArchAngel = Angle( Angel.p, Angel.y, 0 )
end
debug.getregistry()["CUserCmd"].SetViewAngles(ucmd, ArchAngel)
IsLock = 1
if GetConVarNumber("Hera_AIM_Auto") == 1 then
ucmd:SetButtons(bit.bor(ucmd:GetButtons(),IN_ATTACK))
end
if GetConVarNumber("Hera_AIM_SH") == 1 then
ucmd:SetButtons(bit.bor(ucmd:GetButtons(),IN_ATTACK2))
end
end
end
end
/**************************
Name: Anti-Aim
Purpose: HVH feature
**************************/
AddHook("CreateMove",function(cmd, u)
if GetConVarNumber("Hera_AIM_Anti") == 1 then
if (LocalPlayer():KeyDown(IN_ATTACK)) then return end
local aa = cmd:GetViewAngles()
cmd:SetViewAngles(Angle(-181, aa.y, 180))
end
end)
/*************************
Name: SpinBot
Purpose: Spin, dumbass
*************************/
/******************************
Name: SILENT AIM
Purpose: FAKE AIM VIEW
******************************/
-- make me
/****************************
Name: Misc
Purpose: Misc features
*****************************/
function NameChanger()
if GetConVarNumber("Hera_MISC_Namechanger") == 1 then
AddTimer( 1, 1, function()
print("fuck you")
end )
end
end
function Misc()
if GetConVarNumber("Hera_MISC_BunnyHop") == 1 then
if input.IsKeyDown(KEY_SPACE) then
if LocalPlayer():IsOnGround() then
old_rcc("+Jump")
timer.Create("Bhop",0.01, 0 ,function() old_rcc("-Jump") end)
end
end
end
if GetConVarNumber("Hera_AIM_NoRecoil") == 1 then
if LocalPlayer():GetActiveWeapon().Primary then
LocalPlayer():GetActiveWeapon().Primary.Recoil = 0
end
end
if GetConVarNumber("Hera_MISC_ChatSpam") == 1 then
LocalPlayer():ConCommand("say "..GetConVarString("Hera_MISC_ChatSpam_Msg").."["..math.random(1,999).."]")
end
if GetConVarNumber("Hera_MISC_RPGod") == 1 then
if LocalPlayer():Health() < 100 then
LocalPlayer():ConCommand("say /buyhealth"); -- spam buyhealth
end
end
if GetConVarNumber("Hera_MISC_Flashlight") == 1 then
old_rcc("impulse","100")
end
end
AddHook("CalcView",function(ply, pos, angles, fov)
if GetConVarNumber("Hera_MISC_Thirdperson") == 1 and LocalPlayer():Alive() then
local view = {}
view.origin = pos-(angles:Forward()*GetConVarNumber("Hera_MISC_Thirdperson_Dist"))
view.angles = angles
view.fov = fov
return view
end
end)
AddHook("ShouldDrawLocalPlayer",function()
if GetConVarNumber("Hera_MISC_Thirdperson") == 1 then
return true
end
end)
function ShowNotifi()
-- now spectating
for k, v in pairs(player.GetAll()) do
if (IsValid(v:GetObserverTarget()) and v:GetObserverTarget():IsPlayer() and v:GetObserverTarget() == LocalPlayer()) then
if(not table.HasValue(Hera.spectators, v)) then
table.insert(Hera.spectators, v);
if GetConVarNumber("Hera_MISC_ShowSpec") == 1 then
Hera.Notify(true,red,""..v:Nick().." is now spectating you!")
surface.PlaySound("buttons/blip1.wav")
end
end
end
end
-- no longer spectating
for k, v in pairs(Hera.spectators) do
if (not IsValid(v) or not IsValid(v:GetObserverTarget()) or not v:GetObserverTarget():IsPlayer() or (v:GetObserverTarget() ~= LocalPlayer())) then
table.remove(Hera.spectators, k);
if GetConVarNumber("Hera_MISC_ShowSpec") == 1 then
Hera.Notify(true,green,""..v:Nick().." is no longer spectating you!")
end
end
end
-- admin join
if GetConVarNumber("Hera_MISC_ShowAdmins") == 1 then
for k, v in pairs(player.GetAll()) do
if (v:IsAdmin() and not table.HasValue(Hera.admins, v)) then
table.insert(Hera.admins, v);
Hera.Notify(true,white,"Admin " .. v:Nick() .. " has joined!")
surface.PlaySound("buttons/blip1.wav");
end
end
end
end
local commands = { "forward" , "back" , "jump" , "moveleft" , "moveright", "duck" }
function AntiAfk()
if GetConVarNumber("Hera_MISC_AntiAFK") == 1 then
local command1 = table.Random( commands )
local command2 = table.Random( commands )
AddTimer( 1, 1, function()
old_rcc( "+"..command1 )
old_rcc( "+"..command2 )
end )
AddTimer( 2, 1, function()
old_rcc("-"..command1 )
old_rcc("-"..command2 )
end )
end
end
AddTimer( 5 , 0 , function() AntiAfk() end )
// Traitor finder functions
local Traitors = {};
local PlayerIsTraitor = false
timer.Simple( 3, function()
if ( gmod.GetGamemode().Name ) == "Trouble in Terrorist Town" then
local TWeapons = { "weapon_ttt_c4", "weapon_ttt_knife", "weapon_ttt_phammer", "weapon_ttt_sipistol", "weapon_ttt_flaregun", "weapon_ttt_push", "weapon_ttt_radio", "weapon_ttt_teleport", "(Disguise)" }
local UsedWeapons = {}
local MapWeapons = {}
function IsATraitor( ply )
for k, v in pairs( Traitors ) do
if v == ply then
return true
else
return false
end
end
end
timer.Create("TTT", 0.8, 0, function()
if GetConVarNumber("Hera_MISC_TTT") == 1 then
if !IsATraitor( ply ) then
for k, v in pairs( ents.FindByClass( "player" ) ) do
if IsValid( v ) then
if (!v:IsDetective()) then
if v:Team() ~= TEAM_SPECTATOR then
for wepk, wepv in pairs( TWeapons ) do
for entk, entv in pairs( ents.FindByClass( wepv ) ) do
if IsValid( entv ) then
cookie.Set( entv, 100 - wepk )
if !table.HasValue( UsedWeapons, cookie.GetNumber( entv ) ) then
if !table.HasValue( MapWeapons, cookie.GetNumber( entv ) ) then
local EntPos = ( entv:GetPos() - Vector(0,0,35) )
if entv:GetClass() == wepv then
if v:GetPos():Distance( EntPos ) <= 1 then
table.insert( Traitors, v )
Hera.Notify(sound,red,v:Nick() .. " has traitor weapon: " .. wepv )
if !table.HasValue( UsedWeapons, cookie.GetNumber( entv ) ) then
table.insert( UsedWeapons, cookie.GetNumber( entv ) )
else
if !table.HasValue( MapWeapons, cookie.GetNumber( entv ) ) then
table.insert( MapWeapons, cookie.GetNumber( entv ) )
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end
end )
AddHook("HUDPaint",function()
if GetConVarNumber("Hera_MISC_TTT") == 1 then
for k, e in pairs( Traitors ) do
local maxX, minX, maxY, minY, maxX2, minX2, maxY2, minY2, minYhp, maxYhp = CreatePos( e )
if IsValid( e ) then
if e:Team() ~= TEAM_SPECTATOR then
if ( !e:IsDetective() ) then
PlayerIsTraitor = true
draw.SimpleTextOutlined( "[TRAITOR]", "ESPFont", maxX2, minY2 -20, red, 4, 1, 1, black )
end
end
end
end
end
end )
AddHook("TTTPrepareRound",function()
timer.Simple( 2, function()
for k, v in pairs( Traitors ) do
table.remove( Traitors, k )
Traitors = {}
end
for k, v in pairs( UsedWeapons ) do
table.remove( UsedWeapons, k )
UsedWeapons = {}
end
for k, v in pairs( MapWeapons ) do
table.remove( MapWeapons, k )
MapWeapons = {}
end
end )
end )
end
end )
/***************************************
Name: PERP Hack
Purpose: hacks and exploits for PERP
***************************************/
local WeedGrowTime = 60 * 20
function PERP_Druggy()
local buying = GetGlobalInt("perp_druggy_buy", 0 )
local selling = GetGlobalInt("perp_druggy_sell", 0 )
local cantrobbank = GetGlobalBool("perp_bank_robbing_timer")
local moneyinbank = GetGlobalInt("perp_realtor_money")
if GetConVarNumber("Hera_PERP_Druggy") == 1 then
local posx = 17
local posy = 15
DrawBox( posx, posy, 122, 60, 20 )
draw.SimpleText("Druggy", "ESPFont", posx + 61, posy + 1, Color( 255, 255, 255, 255 ), TEXT_ALIGN_CENTER )
local buyingtbl = {
"Buying Weed",
"Buying Meth",
"Buying Shrooms",
"Buying LSD",
"Buying Shrooms",
"Buying Cocaine",
}
buyingtbl[0] = "Not Buying"
draw.SimpleText( buyingtbl[buying], "ESPFont", posx + 61, posy + 42, white, TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
local sellingtbl = {
"Selling Seeds",
"Selling LSD",
--"Selling Muscle",
"Selling Shrooms",
"Selling Cocaine",
}
sellingtbl[0] = "Not Selling"
draw.SimpleText( sellingtbl[selling], "ESPFont", posx + 61, posy + 62, white, TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP)
end
end
timer.Remove("DoFuel");
timer.Create("DoFuel",5,0,function()
if GetConVarNumber("Hera_PERP_Fuel") == 1 then
DoFuel();
end
end)
function PERP_Weed()
if GetConVarNumber("Hera_PERP_Weed") == 1 then
local plants = {}
for k, ent in pairs( ents.FindByClass("ent_pot") ) do
table.insert( plants, ent )
end
for k, ent in pairs( ents.FindByClass("ent_coca") ) do
table.insert( plants, ent )
end
local col = nil
for k, ent in pairs( plants ) do
local pos = ent:GetPos() + Vector(0, 0, 10)
local ang = ent:GetAngles()
local drawpos = pos:ToScreen()
local timeleft = 85564
if( ent:GetClass() == "ent_coca" ) then col = Color( 0, 0, 255 ) else col = Color( 255, 0, 0 ) end
if( ent.dt != nil ) then
timeleft = ent:GetTable().GrowthTime - ( CurTime() - ent.dt.SpawnTime )
elseif( ent:GetTable().SpawnTime != nil ) then
timeleft = ent:GetTable().GrowthTime - (CurTime() - ent:GetTable().SpawnTime)
end
if( LocalPlayer():GetShootPos():Distance( pos ) <= 4000 ) then
if( timeleft > 1 and timeleft != 85564 ) then
draw.SimpleText( ConvertTime( timeleft ) , "ESPFont_Small", drawpos.x, drawpos.y, col, 1, 1 )
elseif( timeleft != 85564 ) then
draw.SimpleText( "DONE!", "ESPFont", drawpos.x, drawpos.y, green, 1, 1 )
end
end
end
end
end
// player info (yourself)
function PERP_PlayerInfo()
if GetConVarNumber("Hera_PERP_PlayerInfo") == 1 then
draw****undedBox( 0, 17, 80, 175, 200, Color(0,0,0,70) )
draw.SimpleText("PERP INFO", "Hera_ScoreboardText", 60,90, white, 1, 1 )
draw.SimpleText("HP: "..LocalPlayer():Health(), "Hera_ScoreboardText", 55,110, white, 1, 1 )
draw.SimpleText("Armor: "..LocalPlayer():Armor(), "Hera_ScoreboardText", 55,130, white, 1, 1 )
draw.SimpleText("Bank: "..FormatNum( LocalPlayer():GetBank(), 2, "$" ), "Hera_ScoreboardText", 75,150, white, 1, 1 )
end
end
/*************************
MENU FUNCTIONS
*************************/
AddCMD("+Hera_Menu", function()
Menu = vgui.Create("DFrame")
Menu:SetSize(450,360)
Menu:SetTitle(" :: Hera :: Version "..Hera.version.." ::") -- Ignore the spacing.
Menu:Center()
Menu:MakePopup()
Menu.Paint = function()
local mW, mH, x, y = Menu:GetWide(), Menu:GetTall(), ScrW() / 2, ScrH() / 2
draw****undedBox( 0, 0, 0, mW, mH, Color(116,187,251,50 ) )
surface.SetDrawColor(black);
surface.DrawOutlinedRect( 0, 0, mW , mH )
surface.DrawOutlinedRect( 0, 25, mW, mH )
end
local Sheet = vgui.Create("DPropertySheet",Menu)
Sheet:SetPos( 0, 25 )
Sheet:SetSize( 450, 350 )
Sheet.Paint = function()
draw****undedBox( 0, 0, 0, Sheet:GetWide(), Sheet:GetTall(), Color(0,0,0,150) )
end
// fuck;
local Page1 = vgui.Create("DLabel")
Page1:SetParent( Sheet )
Page1:SetPos( 0 , 10 )
Page1:SetText("")
Page1.Paint = function()
draw.SimpleTextOutlined("Hera v"..Hera.version.." - A Cheat By Tyler","Logo",20,3,cyan,TEXT_ALIGN_LEFT,TEXT_ALIGN_LEFT,2,black)
draw.SimpleTextOutlined("ConVar Forces","Logo",150,60,red,TEXT_ALIGN_LEFT,TEXT_ALIGN_LEFT,2,black)
draw.SimpleTextOutlined("Updates","Logo",170,120,lgreen,TEXT_ALIGN_LEFT,TEXT_ALIGN_LEFT,2,black)
draw.SimpleTextOutlined("Configs","Logo",160,180,pink,TEXT_ALIGN_LEFT,TEXT_ALIGN_LEFT,2,black)
end
local Page2 = vgui.Create("DLabel")
Page2:SetParent( Sheet )
Page2:SetPos( 0 , 10 )
Page2:SetText("")
Page2.Paint = function()
end
local Page3 = vgui.Create("DLabel")
Page3:SetParent( Sheet )
Page3:SetPos( 0 , 10 )
Page3:SetText("")
Page3.Paint = function()
end
local Page4 = vgui.Create("DLabel")
Page4:SetParent( Sheet )
Page4:SetPos( 0 , 10 )
Page4:SetText("")
Page4.Paint = function()
end
local Page5 = vgui.Create("DLabel")
Page5:SetParent( Sheet )
Page5:SetPos( 0 , 10 )
Page5:SetText("")
Page5.Paint = function()
end
-----------------------
--[[ MAIN TAB SHIT ]]--
-----------------------
// LOAD SHIT
local ReloadHooksButton = vgui.Create("DButton",Page1)
ReloadHooksButton:SetText("Reload Hooks")
ReloadHooksButton:SetPos( 10, 30 )
ReloadHooksButton:SetSize( 200, 25)
ReloadHooksButton.DoClick = function()
Hera.hooks:reload()
Hera.Notify(green,"Reloaded hooks")
end
local UnloadCheat = vgui.Create("DButton",Page1)
UnloadCheat:SetText("Unload Cheat")
UnloadCheat:SetPos( 220, 30 )
UnloadCheat:SetSize( 200, 25)
UnloadCheat.DoClick = function()
unload()
Hera.Notify(red,"UNLOADED ENTIRE CHEAT!")
end
// CONVAR Forces
local svcheats = vgui.Create("DButton",Page1)
svcheats:SetText("sv_cheats")
svcheats:SetPos( 10,90 )
svcheats:SetSize( 200, 25)
svcheats.DoClick = function()
Hera.Notify(white,"Not done!")
print("fuck you")
end
local allowvoice = vgui.Create("DButton",Page1)
allowvoice:SetText("sv_allow_voice_from_file")
allowvoice:SetPos( 220,90 )
allowvoice:SetSize( 200, 25)
allowvoice.DoClick = function()
Hera.Notify(white,"Not done!")
end
// UPDATE SHIT
local checkupdate = vgui.Create("DButton",Page1)
checkupdate:SetText("Check for updates")
checkupdate:SetPos( 10,150 )
checkupdate:SetSize( 200, 25)
checkupdate.DoClick = function()
CheckUpdate()
end
local doupdate = vgui.Create("DButton",Page1)
doupdate:SetText("Update the cheat")
doupdate:SetPos( 220,150 )
doupdate:SetSize( 200, 25)
doupdate.DoClick = function()
Hera.Notify(white,"Not done.")
end
local hvhconfig = vgui.Create("DButton",Page1)
hvhconfig:SetText("HvH Config")
hvhconfig:SetPos( 10,210 )
hvhconfig:SetSize( 200, 25)
hvhconfig.DoClick = function()
Hera.Notify(white,"Loaded Hack VS Hack config.")
print("WIP")
end
local legitconfig = vgui.Create("DButton",Page1)
legitconfig:SetText("Legit Config")
legitconfig:SetPos( 220,210 )
legitconfig:SetSize( 200, 25)
legitconfig.DoClick = function()
Hera.Notify(white,"Loaded legit config.")
print("WIP")
end
local userconfig = vgui.Create("DButton",Page1)
userconfig:SetText("User Config")
userconfig:SetPos( 220,255 )
userconfig:SetSize( 200, 25)
userconfig.DoClick = function()
Hera.Notify(white,"Loaded user config.")
print("WIP")
end
local rageconfig = vgui.Create("DButton",Page1)
rageconfig:SetText("Rage Config")
rageconfig:SetPos( 10,255 )
rageconfig:SetSize( 200, 25)
rageconfig.DoClick = function()
Hera.Notify(white,"Loaded rage config.")
print("WIP")
end
-------------------------
--[[ AIMBOT TAB SHIT ]]--
-------------------------
AddCheckBox("Autoshoot","Hera_AIM_Auto",Page2,10,10,"Autoshoot when locked")
AddCheckBox("Friendly Fire","Hera_AIM_Friendly",Page2,10,30,"Target your own team")
AddCheckBox("Target Steam Friends","Hera_AIM_Steam",Page2,10,50,"Target Steam Friends")
AddCheckBox("Target Admins","Hera_AIM_Admins",Page2,10,70,"Target Admins")
AddCheckBox("No-Recoil","Hera_AIM_NoRecoil",Page2,10,90,"Remove Recoil")
AddCheckBox("Triggerbot","Hera_AIM_Trigger",Page2,10,110,"Auto-shoots when looking at a player")
AddCheckBox("Stronghold mode","Hera_AIM_SH",Page2,10,130,"Aims down sights when locked, to reduce spread.")
AddCheckBox("Anti-Aim","Hera_AIM_Anti",Page2,10,150,"HvH feature, makes it 'harder' for others to aimbot you.")
AddCheckBox("Anti Anti-Aim","Hera_AIM_AntiAA",Page2,10,170,"HvH feature, bypasses anti-aim")
AddCheckBox("Anti-Snap","Hera_AIM_AntiSnap",Page2,200,10,"Changes the speed of the aimbot, making it look more legit")
AddCheckBox("Auto Reload","Hera_AIM_Reload",Page2,200,30,"Reload when you run out of ammo")
AddSlider("Field Of View","Hera_AIM_Fov",Page2,0,180,1,10,220,350,"FOV in which the aimbot will target players")
AddSlider("Anti-Snap Speed","Hera_AIM_AntiSnap_Speed",Page2,0,50,1,10,240,350,"Changes your anti-snap speed")
AddSlider("Aimbot Offset","Hera_AIM_Offset",Page2,-25,25,1,10,260,350,"Offsets your aimspot")
-------------------------------------
--[[ ESP | WALLHACK | VISUAL TAB ]]--
-------------------------------------
AddCheckBox("[ESP] Info","Hera_ESP_Info",Page3,10,10,"Show player's info on the ESP")
AddCheckBox("[ESP] Chams","Hera_ESP_Chams",Page3,10,30,"Show a player's model through walls")
AddCheckBox("[ESP] Bounding Box","Hera_ESP_Box",Page3,10,50,"Draw a box around players")
AddCheckBox("[ESP] Show Skeleton","Hera_ESP_Skeleton",Page3,10,70,"Show player's bones")
AddCheckBox("[ESP] Entity Finder","Hera_ESP_Ents",Page3,10,90,"Show entities on the ESP")
AddCheckBox("[VIS] Crosshair","Hera_ESP_Crosshair",Page3,150,10,"Draw a crosshair on your screen")
AddCheckBox("[VIS] Laser Tracer","Hera_ESP_Tracer",Page3,150,30,"Draw a laser from your feet to player's heads.")
AddSlider("ESP Distance","Hera_ESP_Distance",Page3,0,10000,1,10,260,300,"Distance in which the ESP will render")
local ESPList = vgui.Create( 'DComboBox', Page3 )
ESPList:SetPos( 330, 280 )
ESPList:SetSize( 82, 20 )
ESPList:AddChoice( 'Wireframe' )
ESPList:AddChoice( 'Solid' )
ESPList.OnSelect = function( self )
if self:GetValue() == 'Wireframe' then
old_rcc("Hera_ESP_Chams_Material","Wireframe")
elseif self:GetValue() == 'Solid' then
old_rcc("Hera_ESP_Chams_Material","Solid")
end
end
local ESPLabel1 = vgui.Create("DLabel")
ESPLabel1:SetParent( Page3 )
ESPLabel1:SetPos(335,265)
ESPLabel1:SetText("Chams Material")
ESPLabel1:SetTextColor(Color(255,255,255,255))
ESPLabel1:SizeToContents()
/**********************
Entity Finder Stuff
**********************/
local OpenEnts = vgui.Create("DButton")
OpenEnts:SetParent( Page3 )
OpenEnts:SetPos(290,10)
OpenEnts:SetSize( 140,50 )
OpenEnts:SetText( "Edit Ents" )
OpenEnts.DoClick = function()
--EntsMenu()
Hera.Notify(sound,white,"Due to Garry not explaining shit, and replacing useful shit with dumb shit, the Entity Finder is currently disabled.")
end
---------------------------
--[[ MISC TAB SETTINGS ]]--
---------------------------
AddCheckBox("Traitor Finder","Hera_MISC_TTT",Page4,10,10,"Find traitors in TTT")
AddCheckBox("Bunnyhop","Hera_MISC_BunnyHop",Page4,10,30,"Bunnyhop by holding 'Space'")
AddCheckBox("Chat Spam","Hera_MISC_ChatSpam",Page4,10,50,"Spam a pre-determined message in the chat")
AddCheckBox("Anti-AFK","Hera_MISC_AntiAFK",Page4,10,70,"Makes you move randomly to avoid AFK kickers")
AddCheckBox("Name Changer","Hera_MISC_Namechanger",Page4,10,90,"Steal player's names")
AddCheckBox("Show Notifications","Hera_MISC_ShowNotifications",Page4,10,110,"Draws enabled features on top of the screen")
AddCheckBox("DarkRP Godmode","Hera_MISC_RPGod",Page4,10,130,"Spams /buyhealth when you lose HP")
AddCheckBox("Show Spectators","Hera_MISC_ShowSpec",Page4,10,150,"Tells you in chat when someone is spectating you.")
AddCheckBox("Show Admins","Hera_MISC_ShowAdmins",Page4,10,170,"Tells you in chat when an admin joins.")
AddCheckBox("Thirdperson","Hera_MISC_Thirdperson",Page4,10,190,"Allows you to see your player (thirdperson).")
AddCheckBox("Flashlight Spam","Hera_MISC_Flashlight",Page4,200,10,"Spams the flashlight.")
AddSlider("Thirdperson Distance","Hera_MISC_Thirdperson_Dist",Page4,0,600,1,10,240,350,"Sets the distance of the thirdperson")
AddSlider("Speedhack Speed","Hera_MISC_Speedhack_Speed",Page4,0,10,1,10,260,350,"Sets the speed of the speedhack")
--------------------------------
--[[ PERP HACK TAB SETTINGS]]---
--------------------------------
AddCheckBox("Infinite Fuel","Hera_PERP_Fuel",Page5,10,10,"Infinite fuel in cars")
AddCheckBox("Show Druggy Stock","Hera_PERP_Druggy",Page5,10,30,"Show druggy's stock")
AddCheckBox("Weed Timer","Hera_PERP_Weed",Page5,10,50,"Show how when weed is finished growing")
AddCheckBox("Show RP Names","Hera_PERP_RPNames",Page5,10,70,"Show player's Roleplay names instead of Steam name")
AddCheckBox("Show Player Info","Hera_PERP_PlayerInfo",Page5,10,90,"Show info like; Health, bank cash, armor, etc")
// Add sheets
Sheet:AddSheet("Main",Page1,false,false,false,"Main cheat settings")
Sheet:AddSheet("Aimbot",Page2, false, false, false, "Aimbot Settings")
Sheet:AddSheet("ESP | Wallhack | Visual",Page3,false,false,false,"ESP/Wallhack Settings")
Sheet:AddSheet("Miscellaneous",Page4,false,false,false,"Miscellaneous Settings")
Sheet:AddSheet("PERP Hack",Page5,false,false,false,"Exploits and cheats for the PERP gamemode")
end) -- End of +Hera_Menu function
AddCMD("-Hera_Menu",function()
Menu:SetVisible(false)
end)
AddCMD("Hera_Menu_Toggle",function()
Menu:SetVisible(true)
end)
/**********************
Name: Hooks
Purpose: Hook shit
***********************/
function hooks_hudpaint()
ESP();
PERP_Druggy();
PERP_PlayerInfo();
Notifications();
end
function hooks_postdraw()
Chams();
end
function hooks_think()
Misc();
NameChanger();
ShowNotifi();
AutoReload();
end
function hooks_renderscreenspaceeffects()
end
function hooks_calcview()
end
function hooks_createmove(ucmd)
Aimbot(ucmd);
end
function Hera.hooks:load()
Log("Loaded hooks");
AddHook("HUDPaint",hooks_hudpaint);
AddHook("PostDrawEffects",hooks_postdraw);
AddHook("Think",hooks_think);
AddHook("CalcView",hooks_calcview);
AddHook("RenderScreenspaceEffects",hooks_renderscreenspaceeffects);
AddHook("CreateMove",hooks_createmove);
end
Hera.hooks:load(); -- load them
function Hera.hooks:unload()
RemoveHook("HUDPaint",hooks_hudpaint);
RemoveHook("CalcView",hooks_calcview);
RemoveHook("PostDrawEffects",hooks_postdraw);
RemoveHook("Think",hooks_think);
RemoveHook("RenderScreenspaceEffects",hooks_renderscreenspaceeffects);
RemoveHook("CreateMove",hooks_createmove);
end
function Hera.hooks:reload()
Log("Reloaded hooks")
Hera.hooks:unload();
Hera.hooks:load();
end
function unload()
Log("Unloaded.")
Hera.hooks:unload()
old_rcc("-Hera_Menu");
RemoveCMD("+Hera_Menu");
RemoveCMD("-Hera_Menu");
RemoveCMD("+Hera_Aim");
RemoveCMD("-Hera_Aim");
RemoveCMD("+Hera_Speed");
RemoveCMD("-Hera_Speed");
RemoveCMD("Hera_Menu_Toggle")
timer.Destroy("TTT")
end
/*******
RUN LAST
********/
Hera.Notify(dosound,white,"loaded version "..Hera.version..".")
Log("Loaded!")
AddCMD("skid",function()
include("SkidCheck.lua")
end)