This week only. Pastebin PRO Accounts Christmas Special! Don't miss out!Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Mar 6th, 2013  |  syntax: None  |  size: 64.50 KB  |  views: 125  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. --[[
  2.  
  3. -================================-
  4.  
  5.  
  6. Hera v4 - A Garry's Mod aimbot [Multi-Hack]
  7.  
  8.  
  9. -================================-
  10.  
  11. ]]--
  12.  
  13.  
  14. /************************************
  15. Name: Localizing
  16. Purpose: Make the cheat run faster
  17. ************************************/
  18.  
  19. local g                                         = table.Copy(_G)
  20.  
  21. local Hera                                      = {} -- Nothing!
  22. Hera.settings                           = {} -- Not started yet.
  23. Hera.hooks                                      = {} -- Store hooks in a table
  24. Hera.concommands                        = {} -- Store concommands in a table
  25. Hera.convars                            = {} -- Store the ConVars in a table
  26. Hera.timers                                     = {} -- Store Timers in a table
  27. Hera.cones                                      = { normal = {}, hl2 = {}, custom = {}} -- I probably won't even need this, I won't have NoSpread for a long time. Anyways, store cones here.
  28. Hera.files                                      = {"Hera.lua","Log.txt"} -- Files to hide and protect
  29. Hera.version                            = "4.1" -- Version of the cheat.
  30. Hera.ents                                       = { -- ents to be picked up by entity esp, add more if you want.
  31. "ent_pot",
  32. "npc_vendor",
  33. "weapon_perp_glock",
  34. "ent_item",
  35. "ent_prop_item",
  36. "sent_spawnpoint",
  37. "spawned_weapon",
  38. "spawned_shipment",
  39. "weed_plant",
  40. "gift",
  41. "spawned_money",
  42. "base_item",
  43. "weapon_ak47_dayz",
  44. "weapon_mp5_dayz",
  45. "weapon_deagle_dayz",
  46. "sapphire_money_printer",
  47. "amethyst_money_printer",
  48. "topaz_money_printer",
  49. "emerald_money_printer",
  50. "msc_scrapnug",
  51. "food_rawant",
  52. "ent_resource",
  53. "food_rawhead",
  54. "gmodz_item", -- TPS DayZ
  55. }
  56. Hera.dontlog                            = { -- commands to be ignored by the runconsolecommand logger
  57. "+jump",
  58. "-jump",
  59. "+attack",
  60. "-attack",
  61. "impulse"
  62. }
  63. Hera.badcmds                            = { -- commands to be blocked
  64. "__ac",
  65. "__imacheater",
  66. "gm_possess",
  67. "achievementRefresh", -- fuck u lifepunch
  68. "__uc_", -- RIOT
  69. "_____b__c",
  70. "___m",
  71. "sc",
  72. "bg",
  73. "bm",
  74. "kickme",
  75. "gw_iamacheater",
  76. "imafaggot",
  77. "birdcage_browse",
  78. "reportmod",
  79. "_fuckme",
  80. "st_openmenu",
  81. "_NOPENOPE",
  82. "__ping",
  83. "ar_check",
  84. "GForceRecoil",
  85. "~__ac_auth",
  86. "blade_client_check",
  87. "blade_client_detected_message",
  88. "disconnect",
  89. "exit",
  90. "retry",
  91. "kill",
  92. "-voicerecord",
  93. "+voicerecord",
  94. "dac_imcheating", -- fuck u bich
  95. "dac_pleasebanme", -- fuck u bich
  96. }
  97. Hera.invalidents                        = {"player","prop_physics","viewmodel",} -- Ents to not show on the ESP
  98. Hera.weapons                            = {["weapon_crossbow"] = 3110,}
  99. Hera.spectators                         = {} -- Store spectators here.
  100. Hera.admins                                     = {} -- store admins here
  101. Hera.config                                     = {} -- user config
  102.  
  103. local colors                            = {}
  104. red                                                     = Color(255,0,0,255);
  105. black                                           = Color(0,0,0,255);
  106. green                                           = Color(0,255,0,255);
  107. white                                           = Color(255,255,255,255);
  108. blue                                            = Color(0,0,255,255);
  109. cyan                                            = Color(0,255,255,255);
  110. pink                                            = Color(255,0,255,255);
  111. blue                                            = Color(0,0,255,255);
  112. grey                                            = Color(100,100,100,255);
  113. gold                                            = Color(255,228,0,255);
  114. lblue                                           = Color(155,205,248);
  115. lgreen                                          = Color(174,255,0);
  116. iceblue                                         = Color(116,187,251,255);
  117.  
  118. local _G                                        = table.Copy(_G)
  119.  
  120. local math                                      = _G.math
  121. local string                            = _G.string
  122. local hook                                      = _G.hook
  123. local table                             = _G.table
  124. local timer                             = _G.timer
  125. local surface                           = _G.surface
  126. local concommand                        = _G.concommand
  127. local cvars                             = _G.cvars
  128. local ents                                      = _G.ents
  129. local player                            = _G.player
  130. local team                                      = _G.team
  131. local util                                      = _G.util
  132. local draw                                      = _G.draw
  133. local usermessage                       = _G.usermessage
  134. local vgui                                      = _G.vgui
  135. local http                                      = _G.http
  136. local cam                                       = _G.cam
  137. local render                            = _G.render
  138.  
  139. local MsgN                                      = _G.MsgN
  140. local Msg                                       = _G.Msg
  141. local Vector                            = _G.Vector
  142. local Angle                             = _G.Angle
  143. local pairs                             = _G.pairs
  144. local ipairs                            = _G.ipairs
  145. local CreateSound                       = _G.CreateSound
  146. local setmetatable                      = _G.setmetatable
  147. local Sound                             = _G.Sound
  148. local print                             = _G.print
  149. local pcall                             = _G.pcall
  150. local type                                      = _G.type
  151. local LocalPlayer                       = _G.LocalPlayer
  152. local KeyValuesToTable          = _G.KeyValuesToTable
  153. local TableToKeyValues          = _G.TableToKeyValues
  154. local Color                             = _G.Color
  155. local CreateClientConVar        = _G.CreateClientConVar
  156. local ErrorNoHalt                       = _G.ErrorNoHalt
  157. local IsValid                           = _G.IsValid
  158. local CreateMaterial            = _G.CreateMaterial
  159. local tonumber                          = _G.tonumber
  160. local tostring                          = _G.tostring
  161. local CurTime                           = _G.CurTime
  162. local FrameTime                         = _G.FrameTime
  163. local ScrW                                      = _G.ScrW
  164. local ScrH                                      = _G.ScrH
  165. local SetClipboardText          = _G.SetClipboardText
  166. local GetHostName                       = _G.GetHostName
  167. local unpack                            = _G.unpack
  168. local AddConsoleCommand         = _G.AddConsoleCommand
  169. local require                           = _G.require
  170. local include                           = _G.include
  171.  
  172. local MOVETYPE_OBSERVER         = _G.MOVETYPE_OBSERVER
  173. local MOVETYPE_NONE             = _G.MOVETYPE_NONE
  174. local TEXT_ALIGN_LEFT           = _G.TEXT_ALIGN_LEFT
  175. local TEXT_ALIGN_TOP            = _G.TEXT_ALIGN_TOP
  176. local TEXT_ALIGN_RIGHT          = _G.TEXT_ALIGN_RIGHT
  177. local TEXT_ALIGN_BOTTOM         = _G.TEXT_ALIGN_BOTTOM
  178. local IN_JUMP                           = _G.IN_JUMP
  179. local IN_FORWARD                        = _G.IN_FORWARD
  180. local IN_BACK                           = _G.IN_BACK
  181. local IN_MOVERIGHT                      = _G.IN_MOVERIGHT
  182. local IN_MOVELEFT                       = _G.IN_MOVELEFT
  183. local IN_SPEED                          = _G.IN_SPEED
  184. local IN_DUCK                           = _G.IN_DUCK
  185. local TEAM_SPECTATOR            = 1002
  186.  
  187. -- old [detour]
  188. local old_filecdir                      = file.CreateDir;
  189. local old_filedel                       = file.Delete;
  190. local old_fileexist             = file.Exists;
  191. local old_fileexistex           = file.ExistsEx;
  192. local old_filefind                      = file.Find;
  193. local old_filefinddir           = file.FindDir;
  194. local old_filefindil            = file.FindInLua;
  195. local old_fileisdir                     = file.IsDir;
  196. local old_fileread                      = file.Read;
  197. local old_filerename            = file.Rename;
  198. local old_filesize                      = file.Size;
  199. local old_filetfind                     = file.TFind;
  200. local old_filetime                      = file.Time;
  201. local old_filewrite             = file.Write;
  202. local old_dbginfo                       = debug.getinfo;
  203. local old_dbginfo                       = debug.getupvalue;
  204. local old_cve                           = ConVarExists;
  205. local old_gcv                           = GetConVar;
  206. local old_gcvn                          = GetConVarNumber;
  207. local old_gcvs                          = GetConVarString;
  208. local old_rcc                           = RunConsoleCommand;
  209. local old_hookadd                       = hook.Add;
  210. local old_hookrem                       = hook.Remove;
  211. local old_ccadd                         = concommand.Add;
  212. local old_ccrem                         = concommand.Remove;
  213. local old_cvaracc                       = cvars.AddChangeCallback;
  214. local old_cvargcvc                      = cvars.GetConVarCallbacks;
  215. local old_cvarchange            = cvars.OnConVarChanged;
  216. local old_require                       = require;
  217. local old_eccommand             = engineConsoleCommand;
  218.  
  219. --Fonts--
  220. surface.CreateFont("ESPFont",{font = "ScoreboardText", size = 17, weight = 400, antialias = 0})
  221. surface.CreateFont("ESPFont_Small",{font = "Default", size = 12, weight = 200, antialias = 0})
  222. surface.CreateFont("Logo",{font = "akbar", size = 21, weight = 400, antialias = 0})
  223. surface.CreateFont("Hera_ScoreboardText",{font = "ScoreboardText", size = 15, weight = 700, antialias = 0})
  224. surface.CreateFont("Hera_coolvetica",{font = "coolvetica", size = 16, weight = 500, antialias = 0})
  225. surface.CreateFont("Hera_hvh",{font = "ScoreboardTextt", size = 15, weight = 1000, antialias = 1})
  226.  
  227.  
  228. g.rawset(_G, "RunConsoleCommand", oRunConsoleCommand)
  229.  
  230. --Materials--
  231. function Hera:CreateMaterial()
  232. local BaseInfo = {
  233. ["$basetexture"] = "models/debug/debugwhite",
  234. ["$model"]       = 1,
  235. ["$translucent"] = 1,
  236. ["$alpha"]       = 1,
  237. ["$nocull"]      = 1,
  238. ["$ignorez"]     = 1
  239. }      
  240. local mat      
  241. if GetConVarString("Hera_ESP_Chams_Material") == "Solid" then
  242.         mat = CreateMaterial( "hera_solid", "VertexLitGeneric", BaseInfo )
  243. elseif GetConVarString("Hera_ESP_Chams_Material") == "Wireframe" then
  244.         mat = CreateMaterial( "hera_wire", "Wireframe", BaseInfo )
  245. end
  246.    return mat
  247. end
  248.  
  249. /**************************************
  250. Name: Logger
  251. Purpose: Logs functions and shit
  252. **************************************/
  253. concommand.Add("Hera_StartLog",function()
  254. file.Write("Hera/log.txt","Log created: ("..os.date()..") \n")
  255. end)
  256.  
  257. function Log(msg)
  258. file.Append("Hera/log.txt","["..os.date().."]: "..msg.."\n")
  259. end
  260. Log("Loading....")
  261.  
  262.  
  263. /*******************************************
  264. Name: Print/Chat functions
  265. Purpose: Notify the user of what's going on
  266. ********************************************/
  267. function Hera.Print(msg)
  268.         print("[Hera] "..msg)
  269. end
  270.  
  271. function Hera.Notify(dosound,col,msg)
  272.         if col then
  273.                 col = col
  274.         end
  275. chat.AddText(
  276. iceblue, "[Hera] ",
  277. col, msg)
  278.         if dosound == sound then
  279.                 local beep = Sound( "/buttons/button17.wav" )
  280.                 local beepsound = CreateSound( LocalPlayer(), beep )
  281.                 beepsound:Play()
  282.         end
  283. end
  284.  
  285. /***********************************************
  286. Name: Hook functions
  287. Purpose: Add hooks and protect from anticheats
  288. ************************************************/
  289.  
  290. -- Addhook
  291. local function AddHook(Type,Function)
  292.         Name = Type.." | "..math.random(1,1000),math.random(1,2000),math.random(1,3000) -- Simple hook names
  293.         Hera.Print("[ADDED] Hook: ["..Type.."] | Name: "..Name.."")
  294.         return old_hookadd(Type,Name,Function)
  295. end
  296.  
  297. -- RemoveHook
  298. local function RemoveHook(Type,Function)
  299.         Hera.Print("[REMOVED] Hook: ["..Type.."]")
  300.         return old_hookrem(Type,Function)
  301. end
  302.  
  303. /**********************************
  304. Name: File Shit
  305. Purpose: Anything relating to file.
  306. ***********************************/
  307. -- Write file
  308. function AddFile(Name,Data)
  309.         Hera.Print("[WROTE] File: "..Name.."")
  310.         return old_filewrite(Name,Data)
  311. end
  312.  
  313. /**************
  314. Random String
  315. **************/
  316. function RandomString( len )
  317.         local ret = ""
  318.                 for i = 1 , len do
  319.                         ret = ret .. string.char( math.random( 65 , 116 ) )
  320.         end
  321.         return ret
  322. end
  323.  
  324. /**********************
  325. Name: Timer shit
  326. Purpose: Anything timer
  327. ***********************/
  328. function AddTimer( sec, rep, func )
  329.         local index = RandomString( 10 )       
  330.         Hera.timers[ index ] = sec     
  331.         timer.Create( index, sec, rep, func )
  332. end
  333.  
  334. /******************************************
  335. Name: ConCommand Shit
  336. Purpose: Anything related to concommands
  337. ********************************************/
  338.  
  339. function AddCMD(Name,Function)
  340.         Hera.Print("[ADDED] ConCommand: "..Name.."")
  341.         return old_ccadd(Name,Function)
  342. end
  343.  
  344. function RemoveCMD(Name)
  345.         Hera.Print("[REMOVED] ConCommand: "..Name.."")
  346.         return old_ccrem(Name)
  347. end
  348.  
  349. /*******************************************
  350. Name: ConVars
  351. Purpose: Anything with ConVars
  352. ********************************************/
  353.  
  354. -- AddConVar
  355. function AddConVar(convar,str,save,data)
  356.         return CreateClientConVar("Hera_"..convar,str,true,false), Hera.Print("[ADDED] ConVar: Hera_"..convar.." ["..str.."]")
  357. end
  358.  
  359. /***************************************
  360. Name: RunConsoleCommand shit
  361. Purpose: Detours, Loggers, blockers
  362. ****************************************/
  363.  
  364. function RunConsoleCommand(cmd,...)
  365.         if !table.HasValue(Hera.dontlog, cmd) then
  366.                 Hera.Print("RunConsoleCommand: "..cmd)
  367.                 Log("RunConsoleCommand: "..cmd)
  368.         end
  369.         if !table.HasValue(Hera.badcmds,cmd) then
  370.                 return old_rcc(cmd,...)
  371.         else
  372.                 Hera.Notify(sound,red,"Blocked command: "..cmd)
  373.                 Log("BLOCKED COMMAND: "..cmd)
  374.                 return
  375.         end
  376. end
  377.  
  378. /**************************************
  379. Name: Entity Shit
  380. Purpose: Anything to do with entities
  381. ***************************************/
  382. -- entity finder [addent]
  383. function AddEnt(entclass)
  384.         if(!table.HasValue(Hera.ents,entclass)) then
  385.                 table.insert(Hera.ents,entclass)
  386.                 Hera.Print("[ADDED] Ent: "..entclass.." to ESP")
  387.                 file.Write("Hera/ents.txt", glon.encode( Hera.ents ))
  388.         end
  389. end
  390.  
  391. -- entity finder [removeent]
  392. function RemoveEnt(entclass)
  393.         for k, v in pairs(Hera.ents) do
  394.                 if(string.Trim(v) == entclass) then
  395.                         Hera.ents[k] = nil
  396.                         Hera.Print("[REMOVED] Ent: "..entclass.." from the ESP")
  397.                 end
  398.         end
  399.         file.Write("Hera/ents.txt", glon.encode( Hera.ents ))
  400. end
  401.  
  402. -- entity finder [clear ents]
  403. function ClearEnts()
  404.         Hera.ents = {}
  405.         file.Write("Hera/ents.txt", glon.encode( Hera.ents ))
  406. end
  407.  
  408. -- entity finder [IsCustomEnt()]
  409. function IsCustomEnt( entclass )
  410.         return table.HasValue( Hera.ents, entclass )
  411. end
  412.  
  413.  
  414. /**************************
  415. Name: Derma shit
  416. Purpose: Anything Derma
  417. ***************************/
  418. function AddCheckBox( text, cvar, parent, x, y, tt )
  419. local checkbox = vgui.Create( "DCheckBoxLabel", parent )
  420. checkbox:SetPos( x, y )
  421. checkbox:SetText( text )
  422. checkbox:SetConVar( cvar )
  423. checkbox:SetTextColor(white)
  424. checkbox:SetTooltip( tt or "No Tool Tip" )
  425. checkbox:SizeToContents()      
  426. end
  427.  
  428. // AddSlider for the derma
  429. function AddSlider( text, cvar, parent, min, max, decimals, x, y, wide, tt )
  430. local slider = vgui.Create( "DNumSlider" )
  431. slider:SetParent( parent )
  432. slider:SetPos( x, y )
  433. slider:SetWide( wide )
  434. slider:SetText( text )
  435. --slider:SetTextColor(BLACK)
  436. slider:SetMin( min )
  437. slider:SetMax( max )
  438. slider:SetDecimals( decimals )
  439. slider:SetConVar( cvar )
  440. slider:SetTooltip( tt or "No Tool Tip" )
  441. end
  442.  
  443. Gradient = surface.GetTextureID( "gui/gradient" )
  444. function DrawBox( x, y, wide, tall, dropsize )
  445.         draw.RoundedBoxEx( 4, x, y, wide, dropsize, iceblue, true, true, false, false )
  446.         draw.RoundedBoxEx( 4, x, y + dropsize, wide, tall - dropsize, Color( 0, 0, 0, 100 ), false, false, true, true )
  447. end
  448.  
  449. /********************************************************
  450. Name: Hide the cheat from client
  451. Purpose: Don't show the where the cheat loads from, etc
  452. *********************************************************/
  453. function error(...) Hera.Notify(red,"Error in the Lua script!") end
  454. function Error(...) Hera.Notify(red,"Error in the Lua script!") end
  455. function ErrorNoHalt(...) Hera.Notify(red,"Error in the Lua script!") end
  456.  
  457. /*************************
  458. Name: CreatePos
  459. Purpose: Create a position
  460. Credits: BaconBot
  461. ***************************/
  462. function CreatePos(v)
  463. local ply = LocalPlayer()
  464. local center = v:LocalToWorld( v:OBBCenter() )
  465. local min, max = v:OBBMins(), v:OBBMaxs()
  466. local dim = max - min   local z = max + min    
  467. local frt       = ( v:GetForward() ) * ( dim.y / 2 )
  468. local rgt       = ( v:GetRight() ) * ( dim.x / 2 )
  469. local top       = ( v:GetUp() ) * ( dim.z / 2 )
  470. local bak       = ( v:GetForward() * -1 ) * ( dim.y / 2 )
  471. local lft       = ( v:GetRight() * -1 ) * ( dim.x / 2 )
  472. local btm       = ( v:GetUp() * -1 ) * ( dim.z / 2 )
  473. local s = 1
  474. local FRT       = center + frt / s + rgt / s + top / s; FRT = FRT:ToScreen()
  475. local BLB       = center + bak / s + lft / s + btm / s; BLB = BLB:ToScreen()
  476. local FLT       = center + frt / s + lft / s + top / s; FLT = FLT:ToScreen()
  477. local BRT       = center + bak / s + rgt / s + top / s; BRT = BRT:ToScreen()
  478. local BLT       = center + bak / s + lft / s + top / s; BLT = BLT:ToScreen()
  479. local FRB       = center + frt / s + rgt / s + btm / s; FRB = FRB:ToScreen()
  480. local FLB       = center + frt / s + lft / s + btm / s; FLB = FLB:ToScreen()
  481. local BRB       = center + bak / s + rgt / s + btm / s; BRB = BRB:ToScreen()   
  482. local z = 100
  483. if ( v:Health() <= 50 ) then z = 100 end
  484. local x, y = ( ( v:Health() / 100 ) ), 1
  485. if ( v:Health() <= 0 ) then x = 1 end
  486. local FRT3      = center + frt + rgt + top / x; FRT3 = FRT3; FRT3 = FRT3:ToScreen()
  487. local BLB3      = center + bak + lft + btm / x; BLB3 = BLB3; BLB3 = BLB3:ToScreen()
  488. local FLT3      = center + frt + lft + top / x; FLT3 = FLT3; FLT3 = FLT3:ToScreen()
  489. local BRT3      = center + bak + rgt + top / x; BRT3 = BRT3; BRT3 = BRT3:ToScreen()
  490. local BLT3      = center + bak + lft + top / x; BLT3 = BLT3; BLT3 = BLT3:ToScreen()
  491. local FRB3      = center + frt + rgt + btm / x; FRB3 = FRB3; FRB3 = FRB3:ToScreen()
  492. local FLB3      = center + frt + lft + btm / x; FLB3 = FLB3; FLB3 = FLB3:ToScreen()
  493. local BRB3      = center + bak + rgt + btm / x; BRB3 = BRB3; BRB3 = BRB3:ToScreen()    
  494. local x, y, z = 1.1, 0.9, 1
  495. local FRT2      = center + frt / y + rgt / z + top / x; FRT2 = FRT2:ToScreen()
  496. local BLB2      = center + bak / y + lft / z + btm / x; BLB2 = BLB2:ToScreen()
  497. local FLT2      = center + frt / y + lft / z + top / x; FLT2 = FLT2:ToScreen()
  498. local BRT2      = center + bak / y + rgt / z + top / x; BRT2 = BRT2:ToScreen()
  499. local BLT2      = center + bak / y + lft / z + top / x; BLT2 = BLT2:ToScreen()
  500. local FRB2      = center + frt / y + rgt / z + btm / x; FRB2 = FRB2:ToScreen()
  501. local FLB2      = center + frt / y + lft / z + btm / x; FLB2 = FLB2:ToScreen()
  502. local BRB2      = center + bak / y + rgt / z + btm / x; BRB2 = BRB2:ToScreen() 
  503. local maxX = math.max( FRT.x,BLB.x,FLT.x,BRT.x,BLT.x,FRB.x,FLB.x,BRB.x )
  504. local minX = math.min( FRT.x,BLB.x,FLT.x,BRT.x,BLT.x,FRB.x,FLB.x,BRB.x )
  505. local maxY = math.max( FRT.y,BLB.y,FLT.y,BRT.y,BLT.y,FRB.y,FLB.y,BRB.y )
  506. local minY = math.min( FRT.y,BLB.y,FLT.y,BRT.y,BLT.y,FRB.y,FLB.y,BRB.y )
  507. local minYhp2 = math.min( FRT.y,BLB.y,FLT.y,BRT.y,BLT.y,FRB.y,FLB.y,BRB.y )
  508. local maxXhp = math.max( FRT3.x,BLB3.x,FLT3.x,BRT3.x,BLT3.x,FRB3.x,FLB3.x,BRB3.x )
  509. local minXhp = math.min( FRT3.x,BLB3.x,FLT3.x,BRT3.x,BLT3.x,FRB3.x,FLB3.x,BRB3.x )
  510. local maxYhp = math.max( FRT3.y,BLB3.y,FLT3.y,BRT3.y,BLT3.y,FRB3.y,FLB3.y,BRB3.y )
  511. local minYhp = math.min( FRT3.y,BLB3.y,FLT3.y,BRT3.y,BLT3.y,FRB3.y,FLB3.y,BRB3.y )     
  512. local maxX2 = math.max( FRT2.x,BLB2.x,FLT2.x,BRT2.x,BLT2.x,FRB2.x,FLB2.x,BRB2.x )
  513. local minX2 = math.min( FRT2.x,BLB2.x,FLT2.x,BRT2.x,BLT2.x,FRB2.x,FLB2.x,BRB2.x )
  514. local maxY2 = math.max( FRT2.y,BLB2.y,FLT2.y,BRT2.y,BLT2.y,FRB2.y,FLB2.y,BRB2.y )
  515. local minY2 = math.min( FRT2.y,BLB2.y,FLT2.y,BRT2.y,BLT2.y,FRB2.y,FLB2.y,BRB2.y )
  516. return maxX, minX, maxY, minY, maxX2, minX2, maxY2, minY2, minYhp, maxYhp
  517. end
  518.  
  519.  
  520. /*************************************
  521. Name: PlayerVisible
  522. Purpose: Check if a player is visible
  523. *************************************/
  524. local function CanSee(ply)
  525.     local trace = {start = LocalPlayer():GetShootPos(),endpos = {}}
  526.     local tr = util.TraceLine(trace)
  527.     if tr.Fraction == 1 then
  528.         return true
  529.     else
  530.         return false
  531.     end    
  532. end
  533.  
  534. /**********************************
  535. Name: GetColors
  536. Purpose: Make a cool color!
  537. ***********************************/
  538. local function GetColorCrosshair()
  539.         if LocalPlayer():GetEyeTrace().Entity:IsPlayer() then
  540.                 return 0,255,0,255
  541.         end
  542.         if LocalPlayer():GetEyeTrace().Entity:IsNPC() then
  543.                 return 0,0,255,255
  544.         end
  545.         return team.GetColor(LocalPlayer():Team())
  546. end
  547.  
  548. local function GetColorVisible(e)
  549.         if CanSee(e) then
  550.                 return 0,255,0,255
  551.         end
  552.         if !CanSee(e) then
  553.                 return 255,0,0,255
  554.         end
  555. end
  556.  
  557.  
  558. /**************************************
  559. Name: Number shit
  560. Purpose: Format number, round number, etc
  561. **************************************/
  562. function CommaValue(amount)
  563.         local formatted = amount
  564.         while true do  
  565.                 formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", '%1,%2')
  566.                 if (k==0) then
  567.                         break
  568.                 end
  569.         end
  570.         return formatted
  571. end
  572.  
  573. function RoundNum(val, decimal)
  574.         if (decimal) then
  575.                 return math.floor( (val * 10^decimal) + 0.5) / (10^decimal)
  576.         else
  577.                 return math.floor(val+0.5)
  578.         end
  579. end
  580.  
  581. function FormatNum(amount, decimal, prefix, neg_prefix)
  582.         local str_amount,  formatted, famount, remain
  583.         decimal = decimal or 2
  584.         neg_prefix = neg_prefix or "-"
  585.         famount = math.abs(RoundNum(amount,decimal))
  586.         famount = math.floor(famount)
  587.         remain = RoundNum(math.abs(amount) - famount, decimal)
  588.         formatted = CommaValue(famount)
  589.         if (decimal > 0) then
  590.                 remain = string.sub(tostring(remain),3)
  591.                 formatted = formatted .. "." .. remain .. string.rep("0", decimal - string.len(remain))
  592.         end
  593.         formatted = (prefix or "") .. formatted
  594.         if (amount<0) then
  595.                 if (neg_prefix=="()") then
  596.                         formatted = "("..formatted ..")"
  597.                 else
  598.                         formatted = neg_prefix .. formatted
  599.                 end
  600.         end
  601.         return formatted
  602. end
  603.  
  604. function ConvertTime(sSeconds)
  605.         local nSeconds = tonumber(sSeconds)
  606.         if nSeconds <= 0 then
  607.                         return 0;
  608.                 else
  609.                         local nHours = string.format("%02.f", math.floor(nSeconds/3600));
  610.                         local nMins = string.format("%02.f", math.floor(nSeconds/60 - (nHours*60)));
  611.                         local nSecs = string.format("%02.f", math.floor(nSeconds - nHours*3600 - nMins *60));
  612.                 if tonumber( nHours ) > 0 then
  613.                         return nHours..":"..nMins..":"..nSecs
  614.                 elseif tonumber( nMins ) > 0 and tonumber( nHours ) == 0 then
  615.                         return nMins..":"..nSecs
  616.                 elseif tonumber( nSecs ) > 0 and tonumber( nMins ) == 0 then
  617.                         return nMins..":"..nSecs
  618.                 end
  619.         end
  620. end
  621.  
  622. /**********************
  623. Name: DrawText
  624. Purpose: Draws text...
  625. **********************/
  626. function Hera.DrawText( text, font, x, y, colour, xalign, yalign )
  627.         if (font == nil) then font = "Default" end
  628.         if (x == nil) then x = 0 end
  629.         if (y == nil) then y = 0 end   
  630.         local curX = x
  631.         local curY = y
  632.         local curString = ""   
  633.         surface.SetFont(font)
  634.         local sizeX, lineHeight = surface.GetTextSize("\n")    
  635.         for i=1, string.len(text) do
  636.                 local ch = string.sub(text,i,i)
  637.                 if (ch == "\n") then
  638.                         if (string.len(curString) > 0) then
  639.                                 draw.SimpleText(curString, font, curX, curY, colour, xalign, yalign)
  640.                         end                    
  641.                         curY = curY + (lineHeight/2)
  642.                         curX = x
  643.                         curString = ""
  644.                 elseif (ch == "\t") then
  645.                         if (string.len(curString) > 0) then
  646.                                 draw.SimpleText(curString, font, curX, curY, colour, xalign, yalign)
  647.                         end
  648.                         local tmpSizeX,tmpSizeY =  surface.GetTextSize(curString)
  649.                         curX = math.ceil( (curX + tmpSizeX) / 50 ) * 50
  650.                         curString = ""
  651.                 else
  652.                         curString = curString .. ch
  653.                 end
  654.         end    
  655.         if (string.len(curString) > 0) then
  656.                 draw.SimpleText(curString, font, curX, curY, colour, xalign, yalign)
  657.         end
  658. end
  659.  
  660. local function FillRGBA(x,y,w,h,col)
  661.     surface.SetDrawColor( col.r, col.g, col.b, col.a );
  662.     surface.DrawRect( x, y, w, h );
  663. end
  664.  
  665. local function OutlineRGBA(x,y,w,h,col)
  666.     surface.SetDrawColor( col.r, col.g, col.b, col.a );
  667.     surface.DrawOutlinedRect( x, y, w, h );
  668. end
  669.  
  670. /*********************
  671. Name: IsVehicle
  672. Purpose: Find vehicles
  673. *********************/
  674. function Hera.IsVehicle( e )   
  675.         local ply = LocalPlayer()      
  676.         if ( string.find( e:GetClass(), "prop_vehicle_" ) && ply:GetMoveType() ~= 0 ) then
  677.                 return true
  678.         end
  679.         return false
  680. end
  681.  
  682. /***************************
  683. Name: SetColors
  684. Purpose: Set Colors
  685. ****************************/
  686. function SetColors(e)
  687.         local ply, class, model = LocalPlayer(), e:GetClass(), e:GetModel()
  688.         local col      
  689.         if ( e:IsPlayer() ) then
  690.                 col = Color(0,255,0,255)
  691.         elseif ( e:IsNPC() ) then
  692.                 col = Color( 255, 0, 0, 20 )           
  693.         elseif IsCustomEnt( e:GetClass() ) then
  694.                 col = Color( 0, 200, 255, 50 )         
  695.         else
  696.                 col = Color( 255, 255, 255, 255 )              
  697.         end    
  698.         return col
  699. end
  700.  
  701. /******************************
  702. Name: Get Admin Type
  703. Purpose: Get Admin Type..
  704. *******************************/
  705. local function GetAdminType(e)
  706.         if e:IsAdmin() && !e:IsSuperAdmin() then
  707.                 return " [A] "
  708.         elseif( e:IsSuperAdmin() ) then
  709.                 return " [SA] "
  710.         end
  711.         return " "
  712. end
  713.  
  714. function CheckUpdate()
  715. Hera.Notify(black,"Checking version.")
  716.         http.Fetch("drapbax.cam/fack.txt", function(body, len, headers, code)
  717.                 if body == Hera.version then
  718.                         Hera.Notify(sound,green,"Your version of Hera is up to date!")
  719.                 else
  720.                         Hera.Notify(sound,red,"Your version of Hera is outdated! Please updated to version "..body)
  721.                 end
  722.         end)
  723. end
  724. CheckUpdate()
  725.  
  726. /*******************************************
  727. Name: Anti-Cheat bypasses
  728. Purpose: Bypass shitty LUA anti-cheats
  729. ********************************************/
  730.  
  731. Hera.Print("[Anti-Cheat] Detected by: Cherry's AC (Working on a bypass method)")
  732. Hera.Print("[Anti-Cheat] Detected by: LIFEPUNCH Anti-Cheat")
  733. Hera.Print("[Anti-Cheat] Will bypass: SourceMod Anti-Cheat") -- SHOULD bypass by default, haven't got any problems yet.
  734.  
  735.  
  736. /****************************
  737. Name: Create ConVars
  738. Purpose: Create ConVars..
  739. *****************************/
  740. AddConVar("ESP_Info",0)
  741. AddConVar("ESP_Box",0)
  742. AddConVar("ESP_HPBar",0)
  743. AddConVar("ESP_Skeleton",0)
  744. AddConVar("ESP_Tracer",0)
  745. AddConVar("ESP_Crosshair",0)
  746. AddConVar("ESP_Chams",0)
  747. AddConVar("ESP_Chams_Material","Solid")
  748. AddConVar("ESP_Ents",0)
  749. AddConVar("ESP_Distance",1000)
  750. AddConVar("ESP_Info_Type","info")
  751. AddConVar("ESP_Radar",0)
  752.  
  753. AddConVar("MISC_Bunnyhop",0)
  754. AddConVar("MISC_TTT",0)
  755. AddConVar("MISC_ChatSpam",0)
  756. AddConVar("MISC_ChatSpam_Msg","visit www.sethhack.seth.im.me.co.cc.net.org.dk.uk.com.gov")
  757. AddConVar("MISC_AntiAFK",0)
  758. AddConVar("MISC_CSNoclip",0)
  759. AddConVar("MISC_Thirdperson",0)
  760. AddConVar("MISC_RPGod",0)
  761. AddConVar("MISC_Namechanger",0)
  762. AddConVar("MISC_ShowNotifications",0)
  763. AddConVar("MISC_SpeedHack_Speed",3.5)
  764. AddConVar("MISC_ShowSpec",0)
  765. AddConVar("MISC_ShowAdmins",0)
  766. AddConVar("MISC_Thirdperson_dist",200)
  767. AddConVar("MISC_Flashlight",0)
  768.  
  769. AddConVar("PERP_Fuel",0)
  770. AddConVar("PERP_Druggy",0)
  771. AddConVar("PERP_Weed",0)
  772. AddConVar("PERP_RPNames",0)
  773. AddConVar("PERP_PlayerInfo",0)
  774.  
  775. AddConVar("AIM_Friendly",0)
  776. AddConVar("AIM_Steam",0)
  777. AddConVar("AIM_Admins",0)
  778. AddConVar("AIM_Auto",0)
  779. AddConVar("AIM_NoRecoil",0)
  780. AddConVar("AIM_Offset",0)
  781. AddConVar("AIM_AimSpot","Eye")
  782. AddConVar("AIM_Trigger",0)
  783. AddConVar("AIM_Silent",0)
  784. AddConVar("AIM_SH",0)
  785. AddConVar("AIM_Anti",0)
  786. AddConVar("AIM_Spin",0)
  787. AddConVar("AIM_AntiAA",0)
  788. AddConVar("AIM_AntiSnap",0)
  789. AddConVar("AIM_AntiSnap_Speed",5)
  790. AddConVar("AIM_Fov",180)
  791. AddConVar("AIM_Reload",0)
  792.  
  793. /***********************************
  794. concommands to find entities and shit
  795. **************************************/
  796.  
  797. AddCMD("_ents",function()
  798. PrintTable(ents.GetAll())
  799. end)
  800.  
  801. AddCMD("_players",function()
  802. PrintTable(player.GetAll())
  803. end)
  804.  
  805.  
  806. /**********************
  807. Set some ConVars to 0
  808. **********************/
  809. old_rcc("Hera_PERP_Fuel","0")
  810. old_rcc("Hera_PERP_Druggy","0")
  811. old_rcc("Hera_PERP_Weed","0")
  812. old_rcc("Hera_PERP_RPNames","0")
  813. old_rcc("Hera_PERP_PlayerInfo","0")
  814. old_rcc("Hera_MISC_ChatSpam","0")
  815. old_rcc("Hera_ESP_Tracer","0")
  816.  
  817.  
  818.  
  819. /*******************
  820. Start of cheat
  821. *******************/
  822.  
  823.  
  824. --[[
  825.         CHAMS
  826. ]]--
  827.  
  828. -- distance check
  829. function IsCloseEnough(ent)
  830.         local dist = ent:GetPos():Distance( LocalPlayer():GetPos() )
  831.         if( dist <= GetConVarNumber("Hera_ESP_Distance") and ent:GetPos() != Vector( 0, 0, 0 ) ) then
  832.                 return true
  833.         end
  834.         return false   
  835. end
  836.  
  837. function Chams()
  838. local mat = Hera:CreateMaterial()
  839.         if GetConVarNumber("Hera_ESP_Chams") == 1 then
  840.                 for k,v in pairs(player.GetAll()) do
  841.                         local TCol = team.GetColor(v:Team())
  842.                         if IsValid(v) and v:Health() > 0 and v:Team() != TEAM_SPECTATOR and IsCloseEnough(v) then
  843.                         //Players
  844.                         cam.Start3D(EyePos(),EyeAngles())
  845.                         render.SuppressEngineLighting( true )
  846.                         render.SetColorModulation( ( TCol.r * ( 1 / 255 ) ), ( TCol.g * ( 1 / 255 ) ), ( TCol.b * ( 1 / 255 ) ) )
  847.                         render.MaterialOverride( mat )
  848.                         v:DrawModel()
  849.                         render.SuppressEngineLighting( false )
  850.                         render.SetColorModulation(1,1,1)
  851.                         render.MaterialOverride( )
  852.                         v:DrawModel()
  853.                         cam.End3D()
  854.                         end
  855.                 end
  856.         end
  857. end
  858.  
  859.  
  860. local IsLock = false;
  861. --[[
  862.         ESP
  863. ]]--
  864. function ESP()
  865.         for k, e in pairs( player.GetAll() ) do
  866. local TeamColor = team.GetColor(e:Team())
  867. local HPColor = Color(255,255,255,255)
  868. local Dist = e:GetPos():Distance(LocalPlayer():GetPos());
  869. local wep = "Unknown"
  870. local SteamID = e:SteamID()
  871. local Name = e:Nick()
  872. local hvhpos = ( e:GetPos() + Vector( 0, 0, 130 ) ):ToScreen();
  873. if GetConVarNumber("Hera_PERP_RPNames") == 1 then
  874.         Name = e:GetRPName()
  875. else
  876.         Name = e:Nick()
  877. end
  878. local maxX, minX, maxY, minY, maxX2, minX2, maxY2, minY2, minYhp, maxYhp = CreatePos( e )
  879. -- This is bad
  880. if e:Health() >= 90 then HPColor = Color(0,255,0,255)
  881.         elseif e:Health() >= 70 then HPColor = Color(255,255,0,255)
  882.         elseif e:Health() >= 50 then HPColor = Color(255,165,0,255)
  883.         elseif e:Health() >= 30 then HPColor = Color(255,140,0,255)
  884.         elseif e:Health() >= 20 then HPCOlor = Color(255,69,0,255)
  885.         elseif e:Health() >= 10 then HPColor = Color(255,0,0,255)
  886.         else HPColor = Color(255,0,0,255)
  887. end
  888. draw.SimpleTextOutlined("Hera v4","Logo",1285,15,Color(255,255,255,255),4,1,1,black)
  889.                 if ( e:IsPlayer() && e:Alive() && e != LocalPlayer() && IsCloseEnough(e) ) then
  890.                         if e:GetActiveWeapon() != nil then
  891.                                 if type(e:GetActiveWeapon()) == "Weapon" then
  892.                                         if e:GetActiveWeapon() and e:GetActiveWeapon():IsValid() then
  893.                                                 wep = e:GetActiveWeapon():GetPrintName()
  894.                                                
  895.                                                         -- ESP INFO
  896.                                                         if (GetConVarNumber("Hera_ESP_Info") == 1 && GetConVarString("Hera_ESP_Info_Type") == "info") then
  897.                                                                 draw.SimpleTextOutlined( Name..GetAdminType(e), "Hera_coolvetica", maxX2, minY2, TeamColor,4,1,1,Color(0,0,0))
  898.                                                                 draw.SimpleTextOutlined( "H: " .. e:Health(), "ESPFont_Small", maxX2, minY2 + 10, HPColor, 4,1, 1, black )
  899.                                                                 draw.SimpleTextOutlined( "D: " .. math.floor(Dist), "ESPFont_Small", maxX2, minY2 + 20, iceblue, 4, 1, 1, black )
  900.                                                                 draw.SimpleTextOutlined( "W: " .. wep, "ESPFont_Small", maxX2, minY2 + 30, iceblue, 4, 1, 1, black)
  901.                                                                 if e:GetFriendStatus() == "friend" then
  902.                                                                         draw.SimpleTextOutlined( "[Friend]", "ESPFont_Small", maxX2, minY2 - 10, iceblue, 4, 1,1,black)
  903.                                                                 end
  904.                                                                         if e:IsAdmin() then
  905.                                                                                 draw.SimpleText("[Admin]","ESPFont_Small",maxX2,minY2 -20,cyan,4,1,1,black)
  906.                                                                         end
  907.                                                         elseif GetConVarString("Hera_ESP_Info_Type") == "hvh" then
  908.                                                                 draw.SimpleTextOutlined(e:Nick().." ["..e:Health().."]","Default",hvhpos.x,hvhpos.y,TeamColor,4,.5,.5,black,TEXT_ALIGN_CENTER)
  909.                                                         end
  910.                                                        
  911.                                                         -- ESP BOX --
  912.                                                         if GetConVarNumber("Hera_ESP_Box") == 1 then
  913.                                                                 surface.SetDrawColor(0,0,255,255)                              
  914.                                                                 surface.DrawLine( maxX, maxY, maxX, minY )
  915.                                                                 surface.DrawLine( maxX, minY, minX, minY )                                     
  916.                                                                 surface.DrawLine( minX, minY, minX, maxY )
  917.                                                                 surface.DrawLine( minX, maxY, maxX, maxY )
  918.                                                         end
  919.                                                         -- ESP SKELETON --
  920.                                                         local bones = {
  921.                                                         { S = "ValveBiped.Bip01_Head1", E = "ValveBiped.Bip01_Neck1" },
  922.                                                         { S = "ValveBiped.Bip01_Neck1", E = "ValveBiped.Bip01_Spine4" },
  923.                                                         { S = "ValveBiped.Bip01_Spine4", E = "ValveBiped.Bip01_Spine2" },
  924.                                                         { S = "ValveBiped.Bip01_Spine2", E = "ValveBiped.Bip01_Spine1" },
  925.                                                         { S = "ValveBiped.Bip01_Spine1", E = "ValveBiped.Bip01_Spine" },
  926.                                                         { S = "ValveBiped.Bip01_Spine", E = "ValveBiped.Bip01_Pelvis" },
  927.                                                        
  928.                                                         { S = "ValveBiped.Bip01_Spine4", E = "ValveBiped.Bip01_L_UpperArm" },
  929.                                                         { S = "ValveBiped.Bip01_L_UpperArm", E = "ValveBiped.Bip01_L_Forearm" },
  930.                                                         { S = "ValveBiped.Bip01_L_Forearm", E = "ValveBiped.Bip01_L_Hand" },
  931.  
  932.                                                         { S = "ValveBiped.Bip01_Spine4", E = "ValveBiped.Bip01_R_UpperArm" },
  933.                                                         { S = "ValveBiped.Bip01_R_UpperArm", E = "ValveBiped.Bip01_R_Forearm" },
  934.                                                         { S = "ValveBiped.Bip01_R_Forearm", E = "ValveBiped.Bip01_R_Hand" },
  935.  
  936.                                                         { S = "ValveBiped.Bip01_Pelvis", E = "ValveBiped.Bip01_L_Thigh" },
  937.                                                         { S = "ValveBiped.Bip01_L_Thigh", E = "ValveBiped.Bip01_L_Calf" },
  938.                                                         { S = "ValveBiped.Bip01_L_Calf", E = "ValveBiped.Bip01_L_Foot" },
  939.                                                         { S = "ValveBiped.Bip01_L_Foot", E = "ValveBiped.Bip01_L_Toe0" },
  940.  
  941.                                                         { S = "ValveBiped.Bip01_Pelvis", E = "ValveBiped.Bip01_R_Thigh" },
  942.                                                         { S = "ValveBiped.Bip01_R_Thigh", E = "ValveBiped.Bip01_R_Calf" },
  943.                                                         { S = "ValveBiped.Bip01_R_Calf", E = "ValveBiped.Bip01_R_Foot" },
  944.                                                         { S = "ValveBiped.Bip01_R_Foot", E = "ValveBiped.Bip01_R_Toe0" },
  945.                                                         }
  946.                                                         if GetConVarNumber("Hera_ESP_Skeleton") == 1 then
  947.                                                                 for k, v in pairs( bones ) do
  948.                                                                         local sPos, ePos = e:GetBonePosition( e:LookupBone( v.S ) ):ToScreen(), e:GetBonePosition( e:LookupBone( v.E ) ):ToScreen()
  949.                                                                                 if e:IsPlayer() and !e:IsNPC() then
  950.                                                                                         surface.SetDrawColor(team.GetColor(e:Team()))
  951.                                                                                 end
  952.                                                                                 surface.DrawLine(sPos.x,sPos.y,ePos.x,ePos.y)
  953.                                                                 end
  954.                                                         end
  955.                                                         -- ESP TRACER --
  956.                                                         if GetConVarNumber("Hera_ESP_Tracer") == 1 then
  957.                                                                 cam.Start3D( EyePos() , EyeAngles())
  958.                                                                 render.SetMaterial( Material( "trails/laser" ) )
  959.                                                                 StartPos = LocalPlayer():GetActiveWeapon():GetPos()
  960.                                                                 EndPos = e:GetBonePosition(e:LookupBone("ValveBiped.Bip01_Head1"))
  961.                                                                 render.DrawBeam(StartPos, EndPos , 3, 0, 0, Color(0,255,0,255))
  962.                                                                 cam.End3D()
  963.                                                         end
  964.                                                        
  965.                                                         -- ESP CROSSHAIR --
  966.                                                         if GetConVarNumber("Hera_ESP_Crosshair") == 1 then
  967.                                                                 local x, y = ScrW() / 2, ScrH() / 2    
  968.                                                                 local Speed = 1
  969.                                                                 surface.SetDrawColor(GetColorCrosshair())
  970.                                                                 CHPosx = math.Clamp(LocalPlayer():GetEyeTrace().HitPos:ToScreen().x,0,ScrW())
  971.                                                                 CHPosy = math.Clamp(LocalPlayer():GetEyeTrace().HitPos:ToScreen().y,0,ScrH())
  972.                                                                 mathsin = math.sin(CurTime()*Speed)*4
  973.                                                                 mathcos = math.cos(CurTime()*Speed)*4
  974.                                                                 mathsin2 = math.sin(CurTime()*Speed+0.1)*4
  975.                                                                 mathcos2 = math.cos(CurTime()*Speed+0.1)*4
  976.                                                                 mathsin3 = math.sin(CurTime()*Speed-0.1)*4
  977.                                                                 mathcos3 = math.cos(CurTime()*Speed-0.1)*4
  978.                                                                 surface.DrawLine( CHPosx+mathcos*2,CHPosy+mathsin*2,CHPosx+mathcos*5,CHPosy+mathsin*5 );
  979.                                                                 surface.DrawLine( CHPosx-mathcos*2,CHPosy-mathsin*2,CHPosx-mathcos*5,CHPosy-mathsin*5 );
  980.                                                                 surface.DrawLine( CHPosx+mathsin*2,CHPosy-mathcos*2,CHPosx+mathsin*5,CHPosy-mathcos*5 );
  981.                                                                 surface.DrawLine( CHPosx-mathsin*2,CHPosy+mathcos*2,CHPosx-mathsin*5,CHPosy+mathcos*5 );
  982.                                                         end
  983.                                         end
  984.                                 end
  985.                         end
  986.                 end
  987.         end
  988.         for _, v in ipairs( ents.GetAll() ) do
  989.                 if( v:IsValid() and IsCustomEnt( v:GetClass() )) then
  990.                         if GetConVarNumber("Hera_ESP_Ents") == 1 then
  991.                                 local wepn = v:GetClass()
  992.                                 local wname = string.Replace(wepn,"weapon_","")
  993.                                 wname = string.Replace(wname,"_"," ")
  994.                                 wname = string.upper(wname)
  995.                                 local entpos = v:GetPos():ToScreen()
  996.                                 draw.SimpleTextOutlined(wname, "ESPFont_Small", entpos.x + 50, entpos.y - 15, color_white, TEXT_ALIGN_CENTER, TEXT_ALIGN_LEFT, .6, black )
  997.                                 surface.SetDrawColor(255,0,255,255)
  998.                                 surface.DrawLine(entpos.x,entpos.y,entpos.x,entpos.y-10)
  999.                                 surface.DrawLine(entpos.x,entpos.y,entpos.x+10,entpos.y)
  1000.                         end
  1001.                 end                    
  1002.         end
  1003. end
  1004.  
  1005. /************
  1006. Radar
  1007. NOTES: removed for now, re-making.
  1008. ************/
  1009. /*
  1010. function DoChecksRadar( e )
  1011.         local ply, val = LocalPlayer(), 0      
  1012.         if ( e:IsPlayer() && e:GetMoveType() == MOVETYPE_OBSERVER ) then return false end      
  1013.         if ( !e:IsValid() || !e:IsPlayer() && !e:IsNPC() || e == ply ) then return false end
  1014.         if ( e:IsPlayer() && !e:Alive() ) then return false end
  1015.         if ( e:IsNPC() && e:GetMoveType() == 0 ) then return false end
  1016.         if ( e:IsWeapon() && e:GetMoveType() == 0 ) then return false end      
  1017.         return true    
  1018. end
  1019.  
  1020. local RRadar
  1021.  
  1022. function Radar()
  1023. if GetConVarNumber("Hera_ESP_Radar") == 1 then 
  1024.         local Radar = vgui.Create( "DFrame" )
  1025.         Radar:SetSize( 250, 250 )      
  1026.         local rW, rH, x, y = Radar:GetWide(), Radar:GetTall(), ScrW() / 2, ScrH() / 2  
  1027.         local sW, sH = ScrW(), ScrH()
  1028.         Radar:SetPos( sW - rW - 0.1, sH - rH - ( sH - rH ) + 30 )
  1029.         Radar:SetTitle( "[Hera] Radar" )
  1030.         Radar:SetVisible( true )
  1031.         Radar:SetDraggable( true )
  1032.         Radar:ShowCloseButton( false )
  1033.         Radar:MakePopup()
  1034.         Radar.Paint = function()
  1035.                 draw.RoundedBox( 2, 0, 0, rW, rH, Color( 0, 0, 0, 100 ) )
  1036.                 surface.SetDrawColor( 255, 255, 255, 255 )     
  1037.                 local ply = LocalPlayer()              
  1038.                 local radar = {}
  1039.                 radar.h         = 250
  1040.                 radar.w         = 250
  1041.                 radar.org       = 5000         
  1042.                 local x, y = ScrW() / 2, ScrH() / 2            
  1043.                 local half = rH / 2
  1044.                 local xm = half
  1045.                 local ym = half        
  1046.                 surface.DrawLine( xm, ym - 100, xm, ym + 100 )
  1047.                 surface.DrawLine( xm - 100, ym, xm + 100, ym )         
  1048.                 for k, e in pairs( ents.GetAll() ) do
  1049.                         if ( DoChecksRadar(e) ) then                           
  1050.                                 local s = 6
  1051.                                 local col = SetColors(e)
  1052.                                 local color = Color( col.r, col.g, col.b, 255 )
  1053.                                 local plyfov = ply:GetFOV() / ( 70 / 1.13 )
  1054.                                 local zpos, npos = ply:GetPos().z - ( e:GetPos().z ), ( ply:GetPos() - e:GetPos() )                    
  1055.                                 npos:Rotate( Angle( 180, ( ply:EyeAngles().y ) * -1, -180 ) )
  1056.                                 local iY = npos.y * ( radar.h / ( ( radar.org * ( plyfov  * ( ScrW() / ScrH() ) ) ) + zpos * ( plyfov  * (ScrW() / ScrH() ) ) ) )
  1057.                                 local iX = npos.x * ( radar.w / ( ( radar.org * ( plyfov  * ( ScrW() / ScrH() ) ) ) + zpos * ( plyfov  * (ScrW() / ScrH() ) ) ) )                                                              
  1058.                                 local pX = ( radar.w / 2 )
  1059.                                 local pY = ( radar.h / 2 )                     
  1060.                                 local posX = pX - iY - ( s / 2 )
  1061.                                 local posY = pY - iX - ( s / 2 )                               
  1062.                                 local text = e:GetClass()                              
  1063.                                 if ( e:IsPlayer() ) then
  1064.                                         text = e:Nick() .. " ["..e:Health().."]"
  1065.                                 elseif ( e:IsNPC() ) then
  1066.                                         text = ""
  1067.                                 elseif (IsCustomEnt(e:GetClass())) then
  1068.                                         text = "Item"
  1069.                                 end                                    
  1070.                                 if iX < ( radar.h / 2 ) && iY < ( radar.w / 2 ) && iX > ( -radar.h / 2 ) && iY > ( -radar.w / 2 ) then                         
  1071.                                         draw.RoundedBox( s, posX, posY, s, s, color )
  1072.                                         Hera.DrawText(
  1073.                                                 text,
  1074.                                                 "DefaultSmall",
  1075.                                                 pX - iY - 4,
  1076.                                                 pY - iX - 15 - ( s / 2 ),
  1077.                                                 color,
  1078.                                                 1,
  1079.                                                 TEXT_ALIGN_TOP
  1080.                                         )
  1081.                                 end
  1082.                         end
  1083.                 end
  1084.         end
  1085.         Radar:SetMouseInputEnabled( false )
  1086.         Radar:SetKeyboardInputEnabled( false ) 
  1087.         RRadar = Radar
  1088. end
  1089. end
  1090. Radar()
  1091. */
  1092.  
  1093. /**************************
  1094. NOTIFICATIONS!
  1095. YES, Bringing them back.
  1096. **************************/
  1097. function Notifications()
  1098. local NotifPos = 5
  1099.         if GetConVarNumber("Hera_MISC_ShowNotifications") == 1 then
  1100.                 draw.RoundedBox( 8, -10, 0, 10000, 30, Color(0,0,0,100))
  1101.                
  1102.                 if ShouldAim == 1 then
  1103.                         draw.SimpleText("| Aimbot: ON", "Logo", 0,NotifPos, Color(0,255,0,255))
  1104.                 else
  1105.                         draw.SimpleText("| Aimbot: OFF", "Logo", 0, NotifPos, Color(255,0,0,255))
  1106.                 end
  1107.                
  1108.                 if GetConVarNumber("Hera_AIM_Auto") == 1 then
  1109.                         draw.SimpleText("| Autoshoot: ON", "Logo", 100,NotifPos, Color(0,255,0,255))
  1110.                 else
  1111.                         draw.SimpleText("| Autoshoot: OFF", "Logo", 100, NotifPos, Color(255,0,0,255))
  1112.                 end
  1113.                
  1114.                 if GetConVarNumber("Hera_AIM_Trigger") == 1 then
  1115.                         draw.SimpleText("| TriggerBot: ON", "Logo", 220,NotifPos, Color(0,255,0,255))
  1116.                 else
  1117.                         draw.SimpleText("| TriggerBot: OFF", "Logo", 220, NotifPos, Color(255,0,0,255))
  1118.                 end
  1119.                
  1120.                 if GetConVarNumber("Hera_AIM_NoRecoil") == 1 then
  1121.                         draw.SimpleText("| No Recoil: ON", "Logo", 340,NotifPos, Color(0,255,0,255))
  1122.                 else
  1123.                         draw.SimpleText("| No Recoil: OFF", "Logo", 340,NotifPos, Color(255,0,0,255))
  1124.                 end
  1125.                
  1126.                 if GetConVarNumber("Hera_AIM_Admins") == 1 then
  1127.                         draw.SimpleText("| Target Admins: ON", "Logo", 450,NotifPos, Color(0,255,0,255))
  1128.                 else
  1129.                         draw.SimpleText("| Target Admins: OFF", "Logo", 450,NotifPos, Color(255,0,0,255))
  1130.                 end
  1131.                
  1132.                 if GetConVarNumber("Hera_AIM_Friendly") == 1 then
  1133.                         draw.SimpleText("| Friendly Fire: ON", "Logo", 590,NotifPos, Color(0,255,0,255))
  1134.                 else
  1135.                         draw.SimpleText("| Friendly Fire: OFF", "Logo", 590,NotifPos, Color(255,0,0,255))
  1136.                 end
  1137.                
  1138.                 if GetConVarNumber("Hera_AIM_Steam") == 1 then
  1139.                         draw.SimpleText("| Target Steam Friends: ON", "Logo", 720,NotifPos, Color(0,255,0,255))
  1140.                 else
  1141.                         draw.SimpleText("| Target Steam Friends: OFF", "Logo", 720, NotifPos, Color(255,0,0,255))
  1142.                 end
  1143.                
  1144.                 if GetConVarNumber("host_timescale") >= 1.1 then
  1145.                         draw.SimpleText("| SpeedHack: ON", "Logo", 910,NotifPos, Color(0,255,0,255))
  1146.                 else
  1147.                         draw.SimpleText("| SpeedHack: OFF", "Logo", 910, NotifPos, Color(255,0,0,255))
  1148.                 end
  1149.         end
  1150. end
  1151.  
  1152.  
  1153. /*****************************************
  1154. Name: Aimbot/Aim functions
  1155. Purpose: Aim for you, because you suck
  1156. Credits: isis
  1157. *******************************************/
  1158.  
  1159. local Tb  = table.Copy( file )
  1160. local Tbs = table.Copy( string )
  1161. local Uw = {}
  1162. local Mw = {}
  1163. local function PlyPos( ply )
  1164. local min = ply:OBBMins()
  1165. local max = ply:OBBMaxs()
  1166.        
  1167. local Spots = {
  1168.         Vector( min.x, min.y, min.z ),
  1169.         Vector( min.x, min.y, max.z ),
  1170.         Vector( min.x, max.y, min.z ),
  1171.         Vector( min.x, max.y, max.z ),
  1172.         Vector( max.x, min.y, min.z ),
  1173.         Vector( max.x, min.y, max.z ),
  1174.         Vector( max.x, max.y, min.z ),
  1175.         Vector( max.x, max.y, max.z )
  1176. }      
  1177. local minX = ScrW() * 2
  1178. local minY = ScrH() * 2
  1179. local maxX = 0
  1180. local maxY = 0
  1181.  
  1182.         for k,v in pairs( Spots ) do
  1183.         local ToScreen = ply:LocalToWorld( v ):ToScreen()
  1184.         minX = math.min( minX, ToScreen.x )
  1185.         minY = math.min( minY, ToScreen.y )
  1186.         maxX = math.max( maxX, ToScreen.x )
  1187.         maxY = math.max( maxY, ToScreen.y )
  1188.         end
  1189.         return minX, minY, maxX, maxY
  1190. end
  1191. AddCMD("+Hera_Aim",function()
  1192. Aimon = 1
  1193. end)
  1194.  
  1195. AddCMD("-Hera_Aim",function()
  1196. Aimon = 0
  1197. IsLock = false
  1198. end)
  1199.  
  1200. local function AimSpot(targ)
  1201.         if GetConVarString("Hera_AIM_AimSpot") == "Eye" then
  1202.         local eye = targ:LookupAttachment("eyes")
  1203.                 if eye then
  1204.                 local pos = targ:GetAttachment(eye)
  1205.                         if pos then return pos.Pos end
  1206.                 end
  1207.         end    
  1208.         if GetConVarString("Hera_AIM_AimSpot") == "Bone" then
  1209.         local bone = targ:LookupBone("ValveBiped.Bip01_Head1")
  1210.                 if bone then
  1211.                 local pos = targ:GetBonePosition(bone)
  1212.                         if pos then return pos end
  1213.                 end
  1214.         end    
  1215.         if GetConVarString("Hera_AIM_AimSpot") == "Center" then
  1216.         local center = targ:OBBCenter()
  1217.                 if center then
  1218.                 local pos = targ:LocalToWorld(center)
  1219.                         if pos then return pos end
  1220.                 end
  1221.         end
  1222.        
  1223. return targ:LocalToWorld(targ:OBBCenter())
  1224.  
  1225. end
  1226.  
  1227. local function Exception(ent)
  1228.         if (ent == LocalPlayer()) then return false end
  1229.         if (ent:Team() == TEAM_SPECTATOR) then return false end
  1230.         if (ent:GetMoveType() == MOVETYPE_OBSERVER) then return false end
  1231.         if (!ent:Alive() ) then return false end
  1232.         if (ent:InVehicle()) then return false end
  1233.         if (GetConVarNumber("Hera_AIM_Friendly") == 0 && ent:Team() == LocalPlayer():Team()) then return false end  
  1234.         if (GetConVarNumber("Hera_AIM_Steam") == 0 && ent:GetFriendStatus() == "friend" ) then return false end
  1235. return true
  1236. end
  1237.  
  1238. local function Visible(ply)
  1239. local tracedata = {}
  1240.         tracedata.start = LocalPlayer():GetShootPos()
  1241.         tracedata.endpos = AimSpot(ply) - Vector(0,0,GetConVarNumber("Hera_AIM_Offset"))
  1242.         tracedata.mask = MASK_SHOT
  1243.         tracedata.filter = {ply , LocalPlayer()}
  1244.         Trace = util.TraceLine(tracedata)
  1245.         if Trace.Hit then return false else return true end
  1246. end
  1247.  
  1248. function InFov( ent )
  1249.         local fov = GetConVarNumber("Hera_AIM_Fov")
  1250.         if( fov != 180 ) then
  1251.                 local lpang = LocalPlayer():GetAngles()
  1252.                 local ang = ( ent:GetBonePosition( ent:LookupBone("ValveBiped.Bip01_Head1") ) - LocalPlayer():EyePos() ):Angle()
  1253.                 local ady = math.abs( math.NormalizeAngle( lpang.y - ang.y ) )
  1254.                 local adp = math.abs( math.NormalizeAngle( lpang.p - ang.p ) )
  1255.                 if( ady > fov || adp > fov ) then return false end
  1256.         end
  1257.         return true
  1258. end
  1259.  
  1260. local LastReload = 0
  1261. local dontreload = {"weapon_physgun" , "gmod_tool" , "weapon_gravgun"}
  1262. function AutoReload()
  1263.     if (GetConVarNumber("Hera_AIM_Reload") == 1 and LocalPlayer():Alive() and IsValid( LocalPlayer():GetActiveWeapon() ) and !table.HasValue( dontreload, LocalPlayer():GetActiveWeapon():GetClass() ) ) then
  1264.                 if( LocalPlayer():GetActiveWeapon():Clip1() <= 0 and CurTime() > ( LastReload + 5 ) ) then
  1265.                         old_rcc( "+reload" )
  1266.                         LastReload = CurTime()
  1267.                         AddTimer( .2, 1, function()
  1268.                                 old_rcc( "-reload" )
  1269.                         end )
  1270.                 end
  1271.     end
  1272. end
  1273.  
  1274. local function Aimbot(ucmd)
  1275. local asspeed = GetConVarNumber("Hera_AIM_AntiSnap_Speed") / 10
  1276.         if Aimon == 1 then             
  1277.                 local ArchAngel = Angle(0,0,0)
  1278.                 local target;
  1279.                 local distance = math.huge;
  1280.                 for _, ply in pairs(player.GetAll()) do
  1281.                         if (ply != LocalPlayer() and ply:Alive() and Visible(ply) and Exception(ply)) and InFov(ply) then
  1282.                                 local thedist = ply:GetPos():DistToSqr(LocalPlayer():GetPos());
  1283.                                 if (thedist < distance) then
  1284.                                         distance = thedist;
  1285.                                         target = ply;
  1286.                                 end
  1287.                         end
  1288.                 end
  1289.                 if target != nil then
  1290.                 local Aimspot = AimSpot(target) - Vector(0,0,GetConVarNumber("Hera_AIM_Offset"))
  1291.                 Aimspot = Aimspot + target:GetVelocity() / 45 - LocalPlayer():GetVelocity() / 45
  1292.                 Angel = (Aimspot - LocalPlayer():GetShootPos()):GetNormal():Angle()
  1293.                 Angel.p = math.NormalizeAngle( Angel.p )
  1294.                 Angel.y = math.NormalizeAngle( Angel.y )
  1295.                
  1296.                 if GetConVarNumber("Hera_AIM_AntiSnap") == 1 then
  1297.                         Angle1 = LocalPlayer():EyeAngles()
  1298.                         local Smooth1 = math.Approach(Angle1.p, Angel.p, asspeed)
  1299.                         local Smooth2 = math.Approach(Angle1.y , Angel.y, asspeed)      
  1300.                         ArchAngel = Angle (Smooth1, Smooth2, 0)
  1301.                 else                   
  1302.                         ArchAngel = Angle( Angel.p, Angel.y, 0 )
  1303.                 end
  1304.                                 debug.getregistry()["CUserCmd"].SetViewAngles(ucmd, ArchAngel)
  1305.                                 IsLock = 1
  1306.                         if GetConVarNumber("Hera_AIM_Auto") == 1 then
  1307.                 ucmd:SetButtons(bit.bor(ucmd:GetButtons(),IN_ATTACK))
  1308.                         end
  1309.                         if GetConVarNumber("Hera_AIM_SH") == 1 then
  1310.                                 ucmd:SetButtons(bit.bor(ucmd:GetButtons(),IN_ATTACK2))  
  1311.                         end
  1312.                 end
  1313.         end
  1314. end
  1315.  
  1316. /**************************
  1317. Name: Anti-Aim
  1318. Purpose: HVH feature
  1319. **************************/
  1320. AddHook("CreateMove",function(cmd, u)
  1321.         if GetConVarNumber("Hera_AIM_Anti") == 1 then
  1322.                 if (LocalPlayer():KeyDown(IN_ATTACK)) then return end
  1323.                 local aa = cmd:GetViewAngles()
  1324.                 cmd:SetViewAngles(Angle(-181, aa.y, 180))
  1325.         end
  1326. end)
  1327.  
  1328. /*************************
  1329. Name: SpinBot
  1330. Purpose: Spin, dumbass
  1331. *************************/
  1332.  
  1333.  
  1334. /******************************
  1335. Name: SILENT AIM
  1336. Purpose: FAKE AIM VIEW
  1337. ******************************/
  1338.  
  1339. -- make me
  1340.  
  1341. /****************************
  1342. Name: Misc
  1343. Purpose: Misc features
  1344. *****************************/
  1345.  
  1346. function NameChanger()
  1347.         if GetConVarNumber("Hera_MISC_Namechanger") == 1 then
  1348.                 AddTimer( 1, 1, function()
  1349.                         print("fuck you")
  1350.                 end )
  1351.         end
  1352. end
  1353.  
  1354. function Misc()
  1355.         if GetConVarNumber("Hera_MISC_BunnyHop") == 1 then
  1356.                 if input.IsKeyDown(KEY_SPACE) then
  1357.                         if LocalPlayer():IsOnGround() then
  1358.                                 old_rcc("+Jump")
  1359.                                 timer.Create("Bhop",0.01, 0 ,function() old_rcc("-Jump") end)
  1360.                         end
  1361.                 end
  1362.         end
  1363.         if GetConVarNumber("Hera_AIM_NoRecoil") == 1 then
  1364.                 if LocalPlayer():GetActiveWeapon().Primary then
  1365.                         LocalPlayer():GetActiveWeapon().Primary.Recoil = 0
  1366.                 end
  1367.         end
  1368.         if GetConVarNumber("Hera_MISC_ChatSpam") == 1 then
  1369.                 LocalPlayer():ConCommand("say "..GetConVarString("Hera_MISC_ChatSpam_Msg").."["..math.random(1,999).."]")
  1370.         end
  1371.         if GetConVarNumber("Hera_MISC_RPGod") == 1 then
  1372.                 if LocalPlayer():Health() < 100 then
  1373.                         LocalPlayer():ConCommand("say /buyhealth"); -- spam buyhealth
  1374.                 end
  1375.         end
  1376.         if GetConVarNumber("Hera_MISC_Flashlight") == 1 then
  1377.                 old_rcc("impulse","100")
  1378.         end
  1379. end
  1380.  
  1381. AddHook("CalcView",function(ply, pos, angles, fov)
  1382.         if GetConVarNumber("Hera_MISC_Thirdperson") == 1 and LocalPlayer():Alive() then
  1383.                 local view = {}
  1384.                 view.origin = pos-(angles:Forward()*GetConVarNumber("Hera_MISC_Thirdperson_Dist"))
  1385.                 view.angles = angles
  1386.                 view.fov = fov
  1387.                 return view
  1388.         end
  1389. end)
  1390. AddHook("ShouldDrawLocalPlayer",function()
  1391.         if GetConVarNumber("Hera_MISC_Thirdperson") == 1 then
  1392.                 return true
  1393.         end
  1394. end)
  1395. function ShowNotifi()
  1396.         -- now spectating
  1397.         for k, v in pairs(player.GetAll()) do
  1398.                 if (IsValid(v:GetObserverTarget()) and v:GetObserverTarget():IsPlayer() and v:GetObserverTarget() == LocalPlayer()) then
  1399.                         if(not table.HasValue(Hera.spectators, v)) then
  1400.                                 table.insert(Hera.spectators, v);
  1401.                                 if GetConVarNumber("Hera_MISC_ShowSpec") == 1 then
  1402.                                         Hera.Notify(true,red,""..v:Nick().." is now spectating you!")
  1403.                                         surface.PlaySound("buttons/blip1.wav")
  1404.                                 end
  1405.                         end
  1406.                 end
  1407.         end
  1408.         -- no longer spectating
  1409.         for k, v in pairs(Hera.spectators) do
  1410.                 if (not IsValid(v) or not IsValid(v:GetObserverTarget()) or not v:GetObserverTarget():IsPlayer() or (v:GetObserverTarget() ~= LocalPlayer())) then
  1411.                         table.remove(Hera.spectators, k);
  1412.                         if GetConVarNumber("Hera_MISC_ShowSpec") == 1 then
  1413.                                 Hera.Notify(true,green,""..v:Nick().." is no longer spectating you!")
  1414.                         end
  1415.                 end
  1416.         end
  1417.         -- admin join
  1418.         if GetConVarNumber("Hera_MISC_ShowAdmins") == 1 then
  1419.                 for k, v in pairs(player.GetAll()) do
  1420.                         if (v:IsAdmin() and not table.HasValue(Hera.admins, v)) then
  1421.                                 table.insert(Hera.admins, v);
  1422.                                 Hera.Notify(true,white,"Admin " .. v:Nick() .. " has joined!")
  1423.                                 surface.PlaySound("buttons/blip1.wav");
  1424.                         end
  1425.                 end
  1426.         end
  1427. end
  1428.  
  1429.  
  1430. local commands = { "forward" , "back" , "jump" , "moveleft" , "moveright", "duck" }
  1431. function AntiAfk()
  1432.         if GetConVarNumber("Hera_MISC_AntiAFK") == 1 then
  1433.                 local command1 = table.Random( commands )
  1434.                 local command2 = table.Random( commands )
  1435.                 AddTimer( 1, 1, function()
  1436.                         old_rcc( "+"..command1 )
  1437.                         old_rcc( "+"..command2 )
  1438.                 end )
  1439.                 AddTimer( 2, 1, function()
  1440.                         old_rcc("-"..command1 )
  1441.                         old_rcc("-"..command2 )
  1442.                 end )
  1443.         end
  1444. end
  1445. AddTimer( 5 , 0 , function() AntiAfk() end )
  1446.  
  1447. // Traitor finder functions
  1448. local Traitors = {};
  1449. local PlayerIsTraitor = false
  1450. timer.Simple( 3, function()
  1451.         if ( gmod.GetGamemode().Name ) == "Trouble in Terrorist Town" then
  1452.                 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)" }
  1453.                 local UsedWeapons = {}
  1454.                 local MapWeapons = {}
  1455. function IsATraitor( ply )
  1456.         for k, v in pairs( Traitors ) do
  1457.                 if v == ply then
  1458.                         return true
  1459.                 else
  1460.                         return false
  1461.                 end
  1462.         end
  1463. end
  1464.  
  1465. timer.Create("TTT", 0.8, 0, function()
  1466.         if GetConVarNumber("Hera_MISC_TTT") == 1 then
  1467.                 if !IsATraitor( ply ) then
  1468.                         for k, v in pairs( ents.FindByClass( "player" ) ) do
  1469.                                 if IsValid( v ) then
  1470.                                         if (!v:IsDetective()) then
  1471.                                                 if v:Team() ~= TEAM_SPECTATOR then
  1472.                                                         for wepk, wepv in pairs( TWeapons ) do
  1473.                                                                 for entk, entv in pairs( ents.FindByClass( wepv ) ) do
  1474.                                                                         if IsValid( entv ) then
  1475.                                                                                 cookie.Set( entv, 100 - wepk )
  1476.                                                                                 if !table.HasValue( UsedWeapons, cookie.GetNumber( entv ) ) then
  1477.                                                                                         if !table.HasValue( MapWeapons, cookie.GetNumber( entv ) ) then
  1478.                                                                                                 local EntPos = ( entv:GetPos() - Vector(0,0,35) )
  1479.                                                                                                         if entv:GetClass() == wepv then
  1480.                                                                                                                 if v:GetPos():Distance( EntPos ) <= 1 then
  1481.                                                                                                                         table.insert( Traitors, v )
  1482.                                                                                                                         Hera.Notify(sound,red,v:Nick() .. " has traitor weapon: " .. wepv )
  1483.                                                                                                                         if !table.HasValue( UsedWeapons, cookie.GetNumber( entv ) ) then
  1484.                                                                                                                                 table.insert( UsedWeapons, cookie.GetNumber( entv ) )
  1485.                                                                                                                         else
  1486.                                                                                                                         if !table.HasValue( MapWeapons, cookie.GetNumber( entv ) ) then
  1487.                                                                                                                                 table.insert( MapWeapons, cookie.GetNumber( entv ) )
  1488.                                                                                                                         end
  1489.                                                                                                                 end
  1490.                                                                                                         end
  1491.                                                                                                 end
  1492.                                                                                         end
  1493.                                                                                 end
  1494.                                                                         end
  1495.                                                                 end
  1496.                                                         end
  1497.                                                 end
  1498.                                         end
  1499.                                 end
  1500.                         end
  1501.                 end
  1502.         end
  1503. end )
  1504.  
  1505. AddHook("HUDPaint",function()
  1506.         if GetConVarNumber("Hera_MISC_TTT") == 1 then
  1507.                 for k, e in pairs( Traitors ) do
  1508.                         local maxX, minX, maxY, minY, maxX2, minX2, maxY2, minY2, minYhp, maxYhp = CreatePos( e )
  1509.                         if IsValid( e ) then
  1510.                                 if e:Team() ~= TEAM_SPECTATOR then
  1511.                                         if ( !e:IsDetective() ) then
  1512.                                                 PlayerIsTraitor = true
  1513.                                                 draw.SimpleTextOutlined( "[TRAITOR]", "ESPFont", maxX2, minY2 -20, red, 4, 1, 1, black )
  1514.                                         end
  1515.                                 end
  1516.                         end
  1517.                 end
  1518.         end
  1519. end )
  1520.  
  1521. AddHook("TTTPrepareRound",function()
  1522. timer.Simple( 2, function()
  1523.         for k, v in pairs( Traitors ) do
  1524.                 table.remove( Traitors, k )
  1525.                 Traitors = {}
  1526.         end
  1527.                 for k, v in pairs( UsedWeapons ) do
  1528.                         table.remove( UsedWeapons, k )
  1529.                         UsedWeapons = {}
  1530.                 end
  1531.                 for k, v in pairs( MapWeapons ) do
  1532.                         table.remove( MapWeapons, k )
  1533.                         MapWeapons = {}
  1534.                 end
  1535.         end )
  1536. end )
  1537.         end
  1538. end )
  1539.  
  1540. /***************************************
  1541. Name: PERP Hack
  1542. Purpose: hacks and exploits for PERP
  1543. ***************************************/
  1544. local WeedGrowTime = 60 * 20
  1545. function PERP_Druggy()
  1546.         local buying = GetGlobalInt("perp_druggy_buy", 0 )
  1547.         local selling = GetGlobalInt("perp_druggy_sell", 0 )   
  1548.         local cantrobbank = GetGlobalBool("perp_bank_robbing_timer")
  1549.         local moneyinbank = GetGlobalInt("perp_realtor_money") 
  1550.         if GetConVarNumber("Hera_PERP_Druggy") == 1 then
  1551.                 local posx = 17
  1552.                 local posy = 15
  1553.                 DrawBox( posx, posy, 122, 60, 20 )
  1554.                 draw.SimpleText("Druggy", "ESPFont", posx + 61, posy + 1, Color( 255, 255, 255, 255 ), TEXT_ALIGN_CENTER )
  1555.                         local buyingtbl = {
  1556.                                 "Buying Weed",
  1557.                                 "Buying Meth",
  1558.                                 "Buying Shrooms",
  1559.                                 "Buying LSD",
  1560.                                 "Buying Shrooms",
  1561.                                 "Buying Cocaine",
  1562.                         }
  1563.                         buyingtbl[0] = "Not Buying"
  1564.                         draw.SimpleText( buyingtbl[buying], "ESPFont", posx + 61, posy + 42, white, TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP )
  1565.                         local sellingtbl = {
  1566.                                 "Selling Seeds",
  1567.                                 "Selling LSD",
  1568.                                 --"Selling Muscle",
  1569.                                 "Selling Shrooms",
  1570.                                 "Selling Cocaine",
  1571.                         }
  1572.                         sellingtbl[0] = "Not Selling"
  1573.                         draw.SimpleText( sellingtbl[selling], "ESPFont", posx + 61, posy + 62, white, TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP)
  1574.         end
  1575. end
  1576.  
  1577. timer.Remove("DoFuel");
  1578. timer.Create("DoFuel",5,0,function()
  1579.         if GetConVarNumber("Hera_PERP_Fuel") == 1 then
  1580.                 DoFuel();
  1581.         end
  1582. end)
  1583.  
  1584. function PERP_Weed()
  1585.         if GetConVarNumber("Hera_PERP_Weed") == 1 then
  1586.                 local plants = {}
  1587.                 for k, ent in pairs( ents.FindByClass("ent_pot") ) do
  1588.                         table.insert( plants, ent )
  1589.                 end
  1590.                 for k, ent in pairs( ents.FindByClass("ent_coca") ) do
  1591.                         table.insert( plants, ent )
  1592.                 end
  1593.                 local col = nil
  1594.                 for k, ent in pairs( plants ) do
  1595.                         local pos = ent:GetPos() + Vector(0, 0, 10)
  1596.                         local ang = ent:GetAngles()
  1597.                         local drawpos = pos:ToScreen()
  1598.                         local timeleft = 85564
  1599.                         if( ent:GetClass() == "ent_coca" ) then col = Color( 0, 0, 255 ) else col = Color( 255, 0, 0 ) end
  1600.                         if( ent.dt != nil ) then
  1601.                                 timeleft = ent:GetTable().GrowthTime - ( CurTime() - ent.dt.SpawnTime )
  1602.                         elseif( ent:GetTable().SpawnTime != nil ) then
  1603.                                 timeleft = ent:GetTable().GrowthTime - (CurTime() - ent:GetTable().SpawnTime)
  1604.                         end
  1605.                         if( LocalPlayer():GetShootPos():Distance( pos ) <= 4000 ) then
  1606.                                 if( timeleft > 1 and timeleft != 85564 ) then
  1607.                                         draw.SimpleText( ConvertTime( timeleft ) , "ESPFont_Small", drawpos.x, drawpos.y, col, 1, 1 )
  1608.                                 elseif( timeleft != 85564 ) then
  1609.                                         draw.SimpleText( "DONE!", "ESPFont", drawpos.x, drawpos.y, green, 1, 1 )
  1610.                                 end
  1611.                         end
  1612.                 end
  1613.         end
  1614. end
  1615.  
  1616. // player info (yourself)
  1617. function PERP_PlayerInfo()
  1618.         if GetConVarNumber("Hera_PERP_PlayerInfo") == 1 then
  1619.                 draw.RoundedBox( 0, 17, 80, 175, 200, Color(0,0,0,70) )
  1620.                 draw.SimpleText("PERP INFO", "Hera_ScoreboardText", 60,90, white, 1, 1 )
  1621.                 draw.SimpleText("HP: "..LocalPlayer():Health(), "Hera_ScoreboardText", 55,110, white, 1, 1 )
  1622.                 draw.SimpleText("Armor: "..LocalPlayer():Armor(), "Hera_ScoreboardText", 55,130, white, 1, 1 ) 
  1623.                 draw.SimpleText("Bank: "..FormatNum( LocalPlayer():GetBank(), 2, "$" ), "Hera_ScoreboardText", 75,150, white, 1, 1 )
  1624.         end
  1625. end
  1626.  
  1627.  
  1628. /*************************
  1629. MENU FUNCTIONS
  1630. *************************/
  1631. AddCMD("+Hera_Menu", function()
  1632. Menu = vgui.Create("DFrame")
  1633. Menu:SetSize(450,360)
  1634. Menu:SetTitle("                                                  :: Hera :: Version "..Hera.version.." ::") -- Ignore the spacing.
  1635. Menu:Center()
  1636. Menu:MakePopup()
  1637. Menu.Paint = function()
  1638. local mW, mH, x, y = Menu:GetWide(), Menu:GetTall(), ScrW() / 2, ScrH() / 2
  1639. draw.RoundedBox( 0, 0, 0, mW, mH, Color(116,187,251,50 ) )
  1640. surface.SetDrawColor(black);
  1641. surface.DrawOutlinedRect( 0, 0, mW , mH )
  1642. surface.DrawOutlinedRect( 0, 25, mW, mH )
  1643. end
  1644.  
  1645. local Sheet = vgui.Create("DPropertySheet",Menu)
  1646. Sheet:SetPos( 0, 25 )
  1647. Sheet:SetSize( 450, 350 )
  1648. Sheet.Paint = function()
  1649. draw.RoundedBox( 0, 0, 0, Sheet:GetWide(), Sheet:GetTall(), Color(0,0,0,150) )
  1650. end
  1651.  
  1652. // fuck;
  1653. local Page1 = vgui.Create("DLabel")
  1654. Page1:SetParent( Sheet )
  1655. Page1:SetPos( 0 , 10 )
  1656. Page1:SetText("")
  1657. Page1.Paint = function()
  1658. draw.SimpleTextOutlined("Hera v"..Hera.version.." - A Cheat By Tyler","Logo",20,3,cyan,TEXT_ALIGN_LEFT,TEXT_ALIGN_LEFT,2,black)
  1659. draw.SimpleTextOutlined("ConVar Forces","Logo",150,60,red,TEXT_ALIGN_LEFT,TEXT_ALIGN_LEFT,2,black)
  1660. draw.SimpleTextOutlined("Updates","Logo",170,120,lgreen,TEXT_ALIGN_LEFT,TEXT_ALIGN_LEFT,2,black)
  1661. draw.SimpleTextOutlined("Configs","Logo",160,180,pink,TEXT_ALIGN_LEFT,TEXT_ALIGN_LEFT,2,black)
  1662. end
  1663. local Page2 = vgui.Create("DLabel")
  1664. Page2:SetParent( Sheet )
  1665. Page2:SetPos( 0 , 10 )
  1666. Page2:SetText("")
  1667. Page2.Paint = function()
  1668. end
  1669. local Page3 = vgui.Create("DLabel")
  1670. Page3:SetParent( Sheet )
  1671. Page3:SetPos( 0 , 10 )
  1672. Page3:SetText("")
  1673. Page3.Paint = function()
  1674. end
  1675. local Page4 = vgui.Create("DLabel")
  1676. Page4:SetParent( Sheet )
  1677. Page4:SetPos( 0 , 10 )
  1678. Page4:SetText("")
  1679. Page4.Paint = function()
  1680. end
  1681. local Page5 = vgui.Create("DLabel")
  1682. Page5:SetParent( Sheet )
  1683. Page5:SetPos( 0 , 10 )
  1684. Page5:SetText("")
  1685. Page5.Paint = function()
  1686. end
  1687. -----------------------
  1688. --[[ MAIN TAB SHIT ]]--
  1689. -----------------------
  1690. // LOAD SHIT
  1691. local ReloadHooksButton = vgui.Create("DButton",Page1)
  1692. ReloadHooksButton:SetText("Reload Hooks")
  1693. ReloadHooksButton:SetPos( 10, 30 )
  1694. ReloadHooksButton:SetSize( 200, 25)
  1695. ReloadHooksButton.DoClick = function()
  1696. Hera.hooks:reload()
  1697. Hera.Notify(green,"Reloaded hooks")
  1698. end
  1699.  
  1700. local UnloadCheat = vgui.Create("DButton",Page1)
  1701. UnloadCheat:SetText("Unload Cheat")
  1702. UnloadCheat:SetPos( 220, 30 )
  1703. UnloadCheat:SetSize( 200, 25)
  1704. UnloadCheat.DoClick = function()
  1705. unload()
  1706. Hera.Notify(red,"UNLOADED ENTIRE CHEAT!")
  1707. end
  1708.  
  1709. // CONVAR Forces
  1710. local svcheats = vgui.Create("DButton",Page1)
  1711. svcheats:SetText("sv_cheats")
  1712. svcheats:SetPos( 10,90 )
  1713. svcheats:SetSize( 200, 25)
  1714. svcheats.DoClick = function()
  1715. Hera.Notify(white,"Not done!")
  1716. print("fuck you")
  1717. end
  1718.  
  1719. local allowvoice = vgui.Create("DButton",Page1)
  1720. allowvoice:SetText("sv_allow_voice_from_file")
  1721. allowvoice:SetPos( 220,90 )
  1722. allowvoice:SetSize( 200, 25)
  1723. allowvoice.DoClick = function()
  1724. Hera.Notify(white,"Not done!")
  1725. end
  1726.  
  1727. // UPDATE SHIT
  1728. local checkupdate = vgui.Create("DButton",Page1)
  1729. checkupdate:SetText("Check for updates")
  1730. checkupdate:SetPos( 10,150 )
  1731. checkupdate:SetSize( 200, 25)
  1732. checkupdate.DoClick = function()
  1733. CheckUpdate()
  1734. end
  1735.  
  1736. local doupdate = vgui.Create("DButton",Page1)
  1737. doupdate:SetText("Update the cheat")
  1738. doupdate:SetPos( 220,150 )
  1739. doupdate:SetSize( 200, 25)
  1740. doupdate.DoClick = function()
  1741. Hera.Notify(white,"Not done.")
  1742. end
  1743.  
  1744. local hvhconfig = vgui.Create("DButton",Page1)
  1745. hvhconfig:SetText("HvH Config")
  1746. hvhconfig:SetPos( 10,210 )
  1747. hvhconfig:SetSize( 200, 25)
  1748. hvhconfig.DoClick = function()
  1749. Hera.Notify(white,"Loaded Hack VS Hack config.")
  1750. print("WIP")
  1751. end
  1752.  
  1753. local legitconfig = vgui.Create("DButton",Page1)
  1754. legitconfig:SetText("Legit Config")
  1755. legitconfig:SetPos( 220,210 )
  1756. legitconfig:SetSize( 200, 25)
  1757. legitconfig.DoClick = function()
  1758. Hera.Notify(white,"Loaded legit config.")
  1759. print("WIP")
  1760. end
  1761.  
  1762. local userconfig = vgui.Create("DButton",Page1)
  1763. userconfig:SetText("User Config")
  1764. userconfig:SetPos( 220,255 )
  1765. userconfig:SetSize( 200, 25)
  1766. userconfig.DoClick = function()
  1767. Hera.Notify(white,"Loaded user config.")
  1768. print("WIP")
  1769. end
  1770.  
  1771. local rageconfig = vgui.Create("DButton",Page1)
  1772. rageconfig:SetText("Rage Config")
  1773. rageconfig:SetPos( 10,255 )
  1774. rageconfig:SetSize( 200, 25)
  1775. rageconfig.DoClick = function()
  1776. Hera.Notify(white,"Loaded rage config.")
  1777. print("WIP")
  1778. end
  1779.  
  1780.  
  1781. -------------------------
  1782. --[[ AIMBOT TAB SHIT ]]--
  1783. -------------------------
  1784. AddCheckBox("Autoshoot","Hera_AIM_Auto",Page2,10,10,"Autoshoot when locked")
  1785. AddCheckBox("Friendly Fire","Hera_AIM_Friendly",Page2,10,30,"Target your own team")
  1786. AddCheckBox("Target Steam Friends","Hera_AIM_Steam",Page2,10,50,"Target Steam Friends")
  1787. AddCheckBox("Target Admins","Hera_AIM_Admins",Page2,10,70,"Target Admins")
  1788. AddCheckBox("No-Recoil","Hera_AIM_NoRecoil",Page2,10,90,"Remove Recoil")
  1789. AddCheckBox("Triggerbot","Hera_AIM_Trigger",Page2,10,110,"Auto-shoots when looking at a player")
  1790. AddCheckBox("Stronghold mode","Hera_AIM_SH",Page2,10,130,"Aims down sights when locked, to reduce spread.")
  1791. AddCheckBox("Anti-Aim","Hera_AIM_Anti",Page2,10,150,"HvH feature, makes it 'harder' for others to aimbot you.")
  1792. AddCheckBox("Anti Anti-Aim","Hera_AIM_AntiAA",Page2,10,170,"HvH feature, bypasses anti-aim")
  1793. AddCheckBox("Anti-Snap","Hera_AIM_AntiSnap",Page2,200,10,"Changes the speed of the aimbot, making it look more legit")
  1794. AddCheckBox("Auto Reload","Hera_AIM_Reload",Page2,200,30,"Reload when you run out of ammo")
  1795.  
  1796. AddSlider("Field Of View","Hera_AIM_Fov",Page2,0,180,1,10,220,350,"FOV in which the aimbot will target players")
  1797. AddSlider("Anti-Snap Speed","Hera_AIM_AntiSnap_Speed",Page2,0,50,1,10,240,350,"Changes your anti-snap speed")
  1798. AddSlider("Aimbot Offset","Hera_AIM_Offset",Page2,-25,25,1,10,260,350,"Offsets your aimspot")
  1799.  
  1800. -------------------------------------
  1801. --[[ ESP | WALLHACK | VISUAL TAB ]]--
  1802. -------------------------------------
  1803. AddCheckBox("[ESP] Info","Hera_ESP_Info",Page3,10,10,"Show player's info on the ESP")
  1804. AddCheckBox("[ESP] Chams","Hera_ESP_Chams",Page3,10,30,"Show a player's model through walls")
  1805. AddCheckBox("[ESP] Bounding Box","Hera_ESP_Box",Page3,10,50,"Draw a box around players")
  1806. AddCheckBox("[ESP] Show Skeleton","Hera_ESP_Skeleton",Page3,10,70,"Show player's bones")
  1807. AddCheckBox("[ESP] Entity Finder","Hera_ESP_Ents",Page3,10,90,"Show entities on the ESP")
  1808.  
  1809. AddCheckBox("[VIS] Crosshair","Hera_ESP_Crosshair",Page3,150,10,"Draw a crosshair on your screen")
  1810. AddCheckBox("[VIS] Laser Tracer","Hera_ESP_Tracer",Page3,150,30,"Draw a laser from your feet to player's heads.")
  1811.  
  1812. AddSlider("ESP Distance","Hera_ESP_Distance",Page3,0,10000,1,10,260,300,"Distance in which the ESP will render")
  1813.  
  1814. local ESPList = vgui.Create( 'DComboBox', Page3 )
  1815. ESPList:SetPos( 330, 280 )
  1816. ESPList:SetSize( 82, 20 )
  1817. ESPList:AddChoice( 'Wireframe' )
  1818. ESPList:AddChoice( 'Solid' )
  1819. ESPList.OnSelect = function( self )
  1820.         if self:GetValue() == 'Wireframe' then
  1821.                 old_rcc("Hera_ESP_Chams_Material","Wireframe")
  1822.         elseif self:GetValue() == 'Solid' then
  1823.                 old_rcc("Hera_ESP_Chams_Material","Solid")
  1824.         end
  1825. end
  1826.  
  1827.  
  1828.  
  1829. local ESPLabel1 = vgui.Create("DLabel")
  1830. ESPLabel1:SetParent( Page3 )
  1831. ESPLabel1:SetPos(335,265)
  1832. ESPLabel1:SetText("Chams Material")
  1833. ESPLabel1:SetTextColor(Color(255,255,255,255))
  1834. ESPLabel1:SizeToContents()
  1835.  
  1836. /**********************
  1837. Entity Finder Stuff
  1838. **********************/
  1839. local OpenEnts = vgui.Create("DButton")
  1840. OpenEnts:SetParent( Page3 )
  1841. OpenEnts:SetPos(290,10)
  1842. OpenEnts:SetSize( 140,50 )
  1843. OpenEnts:SetText( "Edit Ents" )
  1844. OpenEnts.DoClick = function()
  1845. --EntsMenu()
  1846. Hera.Notify(sound,white,"Due to Garry not explaining shit, and replacing useful shit with dumb shit, the Entity Finder is currently disabled.")
  1847. end
  1848.  
  1849. ---------------------------
  1850. --[[ MISC TAB SETTINGS ]]--
  1851. ---------------------------
  1852. AddCheckBox("Traitor Finder","Hera_MISC_TTT",Page4,10,10,"Find traitors in TTT")
  1853. AddCheckBox("Bunnyhop","Hera_MISC_BunnyHop",Page4,10,30,"Bunnyhop by holding 'Space'")
  1854. AddCheckBox("Chat Spam","Hera_MISC_ChatSpam",Page4,10,50,"Spam a pre-determined message in the chat")
  1855. AddCheckBox("Anti-AFK","Hera_MISC_AntiAFK",Page4,10,70,"Makes you move randomly to avoid AFK kickers")
  1856. AddCheckBox("Name Changer","Hera_MISC_Namechanger",Page4,10,90,"Steal player's names")
  1857. AddCheckBox("Show Notifications","Hera_MISC_ShowNotifications",Page4,10,110,"Draws enabled features on top of the screen")
  1858. AddCheckBox("DarkRP Godmode","Hera_MISC_RPGod",Page4,10,130,"Spams /buyhealth when you lose HP")
  1859. AddCheckBox("Show Spectators","Hera_MISC_ShowSpec",Page4,10,150,"Tells you in chat when someone is spectating you.")
  1860. AddCheckBox("Show Admins","Hera_MISC_ShowAdmins",Page4,10,170,"Tells you in chat when an admin joins.")
  1861. AddCheckBox("Thirdperson","Hera_MISC_Thirdperson",Page4,10,190,"Allows you to see your player (thirdperson).")
  1862. AddCheckBox("Flashlight Spam","Hera_MISC_Flashlight",Page4,200,10,"Spams the flashlight.")
  1863.  
  1864. AddSlider("Thirdperson Distance","Hera_MISC_Thirdperson_Dist",Page4,0,600,1,10,240,350,"Sets the distance of the thirdperson")
  1865. AddSlider("Speedhack Speed","Hera_MISC_Speedhack_Speed",Page4,0,10,1,10,260,350,"Sets the speed of the speedhack")
  1866.  
  1867. --------------------------------
  1868. --[[ PERP HACK TAB SETTINGS]]---
  1869. --------------------------------
  1870. AddCheckBox("Infinite Fuel","Hera_PERP_Fuel",Page5,10,10,"Infinite fuel in cars")
  1871. AddCheckBox("Show Druggy Stock","Hera_PERP_Druggy",Page5,10,30,"Show druggy's stock")
  1872. AddCheckBox("Weed Timer","Hera_PERP_Weed",Page5,10,50,"Show how when weed is finished growing")
  1873. AddCheckBox("Show RP Names","Hera_PERP_RPNames",Page5,10,70,"Show player's Roleplay names instead of Steam name")
  1874. AddCheckBox("Show Player Info","Hera_PERP_PlayerInfo",Page5,10,90,"Show info like; Health, bank cash, armor, etc")
  1875.  
  1876. // Add sheets
  1877. Sheet:AddSheet("Main",Page1,false,false,false,"Main cheat settings")
  1878. Sheet:AddSheet("Aimbot",Page2, false, false, false, "Aimbot Settings")
  1879. Sheet:AddSheet("ESP | Wallhack | Visual",Page3,false,false,false,"ESP/Wallhack Settings")
  1880. Sheet:AddSheet("Miscellaneous",Page4,false,false,false,"Miscellaneous Settings")
  1881. Sheet:AddSheet("PERP Hack",Page5,false,false,false,"Exploits and cheats for the PERP gamemode")
  1882.        
  1883. end) -- End of +Hera_Menu function     
  1884. AddCMD("-Hera_Menu",function()
  1885.         Menu:SetVisible(false)
  1886. end)   
  1887.  
  1888. AddCMD("Hera_Menu_Toggle",function()
  1889.         Menu:SetVisible(true)
  1890. end)
  1891.  
  1892.  
  1893.  
  1894. /**********************
  1895. Name: Hooks
  1896. Purpose: Hook shit
  1897. ***********************/
  1898.  
  1899. function hooks_hudpaint()
  1900. ESP();
  1901. PERP_Druggy();
  1902. PERP_PlayerInfo();
  1903. Notifications();
  1904. end
  1905.  
  1906. function hooks_postdraw()
  1907. Chams();
  1908. end
  1909.  
  1910. function hooks_think()
  1911. Misc();
  1912. NameChanger();
  1913. ShowNotifi();
  1914. AutoReload();
  1915. end
  1916.  
  1917. function hooks_renderscreenspaceeffects()
  1918. end
  1919.  
  1920. function hooks_calcview()
  1921. end
  1922.  
  1923. function hooks_createmove(ucmd)
  1924. Aimbot(ucmd);
  1925. end
  1926.  
  1927. function Hera.hooks:load()
  1928. Log("Loaded hooks");
  1929. AddHook("HUDPaint",hooks_hudpaint);
  1930. AddHook("PostDrawEffects",hooks_postdraw);
  1931. AddHook("Think",hooks_think);
  1932. AddHook("CalcView",hooks_calcview);
  1933. AddHook("RenderScreenspaceEffects",hooks_renderscreenspaceeffects);
  1934. AddHook("CreateMove",hooks_createmove);
  1935. end
  1936. Hera.hooks:load(); -- load them
  1937.  
  1938. function Hera.hooks:unload()
  1939. RemoveHook("HUDPaint",hooks_hudpaint);
  1940. RemoveHook("CalcView",hooks_calcview);
  1941. RemoveHook("PostDrawEffects",hooks_postdraw);
  1942. RemoveHook("Think",hooks_think);
  1943. RemoveHook("RenderScreenspaceEffects",hooks_renderscreenspaceeffects);
  1944. RemoveHook("CreateMove",hooks_createmove);
  1945. end
  1946.  
  1947. function Hera.hooks:reload()
  1948. Log("Reloaded hooks")
  1949. Hera.hooks:unload();
  1950. Hera.hooks:load();
  1951. end
  1952.  
  1953. function unload()
  1954. Log("Unloaded.")
  1955. Hera.hooks:unload()
  1956. old_rcc("-Hera_Menu");
  1957. RemoveCMD("+Hera_Menu");
  1958. RemoveCMD("-Hera_Menu");
  1959. RemoveCMD("+Hera_Aim");
  1960. RemoveCMD("-Hera_Aim");
  1961. RemoveCMD("+Hera_Speed");
  1962. RemoveCMD("-Hera_Speed");
  1963. RemoveCMD("Hera_Menu_Toggle")
  1964. timer.Destroy("TTT")
  1965. end
  1966.  
  1967. /*******
  1968. RUN LAST
  1969. ********/
  1970.  
  1971. Hera.Notify(dosound,white,"loaded version "..Hera.version..".")
  1972. Log("Loaded!")
  1973.  
  1974. AddCMD("skid",function()
  1975. include("SkidCheck.lua")
  1976. end)
clone this paste RAW Paste Data