Advertisement
Guest User

herahackbotscriptbypass

a guest
May 21st, 2015
851
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 82.31 KB | None | 0 0
  1. --[[
  2. HHHHHHHHH HHHHHHHHH 555555555555555555
  3. H:::::::H H:::::::H 5::::::::::::::::5
  4. H:::::::H H:::::::H 5::::::::::::::::5
  5. HH::::::H H::::::HH 5:::::555555555555
  6. H:::::H H:::::H eeeeeeeeeeee rrrrr rrrrrrrrr aaaaaaaaaaaaa vvvvvvv vvvvvvv5:::::5
  7. H:::::H H:::::H ee::::::::::::ee r::::rrr:::::::::r a::::::::::::a v:::::v v:::::v 5:::::5
  8. H::::::HHHHH::::::H e::::::eeeee:::::eer:::::::::::::::::r aaaaaaaaa:::::a v:::::v v:::::v 5:::::5555555555
  9. H:::::::::::::::::H e::::::e e:::::err::::::rrrrr::::::r a::::a v:::::v v:::::v 5:::::::::::::::5
  10. H:::::::::::::::::H e:::::::eeeee::::::e r:::::r r:::::r aaaaaaa:::::a v:::::v v:::::v 555555555555:::::5
  11. H::::::HHHHH::::::H e:::::::::::::::::e r:::::r rrrrrrraa::::::::::::a v:::::v v:::::v 5:::::5
  12. H:::::H H:::::H e::::::eeeeeeeeeee r:::::r a::::aaaa::::::a v:::::v:::::v 5:::::5
  13. H:::::H H:::::H e:::::::e r:::::r a::::a a:::::a v:::::::::v 5555555 5:::::5
  14. HH::::::H H::::::HHe::::::::e r:::::r a::::a a:::::a v:::::::v 5::::::55555::::::5
  15. H:::::::H H:::::::H e::::::::eeeeeeee r:::::r a:::::aaaa::::::a v:::::v 55:::::::::::::55
  16. H:::::::H H:::::::H ee:::::::::::::e r:::::r a::::::::::aa:::a v:::v 55:::::::::55
  17. HHHHHHHHH HHHHHHHHH eeeeeeeeeeeeee rrrrrrr aaaaaaaaaa aaaa vvv 555555555
  18. ]]--
  19.  
  20.  
  21. /************************************
  22. Name: Localizing
  23. Purpose: Make the cheat run faster
  24. ************************************/
  25.  
  26. //if ( Hera ) then _G.Hera = nil end -- noob/gay !!
  27.  
  28. local g = table.Copy(_G)
  29. local Hera = {}
  30. Hera.hooks = {}
  31. Hera.concommands = {}
  32. Hera.convars = {}
  33. Hera.timers = {}
  34. Hera.spectators = {}
  35. Hera.admins = {}
  36. Hera.version = "5.0"
  37. Hera.log = {}
  38. Hera.files = {"Hera.lua","log.txt","gmcl_cvar3_win32.dll","gmcl_hera_win32.dll"}
  39. Hera.traitors = {}
  40.  
  41. Hera.bones = {
  42. {"Head", "ValveBiped.Bip01_Head1"},
  43. {"Neck", "ValveBiped.Bip01_Neck1"},
  44. {"Spine", "ValveBiped.Bip01_Spine"},
  45. {"Spine1", "ValveBiped.Bip01_Spine1"},
  46. {"Spine2", "ValveBiped.Bip01_Spine2"},
  47. {"Spine4", "ValveBiped.Bip01_Spine4"},
  48. {"Pelvis", "ValveBiped.Bip01_Pelvis"},
  49. {"R Upperarm", "ValveBiped.Bip01_R_UpperArm"},
  50. {"R Forearm", "ValveBiped.Bip01_R_Forearm"},
  51. {"R Hand", "ValveBiped.Bip01_R_Hand"},
  52. {"L Upperarm", "ValveBiped.Bip01_L_UpperArm"},
  53. {"L Forearm", "ValveBiped.Bip01_L_Forearm"},
  54. {"L Hand", "ValveBiped.Bip01_L_Hand"},
  55. {"R Thigh", "ValveBiped.Bip01_R_Thigh"},
  56. {"R Calf", "ValveBiped.Bip01_R_Calf"},
  57. {"R Foot", "ValveBiped.Bip01_R_Foot"},
  58. {"R Toes", "ValveBiped.Bip01_R_Toe0"},
  59. {"L Thigh", "ValveBiped.Bip01_L_Thigh"},
  60. {"L Calf", "ValveBiped.Bip01_L_Calf"},
  61. {"L Foot", "ValveBiped.Bip01_L_Foot"},
  62. {"L Toes", "ValveBiped.Bip01_L_Toe0"},
  63. }
  64.  
  65. Hera.espbones = {
  66. { S = "ValveBiped.Bip01_Head1", E = "ValveBiped.Bip01_Neck1" },
  67. { S = "ValveBiped.Bip01_Neck1", E = "ValveBiped.Bip01_Spine4" },
  68. { S = "ValveBiped.Bip01_Spine4", E = "ValveBiped.Bip01_Spine2" },
  69. { S = "ValveBiped.Bip01_Spine2", E = "ValveBiped.Bip01_Spine1" },
  70. { S = "ValveBiped.Bip01_Spine1", E = "ValveBiped.Bip01_Spine" },
  71. { S = "ValveBiped.Bip01_Spine", E = "ValveBiped.Bip01_Pelvis" },
  72. { S = "ValveBiped.Bip01_Spine4", E = "ValveBiped.Bip01_L_UpperArm" },
  73. { S = "ValveBiped.Bip01_L_UpperArm", E = "ValveBiped.Bip01_L_Forearm" },
  74. { S = "ValveBiped.Bip01_L_Forearm", E = "ValveBiped.Bip01_L_Hand" },
  75. { S = "ValveBiped.Bip01_Spine4", E = "ValveBiped.Bip01_R_UpperArm" },
  76. { S = "ValveBiped.Bip01_R_UpperArm", E = "ValveBiped.Bip01_R_Forearm" },
  77. { S = "ValveBiped.Bip01_R_Forearm", E = "ValveBiped.Bip01_R_Hand" },
  78. { S = "ValveBiped.Bip01_Pelvis", E = "ValveBiped.Bip01_L_Thigh" },
  79. { S = "ValveBiped.Bip01_L_Thigh", E = "ValveBiped.Bip01_L_Calf" },
  80. { S = "ValveBiped.Bip01_L_Calf", E = "ValveBiped.Bip01_L_Foot" },
  81. { S = "ValveBiped.Bip01_L_Foot", E = "ValveBiped.Bip01_L_Toe0" },
  82. { S = "ValveBiped.Bip01_Pelvis", E = "ValveBiped.Bip01_R_Thigh" },
  83. { S = "ValveBiped.Bip01_R_Thigh", E = "ValveBiped.Bip01_R_Calf" },
  84. { S = "ValveBiped.Bip01_R_Calf", E = "ValveBiped.Bip01_R_Foot" },
  85. { S = "ValveBiped.Bip01_R_Foot", E = "ValveBiped.Bip01_R_Toe0" },
  86. }
  87.  
  88. Hera.aimmodels = {
  89. ["models/combine_scanner.mdl"] = "Scanner.Body",
  90. ["models/hunter.mdl"] = "MiniStrider.body_joint",
  91. ["models/combine_turrets/floor_turret.mdl"] = "Barrel",
  92. ["models/dog.mdl"] = "Dog_Model.Eye",
  93. ["models/antlion.mdl"] = "Antlion.Body_Bone",
  94. ["models/antlion_guard.mdl"] = "Antlion_Guard.Body",
  95. ["models/antlion_worker.mdl"] = "Antlion.Head_Bone",
  96. ["models/zombie/fast_torso.mdl"] = "ValveBiped.HC_BodyCube",
  97. ["models/zombie/fast.mdl"] = "ValveBiped.HC_BodyCube",
  98. ["models/headcrabclassic.mdl"] = "HeadcrabClassic.SpineControl",
  99. ["models/headcrabblack.mdl"] = "HCBlack.body",
  100. ["models/headcrab.mdl"] = "HCFast.body",
  101. ["models/zombie/poison.mdl"] = "ValveBiped.Headcrab_Cube1",
  102. ["models/zombie/classic.mdl"] = "ValveBiped.HC_Body_Bone",
  103. ["models/zombie/classic_torso.mdl"] = "ValveBiped.HC_Body_Bone",
  104. ["models/zombie/zombie_soldier.mdl"] = "ValveBiped.HC_Body_Bone",
  105. ["models/combine_strider.mdl"] = "Combine_Strider.Body_Bone",
  106. ["models/lamarr.mdl"] = "HeadcrabClassic.SpineControl",
  107. }
  108. Hera.prediction = {
  109. ["weapon_crossbow"] = 3485,
  110. ["weapon_pistol"] = 40000,
  111. ["weapon_357"] = 20500,
  112. ["weapon_smg"] = 39000,
  113. ["weapon_ar2"] = 39000,
  114. ["weapon_shotgun"] = 35000,
  115. ["weapon_rpg"] = 0,
  116. }
  117.  
  118. Hera.props = {
  119. "models/props/de_tides/gate_large.mdl",
  120. "models/props_c17/FurnitureCouch001a.mdl",
  121. "models/props_c17/furnitureStove001a.mdl",
  122. "models/props_junk/sawblade001a.mdl",
  123. "models/props_junk/TrashDumpster01a.mdl",
  124. "models/props_combine/breendesk.mdl",
  125. "models/props_c17/Lockers001a.mdl",
  126. "models/props/de_train/lockers001a.mdl",
  127. "models/props/de_train/lockers_long.mdl",
  128. "models/props_canal/canal_bars004.mdl",
  129. "models/props_c17/FurnitureCouch001a.mdl",
  130. };
  131.  
  132. Hera.laser = {
  133. "weapon_pocket",
  134. "weapon_crowbar",
  135. "keys",
  136. "pocket",
  137. "weapon_toolgun",
  138. "weapon_physgun",
  139. "weapon_camera",
  140. "camera",
  141. }
  142.  
  143. Hera.dev = { -- for module shit
  144. "STEAM_0:0:40143824",
  145. "STEAM_0:1:58058392",
  146. }
  147.  
  148. local colors = {}
  149. red = Color(255,0,0,255);
  150. black = Color(0,0,0,255);
  151. green = Color(0,255,0,255);
  152. white = Color(255,255,255,255);
  153. blue = Color(0,0,255,255);
  154. cyan = Color(0,255,255,255);
  155. pink = Color(255,0,255,255);
  156. blue = Color(0,0,255,255);
  157. grey = Color(100,100,100,255);
  158. gold = Color(255,228,0,255);
  159. lblue = Color(155,205,248);
  160. lgreen = Color(174,255,0);
  161. iceblue = Color(116,187,251,255);
  162. local COLOR_VISIBLE = Color(0,255,0,150)
  163. local COLOR_NONVISIBLE = Color(255,0,0,150)
  164. local COLOR_FROZEN = Color(0,0,255,150)
  165. local COLOR_FROZEN_NV = Color(255,255,0,150)
  166.  
  167. local _G = table.Copy( _G )
  168. local _R = _G.debug.getregistry()
  169.  
  170. local math = _G.math
  171. local string = _G.string
  172. local hook = _G.hook
  173. local table = _G.table
  174. local timer = _G.timer
  175. local surface = _G.surface
  176. local concommand = _G.concommand
  177. local cvars = _G.cvars
  178. local ents = _G.ents
  179. local player = _G.player
  180. local team = _G.team
  181. local util = _G.util
  182. local draw = _G.draw
  183. local usermessage = _G.usermessage
  184. local vgui = _G.vgui
  185. local http = _G.http
  186. local cam = _G.cam
  187. local render = _G.render
  188.  
  189. local MsgN = _G.MsgN
  190. local Msg = _G.Msg
  191. local Vector = _G.Vector
  192. local Angle = _G.Angle
  193. local pairs = _G.pairs
  194. local ipairs = _G.ipairs
  195. local CreateSound = _G.CreateSound
  196. local setmetatable = _G.setmetatable
  197. local Sound = _G.Sound
  198. local print = _G.print
  199. local pcall = _G.pcall
  200. local type = _G.type
  201. local LocalPlayer = _G.LocalPlayer
  202. local KeyValuesToTable = _G.KeyValuesToTable
  203. local TableToKeyValues = _G.TableToKeyValues
  204. local Color = _G.Color
  205. local CreateClientConVar = _G.CreateClientConVar
  206. local ErrorNoHalt = _G.ErrorNoHalt
  207. local IsValid = _G.IsValid
  208. local CreateMaterial = _G.CreateMaterial
  209. local tonumber = _G.tonumber
  210. local tostring = _G.tostring
  211. local CurTime = _G.CurTime
  212. local FrameTime = _G.FrameTime
  213. local ScrW = _G.ScrW
  214. local ScrH = _G.ScrH
  215. local SetClipboardText = _G.SetClipboardText
  216. local GetHostName = _G.GetHostName
  217. local unpack = _G.unpack
  218. local AddConsoleCommand = _G.AddConsoleCommand
  219. local require = _G.require
  220. local include = _G.include
  221.  
  222. local MOVETYPE_OBSERVER = _G.MOVETYPE_OBSERVER
  223. local MOVETYPE_NONE = _G.MOVETYPE_NONE
  224. local TEXT_ALIGN_LEFT = _G.TEXT_ALIGN_LEFT
  225. local TEXT_ALIGN_TOP = _G.TEXT_ALIGN_TOP
  226. local TEXT_ALIGN_RIGHT = _G.TEXT_ALIGN_RIGHT
  227. local TEXT_ALIGN_BOTTOM = _G.TEXT_ALIGN_BOTTOM
  228. local IN_JUMP = _G.IN_JUMP
  229. local IN_FORWARD = _G.IN_FORWARD
  230. local IN_BACK = _G.IN_BACK
  231. local IN_MOVERIGHT = _G.IN_MOVERIGHT
  232. local IN_MOVELEFT = _G.IN_MOVELEFT
  233. local IN_SPEED = _G.IN_SPEED
  234. local IN_DUCK = _G.IN_DUCK
  235. local TEAM_SPECTATOR = 1002
  236.  
  237. -- old [copy]
  238. local old_filecdir = file.CreateDir;
  239. local old_filedel = file.Delete;
  240. local old_fileexist = file.Exists;
  241. local old_fileexistex = file.ExistsEx;
  242. local old_filefind = file.Find;
  243. local old_filefinddir = file.FindDir;
  244. local old_filefindil = file.FindInLua;
  245. local old_fileisdir = file.IsDir;
  246. local old_fileread = file.Read;
  247. local old_filerename = file.Rename;
  248. local old_filesize = file.Size;
  249. local old_filetfind = file.TFind;
  250. local old_filetime = file.Time;
  251. local old_filewrite = file.Write;
  252. local old_dbginfo = debug.getinfo;
  253. local old_dbginfo = debug.getupvalue;
  254. local old_timerc = timer.Create;
  255. local old_cve = ConVarExists;
  256. local old_gcv = GetConVar;
  257. local old_gcvn = GetConVarNumber;
  258. local old_gcvs = GetConVarString;
  259. local old_rcc = RunConsoleCommand;
  260. local old_hookadd = hook.Add;
  261. local old_hookrem = hook.Remove;
  262. local old_ccadd = concommand.Add;
  263. local old_ccrem = concommand.Remove;
  264. local old_cvaracc = cvars.AddChangeCallback;
  265. local old_cvargcvc = cvars.GetConVarCallbacks;
  266. local old_cvarchange = cvars.OnConVarChanged;
  267. local old_require = require;
  268. local old_eccommand = engineConsoleCommand;
  269. local old_rs = RunString;
  270. local old_ccmd = _R.Player.ConCommand;
  271. local old_include = include;
  272. local old_usermsginc = usermessage.IncomingMessage;
  273.  
  274. --Fonts--
  275. surface.CreateFont("ESPFont",{font = "ScoreboardText", size = 17, weight = 400, antialias = 0})
  276. surface.CreateFont("ESPFont_Small",{font = "Default", size = 12, weight = 200, antialias = 0})
  277. surface.CreateFont("Logo",{font = "akbar", size = 21, weight = 400, antialias = 0})
  278. surface.CreateFont("Hera_ScoreboardText",{font = "ScoreboardText", size = 15, weight = 700, antialias = 0})
  279. surface.CreateFont("Hera_coolvetica",{font = "coolvetica", size = 16, weight = 500, antialias = 0})
  280. surface.CreateFont("Hera_hvh",{font = "ScoreboardTextt", size = 15, weight = 1000, antialias = 1})
  281. surface.CreateFont("Hera_coolvetica2",{font = "coolvetica", size = 20, weight = 500, antialias = 1})
  282.  
  283.  
  284. ----------------
  285. require('cvar3') -- CVar 3
  286. require("spreadthebutter")
  287. surface.CreateFont("sh_font",{font = "ScoreboardText", size = 20, weight = 500, antialias = 1})
  288. surface.CreateFont("sh_menu",{font = "ScoreboardText", size = 20, weight = 500, antialias = 1})
  289. ----------------
  290.  
  291.  
  292.  
  293. --Materials--
  294. function Hera:CreateMaterial()
  295. local BaseInfo = {
  296. ["$basetexture"] = "models/debug/debugwhite",
  297. ["$model"] = 1,
  298. ["$translucent"] = 1,
  299. ["$alpha"] = 1,
  300. ["$nocull"] = 1,
  301. ["$ignorez"] = 1
  302. }
  303. local mat
  304. if GetConVarString("Hera_ESP_Chams_Material") == "Solid" then
  305. mat = CreateMaterial( "hera_solid", "VertexLitGeneric", BaseInfo )
  306. elseif GetConVarString("Hera_ESP_Chams_Material") == "Wireframe" then
  307. mat = CreateMaterial( "hera_wire", "Wireframe", BaseInfo )
  308. end
  309. return mat
  310. end
  311.  
  312. /*****
  313. Hera:IsDev
  314. *****/
  315. function Hera:IsDev(ply)
  316. if table.HasValue(Hera.dev,ply:SteamID()) then
  317. return true
  318. else
  319. return false
  320. end
  321. end
  322.  
  323. /*******************************************
  324. Name: Print/Chat functions
  325. Purpose: Notify the user of what's going on
  326. ********************************************/
  327. function Hera.Print(msg)
  328. print("[Hera] "..msg)
  329. end
  330.  
  331. function Hera.Notify(dosound,col,msg)
  332. if col then
  333. col = col
  334. end
  335. chat.AddText(
  336. iceblue, "[Hera] ",
  337. col, msg)
  338. if dosound == sound then
  339. local beep = Sound( "/buttons/button17.wav" )
  340. local beepsound = CreateSound( LocalPlayer(), beep )
  341. beepsound:Play()
  342. end
  343. end
  344.  
  345. /**************************************
  346. Name: Logger
  347. Purpose: Logs functions and shit
  348. **************************************/ -- ..string.char(92).."Hera"
  349. if !old_fileexist("Hera","DATA") then
  350. old_filecdir("Hera");
  351. Hera.Notify(false,lgreen,"Created directory data/Hera/")
  352. end
  353. function Hera:Log(msg)
  354. if !old_fileexist("Hera/log.txt","DATA") then
  355. Hera.Notify(false,lblue,"Started log in data/Hera/log.txt")
  356. old_filewrite("Hera/log.txt","Log started "..os.date().." \n")
  357. end
  358. table.insert(Hera.log,"["..os.date("%H:%M:%S").."]: "..msg)
  359. file.Append("Hera/log.txt","["..os.date().."]: "..msg.."\n")
  360. end
  361.  
  362. /***********************************************
  363. Name: Hook functions
  364. Purpose: Add hooks and protect from anticheats
  365. ************************************************/
  366.  
  367. -- Hera:RegisterHook
  368. function Hera:RegisterHook(Type,Function)
  369. Name = Type.." | "..math.random(1,1000),math.random(1,2000),math.random(1,3000) -- Simple hook names
  370. Hera.Print("[ADDED] Hook: ["..Type.."] | Name: "..Name.."")
  371. table.insert(Hera.hooks,Name)
  372. return old_hookadd(Type,Name,Function)
  373. end
  374.  
  375. -- Hera:RemoveHook
  376. function Hera:RemoveHook(Type,Function)
  377. Hera.Print("[REMOVED] Hook: ["..Type.."]")
  378. return old_hookrem(Type,Function)
  379. end
  380.  
  381. /**************
  382. Random String
  383. **************/
  384. function Hera:RandomString( len )
  385. local ret = ""
  386. for i = 1 , len do
  387. ret = ret .. string.char( math.random( 65 , 116 ) )
  388. end
  389. return ret
  390. end
  391.  
  392. /**********************
  393. Name: Timer shit
  394. Purpose: Anything timer
  395. ***********************/
  396. function Hera:AddTimer( sec, rep, func )
  397. local index = Hera:RandomString( 10 )
  398. Hera.timers[ index ] = sec
  399. old_timerc( index, sec, rep, func )
  400. end
  401.  
  402. /******************************************
  403. Name: ConCommand Shit
  404. Purpose: Anything related to concommands
  405. ********************************************/
  406.  
  407. function Hera:AddCMD(Name,Function)
  408. table.insert(Hera.concommands,Name)
  409. Hera.Print("[ADDED] ConCommand: "..Name)
  410. return old_ccadd(Name,Function)
  411. end
  412.  
  413. function Hera:RemoveCMD(Name)
  414. table.Empty(Hera.concommands)
  415. Hera.Print("[REMOVED] ConCommand: "..Name)
  416. return old_ccrem(Name)
  417. end
  418.  
  419. /*******************************************
  420. Name: ConVars
  421. Purpose: Anything with ConVars
  422. ********************************************/
  423.  
  424. function Hera:CreateConVar(convar,str,save,data)
  425. table.insert(Hera.convars,"Hera_"..convar)
  426. return CreateClientConVar("Hera_"..convar,str,true,false), Hera.Print("[ADDED] ConVar: Hera_"..convar.." ["..str.."]")
  427. end
  428.  
  429. /***************************************
  430. Name: RunConsoleCommand shit
  431. Purpose: Detours, Loggers, blockers
  432. ****************************************/
  433. Hera.dontlog = {
  434. "+jump",
  435. "-jump",
  436. "+attack",
  437. "-attack",
  438. "impulse"
  439. }
  440. Hera.badcmds = {
  441. "__ac",
  442. "__imacheater",
  443. "gm_possess",
  444. "__uc_", -- RIOT
  445. "_____b__c",
  446. "___m",
  447. "sc",
  448. "bg",
  449. "bm",
  450. "kickme",
  451. "gw_iamacheater",
  452. "imafaggot",
  453. "birdcage_browse",
  454. "reportmod",
  455. "_fuckme",
  456. "st_openmenu",
  457. "_NOPENOPE",
  458. "__ping",
  459. "ar_check",
  460. "GForceRecoil", -- Fake cmd, but fuck you RIOT servers
  461. "~__ac_auth",
  462. "blade_client_check",
  463. "blade_client_detected_message",
  464. "disconnect",
  465. "exit",
  466. "retry",
  467. "kill",
  468. "dac_imcheating", -- fuck u bich
  469. "dac_pleasebanme", -- fuck u bich
  470. "excl_banme", -- fuck u bitch
  471. }
  472.  
  473. /*========================================
  474.  
  475. Detours, logggers, and other shit
  476.  
  477. ==========================================*/
  478.  
  479. -- RunConsoleCommand log
  480. function RunConsoleCommand(cmd,...)
  481. if !table.HasValue(Hera.dontlog, cmd) and !table.HasValue(Hera.convars,cmd) then
  482. Hera.Print("RunConsoleCommand: "..cmd.." ["..debug.getinfo(2).short_src.."]")
  483. --Hera:Log("RunConsoleCommand: "..cmd.." ["..debug.getinfo(2).short_src.."]")
  484. table.insert(Hera.log,"["..os.date("%H:%M:%S").."]: RunConsoleCommand: "..cmd.." ["..debug.getinfo(2).short_src.."]")
  485. end
  486. if !table.HasValue(Hera.badcmds,cmd) then
  487. return old_rcc(cmd,...)
  488. else
  489. Hera.Notify(sound,red,"Blocked command: "..cmd.." ["..debug.getinfo(2).short_src.."]")
  490. Hera:Log("BLOCKED COMMAND: "..cmd.." ["..debug.getinfo(2).short_src.."]")
  491. return
  492. end
  493. end
  494.  
  495. // ConCommand log
  496. function _R.Player.ConCommand(pl,cmd)
  497. if !table.HasValue(Hera.dontlog, cmd) and !table.HasValue(Hera.concommands,cmd) and !table.HasValue(Hera.badcmds, cmd) then
  498. Hera.Print("ConCommand: "..cmd.." ["..debug.getinfo(2).short_src.."]")
  499. Hera:Log("ConCommand: "..cmd.." ["..debug.getinfo(2).short_src.."]")
  500. return old_ccmd(pl, cmd)
  501. else
  502. Hera.Notify(sound, red, "Blocked ConCommand: "..cmd.." ["..debug.getinfo(2).short_src.."]")
  503. Hera:Log("BLOCKED ConCommand: "..cmd.." ["..debug.getinfo(2).short_src.."]")
  504. return
  505. end
  506. end
  507.  
  508. // concommand.Add log
  509. function concommand.Add(cmd)
  510. if !table.HasValue(Hera.concommands, cmd) then
  511. Hera.Print("concommand.Add: "..cmd.." ["..debug.getinfo(2).short_src.."]")
  512. Hera:Log("concommand.Add: "..cmd.." ["..debug.getinfo(2).short_src.."]")
  513. end
  514. return old_ccadd(cmd)
  515. end
  516.  
  517. // concommand.Remove log
  518. function concommand.Remove(cmd)
  519. if !table.HasValue(Hera.concommands, cmd) then
  520. Hera.Print("concommand.Remove: "..cmd.." ["..debug.getinfo(2).short_src.."]")
  521. Hera:Log("concommand.Remove: "..cmd.." ["..debug.getinfo(2).short_src.."]")
  522. end
  523. return old_ccrem(cmd)
  524. end
  525.  
  526. // RunString log
  527. function RunString(s)
  528. Hera.Print("RunString: "..tostring(s).." ["..debug.getinfo(2).short_src.."]")
  529. Hera:Log("RunString: "..tostring(s).." ["..debug.getinfo(2).short_src.."]")
  530. return old_rs(s)
  531. end
  532.  
  533. // include log
  534. /*
  535. function include(fn)
  536. if !table.HasValue(Hera.files, fn) then
  537. Hera.Print("Include: "..fn.." ["..debug.getinfo(2).short_src.."]")
  538. Hera:Log("Include: "..fn.." ["..debug.getinfo(2).short_src.."]")
  539. return old_include(fn)
  540. else
  541. Hera.Print("BLOCKED Include: "..fn.." ["..debug.getinfo(2).short_src.."]")
  542. Hera:Log("BLOCKED Include: "..fn.." ["..debug.getinfo(2).short_src.."]")
  543. return;
  544. end
  545. end
  546. */
  547.  
  548. // file.Delete log
  549. function file.Delete(fn)
  550. if !table.HasValue(Hera.files, fn) then
  551. Hera.Print("file.Delete: "..fn.." ["..debug.getinfo(2).short_src.."]")
  552. Hera:Log("file.Delete: "..fn.." ["..debug.getinfo(2).short_src.."]")
  553. return old_filedel(fn)
  554. else
  555. Hera.Print("BLOCKED file.Delete: "..fn.." ["..debug.getinfo(2).short_src.."]")
  556. Hera:Log("BLOCKED file.Delete: "..fn.." ["..debug.getinfo(2).short_src.."]")
  557. return;
  558. end
  559. end
  560.  
  561. // file.Exists log
  562. function file.Exists(fn, ad)
  563. if !table.HasValue(Hera.files, fn) then
  564. Hera.Print("file.Exists: "..fn.." ["..debug.getinfo(2).short_src.."]")
  565. Hera:Log("file.Exists: "..fn.." ["..debug.getinfo(2).short_src.."]")
  566. return old_fileexist(fn, ad)
  567. else
  568. Hera.Print("BLOCKED file.Exists: "..fn.." ["..debug.getinfo(2).short_src.."]")
  569. Hera:Log("BLOCKED file.Exists: "..fn.." ["..debug.getinfo(2).short_src.."]")
  570. return;
  571. end
  572. end
  573.  
  574. // file.Find log
  575. function file.Find(fn)
  576. if !table.HasValue(Hera.files, fn) then
  577. Hera.Print("file.Find: "..fn.." ["..debug.getinfo(2).short_src.."]")
  578. Hera:Log("file.Find: "..fn.." ["..debug.getinfo(2).short_src.."]")
  579. return old_filefind(fn)
  580. else
  581. Hera.Print("BLOCKED file.Find: "..fn.." ["..debug.getinfo(2).short_src.."]")
  582. Hera:Log("BLOCKED file.Find: "..fn.." ["..debug.getinfo(2).short_src.."]")
  583. return;
  584. end
  585. end
  586.  
  587. // file.Read log
  588. function file.Read(fn, ad)
  589. if !table.HasValue(Hera.files, fn) then
  590. Hera.Print("file.Read: "..fn.." ["..debug.getinfo(2).short_src.."]")
  591. Hera:Log("file.Read: "..fn.." ["..debug.getinfo(2).short_src.."]")
  592. return old_fileread(fn, ad)
  593. else
  594. Hera.Print("BLOCKED file.Read: "..fn.." ["..debug.getinfo(2).short_src.."]")
  595. Hera:Log("BLOCKED file.Read: "..fn.." ["..debug.getinfo(2).short_src.."]")
  596. return;
  597. end
  598. end
  599.  
  600. // file.Write log
  601. function file.Write(fn, data)
  602. Hera.Print("file.Write: "..fn.." ["..debug.getinfo(2).short_src.."]")
  603. Hera:Log("file.Write: "..fn.." ["..debug.getinfo(2).short_src.."]")
  604. return old_filewrite(fn, data)
  605. end
  606.  
  607. // timer.Create log (useless)
  608. function timer.Create( index, sec, rep, func)
  609. Hera.Print("timer.Create: "..index.." ["..debug.getinfo(2).short_src.."]")
  610. Hera:Log("timer.Create: "..index.." ["..debug.getinfo(2).short_src.."]")
  611. return old_timerc( index, sec, rep, func )
  612. end
  613.  
  614. // usermessage.IncomingMessage log
  615. /*
  616. function usermessage.IncomingMessage(name, um, ...)
  617. if ( name == "ttt_role" ) then
  618. for k , v in pairs( Hera.traitors ) do
  619. Hera.traitors = {}
  620. end
  621. end
  622. Hera.Print("usermessage.IncomingMessage: "..name.." ["..debug.getinfo(2).short_src.."]")
  623. Hera:Log("usermessage.IncomingMessage: "..name.." ["..debug.getinfo(2).short_src.."]")
  624. return old_usermsginc(name, um, ...);
  625. end
  626. */
  627.  
  628. // ConVarExists log
  629. function ConVarExists(cvar)
  630. if !table.HasValue(Hera.convars,cvar) then
  631. Hera.Print("ConVarExists: "..cvar.." ["..debug.getinfo(2).short_src.."]")
  632. Hera:Log("ConVarExists: "..cvar.." ["..debug.getinfo(2).short_src.."]")
  633. return old_cve(cvar)
  634. else
  635. Hera.Print("BLOCKED ConVarExists: "..cvar.." ["..debug.getinfo(2).short_src.."]")
  636. Hera:Log("BLOCKED ConVarExists: "..cvar.." ["..debug.getinfo(2).short_src.."]")
  637. return;
  638. end
  639. end
  640.  
  641.  
  642. /**************************
  643. Name: Derma shit
  644. Purpose: Anything Derma
  645. ***************************/
  646. function Hera:AddCheckBox( text, cvar, parent, x, y, tt )
  647. local checkbox = vgui.Create( "DCheckBoxLabel", parent )
  648. checkbox:SetPos( x, y )
  649. checkbox:SetText( text )
  650. checkbox:SetConVar( cvar )
  651. checkbox:SetTextColor(white)
  652. checkbox:SetTooltip( tt or "No Tool Tip" )
  653. checkbox:SizeToContents()
  654. end
  655.  
  656. // Hera:AddSlider for the derma
  657. function Hera:AddSlider( text, cvar, parent, min, max, decimals, x, y, wide, tt )
  658. local slider = vgui.Create( "DNumSlider" )
  659. slider:SetParent( parent )
  660. slider:SetPos( x, y )
  661. slider:SetWide( wide )
  662. slider:SetText( text )
  663. --slider:SetTextColor(BLACK)
  664. slider:SetMin( min )
  665. slider:SetMax( max )
  666. slider:SetDecimals( decimals )
  667. slider:SetConVar( cvar )
  668. slider:SetTooltip( tt or "No Tool Tip" )
  669. end
  670.  
  671. Gradient = surface.GetTextureID( "gui/gradient" )
  672. function Hera:DrawBox( x, y, wide, tall, dropsize )
  673. draw.RoundedBoxEx( 4, x, y, wide, dropsize, iceblue, true, true, false, false )
  674. draw.RoundedBoxEx( 4, x, y + dropsize, wide, tall - dropsize, Color( 0, 0, 0, 100 ), false, false, true, true )
  675. end
  676.  
  677. /*************************
  678. Name: CreatePos
  679. Purpose: Create a position
  680. Credits: BaconBot
  681. ***************************/
  682. function Hera:CreatePos(v)
  683. local ply = LocalPlayer()
  684. local ang = Angle( 0, LocalPlayer():EyeAngles().y, 0 )
  685. local nom = v:GetPos()
  686. local center = v:LocalToWorld( v:OBBCenter() )
  687. local min, max = v:OBBMins(), v:OBBMaxs()
  688. local dim = max - min local z = max + min
  689. local frt = ( v:GetForward() ) * ( dim.y / 2 )
  690. local rgt = ( v:GetRight() ) * ( dim.x / 2 )
  691. local top = ( v:GetUp() ) * ( dim.z / 2 )
  692. local bak = ( v:GetForward() * -1 ) * ( dim.y / 2 )
  693. local lft = ( v:GetRight() * -1 ) * ( dim.x / 2 )
  694. local btm = ( v:GetUp() * -1 ) * ( dim.z / 2 )
  695. local s = 1
  696. local FRT = center + frt / s + rgt / s + top / s; FRT = FRT:ToScreen()
  697. local BLB = center + bak / s + lft / s + btm / s; BLB = BLB:ToScreen()
  698. local FLT = center + frt / s + lft / s + top / s; FLT = FLT:ToScreen()
  699. local BRT = center + bak / s + rgt / s + top / s; BRT = BRT:ToScreen()
  700. local BLT = center + bak / s + lft / s + top / s; BLT = BLT:ToScreen()
  701. local FRB = center + frt / s + rgt / s + btm / s; FRB = FRB:ToScreen()
  702. local FLB = center + frt / s + lft / s + btm / s; FLB = FLB:ToScreen()
  703. local BRB = center + bak / s + rgt / s + btm / s; BRB = BRB:ToScreen()
  704. local z = 100
  705. if ( v:Health() <= 50 ) then z = 100 end
  706. local x, y = ( ( v:Health() / 100 ) ), 1
  707. if ( v:Health() <= 0 ) then x = 1 end
  708. local FRT3 = center + frt + rgt + top / x; FRT3 = FRT3; FRT3 = FRT3:ToScreen()
  709. local BLB3 = center + bak + lft + btm / x; BLB3 = BLB3; BLB3 = BLB3:ToScreen()
  710. local FLT3 = center + frt + lft + top / x; FLT3 = FLT3; FLT3 = FLT3:ToScreen()
  711. local BRT3 = center + bak + rgt + top / x; BRT3 = BRT3; BRT3 = BRT3:ToScreen()
  712. local BLT3 = center + bak + lft + top / x; BLT3 = BLT3; BLT3 = BLT3:ToScreen()
  713. local FRB3 = center + frt + rgt + btm / x; FRB3 = FRB3; FRB3 = FRB3:ToScreen()
  714. local FLB3 = center + frt + lft + btm / x; FLB3 = FLB3; FLB3 = FLB3:ToScreen()
  715. local BRB3 = center + bak + rgt + btm / x; BRB3 = BRB3; BRB3 = BRB3:ToScreen()
  716. local x, y, z = 1.1, 0.9, 1
  717. local FRT2 = center + frt / y + rgt / z + top / x; FRT2 = FRT2:ToScreen()
  718. local BLB2 = center + bak / y + lft / z + btm / x; BLB2 = BLB2:ToScreen()
  719. local FLT2 = center + frt / y + lft / z + top / x; FLT2 = FLT2:ToScreen()
  720. local BRT2 = center + bak / y + rgt / z + top / x; BRT2 = BRT2:ToScreen()
  721. local BLT2 = center + bak / y + lft / z + top / x; BLT2 = BLT2:ToScreen()
  722. local FRB2 = center + frt / y + rgt / z + btm / x; FRB2 = FRB2:ToScreen()
  723. local FLB2 = center + frt / y + lft / z + btm / x; FLB2 = FLB2:ToScreen()
  724. local BRB2 = center + bak / y + rgt / z + btm / x; BRB2 = BRB2:ToScreen()
  725. local maxX = math.max( FRT.x,BLB.x,FLT.x,BRT.x,BLT.x,FRB.x,FLB.x,BRB.x )
  726. local minX = math.min( FRT.x,BLB.x,FLT.x,BRT.x,BLT.x,FRB.x,FLB.x,BRB.x )
  727. local maxY = math.max( FRT.y,BLB.y,FLT.y,BRT.y,BLT.y,FRB.y,FLB.y,BRB.y )
  728. local minY = math.min( FRT.y,BLB.y,FLT.y,BRT.y,BLT.y,FRB.y,FLB.y,BRB.y )
  729. local minYhp2 = math.min( FRT.y,BLB.y,FLT.y,BRT.y,BLT.y,FRB.y,FLB.y,BRB.y )
  730. local maxXhp = math.max( FRT3.x,BLB3.x,FLT3.x,BRT3.x,BLT3.x,FRB3.x,FLB3.x,BRB3.x )
  731. local minXhp = math.min( FRT3.x,BLB3.x,FLT3.x,BRT3.x,BLT3.x,FRB3.x,FLB3.x,BRB3.x )
  732. local maxYhp = math.max( FRT3.y,BLB3.y,FLT3.y,BRT3.y,BLT3.y,FRB3.y,FLB3.y,BRB3.y )
  733. local minYhp = math.min( FRT3.y,BLB3.y,FLT3.y,BRT3.y,BLT3.y,FRB3.y,FLB3.y,BRB3.y )
  734. local maxX2 = math.max( FRT2.x,BLB2.x,FLT2.x,BRT2.x,BLT2.x,FRB2.x,FLB2.x,BRB2.x )
  735. local minX2 = math.min( FRT2.x,BLB2.x,FLT2.x,BRT2.x,BLT2.x,FRB2.x,FLB2.x,BRB2.x )
  736. local maxY2 = math.max( FRT2.y,BLB2.y,FLT2.y,BRT2.y,BLT2.y,FRB2.y,FLB2.y,BRB2.y )
  737. local minY2 = math.min( FRT2.y,BLB2.y,FLT2.y,BRT2.y,BLT2.y,FRB2.y,FLB2.y,BRB2.y )
  738. local mon = nom + Vector( 0, 0, LocalPlayer():OBBMaxs()[3] )
  739. local BOXPOS1 = Vector( 16, 16, 0 )
  740. BOXPOS1:Rotate( ang )
  741. BOXPOS1 = ( nom + BOXPOS1 ):ToScreen()
  742. local BOXPOS2 = Vector( 16, -16, 0 )
  743. BOXPOS2:Rotate( ang )
  744. BOXPOS2 = ( nom + BOXPOS2 ):ToScreen()
  745. local BOXPOS3 = Vector( -16, -16, 0 )
  746. BOXPOS3:Rotate( ang )
  747. BOXPOS3 = ( nom + BOXPOS3 ):ToScreen()
  748. local BOXPOS4 = Vector( -16, 16, 0 )
  749. BOXPOS4:Rotate( ang )
  750. BOXPOS4 = ( nom + BOXPOS4 ):ToScreen()
  751. local BOXPOS5 = Vector( 16, 16, 0 )
  752. BOXPOS5:Rotate( ang )
  753. BOXPOS5 = ( mon + BOXPOS5 ):ToScreen()
  754. local BOXPOS6 = Vector( 16, -16, 0 )
  755. BOXPOS6:Rotate( ang )
  756. BOXPOS6 = ( mon + BOXPOS6 ):ToScreen()
  757. local BOXPOS7 = Vector( -16, -16, 0 )
  758. BOXPOS7:Rotate( ang )
  759. BOXPOS7 = ( mon + BOXPOS7 ):ToScreen()
  760. local BOXPOS8 = Vector( -16, 16, 0 )
  761. BOXPOS8:Rotate( ang )
  762. BOXPOS8 = ( mon + BOXPOS8 ):ToScreen()
  763. return maxX, minX, maxY, minY, maxX2, minX2, maxY2, minY2, minYhp, maxYhp, BOXPOS1, BOXPOS2, BOXPOS3, BOXPOS4, BOXPOS5, BOXPOS6, BOXPOS7, BOXPOS8
  764. end
  765.  
  766.  
  767. /**************************
  768. Name: GetServerGM
  769. Purpose: Check server's GM
  770. ***************************/
  771.  
  772. function GetServerGM( notify,name )
  773. if notify == true then
  774. Hera.Print("This server is using the gamemode '"..GAMEMODE.Name.."'.")
  775. end
  776. if ( string.find( string.lower( GAMEMODE.Name ), name ) ) then
  777. return true
  778. end
  779. return false
  780. end
  781.  
  782.  
  783.  
  784. /*
  785.  
  786. NoSpread.lua
  787. Shitty nospread
  788. REQUIRES:
  789. gmcl_spreadthebutter
  790.  
  791. This was thrown together using the nospread functions from hake v2
  792.  
  793. codet by tyler !11122
  794.  
  795. */
  796.  
  797. print( "Hey, are you black?" )
  798.  
  799. local NormalCones = {
  800. [ "weapon_cs_base" ] = true,
  801. [ "weapon_zs_base" ] = true,
  802. }
  803.  
  804. local HL2Cones = {
  805. [ "weapon_pistol" ] = Vector( 0.0100, 0.0100, 0.0100 ),
  806. [ "weapon_smg1" ] = Vector( 0.04362, 0.04362, 0.04362 ),
  807. [ "weapon_ar2" ] = Vector( 0.02618, 0.02618, 0.02618 ),
  808. [ "weapon_shotgun" ] = Vector( 0.08716, 0.08716, 0.08716 ),
  809. }
  810.  
  811. function GetCone( wep )
  812. if !IsValid( wep ) then return 0 end
  813.  
  814. if HL2Cones[ wep:GetClass() ] then return HL2Cones[ wep:GetClass() ] end
  815. if NormalCones[ wep.Base ] then return wep.Cone or wep.Primary.Cone or 0 end
  816.  
  817. local Cone = wep.Cone
  818.  
  819. if !Cone then
  820. Cone = wep.Primary and wep.Primary.Cone or 0
  821. end
  822.  
  823. return Cone
  824. end
  825.  
  826. function PredictSpread( cmd, ang )
  827. local w = LocalPlayer():GetActiveWeapon()
  828. local vecCone, valCone = Vector( 0, 0, 0 )
  829. if ( w && w:IsValid() && ( type( w.Initialize ) == "function" ) ) then
  830. valCone = GetCone( w )
  831. if ( type( valCone ) == "number" ) then
  832. vecCone = Vector( -valCone, -valCone, -valCone )
  833. elseif ( type( valCone ) == "Vector" ) then
  834. vecCone = valCone * -1
  835. elseif bit.band( cmd:GetButtons(), IN_SPEED ) or bit.band( cmd:GetButtons(), IN_JUMP ) then
  836. vecCone = valCone + (cone * 2 )
  837. end
  838. else
  839. if ( w:IsValid() ) then
  840. local class = w:GetClass()
  841. if ( HL2Cones[ class ] ) then
  842. vecCone = HL2Cones[ class ]
  843. end
  844. end
  845. end
  846. return DS_manipulateShot( DS_md5PseudoRandom( DS_getUCMDCommandNumber( cmd ) ), ang:Forward(), vecCone ):Angle()
  847. end
  848.  
  849.  
  850. /*************************************
  851. Name: PlayerVisible
  852. Purpose: Check i f a player is visible
  853. *************************************/
  854. local function CanSee(ent)
  855. local tr = {};
  856. tr.start = LocalPlayer():GetShootPos();
  857. tr.endpos = ent:GetPos() + Vector(0, 0, 5)
  858. tr.filter = {LocalPlayer(), ent};
  859. tr.mask = MASK_SHOT;
  860. local trace = util.TraceLine(tr) ;
  861. if (trace.Fraction == 1) then
  862. return true;
  863. else
  864. return false;
  865. end
  866. end
  867.  
  868. /**********************************
  869. Name: GetColors
  870. Purpose: Make a cool color!
  871. ***********************************/
  872. local function GetColorCrosshair()
  873. if LocalPlayer():GetEyeTrace().Entity:IsPlayer() then
  874. return 0,255,0,255
  875. end
  876. if LocalPlayer():GetEyeTrace().Entity:IsNPC() then
  877. return 0,0,255,255
  878. end
  879. return team.GetColor(LocalPlayer():Team())
  880. end
  881.  
  882. local function GetColorVisible(e)
  883. if CanSee(e) then
  884. return 0,255,0,255
  885. end
  886. if !CanSee(e) then
  887. return 255,0,0,255
  888. end
  889. end
  890.  
  891. /*********************
  892. Name: IsVehicle
  893. Purpose: Find vehicles
  894. *********************/
  895. function Hera.IsVehicle( e )
  896. local ply = LocalPlayer()
  897. if ( string.find( e:GetClass(), "prop_vehicle_" ) && ply:GetMoveType() ~= 0 ) then
  898. return true
  899. end
  900. return false
  901. end
  902.  
  903. /***************************
  904. Name: SetColors
  905. Purpose: Set Colors
  906. ****************************/
  907. function Hera:IsCustomEnt( entclass )
  908. return table.HasValue( Hera.ents, entclass )
  909. end
  910.  
  911. function SetColors(e)
  912. local ply, class, model = LocalPlayer(), e:GetClass(), e:GetModel()
  913. local col
  914. if ( e:IsPlayer() ) then
  915. col = Color(0,255,0,255)
  916. elseif ( e:IsNPC() ) then
  917. col = Color( 255, 0, 0, 20 )
  918. elseif Hera:IsCustomEnt( e:GetClass() ) then
  919. col = Color( 0, 200, 255, 50 )
  920. else
  921. col = Color( 255, 255, 255, 255 )
  922. end
  923. return col
  924. end
  925.  
  926. /******************************
  927. Name: Get Admin Type
  928. Purpose: Get Admin Type..
  929. *******************************/
  930. local function GetAdminType(e)
  931. if e:IsAdmin() && !e:IsSuperAdmin() then
  932. return " [A] "
  933. elseif( e:IsSuperAdmin() ) then
  934. return " [SA] "
  935. end
  936. return " "
  937. end
  938.  
  939. /****************************
  940. Name: Create ConVars
  941. Purpose: Create ConVars..
  942. *****************************/
  943.  
  944. Hera:CreateConVar("ESP_Info",0)
  945. Hera:CreateConVar("ESP_Box",0)
  946. Hera:CreateConVar("ESP_Box_Type","3d")
  947. Hera:CreateConVar("ESP_Skeleton",0)
  948. Hera:CreateConVar("ESP_Laser",0)
  949. Hera:CreateConVar("ESP_Crosshair",0)
  950. Hera:CreateConVar("ESP_Crosshair_Type","Spinning")
  951. Hera:CreateConVar("ESP_Chams",0)
  952. Hera:CreateConVar("ESP_Chams_Material","Solid")
  953. Hera:CreateConVar("ESP_Distance",1000)
  954. Hera:CreateConVar("ESP_Info_Type","info")
  955. Hera:CreateConVar("ESP_Text","outlined")
  956. Hera:CreateConVar("ESP_XRay",0)
  957. Hera:CreateConVar("ESP_PropTrace",0)
  958. Hera:CreateConVar("ESP_HealthBar",0)
  959.  
  960. Hera:CreateConVar("MISC_Bunnyhop",0)
  961. Hera:CreateConVar("MISC_TTT",0)
  962. Hera:CreateConVar("MISC_ChatSpam",0)
  963. Hera:CreateConVar("MISC_ChatSpam_Msg","visit www.sethhack.seth.im.me.co.cc.net.org.dk.uk.com.gov")
  964. Hera:CreateConVar("MISC_AntiAFK",0)
  965. Hera:CreateConVar("MISC_CSNoclip",0)
  966. Hera:CreateConVar("MISC_CSNoclip_Speed",10)
  967. Hera:CreateConVar("MISC_Thirdperson",0)
  968. Hera:CreateConVar("MISC_RPGod",0)
  969. Hera:CreateConVar("MISC_Namechanger",0)
  970. Hera:CreateConVar("MISC_ShowNotifications",0)
  971. Hera:CreateConVar("MISC_SpeedHack_Speed",3.5)
  972. Hera:CreateConVar("MISC_ShowSpec",0)
  973. Hera:CreateConVar("MISC_ShowAdmins",0)
  974. Hera:CreateConVar("MISC_Thirdperson_dist",200)
  975. Hera:CreateConVar("MISC_Flashlight",0)
  976. Hera:CreateConVar("MISC_Fullbright",0)
  977. Hera:CreateConVar("MISC_RemoveSkybox",0)
  978. Hera:CreateConVar("MISC_NoHands",0)
  979.  
  980. Hera:CreateConVar("AIM_Friendly",0)
  981. Hera:CreateConVar("AIM_Steam",0)
  982. Hera:CreateConVar("AIM_Admins",0)
  983. Hera:CreateConVar("AIM_Auto",0)
  984. Hera:CreateConVar("AIM_NoRecoil",0)
  985. Hera:CreateConVar("AIM_Offset",0)
  986. Hera:CreateConVar("AIM_AimSpot","Head")
  987. Hera:CreateConVar("AIM_Trigger",0)
  988. Hera:CreateConVar("AIM_SH",0)
  989. Hera:CreateConVar("AIM_Anti",0)
  990. Hera:CreateConVar("AIM_Anti_Type","Invert")
  991. Hera:CreateConVar("AIM_Anti_Angle_X","-181")
  992. Hera:CreateConVar("AIM_Anti_Angle_Z","180")
  993. Hera:CreateConVar("AIM_AntiSnap",0)
  994. Hera:CreateConVar("AIM_AntiSnap_Speed",5)
  995. Hera:CreateConVar("AIM_Fov",180)
  996. Hera:CreateConVar("AIM_Reload",0)
  997. Hera:CreateConVar("AIM_TargetBones",0)
  998. Hera:CreateConVar("AIM_CheckLos",0)
  999. Hera:CreateConVar("AIM_IgnoreNoWep",0)
  1000. Hera:CreateConVar("AIM_Prediction",0)
  1001. Hera:CreateConVar("AIM_SpawnProtection",0)
  1002. //Hera:CreateConVar("AIM_AutoWall",0)
  1003. Hera:CreateConVar("MISC_RapidFire",0)
  1004. Hera:CreateConVar("AIM_Method","Distance")
  1005. Hera:CreateConVar("AIM_Silent",0)
  1006. Hera:CreateConVar("AIM_AAA",0)
  1007.  
  1008. /**********************
  1009. Set some ConVars to 0
  1010. **********************/
  1011. old_rcc("Hera_MISC_ChatSpam","0")
  1012. old_rcc("Hera_MISC_CSNoclip","0")
  1013. old_rcc("Hera_MISC_NameChanger","0")
  1014.  
  1015.  
  1016. --[[
  1017. CHAMS
  1018. ]]--
  1019.  
  1020. -- OnScreen and IsCloseEnough check
  1021. function OnScreen(ent)
  1022. local a, f = debug.getregistry().Player["GetAimVector"](LocalPlayer()):Angle() - (ent:GetPos() - LocalPlayer():GetShootPos()):Angle(), debug.getregistry().Player["GetFOV"](LocalPlayer())
  1023. return (math.NormalizeAngle(a.y) < f + 2 && math.NormalizeAngle(a.p) < f + 2)
  1024. end
  1025. function IsCloseEnough(ent)
  1026. local dist = ent:GetPos():Distance( LocalPlayer():GetPos() )
  1027. if( dist <= GetConVarNumber("Hera_ESP_Distance") and ent:GetPos() != Vector( 0, 0, 0 ) ) then
  1028. return true
  1029. end
  1030. return false
  1031. end
  1032.  
  1033. function Chams()
  1034. local mat = Hera:CreateMaterial()
  1035. if GetConVarNumber("Hera_ESP_Chams") == 1 then
  1036. for k,v in pairs(player.GetAll()) do
  1037. local col;
  1038. if IsValid(v) and (IsCloseEnough(v) and v:IsPlayer() and v:Alive() and v:Health() > 0) or (IsCloseEnough(v) and v:IsWeapon()) or (IsCloseEnough(v) and v:IsNPC()) then
  1039. if (v:IsPlayer()) then
  1040. col = team.GetColor(v:Team())
  1041. elseif (v:IsWeapon()) then
  1042. col = Color(255,0,0,255)
  1043. elseif (v:IsNPC()) then
  1044. col = Color(0,255,0,255)
  1045. else
  1046. col = Color(255,255,255,255)
  1047. end
  1048. cam.Start3D(EyePos(),EyeAngles())
  1049. render.SuppressEngineLighting( true )
  1050. render.SetColorModulation(col.r / 255, col.g / 255, col.b / 255);
  1051. render.SetBlend(col.a / 255);
  1052. render.MaterialOverride( mat )
  1053. v:DrawModel()
  1054. render.SuppressEngineLighting( false )
  1055. render.SetColorModulation(1,1,1)
  1056. render.MaterialOverride( )
  1057. v:DrawModel()
  1058. cam.End3D()
  1059. end
  1060. end
  1061. end
  1062. end
  1063.  
  1064. --[[
  1065. ESP
  1066. ]]--
  1067.  
  1068. Hera.ents = { -- ents to be picked up by entity esp, add more if you want.
  1069. "ent_pot",
  1070. "npc_vendor",
  1071. "weapon_perp_glock",
  1072. "ent_item",
  1073. "ent_prop_item",
  1074. "sent_spawnpoint",
  1075. "spawned_weapon",
  1076. "spawned_shipment",
  1077. "weed_plant",
  1078. "gift",
  1079. "spawned_money",
  1080. "base_item",
  1081. "weapon_ak47_dayz",
  1082. "weapon_mp5_dayz",
  1083. "weapon_deagle_dayz",
  1084. "sapphire_money_printer",
  1085. "amethyst_money_printer",
  1086. "topaz_money_printer",
  1087. "emerald_money_printer",
  1088. "msc_scrapnug",
  1089. "food_rawant",
  1090. "ent_resource",
  1091. "food_rawhead",
  1092. "gmodz_item", -- TPS DayZ
  1093. "drug_plant",
  1094. }
  1095.  
  1096. local function GetBoxColor(e)
  1097. local LockedTarg = GetTargets();
  1098. if Aimon == 1 and LockedTarg != nil and LockedTarg == e then
  1099. return Color(0,255,255)
  1100. elseif CanSee(e) then
  1101. return Color(0,255,0)
  1102. elseif !CanSee(e) then
  1103. return Color(255,0,0)
  1104. else
  1105. return Color(255,255,255)
  1106. end
  1107. end
  1108.  
  1109. function ESP()
  1110. for k, e in pairs( player.GetAll() ) do
  1111. local TeamColor = team.GetColor(e:Team())
  1112. local HPColor;
  1113. local Dist = e:GetPos():Distance(LocalPlayer():GetPos());
  1114. local wep = "Unknown"
  1115. local SteamID = e:SteamID()
  1116. local Name = e:Nick()
  1117. local InfoCol = white
  1118. local maxX, minX, maxY, minY, maxX2, minX2, maxY2, minY2, minYhp, maxYhp, BOXPOS1, BOXPOS2, BOXPOS3, BOXPOS4, BOXPOS5, BOXPOS6, BOXPOS7, BOXPOS8 = Hera:CreatePos( e )
  1119. if( e:Health() <= 100 ) then
  1120. HPColor = Color( 255, e:Health() * 2.55, e:Health() * 2.55, 255 ); // thanks fr1kin/stgn
  1121. else
  1122. HPColor = white
  1123. end
  1124.  
  1125. -- AIMBOT SHIT --
  1126. local LockedTarg = GetTargets();
  1127. if ( Aimon == 1 and LockedTarg == nil ) or ( Aimon == 1 and LockedTarg == LocalPlayer() ) then
  1128. draw.SimpleTextOutlined("Scanning...","Logo",ScrW() / 2 - 25, ScrH() / 2 + 15, Color(255,0,0,255),4,1,1,black)
  1129. elseif Aimon == 1 and LockedTarg != nil then
  1130. draw.SimpleTextOutlined("Locked ("..LockedTarg:Nick()..")","Logo",ScrW() / 2 - 25, ScrH() / 2 + 15, Color(0,255,0,255),4,1,1,black)
  1131. end
  1132.  
  1133. -- WATERMARK --
  1134. function Hera:PulsateColor(col)
  1135. return (math.cos(CurTime()*col)+1)/2
  1136. end
  1137. --draw.SimpleTextOutlined("Hera v"..Hera.version,"Logo",1285,15,Color( 0, 255, Hera:PulsateColor(3)*255, 255 ),4,1,1,black)
  1138.  
  1139. if ( e:IsPlayer() && e:Alive() && e != LocalPlayer() ) then
  1140. if e:GetActiveWeapon() != nil then
  1141. if type(e:GetActiveWeapon()) == "Weapon" then
  1142. if e:GetActiveWeapon() and e:GetActiveWeapon():IsValid() then
  1143. wep = e:GetActiveWeapon():GetPrintName()
  1144.  
  1145. -- ESP INFO --
  1146. if GetConVarNumber("Hera_ESP_Info") == 1 && IsCloseEnough(e) then
  1147. if GetConVarString("Hera_ESP_Text") == "outlined" then
  1148. draw.SimpleTextOutlined( Name..GetAdminType(e), "Hera_coolvetica", maxX2, minY2, TeamColor,4,1,1,Color(0,0,0))
  1149. draw.SimpleTextOutlined( "H: " .. e:Health(), "ESPFont_Small", maxX2, minY2 + 10, HPColor, 4,1, 1, black )
  1150. draw.SimpleTextOutlined( "D: " .. math.floor(Dist), "ESPFont_Small", maxX2, minY2 + 20, InfoCol, 4, 1, 1, black )
  1151. draw.SimpleTextOutlined( "W: " .. wep, "ESPFont_Small", maxX2, minY2 + 30, InfoCol, 4, 1, 1, black)
  1152. elseif GetConVarString("Hera_ESP_Text") == "normal" then
  1153. draw.SimpleTextOutlined( Name..GetAdminType(e), "Hera_coolvetica", maxX2, minY2, TeamColor,4,1,1,Color(0,0,0))
  1154. draw.SimpleText( "H: " .. e:Health(), "ESPFont_Small", maxX2, minY2 + 10, HPColor, 4, 1 )
  1155. draw.SimpleText( "D: " .. math.floor(Dist), "ESPFont_Small", maxX2, minY2 + 20, InfoCol, 4, 1 )
  1156. draw.SimpleText( "W: " .. wep, "ESPFont_Small", maxX2, minY2 + 30, InfoCol, 4, 1 )
  1157. end
  1158. if e:GetFriendStatus() == "friend" then
  1159. draw.SimpleTextOutlined( "[Friend]", "ESPFont_Small", maxX2, minY2 - 10, iceblue, 4, 1,1,black)
  1160. end
  1161. end
  1162.  
  1163. -- ESP BOX --
  1164. if GetConVarNumber("Hera_ESP_Box") == 1 && IsCloseEnough(e) then
  1165. if GetConVarString("Hera_ESP_Box_Type") == "2d" then
  1166. surface.SetDrawColor(GetBoxColor(e))
  1167. surface.DrawLine( maxX, maxY, maxX, minY )
  1168. surface.DrawLine( maxX, minY, minX, minY )
  1169. surface.DrawLine( minX, minY, minX, maxY )
  1170. surface.DrawLine( minX, maxY, maxX, maxY )
  1171. elseif GetConVarString("Hera_ESP_Box_Type") == "3d" then
  1172. surface.SetDrawColor(GetBoxColor(e))
  1173. -- thanks nano
  1174. surface.DrawLine( BOXPOS1.x, BOXPOS1.y, BOXPOS2.x, BOXPOS2.y )
  1175. surface.DrawLine( BOXPOS2.x, BOXPOS2.y, BOXPOS3.x, BOXPOS3.y )
  1176. surface.DrawLine( BOXPOS3.x, BOXPOS3.y, BOXPOS4.x, BOXPOS4.y )
  1177. surface.DrawLine( BOXPOS4.x, BOXPOS4.y, BOXPOS1.x, BOXPOS1.y )
  1178.  
  1179. surface.DrawLine( BOXPOS5.x, BOXPOS5.y, BOXPOS6.x, BOXPOS6.y )
  1180. surface.DrawLine( BOXPOS6.x, BOXPOS6.y, BOXPOS7.x, BOXPOS7.y )
  1181. surface.DrawLine( BOXPOS7.x, BOXPOS7.y, BOXPOS8.x, BOXPOS8.y )
  1182. surface.DrawLine( BOXPOS8.x, BOXPOS8.y, BOXPOS5.x, BOXPOS5.y )
  1183.  
  1184. surface.DrawLine( BOXPOS1.x, BOXPOS1.y, BOXPOS5.x, BOXPOS5.y )
  1185. surface.DrawLine( BOXPOS2.x, BOXPOS2.y, BOXPOS6.x, BOXPOS6.y )
  1186. surface.DrawLine( BOXPOS3.x, BOXPOS3.y, BOXPOS7.x, BOXPOS7.y )
  1187. surface.DrawLine( BOXPOS4.x, BOXPOS4.y, BOXPOS8.x, BOXPOS8.y )
  1188. end
  1189. end
  1190. -- ESP SKELETON --
  1191. if GetConVarNumber("Hera_ESP_Skeleton") == 1 && IsCloseEnough(e) then
  1192. for k, v in pairs( Hera.espbones ) do
  1193. local sPos, ePos = e:GetBonePosition( e:LookupBone( v.S ) ):ToScreen(), e:GetBonePosition( e:LookupBone( v.E ) ):ToScreen()
  1194. if e:IsPlayer() and !e:IsNPC() then
  1195. surface.SetDrawColor(team.GetColor(e:Team()))
  1196. end
  1197. surface.DrawLine(sPos.x,sPos.y,ePos.x,ePos.y)
  1198. end
  1199. end
  1200. -- ESP TRACER --
  1201. if GetConVarNumber("Hera_ESP_Laser") == 1 and LocalPlayer():Alive() then
  1202. local LaserColor = Color(255,0,0,255)
  1203. if Aimon == 1 and LockedTarg != nil and LockedTarg != LocalPlayer() then
  1204. LaserColor = Color(0,255,0,255)
  1205. else
  1206. LaserColor = LaserColor
  1207. end
  1208. local ViewModel = LocalPlayer():GetViewModel()
  1209. local Attach = ViewModel:LookupAttachment("1")
  1210. if ( Attach == 0 ) then Attach = ViewModel:LookupAttachment("muzzle") end
  1211. if !LocalPlayer():Alive() then return end;
  1212. if( LocalPlayer():Alive() || LocalPlayer():GetActiveWeapon() == NULL ) then
  1213. if( !table.HasValue( Hera.laser, LocalPlayer():GetActiveWeapon():GetClass() ) ) then
  1214. local tr = util.TraceLine(util.GetPlayerTrace(LocalPlayer()));
  1215. cam.Start3D( EyePos() , EyeAngles())
  1216. -- Laser
  1217. StartPos = ViewModel:GetAttachment( Attach ).Pos
  1218. EndPos = LocalPlayer():GetEyeTrace().HitPos
  1219. render.SetMaterial( Material( "trails/laser" ) )
  1220. render.DrawBeam(StartPos, EndPos , 3, 0, 0, LaserColor)
  1221. -- End
  1222. render.SetMaterial(Material("Sprites/light_glow02_add_noz"))
  1223. render.DrawQuadEasy(tr.HitPos, (EyePos() - tr.HitPos), 10, 10, LaserColor, 0 )
  1224. cam.End3D()
  1225. end
  1226. end
  1227. end
  1228.  
  1229. -- ESP CROSSHAIR --
  1230. if GetConVarNumber("Hera_ESP_Crosshair") == 1 and GetConVarNumber("Hera_MISC_Thirdperson") == 0 then
  1231. if GetConVarString("Hera_ESP_Crosshair_Type") == "Spinning" then
  1232. local x, y = ScrW() / 2, ScrH() / 2
  1233. local Speed
  1234. if Aimon == 1 and AimbotTarget != nil and AimbotTarget != LocalPlayer() then
  1235. Speed = 5
  1236. else
  1237. Speed = 1
  1238. end
  1239. surface.SetDrawColor(GetColorCrosshair())
  1240. CHPosx = math.Clamp(LocalPlayer():GetEyeTrace().HitPos:ToScreen().x,0,ScrW())
  1241. CHPosy = math.Clamp(LocalPlayer():GetEyeTrace().HitPos:ToScreen().y,0,ScrH())
  1242. mathsin = math.sin(CurTime()*Speed)*4
  1243. mathcos = math.cos(CurTime()*Speed)*4
  1244. mathsin2 = math.sin(CurTime()*Speed+0.1)*4
  1245. mathcos2 = math.cos(CurTime()*Speed+0.1)*4
  1246. mathsin3 = math.sin(CurTime()*Speed-0.1)*4
  1247. mathcos3 = math.cos(CurTime()*Speed-0.1)*4
  1248. surface.DrawLine( CHPosx+mathcos*2,CHPosy+mathsin*2,CHPosx+mathcos*5,CHPosy+mathsin*5 );
  1249. surface.DrawLine( CHPosx-mathcos*2,CHPosy-mathsin*2,CHPosx-mathcos*5,CHPosy-mathsin*5 );
  1250. surface.DrawLine( CHPosx+mathsin*2,CHPosy-mathcos*2,CHPosx+mathsin*5,CHPosy-mathcos*5 );
  1251. surface.DrawLine( CHPosx-mathsin*2,CHPosy+mathcos*2,CHPosx-mathsin*5,CHPosy+mathcos*5 );
  1252. elseif GetConVarString("Hera_ESP_Crosshair_Type") == "Basic" then
  1253. local x, y, s = ScrW() / 2, ScrH() / 2, 10
  1254. surface.SetDrawColor(GetColorCrosshair())
  1255. surface.DrawLine( x, y - s, x, y + s )
  1256. surface.DrawLine( x - s, y, x + s, y )
  1257. elseif GetConVarString("Hera_ESP_Crosshair_Type") == "Diagonal" then
  1258. local x, y, w = ScrW() / 2, ScrH() / 2, 7
  1259. surface.SetDrawColor(GetColorCrosshair())
  1260. surface.DrawLine(x - w, y - w, x + w, y + w)
  1261. surface.DrawLine(x - w, y + w, x + w, y - w)
  1262. end
  1263. end
  1264.  
  1265. -- NOCLIP MARKER --
  1266. if GetConVarNumber("Hera_MISC_CSNoclip") == 1 then
  1267. local me_pos = LocalPlayer():EyePos():ToScreen()
  1268. draw.SimpleText("YOU ARE HERE", "ESPFont_Small", me_pos.x,me_pos.y +10, red, 4, 1 ) // skiddie shit
  1269. end
  1270. end
  1271. end
  1272. end
  1273. end
  1274. end
  1275. end
  1276.  
  1277. function XRay()
  1278. local mat = Hera:CreateMaterial()
  1279. cam.Start3D(EyePos(), EyeAngles())
  1280. for k,v in pairs(ents.FindByClass("prop_*")) do
  1281. if (!CanSee(v)) then
  1282. PropColor = COLOR_NONVISIBLE
  1283. else
  1284. PropColor = COLOR_VISIBLE
  1285. end
  1286. if v:GetVelocity():Length() == 0 then
  1287. PropColor = COLOR_FROZEN
  1288. end
  1289. if v:GetVelocity():Length() == 0 and (!CanSee(v)) then
  1290. PropColor = COLOR_FROZEN_NV
  1291. end
  1292. if GetConVarNumber("Hera_ESP_XRay") == 1 then
  1293. if IsValid(v) and table.HasValue(Hera.props,v:GetModel()) and IsCloseEnough(v) then
  1294. render.SuppressEngineLighting( true )
  1295. render.SetColorModulation(PropColor.r / 255, PropColor.g / 255, PropColor.b / 255)
  1296. render.SetBlend(PropColor.a / 255);
  1297. render.MaterialOverride( mat )
  1298. v:DrawModel()
  1299. render.SuppressEngineLighting( false )
  1300. render.SetColorModulation(1,1,1)
  1301. render.MaterialOverride()
  1302. v:DrawModel()
  1303. v:SetRenderMode(RENDERMODE_TRANSALPHA)
  1304. else
  1305. v:SetColor(Color(255, 255, 255, 255))
  1306. end
  1307. end
  1308. end
  1309. cam.End3D()
  1310. end
  1311.  
  1312.  
  1313.  
  1314. /*****************************************
  1315. Name: Aimbot/Aim functions
  1316. Purpose: Aim for you, because you suck
  1317. Credits: isis
  1318. *******************************************/
  1319.  
  1320.  
  1321. local shouldFire = 0
  1322. // So ugly, ugh.
  1323. // There's better ways of doing this, but making a "toggle" function seemed best.
  1324. function RapidFire()
  1325. if GetConVarNumber("Hera_MISC_RapidFire") == 1 and input.IsMouseDown(MOUSE_LEFT) then
  1326. if shouldFire == 0 then
  1327. shouldFire = 1
  1328. else
  1329. shouldFire = 0
  1330. end
  1331. if shouldFire == 0 then
  1332. old_rcc("+attack")
  1333. else
  1334. old_rcc("-attack")
  1335. end
  1336. elseif shouldFire == 0 then
  1337. old_rcc("-attack")
  1338. if shouldFire == 0 then
  1339. shouldFire = 1
  1340. else
  1341. shouldFire = 0
  1342.  
  1343. end
  1344. end
  1345. end
  1346.  
  1347.  
  1348. /****************************************
  1349. Aimbot functions
  1350. ****************************************/
  1351.  
  1352. /********
  1353. bonescan
  1354. hermes v1
  1355. *******/
  1356.  
  1357. -- get owned
  1358. function IsSpawnProtected(ent)
  1359. if ((GAMEMODE.Name):lower()):find("stronghold") then
  1360. local entcol = ent:GetColor(r, g, b, a)
  1361. if entcol.a < 255 then
  1362. return true
  1363. else
  1364. return false
  1365. end
  1366. end
  1367. end
  1368.  
  1369. function AimSpot(ent)
  1370. if GetConVarNumber("Hera_AIM_TargetBones") == 0 then
  1371. local eyes = ent:LookupAttachment("eyes")
  1372. if GetConVarNumber("Hera_AIM_AAA") == 1 and (ent:EyeAngles().p < -89) then
  1373. return ent:LocalToWorld( ent:OBBCenter())
  1374. elseif(eyes ~= 0) then
  1375. eyes = ent:GetAttachment(eyes)
  1376. if(eyes and eyes.Pos) then
  1377. return eyes.Pos, eyes.Ang
  1378. end
  1379. end
  1380. end
  1381.  
  1382. local bonename = Hera.aimmodels[ent:GetModel()]
  1383. if(not bonename) then
  1384. for k, v in pairs(Hera.bones) do
  1385. if(v[1] == GetConVarString("Hera_AIM_AimSpot")) then
  1386. bonename = v[2]
  1387. end
  1388. end
  1389. bonename = bonename or "ValveBiped.Bip01_Head1"
  1390. end
  1391. local aimbone = ent:LookupBone(bonename);
  1392. if(aimbone) then
  1393. local pos, ang = ent:GetBonePosition(aimbone)
  1394. return pos, ang;
  1395. end
  1396. return ent:LookupBone("ValveBiped.Bip01_Head1")
  1397. --return ent:LocalToWorld(ent:OBBCenter())
  1398. end
  1399.  
  1400. function Exception(ent)
  1401. if (ent == LocalPlayer()) then return false end
  1402. if (ent:Team() == TEAM_SPECTATOR) then return false end
  1403. if (ent:GetMoveType() == MOVETYPE_OBSERVER) then return false end
  1404. if (!ent:Alive() ) then return false end
  1405. if (ent:InVehicle()) then return false end
  1406. if (GetConVarNumber("Hera_AIM_Friendly") == 0 && ent:Team() == LocalPlayer():Team()) then return false end
  1407. if (ent:IsPlayer() and (ent:IsAdmin() or ent:IsSuperAdmin()) and GetConVarNumber("Hera_AIM_Admins") == 0) then return false end
  1408. if (GetConVarNumber("Hera_AIM_Steam") == 0 && ent:GetFriendStatus() == "friend" ) then return false end
  1409. if (GetConVarNumber("Hera_AIM_SH") == 1 && IsSpawnProtected(ent)) then return false end
  1410. if (ent:IsPlayer() and GetConVarNumber("Hera_AIM_IgnoreNoWep") == 1 and not IsValid(ent:GetActiveWeapon())) then return false end
  1411. if (GetConVarNumber("Hera_AIM_SpawnProtection") == 1 and ent:GetColor(r, g, b, a).a < 255) then return false end
  1412. return true
  1413. end
  1414.  
  1415. function HasLOS(ent)
  1416. if(GetConVarNumber("Hera_AIM_CheckLOS") == 0) then return true end
  1417. local trace = util.TraceLine( {
  1418. start = LocalPlayer():GetShootPos(),
  1419. endpos = AimSpot(ent),
  1420. filter = { LocalPlayer(), e },
  1421. mask = MASK_SHOT + CONTENTS_WINDOW
  1422. } )
  1423. if (( trace.Fraction >= 0.99 )) then return true end
  1424. return false
  1425. end
  1426.  
  1427. function InFov( ent )
  1428. local fov = GetConVarNumber("Hera_AIM_Fov")
  1429. if( fov != 180 ) then
  1430. local lpang = LocalPlayer():GetAngles()
  1431. local ang = ( ent:GetBonePosition( ent:LookupBone("ValveBiped.Bip01_Head1") ) - LocalPlayer():EyePos() ):Angle()
  1432. local ady = math.abs( math.NormalizeAngle( lpang.y - ang.y ) )
  1433. local adp = math.abs( math.NormalizeAngle( lpang.p - ang.p ) )
  1434. if( ady > fov || adp > fov ) then return false end
  1435. end
  1436. return true
  1437. end
  1438.  
  1439. /*
  1440. local p, t = Vector(0, 0, 0), Vector(0, 0, 0)
  1441. if ( distance < 4000 && speed > 0 ) then p = self():GetVelocity() * distance / (speed * distance * 0.125) end
  1442. if ( weapon:IsWeapon() && prediction[weapon:GetClass()] != 0 ) then t = target:GetVelocity() * distance / (prediction[weapon:GetClass()] || 150000) end
  1443.  
  1444. vector = vector - p + t
  1445. end
  1446. */
  1447.  
  1448. function AimPrediction( pos , pl )
  1449. if IsValid( pl ) and type( pl:GetVelocity() ) == "Vector" and pl.GetPos and type( pl:GetPos() ) == "Vector" then
  1450. local distance = LocalPlayer():GetPos():Distance( pl:GetPos() )
  1451. local weapon = ( LocalPlayer().GetActiveWeapon and ( IsValid( LocalPlayer():GetActiveWeapon() ) and LocalPlayer():GetActiveWeapon():GetClass() ) )
  1452. if weapon and Hera.prediction[ weapon ] then
  1453. local time = distance / Hera.prediction[ weapon ]
  1454. return pos + pl:GetVelocity() * time
  1455. end
  1456. end
  1457. return pos
  1458. end
  1459.  
  1460. function NormalizeAng(angle)
  1461. if type(angle) == "Angle" then
  1462. return Angle(math.NormalizeAngle(angle.p) , math.NormalizeAngle(angle.y) , math.NormalizeAngle(angle.r))
  1463. end
  1464. return angle
  1465. end
  1466.  
  1467. function GetTargets()
  1468. local target;
  1469. if target == nil then target = LocalPlayer() else target = target end
  1470. local ply = LocalPlayer()
  1471. local angA, angB = 0
  1472. local x, y = ScrW(), ScrH()
  1473. local distance = math.huge;
  1474. for k, v in pairs(player.GetAll()) do
  1475. if (v != LocalPlayer() and v:Alive() and HasLOS(v) and Exception(v) and InFov(v)) then
  1476. local ePos, oldPos, myAngV = v:EyePos():ToScreen(), target:EyePos():ToScreen(), ply:GetAngles()
  1477. local thedist = v:GetPos():DistToSqr(LocalPlayer():GetPos());
  1478. angA = math.Dist( x / 2, y / 2, oldPos.x, oldPos.y )
  1479. angB = math.Dist( x / 2, y / 2, ePos.x, ePos.y )
  1480. if GetConVarString("Hera_AIM_Method") == "Closest To Crosshair" then
  1481. if ( angB <= angA ) then
  1482. target = v;
  1483. elseif target == ply then
  1484. target = v;
  1485. end
  1486. elseif GetConVarString("Hera_AIM_Method") == "Distance" then
  1487. if (thedist < distance) then
  1488. distance = thedist;
  1489. target = v;
  1490. end
  1491. end
  1492. end
  1493. end
  1494. return target
  1495. end
  1496.  
  1497. local function Aimbot(ucmd)
  1498. local asspeed = GetConVarNumber("Hera_AIM_AntiSnap_Speed") / 10
  1499. local aimang = Angle(0,0,0)
  1500. if Aimon == 1 then
  1501. local target = GetTargets()
  1502. if target != nil and target != LocalPlayer() then
  1503.  
  1504. -- Offset
  1505. local Aimspot;
  1506. if GetConVarNumber("Hera_AIM_Prediction") == 1 then
  1507. Aimspot = AimPrediction(AimSpot(target)) - Vector(0,0,GetConVarNumber("Hera_AIM_Offset"))
  1508. Aimspot = Aimspot + target:GetVelocity() * ( 1 / 66 ) - LocalPlayer():GetVelocity() * ( 1 / 66 )
  1509. else
  1510. Aimspot = (AimSpot(target)) - Vector(0,0,GetConVarNumber("Hera_AIM_Offset"))
  1511. Aimspot = Aimspot + target:GetVelocity() / 50 - LocalPlayer():GetVelocity() / 50
  1512. end
  1513. Angel = PredictSpread(ucmd,(Aimspot - LocalPlayer():GetShootPos()):GetNormal():Angle() )
  1514. Angel.p = math.NormalizeAngle( Angel.p ) + 0.2
  1515. Angel.y = math.NormalizeAngle( Angel.y ) + 0.2
  1516.  
  1517. -- Anti snap
  1518. if GetConVarNumber("Hera_AIM_AntiSnap") == 1 then
  1519. Angle1 = LocalPlayer():EyeAngles()
  1520. local Smooth1 = math.Approach(Angle1.p, Angel.p, asspeed)
  1521. local Smooth2 = math.Approach(Angle1.y , Angel.y, asspeed)
  1522. aimang = Angle (Smooth1, Smooth2, 0)
  1523. else
  1524. -- Normal
  1525. aimang = Angle( Angel.p, Angel.y, 0 )
  1526. end
  1527. -- faggot
  1528. _G.debug.getregistry()["CUserCmd"].SetViewAngles(ucmd, aimang)
  1529. if GetConVarNumber("Hera_AIM_Auto") == 1 then
  1530. ucmd:SetButtons(bit.bor(ucmd:GetButtons(),IN_ATTACK))
  1531. end
  1532. if GetConVarNumber("Hera_AIM_SH") == 1 then
  1533. ucmd:SetButtons(bit.bor(ucmd:GetButtons(),IN_ATTACK2))
  1534. end
  1535. end
  1536. end
  1537. end
  1538.  
  1539. Hera:AddCMD("+Hera_Aim",function()
  1540. Aimon = 1
  1541. end)
  1542.  
  1543. Hera:AddCMD("-Hera_Aim",function()
  1544. Aimon = 0
  1545. end)
  1546.  
  1547. /**************************
  1548. Name: Anti-Aim
  1549. Purpose: HVH feature
  1550. **************************/
  1551. Hera:RegisterHook("CreateMove",function(cmd, u)
  1552. local caim
  1553. local getangs = cmd:GetViewAngles()
  1554. if GetConVarNumber("Hera_AIM_Anti") == 1 then
  1555. if GetConVarString("Hera_AIM_Anti_Type") == "Invert" then
  1556. if (!LocalPlayer():KeyDown(IN_ATTACK)) then
  1557. cmd:SetViewAngles(Angle(181, getangs.y, 180))
  1558. end
  1559. elseif GetConVarString("Hera_AIM_Anti_Type") == "Spin" then
  1560. if (!LocalPlayer():KeyDown(IN_ATTACK) and !LocalPlayer():KeyDown(IN_ATTACK2)) then
  1561. caim = Angle(0,math.random(-89,89),0)
  1562. cmd:SetViewAngles(NormalizeAng(caim))
  1563. end
  1564. elseif GetConVarString("Hera_AIM_Anti_Type") == "Random Pitch" then
  1565. if (!LocalPlayer():KeyDown(IN_ATTACK)) then
  1566. cmd:SetViewAngles(Angle(math.random(181,180), getangs.y, 180))
  1567. end
  1568. elseif GetConVarString("Hera_AIM_Anti_Type") == "Invert/Spin" then
  1569. if (!LocalPlayer():KeyDown(IN_ATTACK) and !LocalPlayer():KeyDown(IN_ATTACK2)) then
  1570. caim = math.random(-89,89)
  1571. cmd:SetViewAngles(Angle(181, NormalizeAng(caim), 180))
  1572. end
  1573. elseif GetConVarString("Hera_AIM_Anti_Type") == "Var" then
  1574. if (!LocalPlayer():KeyDown(IN_ATTACK) and !LocalPlayer():KeyDown(IN_ATTACK2)) then
  1575. cmd:SetViewAngles(Angle(GetConVarNumber("Hera_AIM_Anti_Angle_X"),getangs.y,GetConVarNumber("Hera_AIM_Anti_Angle_Z")))
  1576. end
  1577. end
  1578. end
  1579. end)
  1580.  
  1581. local LastReload = 0
  1582. local dontreload = {"weapon_physgun" , "gmod_tool" , "weapon_gravgun", "weapon_keys", "weapon_pocket", "pocket", "rp_pocket", "rp_keys", "keys"}
  1583. function AutoReload()
  1584. if (GetConVarNumber("Hera_AIM_Reload") == 1 and LocalPlayer():Alive() and IsValid( LocalPlayer():GetActiveWeapon() ) and !table.HasValue( dontreload, LocalPlayer():GetActiveWeapon():GetClass() ) ) then
  1585. if( LocalPlayer():GetActiveWeapon():Clip1() <= 0 and CurTime() > ( LastReload + 5 ) ) then
  1586. old_rcc( "+reload" )
  1587. LastReload = CurTime()
  1588. Hera:AddTimer( .2, 1, function()
  1589. old_rcc( "-reload" )
  1590. end )
  1591. end
  1592. end
  1593. end
  1594.  
  1595. local function StartFire()
  1596. old_rcc("+attack")
  1597. end
  1598.  
  1599. local function StopFire()
  1600. old_rcc("-attack")
  1601. end
  1602. -- thx hyperion
  1603. function TriggerBot()
  1604. if(GetConVarNumber("Hera_AIM_Trigger") == 1) then
  1605. local pos = LocalPlayer():GetShootPos()
  1606. local ang = LocalPlayer():GetAimVector()
  1607. local tracedata = {};
  1608. tracedata.start = pos
  1609. tracedata.endpos = pos+(ang*9999999999999)
  1610. local trace = util.TraceLine(tracedata)
  1611. if(trace.HitNonWorld) then
  1612. target = trace.Entity
  1613. if(target:IsPlayer()) then
  1614. StartFire()
  1615. timer.Simple(0.1, StopFire)
  1616. end
  1617. end
  1618. end
  1619. end
  1620.  
  1621. /****************************
  1622. Name: Misc
  1623. Purpose: Misc features
  1624. *****************************/
  1625. local Speedhacking = false
  1626. -- i use a private module for my convar forcing, so anyone else will use cvar3
  1627. Hera:AddCMD("+Hera_Speed",function()
  1628. Speedhacking = true
  1629. if Hera:IsDev(LocalPlayer()) then
  1630. -- hera.ForceCVar(GetConVar("sv_cheats"):SetValue(1))
  1631. -- hera.ForceCVar(GetConVar("host_timescale"):SetValue(GetConVarNumber("Hera_MISC_SpeedHack_Speed")))
  1632. old_rcc("sp00f_bs_host_timescale",GetConVarNumber("Hera_MISC_SpeedHack_Speed"));
  1633. else
  1634. GetConVar("sv_cheats"):SetValue(1)
  1635. GetConVar("host_timescale"):SetValue(GetConVarNumber("Hera_MISC_SpeedHack_Speed"))
  1636. end
  1637. end)
  1638.  
  1639. Hera:AddCMD("-Hera_Speed",function()
  1640. Speedhacking = false
  1641. if Hera:IsDev(LocalPlayer()) then
  1642. --hera.ForceCVar(GetConVar("sv_cheats"):SetValue(0))
  1643. --hera.ForceCVar(GetConVar("host_timescale"):SetValue(1))
  1644. old_rcc("sp00f_bs_host_timescale",1)
  1645. else
  1646. GetConVar("sv_cheats"):SetValue(0)
  1647. GetConVar("host_timescale"):SetValue(1)
  1648. end
  1649. end)
  1650.  
  1651. /*
  1652. local next_change = GetConVarNumber("sv_namechange_cooldown_seconds") + 0.5
  1653. function NameChanger()
  1654. local ply = LocalPlayer()
  1655. local e = player.GetAll()[ math.random( 1, #player.GetAll() ) ]
  1656. local curtime = CurTime()
  1657. if GetConVarNumber("Hera_MISC_Namechanger") == 1 and Hera:IsDev(LocalPlayer()) then
  1658. if next_change < curtime then
  1659. if ( !e:IsAdmin() && e != ply ) then
  1660. Hera:AddTimer( 1, 1 , function()
  1661. if ((GAMEMODE.Name):lower()):find("darkrp") then
  1662. LocalPlayer():ConCommand("say /rpname ".. e:Nick() .. " %" ) // 'can't rp name ~'
  1663. else
  1664. LocalPlayer():ConCommand( "bs_namechange " .. e:Nick() .. " ~" )
  1665. Hera.Notify(false,Color(255,255,255),"Changed your name to "..e:Nick().." ~")
  1666. end
  1667. end)
  1668. end
  1669. end
  1670. end
  1671. end
  1672. Hera:AddTimer( next_change , 0 , function() NameChanger() end )
  1673. */
  1674.  
  1675. Hera:RegisterHook("CreateMove",function(cmd)
  1676. if GetConVarNumber("Hera_MISC_BunnyHop") == 1 and bit.band( cmd:GetButtons(), IN_JUMP ) ~= 0 then
  1677. if !LocalPlayer():IsOnGround() then
  1678. cmd:SetButtons( bit.band( cmd:GetButtons(), bit.bnot( IN_JUMP ) ) )
  1679. end
  1680. end
  1681. end)
  1682.  
  1683. function Misc()
  1684. if GetConVarNumber("Hera_AIM_NoRecoil") == 1 then
  1685. if LocalPlayer():GetActiveWeapon().Primary then
  1686. LocalPlayer():GetActiveWeapon().Primary.Recoil = 0
  1687. end
  1688. end
  1689. if GetConVarNumber("Hera_MISC_ChatSpam") == 1 then
  1690. LocalPlayer():ConCommand("say "..GetConVarString("Hera_MISC_ChatSpam_Msg").."["..math.random(1,999).."]")
  1691. end
  1692. if GetConVarNumber("Hera_MISC_RPGod") == 1 then
  1693. if LocalPlayer():Health() < 100 then
  1694. LocalPlayer():ConCommand("say /buyhealth") -- spam buyhealth
  1695. end
  1696. end
  1697. if GetConVarNumber("Hera_MISC_Flashlight") == 1 then
  1698. old_rcc("impulse","100")
  1699. end
  1700. if GetConVarNumber("Hera_MISC_Fullbright") == 1 then
  1701. GetConVar("mat_fullbright"):SetValue(1)
  1702. else
  1703. GetConVar("mat_fullbright"):SetValue(0)
  1704. end
  1705. if GetConVarNumber("Hera_MISC_CSNoclip") == 1 then
  1706. CS_NC = LocalPlayer():EyePos();
  1707. end
  1708. if GetConVarNumber("Hera_MISC_RemoveSkybox") == 1 then
  1709. GetConVar("gl_clear"):SetValue(1)
  1710. GetConVar("r_drawskybox"):SetValue(0)
  1711. GetConVar("r_3dsky"):SetValue(0)
  1712. else
  1713. GetConVar("gl_clear"):SetValue(0)
  1714. GetConVar("r_drawskybox"):SetValue(1)
  1715. GetConVar("r_3dsky"):SetValue(1)
  1716. end
  1717. end
  1718.  
  1719. Hera:RegisterHook("CalcView",function(ply, pos, angles, fov)
  1720. if GetConVarNumber("Hera_MISC_Thirdperson") == 1 and LocalPlayer():Alive() then
  1721. local view = {}
  1722. view.origin = pos-(angles:Forward()*GetConVarNumber("Hera_MISC_Thirdperson_Dist"))
  1723. view.angles = angles
  1724. view.fov = fov
  1725. return view
  1726. elseif(GetConVarNumber("Hera_MISC_CSNoclip") == 1 and CS_NC) then
  1727. local ang = angles:Forward()
  1728. if LocalPlayer():KeyDown( IN_FORWARD ) and GetConVarNumber("Hera_MISC_CSNoclip") == 1 then
  1729. CS_NC = CS_NC + LocalPlayer():GetAimVector() * speed
  1730. end
  1731. if LocalPlayer():KeyDown( IN_BACK ) and GetConVarNumber("Hera_MISC_CSNoclip") == 1 then
  1732. CS_NC = CS_NC - LocalPlayer():GetAimVector() * speed
  1733. end
  1734. if LocalPlayer():KeyDown( IN_MOVERIGHT ) and GetConVarNumber("Hera_MISC_CSNoclip") == 1 then
  1735. CS_NC = CS_NC + ang:Angle():Right() * speed
  1736. end
  1737. if LocalPlayer():KeyDown( IN_MOVELEFT ) and GetConVarNumber("Hera_MISC_CSNoclip") == 1 then
  1738. CS_NC = CS_NC - ang:Angle():Right() * speed
  1739. end
  1740. if LocalPlayer():KeyDown( IN_JUMP ) and GetConVarNumber("Hera_MISC_CSNoclip") == 1 then
  1741. CS_NC = CS_NC + Vector( 0, 0, speed )
  1742. end
  1743. if LocalPlayer():KeyDown( IN_SPEED ) and GetConVarNumber("Hera_MISC_CSNoclip") == 1 then
  1744. speed = ( GetConVarNumber("Hera_MISC_CSNoclip_Speed") * 3 * ( FrameTime() / 2 ) ) * 100
  1745. elseif LocalPlayer():KeyDown( IN_DUCK ) and GetConVarNumber("Hera_MISC_CSNoclip") == 1 then
  1746. speed = ( GetConVarNumber("Hera_MISC_CSNoclip_Speed") / 3 * ( FrameTime() / 2 ) ) * 100
  1747. else
  1748. speed = ( GetConVarNumber("Hera_MISC_CSNoclip_Speed") * ( FrameTime() / 2 ) ) * 100
  1749. end
  1750. local view = {}
  1751. view.origin = CS_NC
  1752. view.angles = angles
  1753. view.fov = fov
  1754. return view
  1755. else
  1756. CS_NC = LocalPlayer():EyePos()
  1757. end
  1758. return GAMEMODE:CalcView(ply, pos, angles, fov)
  1759. end)
  1760. Hera:RegisterHook("ShouldDrawLocalPlayer",function()
  1761. if GetConVarNumber("Hera_MISC_Thirdperson") == 1 then
  1762. return true -- pro
  1763. end
  1764. end)
  1765. function CSNoclip(ucmd)
  1766. if GetConVarNumber("Hera_MISC_CSNoclip") == 1 then
  1767. ucmd:SetForwardMove(0);
  1768. ucmd:SetSideMove(0);
  1769. ucmd:SetUpMove(0);
  1770. end
  1771. end
  1772.  
  1773.  
  1774. function ShowNotifi()
  1775. -- now spectating
  1776. for k, v in pairs(player.GetAll()) do
  1777. if (IsValid(v:GetObserverTarget()) and v:GetObserverTarget():IsPlayer() and v:GetObserverTarget() == LocalPlayer()) then
  1778. if(not table.HasValue(Hera.spectators, v)) then
  1779. table.insert(Hera.spectators, v);
  1780. if GetConVarNumber("Hera_MISC_ShowSpec") == 1 then
  1781. Hera.Notify(true,red,""..v:Nick().." is now spectating you!")
  1782. surface.PlaySound("buttons/blip1.wav")
  1783. end
  1784. end
  1785. end
  1786. end
  1787. -- no longer spectating
  1788. for k, v in pairs(Hera.spectators) do
  1789. if (not IsValid(v) or not IsValid(v:GetObserverTarget()) or not v:GetObserverTarget():IsPlayer() or (v:GetObserverTarget() ~= LocalPlayer())) then
  1790. table.remove(Hera.spectators, k);
  1791. if GetConVarNumber("Hera_MISC_ShowSpec") == 1 then
  1792. Hera.Notify(true,green,""..v:Nick().." is no longer spectating you!")
  1793. end
  1794. end
  1795. end
  1796. -- admin join
  1797. if GetConVarNumber("Hera_MISC_ShowAdmins") == 1 then
  1798. for k, v in pairs(player.GetAll()) do
  1799. if (v:IsAdmin() and not table.HasValue(Hera.admins, v)) then
  1800. table.insert(Hera.admins, v);
  1801. Hera.Notify(true,white,"Admin " .. v:Nick() .. " has joined!")
  1802. surface.PlaySound("buttons/blip1.wav");
  1803. end
  1804. end
  1805. end
  1806. end
  1807.  
  1808.  
  1809. local commands = { "forward" , "back" , "jump" , "moveleft" , "moveright", "duck" }
  1810. function AntiAfk()
  1811. if GetConVarNumber("Hera_MISC_AntiAFK") == 1 then
  1812. local command1 = table.Random( commands )
  1813. local command2 = table.Random( commands )
  1814. Hera:AddTimer( 1, 1, function()
  1815. old_rcc( "+"..command1 )
  1816. old_rcc( "+"..command2 )
  1817. end )
  1818. Hera:AddTimer( 2, 1, function()
  1819. old_rcc("-"..command1 )
  1820. old_rcc("-"..command2 )
  1821. end )
  1822. end
  1823. end
  1824. Hera:AddTimer( 5 , 0 , function() AntiAfk() end )
  1825.  
  1826. // Traitor finder functions
  1827. local PlayerIsTraitor = false
  1828. timer.Simple( 3, function()
  1829. if ( gmod.GetGamemode().Name ) == "Trouble in Terrorist Town" then
  1830. local UsedWeapons = {}
  1831. local MapWeapons = {}
  1832. function IsATraitor( ply )
  1833. for k, v in pairs( Hera.traitors ) do
  1834. if v == ply then
  1835. return true
  1836. else
  1837. return false
  1838. end
  1839. end
  1840. end
  1841. Hera.tweps = {
  1842. "weapon_ttt_c4",
  1843. "weapon_ttt_knife",
  1844. "weapon_ttt_phammer",
  1845. "weapon_ttt_sipistol",
  1846. "weapon_ttt_flaregun",
  1847. "weapon_ttt_push",
  1848. "weapon_ttt_radio",
  1849. "weapon_ttt_teleport",
  1850. "(Disguise)",
  1851. }
  1852. timer.Create("TTT", 0.8, 0, function()
  1853. if GetConVarNumber("Hera_MISC_TTT") == 1 then
  1854. if !IsATraitor( ply ) then
  1855. for k, v in pairs( ents.FindByClass( "player" ) ) do
  1856. if IsValid( v ) then
  1857. if (!v:IsDetective()) then
  1858. if v:Team() ~= TEAM_SPECTATOR then
  1859. for wepk, wepv in pairs( Hera.tweps ) do
  1860. for entk, entv in pairs( ents.FindByClass( wepv ) ) do
  1861. if IsValid( entv ) then
  1862. cookie.Set( entv, 100 - wepk )
  1863. if !table.HasValue( UsedWeapons, cookie.GetNumber( entv ) ) then
  1864. if !table.HasValue( MapWeapons, cookie.GetNumber( entv ) ) then
  1865. local EntPos = ( entv:GetPos() - Vector(0,0,35) )
  1866. if entv:GetClass() == wepv then
  1867. if v:GetPos():Distance( EntPos ) <= 1 then
  1868. table.insert( Hera.traitors, v )
  1869. Hera.Notify(sound,red,v:Nick() .. " has traitor weapon: " .. wepv )
  1870. if !table.HasValue( UsedWeapons, cookie.GetNumber( entv ) ) then
  1871. table.insert( UsedWeapons, cookie.GetNumber( entv ) )
  1872. else
  1873. if !table.HasValue( MapWeapons, cookie.GetNumber( entv ) ) then
  1874. table.insert( MapWeapons, cookie.GetNumber( entv ) )
  1875. end
  1876. end
  1877. end
  1878. end
  1879. end
  1880. end
  1881. end
  1882. end
  1883. end
  1884. end
  1885. end
  1886. end
  1887. end
  1888. end
  1889. end
  1890. end )
  1891.  
  1892. Hera:RegisterHook("HUDPaint",function()
  1893. if GetConVarNumber("Hera_MISC_TTT") == 1 then
  1894. for k, e in pairs( Hera.traitors ) do
  1895. local maxX, minX, maxY, minY, maxX2, minX2, maxY2, minY2, minYhp, maxYhp = Hera:CreatePos( e )
  1896. if IsValid( e ) then
  1897. if e:Team() ~= TEAM_SPECTATOR then
  1898. if ( !e:IsDetective() ) then
  1899. PlayerIsTraitor = true
  1900. draw.SimpleTextOutlined( "[TRAITOR]", "ESPFont", maxX2, minY2 -20, red, 4, 1, 1, black )
  1901. end
  1902. end
  1903. end
  1904. end
  1905. end
  1906. end)
  1907.  
  1908. Hera:RegisterHook("TTTPrepareRound",function()
  1909. timer.Simple( 2, function()
  1910. for k, v in pairs( Hera.traitors ) do
  1911. table.remove( Hera.traitors, k )
  1912. Hera.traitors = {}
  1913. end
  1914. for k, v in pairs( UsedWeapons ) do
  1915. table.remove( UsedWeapons, k )
  1916. UsedWeapons = {}
  1917. end
  1918. for k, v in pairs( MapWeapons ) do
  1919. table.remove( MapWeapons, k )
  1920. MapWeapons = {}
  1921. end
  1922. end )
  1923. end )
  1924. end
  1925. end )
  1926.  
  1927. /*************************
  1928. MENU FUNCTIONS
  1929. *************************/
  1930. Hera:AddCMD("+Hera_Menu", function()
  1931. Menu = vgui.Create("DFrame")
  1932. Menu:SetSize(450,360)
  1933. Menu:SetTitle(":: Hera :: Version "..Hera.version.." ::") -- Ignore the spacing.
  1934. Menu:Center()
  1935. Menu:MakePopup()
  1936. Menu.Paint = function()
  1937. local mW, mH, x, y = Menu:GetWide(), Menu:GetTall(), ScrW() / 2, ScrH() / 2
  1938. draw.RoundedBox( 0, 0, 0, mW, mH, Color(100,100,255,50 ) ) -- old color: 116,187,251,50
  1939. surface.SetDrawColor(black);
  1940. surface.DrawOutlinedRect( 0, 0, mW , mH )
  1941. surface.DrawOutlinedRect( 0, 25, mW, mH )
  1942. end
  1943.  
  1944. local Sheet = vgui.Create("DPropertySheet",Menu)
  1945. Sheet:SetPos( 0, 25 )
  1946. Sheet:SetSize( 450, 350 )
  1947. Sheet.Paint = function()
  1948. draw.RoundedBox( 0, 0, 0, Sheet:GetWide(), Sheet:GetTall(), Color(0,0,0,150) )
  1949. end
  1950.  
  1951. // fuck;
  1952. local Page1 = vgui.Create("DLabel")
  1953. Page1:SetParent( Sheet )
  1954. Page1:SetPos( 0 , 10 )
  1955. Page1:SetText("")
  1956. Page1.Paint = function()
  1957. draw.SimpleTextOutlined("Hera v"..Hera.version.."","Logo",5,5,cyan,TEXT_ALIGN_LEFT,TEXT_ALIGN_LEFT,2,black)
  1958. end
  1959. local Page2 = vgui.Create("DLabel")
  1960. Page2:SetParent( Sheet )
  1961. Page2:SetPos( 0 , 10 )
  1962. Page2:SetText("")
  1963. Page2.Paint = function()
  1964. end
  1965. local Page3 = vgui.Create("DLabel")
  1966. Page3:SetParent( Sheet )
  1967. Page3:SetPos( 0 , 10 )
  1968. Page3:SetText("")
  1969. Page3.Paint = function()
  1970. end
  1971. local Page4 = vgui.Create("DLabel")
  1972. Page4:SetParent( Sheet )
  1973. Page4:SetPos( 0 , 10 )
  1974. Page4:SetText("")
  1975. Page4.Paint = function()
  1976. end
  1977. local Page5 = vgui.Create("DLabel")
  1978. Page5:SetParent( Sheet )
  1979. Page5:SetPos( 0 , 10 )
  1980. Page5:SetText("")
  1981. Page5.Paint = function()
  1982. end
  1983. -----------------------
  1984. --[[ MAIN TAB SHIT ]]--
  1985. -----------------------
  1986. // LOAD SHIT
  1987. local ReloadHooksButton = vgui.Create("DButton",Page1)
  1988. ReloadHooksButton:SetText("Reload Hooks")
  1989. ReloadHooksButton:SetPos( 10, 30 )
  1990. ReloadHooksButton:SetSize( 200, 25)
  1991. ReloadHooksButton.DoClick = function()
  1992. Hera.hooks:reload()
  1993. Hera.Notify(green,"Reloaded hooks")
  1994. end
  1995.  
  1996. local UnloadCheat = vgui.Create("DButton",Page1)
  1997. UnloadCheat:SetText("Unload Cheat")
  1998. UnloadCheat:SetPos( 220, 30 )
  1999. UnloadCheat:SetSize( 200, 25)
  2000. UnloadCheat.DoClick = function()
  2001. Hera:unload()
  2002. Hera.Notify(red,"UNLOADED ENTIRE CHEAT!")
  2003. end
  2004. // Log viewer
  2005. local LogPanel = vgui.Create("DPanelList",Page1)
  2006. LogPanel:SetPos( 10,55 )
  2007. LogPanel:SetSize( Sheet:GetWide()-22, 195)
  2008. LogPanel:SetSpacing( 5 )
  2009. LogPanel:EnableHorizontal( false )
  2010. LogPanel:EnableVerticalScrollbar( false )
  2011. local DLog = vgui.Create("DListView", LogPanel)
  2012. DLog:SetPos(2,24) DLog:SetMultiSelect(false)
  2013. DLog:SetSize(LogPanel:GetWide()-19,LogPanel:GetTall()-28)
  2014. DLog:AddColumn("Log")
  2015. DLog:SetMultiline( true )
  2016. for i=#Hera.log,1,-1 do
  2017. DLog:AddLine(Hera.log[i])
  2018. end
  2019.  
  2020. local ClearLogs = vgui.Create("DButton",Page1)
  2021. ClearLogs:SetText("Clear log")
  2022. ClearLogs:SetPos( 120, 260 )
  2023. ClearLogs:SetSize( 200, 40)
  2024. ClearLogs.DoClick = function()
  2025. Hera.log = {};
  2026. Hera.Notify(false,Color(255,255,255),"Cleared log.")
  2027. end
  2028.  
  2029. -------------------------
  2030. --[[ AIMBOT TAB SHIT ]]--
  2031. -------------------------
  2032. Hera:AddCheckBox("Autoshoot","Hera_AIM_Auto",Page2,10,10,"Autoshoot when locked")
  2033. Hera:AddCheckBox("Friendly Fire","Hera_AIM_Friendly",Page2,10,30,"Target your own team")
  2034. Hera:AddCheckBox("Target Steam Friends","Hera_AIM_Steam",Page2,10,50,"Target Steam Friends")
  2035. Hera:AddCheckBox("Target Admins","Hera_AIM_Admins",Page2,10,70,"Target Admins")
  2036. Hera:AddCheckBox("No-Recoil","Hera_AIM_NoRecoil",Page2,10,90,"Remove Recoil")
  2037. Hera:AddCheckBox("Triggerbot","Hera_AIM_Trigger",Page2,10,110,"Auto-shoots when looking at a player")
  2038. Hera:AddCheckBox("Stronghold mode","Hera_AIM_SH",Page2,10,130,"Aims down sights when locked, to reduce spread.")
  2039. Hera:AddCheckBox("Anti-Aim","Hera_AIM_Anti",Page2,10,150,"HvH feature, makes it 'harder' for others to aimbot you.")
  2040. Hera:AddCheckBox("Anti Anti-Aim","Hera_AIM_AAA",Page2,10,170,"HvH feature, target center if target has anti-aim [Must have 'Target Bone' on]")
  2041. Hera:AddCheckBox("Anti-Snap","Hera_AIM_AntiSnap",Page2,200,10,"Changes the speed of the aimbot, making it look more legit")
  2042. Hera:AddCheckBox("Auto Reload","Hera_AIM_Reload",Page2,200,30,"Reload when you run out of ammo")
  2043. Hera:AddCheckBox("Target Bones","Hera_AIM_TargetBones",Page2,200,50,"Target custom bone instead of eye position")
  2044. Hera:AddCheckBox("Ignore Weaponless Players","Hera_AIM_IgnoreNoWep",Page2,200,70,"Ignore players that don't have a weapon")
  2045. Hera:AddCheckBox("Check LOS","Hera_AIM_CheckLos",Page2,200,90,"Check line-of-sight")
  2046. Hera:AddCheckBox("Prediction","Hera_AIM_Prediction",Page2,200,110,"Predict time/distance making the aimbot more accurate")
  2047. Hera:AddCheckBox("Anti Spawn Protection","Hera_AIM_SpawnProtection",Page2,200,130,"Ignore spawn protected players.")
  2048. --Hera:AddCheckBox("Auto Wall","Hera_AIM_AutoWall",Page2,200,150,"Shoot through penetrable surfaces, works best with Mad Cow's weapons")
  2049.  
  2050. Hera:AddSlider("Anti-Aim Angle X","Hera_AIM_Anti_Angle_X",Page2,-181,180,1,10,190,350,"Anti-Aim Angle X (For advanced users only)")
  2051. Hera:AddSlider("Anti-Aim Angle Z","Hera_AIM_Anti_Angle_Z",Page2,-181,180,1,10,210,350,"Anti-Aim Angle Z (For advanced users only)")
  2052. Hera:AddSlider("Field Of View","Hera_AIM_Fov",Page2,0,180,1,10,230,350,"FOV in which the aimbot will target players")
  2053. Hera:AddSlider("Anti-Snap Speed","Hera_AIM_AntiSnap_Speed",Page2,0,50,1,10,250,350,"Changes your anti-snap speed")
  2054. Hera:AddSlider("Aimbot Offset","Hera_AIM_Offset",Page2,-25,25,1,10,270,350,"Offsets your aimspot")
  2055.  
  2056. local AimLabel1 = vgui.Create("DLabel")
  2057. AimLabel1:SetParent( Page2 )
  2058. AimLabel1:SetPos(350,265)
  2059. AimLabel1:SetText("Aimspot")
  2060. AimLabel1:SetTextColor(Color(255,255,255,255))
  2061. AimLabel1:SizeToContents()
  2062.  
  2063. local AimList = vgui.Create( "DComboBox", Page2)
  2064. AimList:SetPos(350,280)
  2065. AimList:SetSize( 82, 20 )
  2066. for k, v in pairs(Hera.bones) do
  2067. AimList:AddChoice(v[1]);
  2068. end
  2069. AimList.OnSelect = function(self)
  2070. Hera.Notify(false,lblue,"Set aimspot to bone "..self:GetValue()..".")
  2071. old_rcc("Hera_AIM_AimSpot",self:GetValue())
  2072. end
  2073.  
  2074. local AimLabel2 = vgui.Create("DLabel")
  2075. AimLabel2:SetParent( Page2 )
  2076. AimLabel2:SetPos(350,225)
  2077. AimLabel2:SetText("Anti-Aim Type")
  2078. AimLabel2:SetTextColor(Color(255,255,255,255))
  2079. AimLabel2:SizeToContents()
  2080.  
  2081. local AAList = vgui.Create( 'DComboBox', Page2 )
  2082. AAList:SetPos( 350, 240 )
  2083. AAList:SetSize( 82, 20 )
  2084. AAList:AddChoice("Invert")
  2085. AAList:AddChoice("Spin")
  2086. AAList:AddChoice("Random Pitch")
  2087. AAList:AddChoice("Invert/Spin")
  2088. AAList:AddChoice("Var")
  2089. AAList.OnSelect = function( self )
  2090. old_rcc("Hera_AIM_Anti_Type",self:GetValue())
  2091. end
  2092.  
  2093. local AimLabel3 = vgui.Create("DLabel")
  2094. AimLabel3:SetParent( Page2 )
  2095. AimLabel3:SetPos(350,185)
  2096. AimLabel3:SetText("Aimbot Method")
  2097. AimLabel3:SetTextColor(Color(255,255,255,255))
  2098. AimLabel3:SizeToContents()
  2099.  
  2100. local AimMethod = vgui.Create( 'DComboBox', Page2 )
  2101. AimMethod:SetPos( 350, 200 )
  2102. AimMethod:SetSize( 82, 20 )
  2103. --AimMethod:AddChoice("Closest To Crosshair")
  2104. AimMethod:AddChoice("Distance")
  2105. AimMethod.OnSelect = function( self )
  2106. old_rcc("Hera_AIM_Method",self:GetValue())
  2107. end
  2108.  
  2109.  
  2110. -------------------------------------
  2111. --[[ ESP | WALLHACK | VISUAL TAB ]]--
  2112. -------------------------------------
  2113. Hera:AddCheckBox("[ESP] Info","Hera_ESP_Info",Page3,10,10,"Show player's info on the ESP")
  2114. Hera:AddCheckBox("[ESP] Chams","Hera_ESP_Chams",Page3,10,30,"Show a player's model through walls")
  2115. Hera:AddCheckBox("[ESP] Bounding Box","Hera_ESP_Box",Page3,10,50,"Draw a box around players")
  2116. Hera:AddCheckBox("[ESP] Show Skeleton","Hera_ESP_Skeleton",Page3,10,70,"Show player's bones")
  2117. Hera:AddCheckBox("[ESP] Prop XRay","Hera_ESP_Xray",Page3,10,90,"Show common propkilling props through walls")
  2118.  
  2119. Hera:AddCheckBox("[VIS] Crosshair","Hera_ESP_Crosshair",Page3,150,10,"Draw a crosshair on your screen")
  2120. Hera:AddCheckBox("[VIS] Laser Sight","Hera_ESP_Laser",Page3,150,30,"Draw a laser from your gun to your aimspot")
  2121. --Hera:AddCheckBox("[VIS] Laser Tracer (Prop)","Hera_ESP_PropTrace",Page3,150,50,"Draw a laser from a prop to where it's moving")
  2122.  
  2123. Hera:AddSlider("ESP Distance","Hera_ESP_Distance",Page3,0,10000,1,10,260,300,"Distance in which the ESP will render")
  2124.  
  2125.  
  2126. local ChamsList = vgui.Create( "DComboBox", Page3)
  2127. ChamsList:SetPos(350,280)
  2128. ChamsList:SetSize( 82, 20 )
  2129. ChamsList:AddChoice("Solid")
  2130. ChamsList:AddChoice("Wireframe")
  2131. ChamsList.OnSelect = function(self)
  2132. Hera.Notify(false,lblue,"Set chams type to "..self:GetValue()..".")
  2133. old_rcc("Hera_ESP_Chams_Material",self:GetValue())
  2134. end
  2135.  
  2136. local TextList = vgui.Create( 'DComboBox', Page3 )
  2137. TextList:SetPos( 350, 240 )
  2138. TextList:SetSize( 82, 20 )
  2139. TextList:AddChoice( 'Outlined' )
  2140. TextList:AddChoice( 'Non-Outlined' )
  2141. TextList.OnSelect = function( self )
  2142. if self:GetValue() == 'Outlined' then
  2143. old_rcc("Hera_ESP_Text","outlined")
  2144. elseif self:GetValue() == 'Non-Outlined' then
  2145. old_rcc("Hera_ESP_Text","normal")
  2146. end
  2147. end
  2148.  
  2149. local CrosshairList = vgui.Create( "DComboBox", Page3)
  2150. CrosshairList:SetPos(350,200)
  2151. CrosshairList:SetSize( 82, 20 )
  2152. CrosshairList:AddChoice("Spinning")
  2153. CrosshairList:AddChoice("Basic")
  2154. CrosshairList:AddChoice("Diagonal")
  2155. CrosshairList.OnSelect = function(self)
  2156. Hera.Notify(false,lblue,"Set crosshair type to "..self:GetValue()..".")
  2157. old_rcc("Hera_ESP_Crosshair_Type",self:GetValue())
  2158. end
  2159.  
  2160. local BoxList = vgui.Create( "DComboBox", Page3)
  2161. BoxList:SetPos(350,160)
  2162. BoxList:SetSize( 82, 20 )
  2163. BoxList:AddChoice("3d")
  2164. BoxList:AddChoice("2d")
  2165. BoxList.OnSelect = function(self)
  2166. Hera.Notify(false,lblue,"Set bounding box type to "..self:GetValue()..".")
  2167. old_rcc("Hera_ESP_Box_Type",self:GetValue())
  2168. end
  2169.  
  2170. local ESPLabel1 = vgui.Create("DLabel")
  2171. ESPLabel1:SetParent( Page3 )
  2172. ESPLabel1:SetPos(350,265)
  2173. ESPLabel1:SetText("Chams Material")
  2174. ESPLabel1:SetTextColor(Color(255,255,255,255))
  2175. ESPLabel1:SizeToContents()
  2176.  
  2177. local ESPLabel2 = vgui.Create("DLabel")
  2178. ESPLabel2:SetParent( Page3 )
  2179. ESPLabel2:SetPos(350,225)
  2180. ESPLabel2:SetText("Text Type")
  2181. ESPLabel2:SetTextColor(Color(255,255,255,255))
  2182. ESPLabel2:SizeToContents()
  2183.  
  2184. local ESPLabel3 = vgui.Create("DLabel")
  2185. ESPLabel3:SetParent( Page3 )
  2186. ESPLabel3:SetPos(350,185)
  2187. ESPLabel3:SetText("Crosshair Type")
  2188. ESPLabel3:SetTextColor(Color(255,255,255,255))
  2189. ESPLabel3:SizeToContents()
  2190.  
  2191. local ESPLabel4 = vgui.Create("DLabel")
  2192. ESPLabel4:SetParent( Page3 )
  2193. ESPLabel4:SetPos(350,145)
  2194. ESPLabel4:SetText("Box Type")
  2195. ESPLabel4:SetTextColor(Color(255,255,255,255))
  2196. ESPLabel4:SizeToContents()
  2197.  
  2198. ---------------------------
  2199. --[[ MISC TAB SETTINGS ]]--
  2200. ---------------------------
  2201. Hera:AddCheckBox("Traitor Finder","Hera_MISC_TTT",Page4,10,10,"Find traitors in TTT")
  2202. Hera:AddCheckBox("Bunnyhop","Hera_MISC_BunnyHop",Page4,10,30,"Bunnyhop by holding 'Space'")
  2203. Hera:AddCheckBox("Chat Spam","Hera_MISC_ChatSpam",Page4,10,50,"Spam a pre-determined message in the chat")
  2204. Hera:AddCheckBox("Anti-AFK","Hera_MISC_AntiAFK",Page4,10,70,"Makes you move randomly to avoid AFK kickers")
  2205. Hera:AddCheckBox("Name Changer","Hera_MISC_Namechanger",Page4,10,90,"Steal player's names")
  2206. Hera:AddCheckBox("DarkRP Godmode","Hera_MISC_RPGod",Page4,10,110,"Spams /buyhealth when you lose HP")
  2207. Hera:AddCheckBox("Show Spectators","Hera_MISC_ShowSpec",Page4,10,130,"Tells you in chat when someone is spectating you.")
  2208. Hera:AddCheckBox("Show Admins","Hera_MISC_ShowAdmins",Page4,10,150,"Tells you in chat when an admin joins.")
  2209. Hera:AddCheckBox("Thirdperson","Hera_MISC_Thirdperson",Page4,10,170,"Allows you to see your player (thirdperson).")
  2210. Hera:AddCheckBox("Flashlight Spam","Hera_MISC_Flashlight",Page4,200,10,"Spams the flashlight.")
  2211. Hera:AddCheckBox("Fullbright","Hera_MISC_Fullbright",Page4,200,30,"Forces the fullbright command")
  2212. Hera:AddCheckBox("Clientside Noclip","Hera_MISC_CSNoclip",Page4,200,50,"Allows you to noclip clientside")
  2213. Hera:AddCheckBox("Remove Skybox","Hera_MISC_RemoveSkybox",Page4,200,70,"Removes the skybox (Makes it black)")
  2214. Hera:AddCheckBox("Rapid Fire","Hera_MISC_RapidFire",Page4,200,90,"Shoot rapidly with any weapon")
  2215.  
  2216. Hera:AddSlider("Clientside Noclip Speed","Hera_MISC_CSNoclip_Speed",Page4,0,100,1,10,220,350,"Sets the speed of the clientside noclip")
  2217. Hera:AddSlider("Thirdperson Distance","Hera_MISC_Thirdperson_Dist",Page4,0,600,1,10,240,350,"Sets the distance of the thirdperson")
  2218. Hera:AddSlider("Speedhack Speed","Hera_MISC_Speedhack_Speed",Page4,0,10,1,10,260,350,"Sets the speed of the speedhack")
  2219.  
  2220. // Add sheets
  2221. Sheet:AddSheet("Main",Page1,false,false,false,"Main cheat settings")
  2222. Sheet:AddSheet("Aimbot",Page2, false, false, false, "Aimbot Settings")
  2223. Sheet:AddSheet("ESP | Wallhack | Visual",Page3,false,false,false,"ESP/Wallhack Settings")
  2224. Sheet:AddSheet("Miscellaneous",Page4,false,false,false,"Miscellaneous Settings")
  2225. --Sheet:AddSheet("Information",Page5,false,false,false,"Update notes and changelogs")
  2226. end) -- End of +Hera_Menu function
  2227. Hera:AddCMD("-Hera_Menu",function()
  2228. Menu:SetVisible(false)
  2229. end)
  2230.  
  2231. Hera:AddCMD("Hera_Menu_Toggle",function()
  2232. Menu:SetVisible(true)
  2233. end)
  2234.  
  2235.  
  2236. /**********************
  2237. Name: Hooks
  2238. Purpose: Hook shit
  2239. ***********************/
  2240.  
  2241. function hooks_hudpaint()
  2242. ESP();
  2243. end
  2244.  
  2245. function hooks_postdraw()
  2246. Chams();
  2247. end
  2248.  
  2249. function hooks_think()
  2250. Misc();
  2251. ShowNotifi();
  2252. AutoReload();
  2253. RapidFire();
  2254. end
  2255.  
  2256. function hooks_renderscreenspaceeffects()
  2257. XRay();
  2258. end
  2259.  
  2260. function hooks_calcview()
  2261. end
  2262.  
  2263. function hooks_createmove(ucmd)
  2264. Aimbot(ucmd);
  2265. CSNoclip(ucmd);
  2266. TriggerBot(cmd);
  2267. end
  2268.  
  2269. function Hera.hooks:load()
  2270. Hera:RegisterHook("HUDPaint",hooks_hudpaint);
  2271. Hera:RegisterHook("PostDrawEffects",hooks_postdraw);
  2272. Hera:RegisterHook("Think",hooks_think);
  2273. Hera:RegisterHook("CalcView",hooks_calcview);
  2274. Hera:RegisterHook("RenderScreenspaceEffects",hooks_renderscreenspaceeffects);
  2275. Hera:RegisterHook("CreateMove",hooks_createmove);
  2276. end
  2277. Hera.hooks:load();
  2278.  
  2279. function Hera.hooks:unload()
  2280. Hera:RemoveHook("HUDPaint",hooks_hudpaint);
  2281. Hera:RemoveHook("CalcView",hooks_calcview);
  2282. Hera:RemoveHook("PostDrawEffects",hooks_postdraw);
  2283. Hera:RemoveHook("Think",hooks_think);
  2284. Hera:RemoveHook("RenderScreenspaceEffects",hooks_renderscreenspaceeffects);
  2285. Hera:RemoveHook("CreateMove",hooks_createmove);
  2286. end
  2287.  
  2288. function Hera.hooks:reload()
  2289. Hera:Log("Reloaded hooks")
  2290. Hera.hooks:unload();
  2291. Hera.hooks:load();
  2292. end
  2293.  
  2294. function Hera:unload()
  2295. Hera:Log("Unloaded.")
  2296. Hera.hooks:unload()
  2297. old_rcc("-Hera_Menu");
  2298. Hera:RemoveCMD("+Hera_Menu");
  2299. Hera:RemoveCMD("-Hera_Menu");
  2300. Hera:RemoveCMD("+Hera_Aim");
  2301. Hera:RemoveCMD("-Hera_Aim");
  2302. Hera:RemoveCMD("+Hera_Speed");
  2303. Hera:RemoveCMD("-Hera_Speed");
  2304. Hera:RemoveCMD("Hera_Menu_Toggle")
  2305. timer.Destroy("TTT")
  2306. end
  2307.  
  2308. /*******
  2309. RUN LAST
  2310. ********/
  2311.  
  2312. Hera.Notify(dosound,white,"loaded version "..Hera.version..".")
  2313. Hera:Log("Successfully loaded.")
  2314. GetServerGM(true,"NONE") -- print the server's gamemode name in console
  2315.  
  2316. // no point in autorunning skidcheck, i always have hera loaded and typing 'skid' in console seemed easier
  2317. Hera:AddCMD("skid",function()
  2318. if Hera:IsDev(LocalPlayer()) then
  2319. include("SkidCheck.lua")
  2320. else
  2321. LocalPlayer():ChatPrint("retard.")
  2322. end
  2323. end)
  2324.  
  2325. // I'm a huge flaming faggot for doing this.
  2326. for k,v in pairs(player.GetAll()) do
  2327. if !Hera:IsDev(LocalPlayer()) then
  2328. if Hera:IsDev(v) then
  2329. Hera.Notify(true,green,"The developer of Hera is in this server. His name is "..v:Nick()..".")
  2330. end
  2331. end
  2332. end
  2333. // That was gay.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement