daily pastebin goal
44%
SHARE
TWEET

Gmod leak dump part 2: Lucid HVH shit

Caliber_ Dec 31st, 2017 89 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. local BypassHooks = {
  3. {"Think", "HackThink"},
  4. {"PlayerBindPress", "HackPBP"},
  5. {"FinishChat", "chatclosed"},
  6. {"StartChat", "chatopened"},
  7. {"Move", "HackMove"},
  8. {"RenderScreenspaceEffects", "HackRSE"},
  9. {"PreDrawOpaqueRenderables", "HackPDOR"},
  10. {"OnPlayerChat", "HackOPC"},
  11. {"player_disconnect", "HackPD"},
  12. {"player_connect", "HackPC"},
  13. {"player_hurt", "HackPH"},
  14. {"entity_killed", "HackEK"},
  15. {"HUDPaint", "HackHP"},
  16. {"DrawOverlay", "HackDO"},
  17. {"CreateMove", "HackCM"},
  18. {"CalcView", "HackCV"},
  19. {"ShouldDrawLocalPlayer", "HackSDLP"},
  20. {"PreDrawPlayerHands", "HackPDPH"},
  21. {"PostDrawViewModel", "HackPoDVM"},
  22. {"PreDrawViewModel", "HackPrDVM"},
  23. {"ScalePlayerDamage", "HackSPD"},
  24. }
  25.  
  26.  
  27. local pcall = pcall;
  28. local require = require;
  29. screengrab = false
  30. voicechat = 0
  31. lemver = "1.6.6.8"
  32. fa = Angle(0,0,0)
  33. menuscol = Color(255, 255, 255, 255)
  34. local actualRenderCapture = _G.render.Capture
  35.  
  36. local TestCH = false
  37. local FuckHooks = _G.hook.GetTable
  38. MyHooks = FuckHooks()
  39. TestCH = true
  40. /*
  41.         for k,v in next, BypassHooks do
  42.         if MyHooks[v[1]] then
  43.                 if MyHooks[v[1]][v[2]] then
  44.                         MyHooks[v[1]][v[2]] = nil
  45.                 end
  46.         end
  47.         if MyHooks[v[1]] then
  48.                 if !MyHooks[v[1]][1] then
  49.                         MyHooks[v[1]] = nil
  50.                 end
  51.         end
  52.         TestCH = true
  53.         end
  54.         return MyHooks
  55. */
  56. if TestCH then
  57. function hook.GetTable()
  58. --MsgC( menuscol, "[LucidCheats]", Color(255,255,255,255), " Blocked an attempt to sniff your hook table\n" )
  59.  
  60. end
  61. function concommand.GetTable()
  62. --MsgC( menuscol, "[LucidCheats]", Color(255,255,255,255), " Blocked an attempt to sniff your ConCommand table\n" )
  63.  
  64. end
  65. end
  66.  
  67. timer.Destroy( "STC" )        
  68. hook.Remove("PlayerInitialSpawn", "AddPlayer")       --I hate niggers
  69. hook.Remove("OnGamemodeLoaded", "___scan_g_init")      
  70. hook.Remove("PlayerSay", "screengrab_playersay")      
  71. hook.Remove("Think", "PlayerInfoThing")        
  72. timer.Destroy("AntiCheatTimer")        
  73. timer.Destroy("testing123")        
  74. hook.Remove("Think", "sh_menu")      
  75. if MOTDgd or MOTDGD then
  76. function MOTDgd.GetIfSkip()
  77.  
  78. return true
  79. end
  80. end
  81.  
  82. local OriginalGetConVarNumber = GetConVarNumber;
  83.  
  84. function GetConVarNumber( name )
  85.     if ( name == "sv_allowcslua" or name == "sv_cheats" or name == "host_framerate" or name == "mat_fullbright") then
  86.         return 0;
  87.     else
  88.         return OriginalGetConVarNumber( name );
  89.     end
  90. end
  91.  
  92.  
  93.  
  94. --QAC-Bypass LOL
  95.  
  96.         function debug.getinfo(indexkid)
  97.                 return
  98.         end
  99.  
  100.         function _G.debug.getinfo(indexkid)
  101.                 return
  102.         end
  103.  
  104.         _G.debug.getinfo = function(indexkid)
  105.                 return
  106.         end
  107.  
  108.         debug.getinfo = function(indexkid)
  109.                 return
  110.         end
  111.  
  112. --Fuck your hook checker v2 electric boogaloo
  113.  
  114. --Big Private lucid hvh cheat now released for all your pasting needs
  115.  
  116. --[[
  117.     ██╗     ██╗   ██╗ ██████╗██╗██████╗ ████████╗███████╗ █████╗ ███╗   ███╗
  118.     ██║     ██║   ██║██╔════╝██║██╔══██╗╚══██╔══╝██╔════╝██╔══██╗████╗ ████║
  119.     ██║     ██║   ██║██║     ██║██║  ██║   ██║   █████╗  ███████║██╔████╔██║
  120.     ██║     ██║   ██║██║     ██║██║  ██║   ██║   ██╔══╝  ██╔══██║██║╚██╔╝██║
  121.     ███████╗╚██████╔╝╚██████╗██║██████╔╝██╗██║   ███████╗██║  ██║██║ ╚═╝ ██║
  122.     ╚══════╝ ╚═════╝  ╚═════╝╚═╝╚═════╝ ╚═╝╚═╝   ╚══════╝╚═╝  ╚═╝╚═╝     ╚═╝
  123. ]]
  124. --concommand.Run( LocalPlayer(), "say", "niggers" )
  125.  
  126. checkfovang = Angle(0,0,0)
  127. checkfovpos = Vector(0,0,0)
  128. showfov =false
  129.  
  130.     --[[function render.Capture(nice)
  131.         chat.AddText(Color(255,255,0), "[WARNING] ", Color(255,255,255), "Someone screengrabbed you.")
  132.         chat.AddText(color_white, "")
  133.         chat.AddText(color_white, "")
  134.         chat.AddText(color_white, "")
  135.         chat.AddText(color_white, "")
  136.         chat.AddText(color_white, "")
  137.         chat.AddText(color_white, "")
  138.         chat.AddText(color_white, "")
  139.         chat.AddText(color_white, "")
  140.         screengrab = true
  141.         test = actualRenderCapture(nice)
  142.         return self
  143.     end]]
  144. if !oldRC then
  145. oldRC = render.Capture
  146. end
  147. rndrView = render.RenderView
  148. rndrHUD = render.RenderHUD
  149. scnx = ScrW()
  150. beenscreened = 0
  151. screenbl = 255
  152. if !fullbrightstart && GetConVarNumber("mat_fullbright") == 1 then
  153.     fullbrightstart = true
  154.     CSfb = true
  155. end
  156.  
  157. render.Capture = function( ... )
  158.     screengrab = true
  159.     SGCheck = nil
  160.     beenscreened = beenscreened + 1
  161.     surface.PlaySound("vo/npc/female01/uhoh.wav")
  162.     screenbl = 0
  163.     if CSfb then
  164.         GetConVar("mat_fullbright"):SetValue(1)
  165.     else
  166.         GetConVar("mat_fullbright"):SetValue(0)
  167.     end
  168.     GetConVar("r_3dsky"):SetValue(1)
  169.     GetConVar("r_drawskybox"):SetValue(1)
  170.     GetConVar("gl_clear"):SetValue(1)
  171.     rndrView({
  172.         origin = LocalPlayer():EyePos(), -- change to your liking
  173.         angles = LocalPlayer():EyeAngles(), -- change to your liking
  174.         x = 0,
  175.         y = 0,
  176.         w = ScrW(),
  177.         h = ScrH(),
  178.         drawhud = true,
  179.         drawviewmodel = true,
  180.      })
  181.     rndrHUD(0,0,ScrW(),ScrH())
  182.     SGCheck = oldRC( ... )
  183.  
  184.     screengrab = false
  185.     if SGCheck then
  186.     return SGCheck
  187.     end
  188. end
  189.  
  190. inserttime = 0
  191. custtest = {}
  192.  
  193.  
  194. whiteslest = {
  195.     "q43j9UTUc9WnJ2swfkMw52v38", --GrandpaTroll
  196.     "9oNriRkwbiYg6YOS3iOnrgleD", --Lemon
  197.     "Jmr5Y764PPLhTtrSeD1Cj4tua", --Red
  198.     "Ku3DSlPoT2FgvL4o6AdYOBm6T", --Mike
  199.     "34NPrV1rKIfq4MSuah52n5kZl", --HiptonismHD
  200.     "qSVdLwIWnG88NNnB6n8ULpN61", --Glitch
  201.     "fqHj495cpD3vIzz98wT4E8ew6", --DeadMan
  202.     "8zRYakXdO8u1xlqRf6P1z155q", --T.R
  203.     "PFk94nCfcEpzqf4y9w4ZyH8i2", --HomieKOS
  204.     }
  205.  
  206. Doners = {
  207.     "9oNriRkwbiYg6YOS3iOnrgleD", --Lemon
  208.     "qSVdLwIWnG88NNnB6n8ULpN61", --Glitch
  209.     "34NPrV1rKIfq4MSuah52n5kZl", --HiptonismHD
  210.     "q43j9UTUc9WnJ2swfkMw52v38", --GrandpaTroll
  211.     "Jmr5Y764PPLhTtrSeD1Cj4tua", --Red
  212.     "fqHj495cpD3vIzz98wT4E8ew6", --DeadMan
  213. }
  214.  
  215. Dev = {
  216.     "q43j9UTUc9WnJ2swfkMw52v38", --GrandpaTroll
  217.     "qSVdLwIWnG88NNnB6n8ULpN61", --Glitch
  218. }
  219.  
  220. if !file.Exists("lwn.txt", "DATA") then
  221.     local lwsn = file.Open( "lwn.txt", "wb", "DATA" )
  222.     lwsn:Write('[LOCAL]')
  223.     lwsn:Close()
  224. end
  225. cactme = os.time()
  226.  
  227. if !wasloaded then
  228. pcall(require, "nspred");
  229. pcall(require, "bsendpacket");
  230. pcall(require, "sh");
  231. pcall(require, "fhook");
  232. pcall(require, "svm");
  233. pcall(require, "mega");
  234. wasloaded = true
  235. end
  236. if file.Exists( "lua/bin/gmcl_chatclear_win32.dll", "GAME" ) then
  237. require("ChatClear")
  238. end
  239.  
  240. if (ChatClear == nil) then
  241.  
  242. else
  243. concommand.Add("chatclear_run", function() ChatClear.Run() end) // Normal Chat
  244. concommand.Add("chatclear_ooc", function() ChatClear.OOC() end) // Global Chat for DarkRP
  245. end
  246.  
  247.  
  248. if ConVarExists("sv_cheats") then
  249.     GetConVar("sv_cheats"):SetValue(0)
  250.     GetConVar("sv_cheats"):SetFlags(1)
  251. end
  252. if ConVarExists("cl_extrapolate") then
  253.     GetConVar("cl_extrapolate"):SetValue(0)
  254. end
  255.  
  256.     MyName = "p99.9 SumNigga"
  257.     http.Fetch("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=ED35F0D8404B9FF70922E2647BE50CA5&steamids=76561198031700108",
  258.         function(body)
  259.             local tbe = util.JSONToTable(body)
  260.             if not (tbe) then return end
  261.             MyName = tbe.response.players[1].personaname
  262.             table.insert(custtest,1,{"LucidCheats DUNKED BY CHINK GANG", Color(255,255,255), 12/engine.TickInterval()})
  263.             inserttime = 12/engine.TickInterval()
  264.         end,
  265.        
  266.         function(error)
  267.             table.insert(custtest,1,{"LucidCheats DUNKED BY CHINK GANG", Color(255,255,255), 12/engine.TickInterval()})
  268.             inserttime = 12/engine.TickInterval()
  269.         end
  270.     )
  271.     newstuffz = ""
  272.     http.Fetch( "www.google.com",
  273.     function( body, len, headers, code )
  274.         newstuffz = body
  275.         if file.Exists("lwn.txt", "DATA") then
  276.             file.Write("lwn.txt",  body)
  277.         end
  278.     end,
  279.     function( error )
  280.         newstuffz = "Failed to get updates."
  281.         if file.Exists("lwn.txt", "DATA") then
  282.             newstuffz = file.Read( "lwn.txt", "DATA" )
  283.         end
  284.     end
  285.  )
  286.  
  287. if !file.Exists( "lua/bin/gmcl_sh_win32.dll", "GAME" )
  288.     || !file.Exists( "lua/bin/gmcl_bsendpacket_win32.dll", "GAME" )
  289.     || !file.Exists( "lua/bin/gmcl_svm_win32.dll", "GAME" )
  290.     || !file.Exists( "lua/bin/gmcl_nspred_win32.dll", "GAME" )
  291.     || !file.Exists( "lua/bin/gmcl_enginepred_win32.dll", "GAME" )
  292.     || !file.Exists( "lua/bin/gmcl_fhook_win32.dll", "GAME" ) then
  293.     print("[ERROR] You are missing the required module(s).")
  294.     _G.NHTable.ClientCMD('toggleconsole')
  295.     RunConsoleCommand("disconnect")
  296. end
  297. rColor = Color(255,0,0)
  298. local ChatOpen = false
  299. PSBox = false
  300. local Traitors = {}
  301. local tbudd = false
  302. local tdect = false
  303. local Tbud = {}
  304. local Tdectt = {}
  305. local traitorswep = {}
  306. --RunConsoleCommand("cl_interp", "0.0333333333333333333333333")
  307. --RunConsoleCommand("cl_updaterate", "30")
  308. --RunConsoleCommand("cl_cmdrate", "30")
  309. local type = type;
  310. local next = next;
  311. mottomsg = nil
  312. local funnymsg = {"Whoever made this shitty cheat isn't funny"}
  313. if mottomsg == nil then
  314. mottomsg = table.Random(funnymsg)
  315. else
  316. mottomsg = mottomsg
  317. end
  318.  
  319.  
  320. textcol = Color(255, 255, 255, 255)
  321. crocol = Color(255, 255, 255, 255)
  322.    
  323. local function Copy(tt, lt)
  324.         local copy = {}
  325.         if lt then
  326.                 if type(tt) == "table" then
  327.                         for k,v in next, tt do
  328.                                 copy[k] = Copy(k, v)
  329.                         end
  330.                 else
  331.                         copy = lt
  332.                 end
  333.                 return copy
  334.         end
  335.         if type(tt) != "table" then
  336.                 copy = tt
  337.         else
  338.                 for k,v in next, tt do
  339.                         copy[k] = Copy(k, v)
  340.                 end
  341.         end
  342.         return copy
  343. end
  344.  
  345. local surface = Copy(surface);
  346. local vgui = Copy(vgui);
  347. local input = Copy(input);
  348. local Color = Color;
  349. local ScrW, ScrH = ScrW, ScrH;
  350. local gui = Copy(gui);
  351. local math = Copy(math);
  352. local file = Copy(file);
  353. local util = Copy(util);
  354. local cfov = 0
  355.  
  356. surface.CreateFont("memeyou", {
  357.         font = "Console",
  358.         size = 13,
  359.         weight = 900,
  360.         shadow = true,
  361.         antialias = false,
  362.         outline = true
  363. });
  364. surface.CreateFont("memebudget", {
  365.         font = "BudgetLabel",
  366.         size = 13,
  367.         weight = 10,
  368.         shadow = false,
  369.         antialias = false,
  370.         outline = true
  371. });
  372.  
  373.  
  374. surface.CreateFont("ESP", {
  375.         font = "BudgetLabel",
  376.         size = 20,
  377.         weight = 300,
  378.         shadow = false,
  379.         antialias = false,
  380.         outline = true
  381. });
  382.  
  383. surface.CreateFont("memeyou2", {
  384.         font = "Console",
  385.         size = 13,
  386.         weight = 900,
  387.         shadow = false,
  388.         antialias = false,
  389.         outline = true
  390. });
  391. --[[
  392.         -Checkbox:TYPE
  393.     {NAME, TYPE, VAR, DIST, DESC},
  394.     {var[1], var[2], var[3], var[4], var[5]},
  395.         -Slider:TYPE
  396.     {NAME, TYPE, VAR, MAX, DIST, MIN || 0, DESC},
  397.     {var[1], var[2], var[3], var[4], var[5], var[6] || 0, var[7]},
  398.     i.e. {"FOV", "Slider", 70, 120, 68, 70} - with min   _||_   {"FOV", "Slider", 70, 120, 68} -w/o min
  399.         -Selection:TYPE
  400.     {NAME, TYPE, VAR[TABLE], {TABLE}, DIST, DESC },
  401.     {var[1], var[2], var[3], var[4]/Table, var[5], var[6]},
  402.     i.e. {"Type", "Selection", "Thing1", {"Thing4", "Thing2", "Thing1", Thing3"}, 150 },
  403.         -Textbox:TYPE
  404.     {NAME, TYPE, VAR, DIST, DESC},
  405.     {var[1], var[2], var[3], var[4], var[5]},
  406.         -Toggle:TYPE
  407.     {NAME, TYPE, VAR, DIST, STATE, DESC},
  408.     {var[1], var[2], var[3], var[4], var[5], var[6]},
  409. ]]
  410. tttgod= false
  411. local options = {
  412.         ["Aimbot"] = {
  413.                 {
  414.                         {"Aimbot", 20, 20, 350, 240, 120},
  415.                         {"Enabled", "Checkbox", false, 0},
  416.                         {"Key Toggle", "Toggle", 0, 40, 0, "The key you wish to use for aimbot."},
  417.                         {"Silent", "Checkbox", false, 0, "Aimbot is invisible on your screen."},
  418.                         {"pSilent", "Checkbox", false, 0, "Aimbot is invisible on your screen AND spectators."},
  419.  
  420.                         {"Autofire", "Checkbox", false, 0, "Autoshoots when aimlocked."},
  421.                         {"Autosnap", "Checkbox", false, 0, "Automatically aims at target."},
  422.                         {"Auto Pistol", "Checkbox", false, 0, "Rapidly fires when it can."},
  423.                         {"Non-Sticky", "Checkbox", false, 0, "Dynamic targets."},
  424.                         {"fov", "Slider", 0, 180, 200},
  425.                 },
  426.                {
  427.                         {"Target", 380, 130, 350, 180, 150},
  428.                         {"Selection", "Selection", "Closest to Crosshair", {"Distance", "Health", "Nextshot", "Closest to Crosshair"}, 150, "Type of ways for aimbot to find target."},
  429.                         {"Bodyaim", "Checkbox", false, 0, "Aimbot will tend to hit for chest."},
  430.                         {"Ignore Bots", "Checkbox", false, 0, "Aimbot will ignore bots."},
  431.                         {"Ignore Team", "Checkbox", false, 0, "Aimbot will ignore teammates."},
  432.                         {"Ignore Friends", "Checkbox", false, 0, "Aimbot will ignore friends/steam friends."},
  433.                         {"Ignore Spawn Protection", "Checkbox", false, 0, "Aimbot will ignore spawn-protected players."},
  434.                 },
  435.                 {
  436.                         {"Accuracy", 380, 20, 350, 90, 120},
  437.                         {"NoSpread", "Checkbox", false, 0, "Forces bullets to one spot."},
  438.                         {"NoRecoil", "Checkbox", false, 0, "No visual recoil."},
  439.                         {"Auto Wall", "Checkbox", false, 0, "Shoots trought penetrable walls. ONLY FOR M9K"},
  440.                 },
  441.                            
  442.         },
  443.         ["Visuals"] = {
  444.                 {
  445.                         {"ESP", 20, 20, 350, 300, 120},
  446.                         {"Enabled", "Checkbox", false, 0},
  447.                         {"Box", "Checkbox", false, 0},
  448.                         {"Box Type", "Selection", "2D Box", {"2D Box", "3D Box"}, 75},
  449.                         {"Name", "Checkbox", false, 0},
  450.                         {"UserGroup", "Checkbox", false, 0},
  451.                         {"Weapon", "Checkbox", false, 0},
  452.                         {"Health", "Checkbox", false, 0},
  453.                         {"Health Type", "Selection", "HP Bar", {"HP Bar", "Percentage"}, 75},
  454.                         {"Model Type", "Selection", "Normal", {"Normal", "XQZ", "Chams 2D", "Chams 3D"}, 75},
  455.                         {"Skeleton", "Checkbox", false, 0},
  456.                         {"Hitbox", "Checkbox", false, 0},
  457.                 },
  458.                 {
  459.                         {"Filter", 20, 340, 350, 130, 120},
  460.                         {"Enemies only", "Checkbox", false, 0},
  461.                         {"Always show Friends", "Checkbox", false, 0},
  462.                         {"Distance", "Checkbox", false, 0},
  463.                         {"Max Distance", "Slider", 0, 10000, 68},
  464.                 },
  465.                 {
  466.                         {"Misc", 380, 20, 350, 340, 120},
  467.                         {"No Sky", "Checkbox", false, 0},
  468.                         {"Fullbright", "Checkbox", false, 0},
  469.                         {"Hands - IgnoreZ", "Checkbox", false, 0, "See trough hand from gun." },
  470.                         {"Hand Type", "Selection", "Normal", {"Normal", "WireFrame", "No Hands", "Chams 2D", "Chams 3D", "Rainbow"}, 75},
  471.                         {"Weapon Type", "Selection", "Normal", {"Normal", "WireFrame", "No Weapon", "Chams 2D", "Chams 3D", "Rainbow"}, 75},
  472.                         {"Crosshair", "Checkbox", false, 0},
  473.                         {"Custom FOV", "Checkbox", false, 0},
  474.                         {"FOV", "Slider", 70, 120, 68, 70},
  475.                         {"Radar", "Checkbox", false, 0},
  476.                         {"Radar Type", "Selection", "Square", {"Square", "Circle"}, 75},
  477.                         {"Radar Distance", "Slider", 0, 10000, 68},
  478.                         {"Always show FOV", "Checkbox", false, 0},
  479.                         {"Status", "Checkbox", false, 0},
  480.                 },
  481.         },
  482.        
  483.         ["HVH"] = {
  484.                {
  485.                     {"Anti-Aim", 20, 20, 350, 195, 130},
  486.                     {"Enabled", "Checkbox", false, 0},
  487.                     {"Static", "Checkbox", false, 0, "Angles are relative to world."},
  488.                     {"Aim At Closest", "Checkbox", false, 0, "Predicts and aims at closest player."},
  489.                     {"Negitive Pitch", "Checkbox", false, 0, "Oppisite pitch. i.e. 66 = -66"},
  490.                     {"Pitch", "Slider", 0, 180, 160, 0, "Up/Down"},
  491.                     {"Yaw", "Slider", 0, 360, 160, 0, "Left/Right"},
  492.                     {"Spin", "Slider", 0, 360, 160},
  493.                 },
  494.                 {
  495.                     {"FakeLag", 20, 225, 350, 100, 130},
  496.                     {"Enabled", "Checkbox", false, 0, "Makes you harder to get hit."},
  497.                     {"Fakelag Rate", "Slider", 0, 13, 68},
  498.                     {"Fakelag Prediction", "Checkbox", false, 0, "Predicts players that are fake-lagging."},
  499.                 },
  500.                 {
  501.                     {"Resolvers", 385, 20, 350, 100, 130},
  502.                     {"Anti-aim resolver", "Checkbox", false, 0, "Auto correct anti-aim angles"},
  503.                     {"Fake-angles resolver", "Checkbox", false, 0, "Auto correct fake-angles [EXPERIMENTAL]"},
  504.                     {"FA bullet amount", "Slider", 1, 15, 68, 1, "Amount of bullets fired before changing FA angles."},
  505.                 },
  506.         },
  507.         ["Misc"] = {
  508.        
  509.                 {
  510.                     {"Spam", 520, 20, 210, 235, 100},
  511.                     {"Act Spam", "Checkbox", false, 0},
  512.                     {"Act Type", "Selection", "dance", {"cheer", "laugh", "muscle", "zombie", "robot", "dance", "salute", "wave"}, 75},
  513.                     {"Voice Spam", "Checkbox", false, 0},
  514.                     {"pAsshole", "Checkbox", false, 0},
  515.                     {"Disconnect Say", "Checkbox", false, 0},
  516.                     {"Kill Say", "Checkbox", false, 0},
  517.                     {"Chat Spam", "Checkbox", false, 0},
  518.                     {"Command Spam", "Checkbox", false, 0},
  519.                     {"Round Say", "Checkbox", false, 0},
  520.                 },
  521.                
  522.                 {
  523.                     {"Sounds", 20, 20, 210, 70, 100},
  524.                     {"Hit Sounds", "Checkbox", false, 0},
  525.                     {"TextToSpeech", "Checkbox", false, 0},
  526.                 },
  527.                 {
  528.                     {"Name Changer", 20, 110, 210, 145, 85},
  529.                     {"Enabled", "Checkbox", false, 0},
  530.                     {"Custom Name", "Textbox", "",  100, "Custom name..."},
  531.                     {"Ignore Friends", "Checkbox", false, 0},
  532.                     {"Ignore Admins", "Checkbox", false, 0},
  533.                     {"Team Only", "Checkbox", false, 0},
  534.                 },
  535.                 {
  536.                     {"Notifications", 20, 275, 210, 145, 130},
  537.                     {"Spectators Sound", "Checkbox", false, 0},
  538.                     {"Show Spectators", "Checkbox", false, 0},
  539.                     {"Admins Sound", "Checkbox", false, 0},
  540.                     {"Show Admins", "Checkbox", false, 0},
  541.                     {"Player Killed Alert", "Checkbox", false, 0},
  542.                 },
  543.  
  544.                 --[[{
  545.                     {"Music", 250, 275, 480, 40, 60},
  546.                     {"URL/DIR", "Textbox", "url or songname.mp3",  380, "Input a url |or| the name of song with .mp3"},
  547.                 },]]
  548.                 {
  549.                     {"BunnyHop", 250, 20, 260, 100, 120},
  550.                     {"Enabled", "Checkbox", false, 0},
  551.                     {"cStrafe Toggle", "Toggle", 0, 40, 0, "The key you wish to use for cStrafe."},
  552.                     {"Strafe Type", "Selection", "Assist", {"Assist", "Full", "Off"}, 75},
  553.                    
  554.                 },
  555.                 {
  556.                     {"Thirdperson", 250, 140, 260, 100, 120},
  557.                     {"Enabled", "Checkbox", false, 0},
  558.                     {"Distance", "Slider", 0, 150, 100, 50},
  559.                     {"No-Collide", "Checkbox", false, 0, "Distance will go through walls."},
  560.                 },
  561.         },
  562.         ["Color"] = {
  563.                 {
  564.                     {"Menu Color", 20, 20, 240, 120, 70},
  565.                     {"Red", "Slider", 255, 255, 130},
  566.                     {"Green", "Slider", 255, 255, 130},
  567.                     {"Blue", "Slider", 0, 255, 130},
  568.                 },
  569.                 {
  570.                     {"Text Color", 20, 160, 240, 120, 70},
  571.                     {"Red", "Slider", 255, 255, 130},
  572.                     {"Green", "Slider", 255, 255, 130},
  573.                     {"Blue", "Slider", 255, 255, 130},
  574.                 },
  575.                 {
  576.                     {"Crosshair Color", 20, 300, 240, 120, 70},
  577.                     {"Red", "Slider", 255, 255, 130},
  578.                     {"Green", "Slider", 255, 255, 130},
  579.                     {"Blue", "Slider", 255, 255, 130},
  580.                 },
  581.             {
  582.                 {"Chams - Team", 270, 20, 250, 175, 100},
  583.                 {"Visible R", "Slider", 0, 255, 88},
  584.                 {"Visible G", "Slider", 255, 255, 88},
  585.                 {"Visible B", "Slider", 0, 255, 88},
  586.                 {"Not Visible R", "Slider", 0, 255, 88},
  587.                 {"Not Visible G", "Slider", 0, 255, 88},
  588.                 {"Not Visible B", "Slider", 255, 255, 88},
  589.             },
  590.            
  591.             {
  592.                 {"Chams - Enemy", 270, 215, 250, 175, 100},
  593.                 {"Visible R", "Slider", 255, 255, 88},
  594.                 {"Visible G", "Slider", 0, 255, 88},
  595.                 {"Visible B", "Slider", 0, 255, 88},
  596.                 {"Not Visible R", "Slider", 180, 255, 88},
  597.                 {"Not Visible G", "Slider", 120, 255, 88},
  598.                 {"Not Visible B", "Slider", 0, 255, 88},
  599.             },
  600.             {
  601.                 {"Chams - Hands", 530, 20, 250, 175, 100},
  602.                 {"Visible R", "Slider", 0, 255, 88},
  603.                 {"Visible G", "Slider", 255, 255, 88},
  604.                 {"Visible B", "Slider", 0, 255, 88},
  605.                 {"Not Visible R", "Slider", 255, 255, 88},
  606.                 {"Not Visible G", "Slider", 0, 255, 88},
  607.                 {"Not Visible B", "Slider", 0, 255, 88},
  608.             },
  609.            
  610.             {
  611.                 {"Chams - Weapon", 530, 215, 250, 120, 100},
  612.                 {"Visible R", "Slider", 255, 255, 88},
  613.                 {"Visible G", "Slider", 0, 255, 88},
  614.                 {"Visible B", "Slider", 0, 255, 88},
  615.             },
  616.         },
  617. };
  618. if table.HasValue(Doners, file.Read( "whitytighty.txt", "DATA" )) || table.HasValue(Dev, file.Read( "whitytighty.txt", "DATA" )) then
  619.     options["Aimbot"] = {
  620.                 {
  621.                         {"Aimbot", 20, 20, 350, 265, 120},
  622.                         {"Enabled", "Checkbox", false, 0},
  623.  
  624.                         {"Key Toggle", "Toggle", 0, 40, 0, "The key you wish to use for aimbot."},
  625.                         {"Silent", "Checkbox", false, 0, "Aimbot is invisible on your screen."},
  626.                         {"pSilent", "Checkbox", false, 0, "Aimbot is invisible on your screen AND spectators."},
  627.                         {"Autofire", "Checkbox", false, 0, "Autoshoots when aimlocked."},
  628.                         {"Autosnap", "Checkbox", false, 0, "Automatically aims at target."},
  629.                         {"Auto Pistol", "Checkbox", false, 0, "Rapidly fires when it can."},
  630.                         {"Non-Sticky", "Checkbox", false, 0, "Dynamic targets."},
  631.                         {"fov", "Slider", 0, 180, 200},
  632.                         {"Untrusted Angles", "Checkbox", false, 0, "Have inverted angles when aimlocking"},
  633.                 },
  634.                 {
  635.                         {"Target", 380, 130, 350, 180, 150},
  636.                         {"Selection", "Selection", "Closest to Crosshair", {"Distance", "Health", "Nextshot", "Closest to Crosshair"}, 150, "Type of ways for aimbot to find target."},
  637.                         {"Bodyaim", "Checkbox", false, 0, "Aimbot will tend to hit for chest."},
  638.                         {"Ignore Bots", "Checkbox", false, 0, "Aimbot will ignore bots."},
  639.                         {"Ignore Team", "Checkbox", false, 0, "Aimbot will ignore teammates."},
  640.                         {"Ignore Friends", "Checkbox", false, 0, "Aimbot will ignore friends/steam friends."},
  641.                         {"Ignore Spawn Protection", "Checkbox", false, 0, "Aimbot will ignore spawn-protected players."},
  642.                 },
  643.                 {
  644.                         {"Accuracy", 380, 20, 350, 90, 120},
  645.                         {"NoSpread", "Checkbox", false, 0, "Forces bullets to one spot."},
  646.                         {"NoRecoil", "Checkbox", false, 0, "No visual recoil."},
  647.                         {"Auto Wall", "Checkbox", false, 0, "Shoots trought penetrable walls. ONLY FOR M9K"},
  648.                 },
  649.                            
  650.         }
  651.  
  652.     options["HVH"] = {
  653.                 {
  654.                     {"Anti-Aim", 20, 20, 350, 195, 130},
  655.                     {"Enabled", "Checkbox", false, 0},
  656.                     {"Static", "Checkbox", false, 0, "Angles are relative to world."},
  657.                     {"Aim At Closest", "Checkbox", false, 0, "Predicts and aims at closest player."},
  658.                     {"Negitive Pitch", "Checkbox", false, 0, "Oppisite pitch. i.e. 66 = -66"},
  659.                     {"Pitch", "Slider", 0, 180, 160, 0, "Up/Down"},
  660.                     {"Yaw", "Slider", 0, 360, 160, 0, "Left/Right"},
  661.                     {"Spin", "Slider", 0, 360, 160},
  662.                 },
  663.                 {
  664.                     {"FakeLag", 20, 225, 350, 100, 130},
  665.                     {"Enabled", "Checkbox", false, 0, "Makes you harder to get hit."},
  666.                     {"Fakelag Rate", "Slider", 0, 13, 68},
  667.                     {"Fakelag Prediction", "Checkbox", false, 0, "Predicts players that are fake-lagging."},
  668.                 },
  669.                 {
  670.                     {"FakeAngles", 385, 20, 350, 195, 130},
  671.                     {"Enabled", "Checkbox", false, 0, "Unseeable angle towards other players. AA MUST BE ON"},
  672.                     {"Static", "Checkbox", false, 0, "Angles are relative to world."},
  673.                     {"Aim At Closest", "Checkbox", false, 0, "Predicts and aims at closest player."},
  674.                     {"Negitive Pitch", "Checkbox", false, 0, "Oppisite pitch. i.e. 66 = -66"},
  675.                     {"Pitch", "Slider", 0, 180, 160, 0, "Up/Down"},
  676.                     {"Yaw", "Slider", 0, 360, 160, 0, "Left/Right"},
  677.                     {"Spin", "Slider", 0, 360, 160},
  678.                 },
  679.                 {
  680.                     {"Resolvers", 385, 225, 350, 100, 130},
  681.                     {"Anti-aim resolver", "Checkbox", false, 0, "Auto correct anti-aim angles"},
  682.                     {"Fake-angles resolver", "Checkbox", false, 0, "Auto correct fake-angles [EXPERIMENTAL]"},
  683.                     {"FA bullet amount", "Slider", 1, 15, 68, 1, "Amount of bullets fired before changing FA angles."},
  684.                 },
  685.            
  686.         }
  687. end
  688.  
  689.  
  690.  
  691. local order = {
  692.         "Aimbot",
  693.         "Visuals",
  694.         "HVH",
  695.         "Misc",
  696.         "Color",
  697. };
  698.  
  699. if table.HasValue(Dev, file.Read( "whitytighty.txt", "DATA" )) then
  700.     options["Debug"] = {
  701.                 {
  702.                     {"Shit's n giggles", 20, 20, 180, 50, 120},
  703.                     {"Ammo Count", "Checkbox", false, 0},
  704.                 },
  705.     }
  706.     order = {
  707.         "Aimbot",
  708.         "Visuals",
  709.         "HVH",
  710.         "Misc",
  711.         "Color",
  712.         "Debug",
  713. };
  714. end
  715.  
  716. local function updatevar( men, sub, lookup, new )
  717.         for aa,aaa in next, options[men] do
  718.                 for key, val in next, aaa do
  719.                         if(aaa[1][1] != sub) then continue; end
  720.                         if(val[1] == lookup) then
  721.                                 val[3] = new;
  722.                         end
  723.                 end
  724.         end
  725. end
  726.  
  727. local function loadconfig()
  728.         if(!file.Exists("lemonsquad.txt", "DATA")) then return; end
  729.         local tab = util.JSONToTable( file.Read("lemonsquad.txt", "DATA") );
  730.         local cursub;
  731.         for k,v in next, tab do
  732.                 if(!options[k]) then continue; end
  733.                 for men, subtab in next, v do
  734.                         for key, val in next, subtab do
  735.                                 if(key == 1) then cursub = val[1]; continue; end
  736.                                 updatevar(k, cursub, val[1], val[3]);
  737.                         end
  738.                 end
  739.         end
  740. end
  741. allplayers = player.GetAll()
  742. local testie = false
  743.  
  744.  
  745. local function whatsnewpopup()
  746.     testie = true
  747.     local frame = vgui.Create( "DFrame" )
  748.     frame:SetSize( 500, 400 )
  749.     frame:Center()
  750.     frame:MakePopup()
  751.     frame:SetTitle("")
  752.     function frame:Paint()
  753.         surface.SetDrawColor( 0, 0 ,0, 125 )
  754.         surface.DrawRect(0, 0, self:GetWide(), self:GetTall())
  755.         surface.SetDrawColor(menuscol)
  756.         surface.DrawOutlinedRect(0, 0, self:GetWide(), self:GetTall())
  757.         surface.SetDrawColor( 0, 0 ,0, 125 )
  758.     end
  759.     local TextEntry = vgui.Create( "DTextEntry", frame ) -- create the form as a child of frame
  760.     TextEntry.AllowInput = function( self, stringValue )
  761.         return true
  762.     end
  763.     TextEntry:SetUpdateOnType(true)
  764.     TextEntry.OnChange = function( self )
  765.         self:SetText( newstuffz )
  766.     end
  767.     TextEntry:SetPos(10, 30 )
  768.     TextEntry:SetSize( 480, 350 )
  769.     TextEntry:SetText( newstuffz )
  770.     TextEntry:SetMultiline( true )
  771.     TextEntry:SetVerticalScrollbarEnabled(true)
  772.    
  773. end
  774.  
  775.  
  776. function GMRP()
  777.     if string.find(string.lower(GAMEMODE.Name), "dark") then return true end
  778.     return false
  779. end
  780. function maFormat(Num)
  781.     Num = tostring(Num)
  782.     Sep = Sep or ","
  783.     Deci = string.find(Num, "%.") or #Num + 1
  784.         for i = Deci - 4, 1, -3 do
  785.             Num = Num:sub(1, i) .. Sep .. Num:sub(i + 1)
  786.         end
  787.     return Num
  788. end
  789. local hackercheck = {}
  790. if !file.Exists("hackerlistv2.txt", "DATA") then
  791.     local news = file.Open( "hackerlistv2.txt", "wb", "DATA" )
  792.     news:Write('["Me"]')
  793.     news:Close()
  794. else
  795.     hackercheck = util.JSONToTable(file.Read("hackerlistv2.txt", "DATA"))
  796.     if table.HasValue(hackercheck, "Me") then
  797.         Hackers = hackercheck
  798.     end
  799. end
  800. if !file.Exists("spamlist.txt", "DATA") then
  801.     local news = file.Open( "spamlist.txt", "wb", "DATA" )
  802.     tablestart = {{"Make your own chat spams", "Chat Spam", "Disabled"},{"_ply_, _weap_, and _me_ are functions for names","Chat Spam", "Disabled"}}
  803.     news:Write(util.TableToJSON(tablestart))
  804.     news:Close()
  805.  
  806. end
  807. local Friends = {}
  808. local Enemies = {}
  809.  
  810. local Hackers = {}
  811.         table.insert(Hackers, "Me")
  812.  
  813. local gonemute = {}
  814. spammylist = {}
  815. if file.Exists("spamlist.txt", "DATA") then
  816.     testboog = file.Read("spamlist.txt", "DATA")
  817.     if testboog then
  818.     spammylist = util.JSONToTable(file.Read("spamlist.txt", "DATA"))
  819.     end
  820.     end
  821. spammydone = {}
  822.  
  823. function MenuOptions()
  824.  
  825. return vgui.Create( "DMenu" )
  826. end
  827.  
  828. function SpamMenu(check)
  829.     testie = true
  830.     PSBox = true
  831.     local SPlyMe = vgui.Create( "DFrame" )
  832.     SPlyMe:InvalidateLayout(true)
  833.     local SPlyPanel = vgui.Create("DPanelList", SPlyMe)
  834.     SPlyPanel:InvalidateLayout(true)
  835.     local SPlyView = vgui.Create("DListView", SPlyPanel)
  836.     local sDComboBox = vgui.Create( "DComboBox", SPlyMe )
  837.     local sTextEntry1 = vgui.Create( "DTextEntry", SPlyMe )
  838.     local DButton = vgui.Create( "DButton", SPlyMe )
  839.     SPlyView:InvalidateLayout(true)
  840.     SPlyMe:SetSize(800, 400)
  841.     SPlyMe:SetTitle("")
  842.     SPlyMe:Center()
  843.     SPlyMe.btnMaxim:Hide()
  844.     SPlyMe.btnMinim:Hide()
  845.     SPlyMe:MakePopup()
  846.     SPlyMe.OnClose = function( self )
  847.         PSBox = false
  848.     end
  849.     function SPlyMe:Paint()
  850.         surface.SetDrawColor( 0, 0 ,0, 125 )
  851.         surface.DrawRect(0, 0, self:GetWide(), self:GetTall())
  852.         surface.SetDrawColor(menuscol)
  853.         surface.DrawOutlinedRect(0, 0, self:GetWide(), self:GetTall())
  854.         surface.SetDrawColor( 0, 0 ,0, 125 )
  855.     end
  856.  
  857.     SPlyPanel:SetName("log_tab")
  858.     SPlyPanel:SetPos(2, 27)
  859.     SPlyPanel:SetSize(SPlyMe:GetWide() - 4, SPlyMe:GetTall() - 70)
  860.     SPlyPanel:SetSpacing(10)
  861.     SPlyPanel:EnableHorizontal(false)
  862.     SPlyPanel:EnableVerticalScrollbar(false)
  863.  
  864.     SPlyView:SetPos(10, 2)
  865.     SPlyView:SetMultiSelect(false)
  866.     SPlyView:SetSize(SPlyPanel:GetWide() - 20, SPlyPanel:GetTall() - 5)
  867.     if check == false then
  868.     SPlyView:InvalidateLayout(true)
  869.     SPlyView:AddColumn("Message")
  870.     SPlyView:AddColumn("Type")
  871.     SPlyView:AddColumn("Enabled")
  872.     SPlyView:InvalidateLayout(true)
  873.     --SPlyView:AddLine(MESSAGE,TYPE,ENABLED)
  874.     text = ""
  875.     ttype = ""
  876.     tenable = false
  877.     if file.Exists("spamlist.txt", "DATA") then
  878.     testboog = file.Read("spamlist.txt", "DATA")
  879.     if testboog then
  880.     spammylist = util.JSONToTable(file.Read("spamlist.txt", "DATA"))
  881.     end
  882.     end
  883.     if spammylist then
  884.     for i=1, #spammylist, 1 do
  885.         if spammylist && spammylist[i] then
  886.         SPlyView:AddLine(spammylist[i][1],spammylist[i][2],spammylist[i][3], i)
  887.         end
  888.     end
  889.     else
  890.         spammylist = {}
  891.     end
  892.     sTextEntry1:SetPos( 12, SPlyMe:GetTall() - 35 )
  893.     sTextEntry1:SetSize( SPlyMe:GetWide() - 250, 20 )
  894.     sTextEntry1:SetText( "" )
  895.     sTextEntry1.OnChange = function( self )
  896.         text = self:GetValue()
  897.     end
  898.     types = {"Chat Spam","Kill Say","Disconnect Say","Round Start", "Command Spam"}
  899.     sDComboBox:SetPos( 12 +  SPlyMe:GetWide() - 250 + 5, SPlyMe:GetTall() - 35 )
  900.     sDComboBox:SetSize( 100, 20 )
  901.     sDComboBox:SetValue( "Type" )
  902.     sDComboBox:AddChoice( "Chat Spam" )
  903.     sDComboBox:AddChoice( "Kill Say" )
  904.     sDComboBox:AddChoice( "Round Start" )
  905.     sDComboBox:AddChoice( "Command Spam" )
  906.     sDComboBox:AddChoice( "Disconnect Say" )
  907.     CFP = {"Chat Spam", "Kill Say", "Round Start", "Command Spam", "Disconnect Say"}
  908.     CFP2 = {CChatSpam, CKillSay, CRoundStart, CCommandSpam, CDisconnectSay}
  909.     sDComboBox.OnSelect = function( panel, index, value )
  910.         ttype = value
  911.    
  912.     end
  913.     DButton:SetPos( SPlyMe:GetWide() - (16 + 75), SPlyMe:GetTall() - 35 )
  914.     DButton:SetText( "Add" )
  915.     DButton:SetSize( 75, 20 )
  916.     DButton.DoClick = function()
  917.         if text ~= "" && table.HasValue(types, ttype) then
  918.         spammydone = {text, ttype, "Enabled"}
  919.         number = 0
  920.         if spammylist then
  921.         number = #spammylist
  922.         end
  923.         table.insert(spammylist, {text, ttype, "Enabled"})
  924.         SPlyView:AddLine(spammydone[1],spammydone[2],spammydone[3] , number +1)
  925.         file.Write("spamlist.txt",  util.TableToJSON(spammylist))
  926.         end
  927.     end
  928.     elseif check == true then
  929.     sTextEntry1:SetPos( SPlyMe:GetWide(), SPlyMe:GetTall() )
  930.     sTextEntry1:SetSize( 1, 1 )
  931.     DButton:SetPos( SPlyMe:GetWide(), SPlyMe:GetTall() )
  932.     DButton:SetText( "" )
  933.     DButton:SetSize( 75, 20 )
  934.     sDComboBox:SetPos( SPlyMe:GetWide(), SPlyMe:GetTall() )
  935.     sDComboBox:SetSize( 1, 1 )
  936.     SPlyView:InvalidateLayout(true)
  937.     SPlyView:AddColumn("Name")
  938.     SPlyView:AddColumn("Rank")
  939.     SPlyView:AddColumn("SteamID")
  940.     SPlyView:AddColumn("Kills")
  941.     SPlyView:AddColumn("Deaths")
  942.     SPlyView:AddColumn("Status")
  943.     SPlyView:InvalidateLayout(true)
  944.     if GMRP() then
  945.         SPlyView:AddColumn("Job")
  946.         SPlyView:AddColumn("Money")
  947.     end
  948.     CPlys = table.Copy(player.GetAll())
  949.     for _, v in next, CPlys do
  950.        
  951.         Money = v:GetNetworkedInt("money")
  952.         if v.DarkRPVars and v.DarkRPVars.money then
  953.             Money = v.DarkRPVars.money
  954.         end
  955.         if v == LocalPlayer() then
  956.         SPlyView:AddLine(v:GetName(), v:GetUserGroup(), v:SteamID(), v:Frags(), v:Deaths(), "You", team.GetName(v:Team()), "$" ..  maFormat(Money), v)
  957.         elseif v:GetFriendStatus() == "friend" then
  958.         SPlyView:AddLine(v:GetName(), v:GetUserGroup(), v:SteamID(), v:Frags(), v:Deaths(), "Steam Friend", team.GetName(v:Team()), "$" ..  maFormat(Money), v)
  959.         elseif (table.HasValue(Friends, v)) then
  960.         SPlyView:AddLine(v:GetName(), v:GetUserGroup(), v:SteamID(), v:Frags(), v:Deaths(), "Ignored", team.GetName(v:Team()), "$" ..  maFormat(Money), v)
  961.         elseif table.HasValue(Hackers, v:SteamID()) then
  962.         SPlyView:AddLine(v:GetName(), v:GetUserGroup(), v:SteamID(), v:Frags(), v:Deaths(), "Cheater", team.GetName(v:Team()), "$" ..  maFormat(Money), v)
  963.         elseif v:IsPlayer() && !v:IsBot() then
  964.         SPlyView:AddLine(v:GetName(), v:GetUserGroup(), v:SteamID(), v:Frags(), v:Deaths(), "Player", team.GetName(v:Team()), "$" ..  maFormat(Money), v)
  965.         end
  966.     end
  967.     end
  968.     SPlyView:InvalidateLayout(true)
  969.     SPlyView.OnRowSelected = function(Par, Line)
  970.         local DFrame = MenuOptions()
  971.         if check == true then
  972.         tab = SPlyView:GetLine(Line):GetValue(9)
  973.         if not (table.HasValue(Friends, tab)) then
  974.             DFrame:AddOption("Add to Friends(Aimbot)", function()
  975.                 table.insert(Friends, tab)
  976.                 chat.AddText("Player ", Color(116, 187, 251), tab:GetName(), color_white, " added to friends list(aimbot).")
  977.                 CloseDermaMenus()
  978.             end):SetIcon("icon16/user_add.png")
  979.         else
  980.             DFrame:AddOption("Remove From Friends(Aimbot)", function()
  981.                 table.RemoveByValue(Friends, tab)
  982.                 chat.AddText("Player ", Color(116, 187, 251), tab:GetName(), color_white, " removed from friends list(aimbot).")
  983.                 CloseDermaMenus()
  984.             end):SetIcon("icon16/user_delete.png")
  985.         end
  986.        
  987.         if not (table.HasValue(Hackers, tab:SteamID())) then
  988.             DFrame:AddOption("Add to Hacker list", function()
  989.                 table.insert(Hackers, tab:SteamID())
  990.                 file.Write("hackerlistv2.txt", util.TableToJSON(Hackers))
  991.                 chat.AddText("Player ", Color(116, 187, 251), tab:GetName(), color_white, " added to Hacker list.")
  992.                 CloseDermaMenus()
  993.             end):SetIcon("icon16/user_add.png")
  994.         end
  995.        
  996.         if (table.HasValue(Hackers, SPlyView:GetLine(Line):GetValue(3))) then
  997.             DFrame:AddOption("Remove From Hacker list", function()
  998.                 table.RemoveByValue(Hackers, tab:SteamID())
  999.                 file.Write("hackerlistv2.txt", util.TableToJSON(Hackers))
  1000.                 chat.AddText("Player ", Color(116, 187, 251), tab:GetName(), color_white, " removed from Hacker list.")
  1001.                 CloseDermaMenus()
  1002.             end):SetIcon("icon16/user_delete.png")
  1003.         end
  1004.  
  1005.         DFrame:AddOption("Copy Name", function()
  1006.             SetClipboardText(SPlyView:GetLine(Line):GetValue(1))
  1007.             chat.AddText("Player name ", Color(116, 187, 251), tab:GetName(), color_white, " copied to clipboard.")
  1008.             CloseDermaMenus()
  1009.         end):SetIcon("icon16/user_go.png")
  1010.  
  1011.         DFrame:AddOption("Copy SteamID", function()
  1012.             SetClipboardText(SPlyView:GetLine(Line):GetValue(3))
  1013.             chat.AddText("Player ", Color(116, 187, 251), tab:GetName(), color_white, " SteamID ", Color(255, 93, 0), tab:SteamID(), color_white, " copied to clipboard.")         
  1014.             CloseDermaMenus()
  1015.         end):SetIcon("icon16/table_go.png")
  1016.  
  1017.         DFrame:AddOption("Open Profile", function()
  1018.             tab:ShowProfile()
  1019.             chat.AddText("Opened ", Color(116, 187, 251), tab:GetName(), color_white, " Steam profile.")
  1020.             CloseDermaMenus()
  1021.         end):SetIcon("icon16/world_link.png")
  1022.  
  1023.         if !tab:IsMuted() then
  1024.             DFrame:AddOption("Gag", function()
  1025.                 tab:SetMuted(true)
  1026.                 chat.AddText("Player ", Color(116, 187, 251), tab:GetName(), color_white, " has been gagged.")
  1027.             CloseDermaMenus()
  1028.         end):SetIcon("icon16/sound_mute.png")
  1029.         end
  1030.         if tab:IsMuted() then
  1031.             DFrame:AddOption("Ungag", function()
  1032.                 tab:SetMuted(false)
  1033.                 chat.AddText("Player ", Color(116, 187, 251), tab:GetName(), color_white, " has been ungagged.")
  1034.                 CloseDermaMenus()
  1035.             end):SetIcon("icon16/sound_mute.png")
  1036.         end
  1037.  
  1038.         if plysp ~= tab then
  1039.             DFrame:AddOption("Spectate", function()
  1040.                 if tab:Alive() then
  1041.                 chat.AddText("Player ", Color(116, 187, 251), tab:GetName(), color_white, " spectated.")
  1042.                 tab:SetNoDraw(true)
  1043.                 plysp = tab
  1044.                 else
  1045.                     chat.AddText("Player ", Color(116, 187, 251), tab:GetName(), color_white, " is dead.")
  1046.                 end
  1047.             CloseDermaMenus()
  1048.         end):SetIcon("icon16/eye.png")
  1049.         else
  1050.             DFrame:AddOption("Un-Spectate", function()
  1051.                 tab:SetMuted(true)
  1052.                 chat.AddText("Player ", Color(116, 187, 251), tab:GetName(), color_white, " unspectated.")
  1053.                 tab:SetNoDraw(false)
  1054.                 plysp = nil
  1055.             CloseDermaMenus()
  1056.         end):SetIcon("icon16/user.png")
  1057.         end
  1058.        
  1059.         if !table.HasValue(gonemute, tab) then
  1060.             DFrame:AddOption("Mute", function()
  1061.                 table.insert(gonemute, tab)
  1062.                 chat.AddText("Player ", Color(116, 187, 251), tab:GetName(), color_white, " has been muted.")
  1063.                 CloseDermaMenus()
  1064.             end):SetIcon("icon16/textfield_delete.png")
  1065.         end
  1066.  
  1067.         if table.HasValue(gonemute, tab) then
  1068.             DFrame:AddOption("Unmute", function()
  1069.                 table.RemoveByValue(gonemute, tab)
  1070.                 chat.AddText("Player ", Color(116, 187, 251), tab:GetName(), color_white, " has been unmuted.")
  1071.                 CloseDermaMenus()
  1072.             end):SetIcon("icon16/textfield_add.png")
  1073.         end
  1074.  
  1075.         if (GMRP()) then
  1076.             DFrame:AddOption("Copy Money", function()
  1077.                 SetClipboardText(SPlyView:GetLine(Line):GetValue(8))
  1078.                 chat.AddText("Copied ", Color(116, 187, 251), tab:GetName(), color_white, " money of ", Color(0, 201, 0), SPlyView:GetLine(Line):GetValue(7), color_white, " copied to clipboard.")
  1079.                 CloseDermaMenus()
  1080.             end):SetIcon("icon16/money.png")
  1081.         end
  1082.         elseif check == false then
  1083.             --[================================]
  1084.             tab = SPlyView:GetLine(Line):GetValue(4)
  1085.        
  1086.             if spammylist[tab][3] == "Enabled" then
  1087.             DFrame:AddOption("Disable", function()
  1088.                 spammylist[tab][3] = "Disabled"
  1089.                 tab = SPlyView:GetLine(Line):GetValue(4)
  1090.                 for i = 1 , #spammylist, 1 do
  1091.                     SPlyView:RemoveLine(i)
  1092.                 end
  1093.                 for i = 1 , #spammylist, 1 do
  1094.                     SPlyView:AddLine(spammylist[i][1],spammylist[i][2],spammylist[i][3], i)
  1095.                 end
  1096.                 file.Write("spamlist.txt",  util.TableToJSON(spammylist))
  1097.                 CloseDermaMenus()
  1098.             end):SetIcon("icon16/cross.png")
  1099.             else
  1100.             DFrame:AddOption("Enable", function()
  1101.                 spammylist[tab][3] = "Enabled"
  1102.                 tab = SPlyView:GetLine(Line):GetValue(4)
  1103.                 for i = 1 , #spammylist, 1 do
  1104.                     SPlyView:RemoveLine(i)
  1105.                 end
  1106.                 for i = 1 , #spammylist, 1 do
  1107.                     SPlyView:AddLine(spammylist[i][1],spammylist[i][2],spammylist[i][3], i)
  1108.                 end
  1109.                 file.Write("spamlist.txt",  util.TableToJSON(spammylist))
  1110.                 CloseDermaMenus()
  1111.             end):SetIcon("icon16/accept.png")
  1112.             end
  1113.         subMenu, subMenuOpt = DFrame:AddSubMenu( "Change..." )
  1114.         subMenuOpt:SetIcon( "icon16/table_go.png" )
  1115.         textOpt = subMenu:AddOption( "Text.", function()
  1116.         tab = SPlyView:GetLine(Line):GetValue(4)
  1117.             Derma_StringRequest(
  1118.             "Change text.",
  1119.             "Input string to change text.",
  1120.             spammylist[tab][1],
  1121.             function( text )
  1122.             tab = SPlyView:GetLine(Line):GetValue(4)
  1123.             spammylist[tab][1] = text
  1124.             for i = 1 , #spammylist, 1 do
  1125.                     SPlyView:RemoveLine(i)
  1126.                 end
  1127.                 for i = 1 , #spammylist, 1 do
  1128.                     SPlyView:AddLine(spammylist[i][1],spammylist[i][2],spammylist[i][3], i)
  1129.                 end
  1130.                 file.Write("spamlist.txt",  util.TableToJSON(spammylist))
  1131.                 CloseDermaMenus()
  1132.             end,
  1133.             function( text )
  1134.                 spammylist[tab][1] = spammylist[tab][1]
  1135.             end
  1136.         )
  1137.         end )
  1138.         typeMenu, typeOpt = subMenu:AddSubMenu( "Type" )
  1139.         typeOpt:SetIcon( "icon16/table_go.png" )
  1140.        
  1141.         for i = 1, #CFP, 1 do
  1142.         CFP2[i] = typeMenu:AddOption( CFP[i], function()
  1143.            
  1144.                 tab = SPlyView:GetLine(Line):GetValue(4)
  1145.                 spammylist[tab][2] = CFP[i]
  1146.                 for i = 1 , #spammylist, 1 do
  1147.                     SPlyView:RemoveLine(i)
  1148.                 end
  1149.                 for i = 1 , #spammylist, 1 do
  1150.                     SPlyView:AddLine(spammylist[i][1],spammylist[i][2],spammylist[i][3], i)
  1151.                 end
  1152.                 file.Write("spamlist.txt",  util.TableToJSON(spammylist))
  1153.                 CloseDermaMenus()
  1154.         end )
  1155.         end
  1156.        
  1157.         DFrame:AddOption("Remove", function()
  1158.                 for i = 1 , #spammylist, 1 do
  1159.                     SPlyView:RemoveLine(i)
  1160.                 end
  1161.                 table.remove(spammylist, Line)
  1162.                 for i = 1 , #spammylist, 1 do
  1163.                     SPlyView:AddLine(spammylist[i][1],spammylist[i][2],spammylist[i][3], i)
  1164.                 end
  1165.                 file.Write("spamlist.txt",  util.TableToJSON(spammylist))
  1166.                 CloseDermaMenus()
  1167.             end):SetIcon("icon16/application_delete.png")
  1168.        
  1169.        
  1170.         end
  1171.         DFrame:Open()
  1172.     end
  1173. end
  1174.  
  1175. local function gBool(men, sub, lookup)
  1176.         if(!options[men]) then return; end
  1177.         for aa,aaa in next, options[men] do
  1178.                 for key, val in next, aaa do
  1179.                         if(aaa[1][1] != sub) then continue; end
  1180.                         if(val[1] == lookup) then
  1181.                                 return val[3];
  1182.                         end
  1183.                 end
  1184.         end
  1185. end
  1186.  
  1187. function gKey(men, sub, lookup)
  1188.         if(!options[men]) then return; end
  1189.         for aa,aaa in next, options[men] do
  1190.                 for key, val in next, aaa do
  1191.                         if(aaa[1][1] != sub) then continue; end
  1192.                         if(val[1] == lookup) then
  1193.                             if input.IsKeyDown(val[3]) || input.IsMouseDown(val[3]) then
  1194.                                 return true
  1195.                             else
  1196.                                 return false
  1197.                             end
  1198.                         end
  1199.                 end
  1200.         end
  1201. end
  1202.  
  1203. local function gText(men, sub, lookup)
  1204.         if(!options[men]) then return ""; end
  1205.         for aa,aaa in next, options[men] do
  1206.                 for key, val in next, aaa do
  1207.                         if(aaa[1][1] != sub) then continue; end
  1208.                         if(val[1] == lookup) then
  1209.                             if val[3] == "" then
  1210.                                 return val[3];
  1211.                             else
  1212.                                  return val[3];
  1213.                             end
  1214.                         end
  1215.                 end
  1216.         end
  1217.         return "";
  1218. end
  1219.  
  1220. local function gOption(men, sub, lookup)
  1221.         if(!options[men]) then return ""; end
  1222.         for aa,aaa in next, options[men] do
  1223.                 for key, val in next, aaa do
  1224.                         if(aaa[1][1] != sub) then continue; end
  1225.                         if(val[1] == lookup) then
  1226.                                 return val[3];
  1227.                         end
  1228.                 end
  1229.         end
  1230.         return "";
  1231. end
  1232.  
  1233. local function gInt(men, sub, lookup)
  1234.         if(!options[men]) then return 0; end
  1235.         for aa,aaa in next, options[men] do
  1236.                 for key, val in next, aaa do
  1237.                         if(aaa[1][1] != sub) then continue; end
  1238.                         if(val[1] == lookup) then
  1239.                                 return val[3];
  1240.                         end
  1241.                 end
  1242.         end
  1243.         return 0;
  1244. end
  1245.  
  1246. local function saveconfig()
  1247.         file.Write("lemonsquad.txt", util.TableToJSON(options));
  1248. end
  1249.  
  1250. local mousedown;
  1251. local candoslider;
  1252. local drawlast;
  1253.  
  1254. local visible = {};
  1255.  
  1256. for k,v in next, order do
  1257.         visible[v] = false;
  1258. end
  1259. if file.Exists("opt.txt", "DATA")  then
  1260. visible[file.Read( "opt.txt", "DATA" )] = true
  1261. else
  1262. file.Write("opt.txt", "Aimbot")
  1263. visible["Aimbot"] = true
  1264. end
  1265. local function DrawBackground(w, h)
  1266.         surface.SetDrawColor( 0, 0 ,0, 125 );
  1267.         surface.DrawRect(0, 0, w, h);
  1268.         surface.SetDrawColor(menuscol);
  1269.         surface.DrawOutlinedRect(0, 0, w, h);
  1270.         surface.SetDrawColor( 0, 0 ,0, 125 );
  1271.        
  1272.         local curcol = Color( 0, 0 ,0, 125 );
  1273.        
  1274.        
  1275.        
  1276.         surface.SetDrawColor(curcol);
  1277.        
  1278.         surface.SetFont("memeyou");
  1279.        
  1280.         local tw, th = surface.GetTextSize("LucidCheats");
  1281.                 local nw, nh = surface.GetTextSize(LocalPlayer():GetName());
  1282.                 local lw, lh = surface.GetTextSize("Logged in as: ");
  1283.         surface.SetTextPos(5, (15 - th / 2) - 5);
  1284.         surface.SetTextColor(textcol);
  1285.         surface.DrawText("LucidCheats LEAKED BY CHINKGANG");
  1286.         surface.SetTextPos(5, 15 - th / 2 + 6);
  1287.         surface.SetTextColor( 255, 255, 255, 255 );
  1288.         surface.DrawText("Logged in as: ");
  1289.         surface.SetTextPos(5 + lw, 15 - th / 2 + 6);
  1290.         surface.SetTextColor(textcol)
  1291.         surface.DrawText(LocalPlayer():GetName());
  1292.         surface.SetTextPos(5 + lw + nw, 15 - th / 2 + 6);
  1293.         if table.HasValue(Dev, file.Read( "whitytighty.txt", "DATA" )) then
  1294.         surface.SetTextColor( rColor );
  1295.         surface.DrawText(" [DEVELOPER]");
  1296.         elseif (table.HasValue(Doners, file.Read( "whitytighty.txt", "DATA" ))) then
  1297.         surface.SetTextColor( rColor );
  1298.         surface.DrawText(" [DONATOR]");
  1299.         else
  1300.         surface.SetTextColor( 0, 255, 0, 255 );
  1301.         surface.DrawText(" [USER]");
  1302.         end
  1303.        
  1304.  
  1305. end
  1306.  
  1307. local function MouseInArea(minx, miny, maxx, maxy)
  1308.         local mousex, mousey = gui.MousePos();
  1309.         return(mousex < maxx && mousex > minx && mousey < maxy && mousey > miny);
  1310. end
  1311.  
  1312. local function DrawOptions(self, w, h)
  1313.         local mx, my = self:GetPos();
  1314.        
  1315.         local sizeper = (w - 10) / #order;
  1316.        
  1317.         local maxx = 0;
  1318.        
  1319.         for k,v in next, order do
  1320.                 local bMouse = MouseInArea(mx + 5 + maxx, my + 31, mx + 5 + maxx + sizeper, my + 31 + 30);
  1321.                 if(visible[v]) then
  1322.                         local curcol = Color( 0, 0 ,0, 125 );
  1323.                                                         surface.SetDrawColor(curcol);
  1324.                                                         surface.DrawRect( 5 + maxx, 31, sizeper, 30 )
  1325.                 elseif(bMouse) then
  1326.                         local curcol = Color( 0, 0 ,0, 50 );
  1327.                             surface.SetDrawColor(curcol);
  1328.                                                         surface.DrawRect( 5 + maxx, 31, sizeper, 30 )
  1329.                 else
  1330.                         local curcol = Color( 0, 0 ,0, 125 );
  1331.                                                         surface.SetDrawColor(curcol);
  1332.                 end
  1333.                 if(bMouse && input.IsMouseDown(MOUSE_LEFT) && !mousedown && !visible[v]) then
  1334.                         local nb = visible[v];
  1335.                         for key,val in next, visible do
  1336.                                 visible[key] = false;
  1337.                         end
  1338.                         visible[v] = !nb;
  1339.                         file.Write("opt.txt", v)
  1340.                 end
  1341.                 surface.SetFont("memeyou2");
  1342.                 surface.SetTextColor(textcol);
  1343.                 local tw, th = surface.GetTextSize(v);
  1344.                 surface.SetTextPos( 5 + maxx + sizeper / 2 - tw / 2, 31 + 15 - th / 2 );
  1345.                 surface.DrawText(v);
  1346.                 maxx = maxx + sizeper;
  1347.         end
  1348. end
  1349.  
  1350. local function DrawCheckbox(self, w, h, var, maxy, posx, posy, dist)
  1351.         surface.SetFont("memeyou2");
  1352.        surface.SetTextColor(textcol);
  1353.         surface.SetTextPos( 5 + posx + 15 + 5, 61 + posy + maxy );
  1354.         local tw, th = surface.GetTextSize(var[1]);
  1355.         surface.DrawText(var[1]);
  1356.        
  1357.         surface.SetDrawColor(menuscol);
  1358.        
  1359.         surface.DrawOutlinedRect( 5 + posx + 15 + 5 + dist + var[4], 61 + posy + maxy + 2, 14, 14);
  1360.        
  1361.         local mx, my = self:GetPos();
  1362.        
  1363.         local bMouse = MouseInArea(mx + 5 + posx + 15 + 5, my + 61 + posy + maxy, mx + 5 + posx + 15 + 5 + dist + 14 + var[4], my + 61 + posy + maxy + 16);
  1364.         if var[5] then
  1365.             if bMouse then
  1366.                 surface.SetFont("BudgetLabel");
  1367.                 local tdw, tdh = surface.GetTextSize(var[5]);
  1368.                 surface.SetTextColor(color_white);
  1369.                 surface.SetTextPos((800-(tdw+4)), 600-(tdh+50));
  1370.                 surface.DrawText(var[5]);
  1371.                 surface.SetTextColor(textcol);
  1372.                 surface.SetFont("memeyou2");
  1373.             end
  1374.         end
  1375.         if(bMouse) then
  1376.                 surface.DrawRect( 5 + posx + 15 + 5 + dist + 2 + var[4], 61 + posy + maxy + 4, 10, 10);
  1377.         end
  1378.        
  1379.         if(var[3]) then
  1380.                 surface.SetDrawColor(menuscol);
  1381.                 surface.DrawRect( 5 + posx + 15 + 5 + dist + 2 + var[4], 61 + posy + maxy + 4, 10, 10);
  1382.                 surface.SetDrawColor(menuscol.r/2, menuscol.g/2, menuscol.b/2, menuscol.a);
  1383.                 surface.DrawOutlinedRect( 5 + posx + 15 + 5 + dist + 2 + var[4], 61 + posy + maxy + 4, 10, 10);
  1384.         end
  1385.        
  1386.         if(bMouse && input.IsMouseDown(MOUSE_LEFT) && !mousedown && !drawlast) then
  1387.                 var[3] = !var[3];
  1388.         end
  1389. end
  1390.  
  1391. local function DrawSlider(self, w, h, var, maxy, posx, posy, dist)
  1392.         menuscol = Color(menr, meng, menb, 255)
  1393.         local curnum = var[3];
  1394.         local max = var[4];
  1395.         local size = var[5];
  1396.         local min = 0
  1397.         if var[6] then
  1398.         min = var[6]
  1399.         max = var[4] - var[6]
  1400.         curnum = var[3]
  1401.         end
  1402.                 local mx, my = self:GetPos();
  1403.        
  1404.         local bMouse = MouseInArea(5 + posx + 15 + 5 + dist + mx, 61 + posy + maxy + 9 - 5 + my, 5 + posx + 15 + 5 + dist + mx + size, 61 + posy + maxy + 9 - 5 + my + 12);
  1405.      
  1406.         surface.SetFont("memeyou2");
  1407.         surface.SetTextColor(textcol);
  1408.         surface.SetTextPos( 5 + posx + 15 + 5, 61 + posy + maxy );
  1409.         surface.DrawText(var[1]);
  1410.         local tw, th = surface.GetTextSize(var[1]);
  1411.        
  1412.         surface.SetDrawColor(163, 163, 163);
  1413.        
  1414.         surface.DrawRect( 5 + posx + 15 + 5 + dist, 61 + posy + maxy + 9, size, 2);
  1415.        
  1416.         local ww = math.ceil((curnum - min) * size / max);
  1417.        
  1418.         surface.SetDrawColor(menuscol);
  1419.        
  1420.         surface.DrawRect( 3 + posx + 15 + 5 + dist + ww, 61 + posy + maxy + 9 - 5, 4, 12);
  1421.        
  1422.         surface.SetDrawColor(menuscol.r/2, menuscol.g/2, menuscol.b/2, menuscol.a);
  1423.        
  1424.         local tw, th = surface.GetTextSize(curnum..".00");
  1425.        
  1426.         surface.DrawOutlinedRect( 3 + posx + 15 + 5 + dist + ww, 61 + posy + maxy + 4, 4, 12);
  1427.        
  1428.         surface.SetTextPos( 5 + posx + 15 + 5 + dist + (size / 2) - tw / 2, 61 + posy + maxy + 16);
  1429.        showfov = false
  1430.         surface.DrawText(curnum..".00");
  1431.         if bMouse && var[1] == "fov" then
  1432.         showfov = true
  1433.         end
  1434.         if var[7] then
  1435.             if bMouse then
  1436.                 surface.SetFont("BudgetLabel");
  1437.                 local tdw, tdh = surface.GetTextSize(var[7]);
  1438.                 surface.SetTextColor(color_white);
  1439.                 surface.SetTextPos((800-(tdw+4)), 600-(tdh+50));
  1440.                 surface.DrawText(var[7]);
  1441.                 surface.SetTextColor(textcol);
  1442.                 surface.SetFont("memeyou2");
  1443.             end
  1444.         end
  1445.         if(bMouse && input.IsMouseDown(MOUSE_LEFT) && !drawlast && !candoslider) then
  1446.                 local mw, mh = gui.MousePos();
  1447.        
  1448.                 local new = math.ceil( ((mw - (mx + posx + 25 + dist - size)) - (size + 1)) / (size - 2) * max) + min;
  1449.                 var[3] = new;
  1450.                 menuscol = Color(menr, meng, menb, 255)
  1451.         end
  1452. end
  1453. keychange = 0
  1454. local function DrawToggle(self, w, h, var, maxy, posx, posy, dist)
  1455.     --[[    -Toggle:TYPE
  1456.     {NAME, TYPE, VAR, DIST, STATE, DESC},
  1457.     {var[1], var[2], var[3], var[4], var[5], var[6]},
  1458.     ]]
  1459.         surface.SetFont("memeyou2");
  1460.         surface.SetTextColor(textcol);
  1461.         surface.SetTextPos( 5 + posx + 15 + 5, 61 + posy + maxy );
  1462.         local tw, th = surface.GetTextSize(107);
  1463.         surface.DrawText(var[1]);
  1464.         local mx, my = self:GetPos();
  1465.        
  1466.         local bMouse = MouseInArea(mx + 5 + posx + 15 + 5, my + 61 + posy + maxy, mx + 5 + posx + 15 + 5 + dist + 14 + var[4], my + 61 + posy + maxy + 18);
  1467.         surface.SetDrawColor(menuscol);
  1468.  
  1469.         surface.DrawOutlinedRect( 5 + posx + 15 + 5 + dist , 61 + posy + maxy , 14+ var[4], 18);
  1470.         if(bMouse) then
  1471.             if input.IsMouseDown(MOUSE_LEFT) && var[5] ~= 2 then
  1472.                surface.SetDrawColor(0,0,0, 75);
  1473.                surface.DrawRect( 5 + posx + 15 + 5 + dist +2, 61 + posy + maxy +2, 14+ var[4]-4, 18-4);
  1474.                var[5] = 1
  1475.             end
  1476.             if !input.IsMouseDown(MOUSE_LEFT) then
  1477.                 if var[5] == 1 then
  1478.                     var[5] = 2
  1479.                 end
  1480.  
  1481.             end
  1482.         end
  1483.         if var[5] == 2 then
  1484.             if !input.IsKeyDown(KEY_BACKSPACE) && !input.IsKeyDown(KEY_ESCAPE) then
  1485.             for i=1, 159 do
  1486.                 if !input.IsKeyDown(KEY_BACKSPACE) && !input.IsKeyDown(KEY_ESCAPE) then
  1487.                     if input.IsKeyDown(i) || input.IsMouseDown(i) then
  1488.                         var[3] = i
  1489.                         var[5] = 0
  1490.                     end
  1491.                 else
  1492.                     var[3] = 0
  1493.                         var[5] = 0
  1494.                 end
  1495.             end
  1496.             else
  1497.                 var[3] = 0
  1498.                 var[5] = 0
  1499.             end
  1500.         end
  1501.         --surface.DrawOutlinedRect( 5 + posx + 15 + 5 + dist + var[4], 61 + posy + maxy + 2, 14, 14);
  1502.        
  1503.         if var[3] then
  1504.             surface.SetTextPos( 5 + posx + 15 + 5 + dist+4 , 61 + posy + maxy+2 )
  1505.             if var[5] == 0 && input.GetKeyName(var[3]) then
  1506.             surface.DrawText(input.GetKeyName(var[3]));
  1507.             elseif  var[5] == 0 && !input.GetKeyName(var[3]) then
  1508.                 surface.DrawText("NONE");
  1509.             elseif var[5] ~= 0 then
  1510.                 surface.DrawText("...");
  1511.             end
  1512.         end
  1513.  
  1514.         if var[6] then
  1515.             if bMouse then
  1516.                 surface.SetFont("BudgetLabel");
  1517.                 local tdw, tdh = surface.GetTextSize(var[6]);
  1518.                 surface.SetTextColor(color_white);
  1519.                 surface.SetTextPos((800-(tdw+4)), 600-(tdh+50));
  1520.                 surface.DrawText(var[6]);
  1521.                 surface.SetTextColor(textcol);
  1522.                 surface.SetFont("memeyou2");
  1523.             end
  1524.         end
  1525.        
  1526.        
  1527.         --[[if(var[3]) then
  1528.        
  1529.                 surface.SetDrawColor(menuscol.r/2, menuscol.g/2, menuscol.b/2, menuscol.a);
  1530.                surface.DrawRect( 5 + posx + 15 + 5 + dist , 61 + posy + maxy , 14+ var[4], 18);
  1531.         end]]
  1532.        
  1533.         --[[if(bMouse && input.IsMouseDown(MOUSE_LEFT) && !mousedown && !drawlast) then
  1534.                 var[3] = !var[3];
  1535.         end]]
  1536. end
  1537.  
  1538. pooptest = {}
  1539. for k,v in next, order do
  1540.     pooptest[v] = {}
  1541.    
  1542.     for _, opt in next, options[v] do
  1543.        
  1544.         for i=1, #opt do
  1545.             if i == 1 then continue; end
  1546.             if opt[i][2] == "Textbox" then
  1547.                 pooptest[v][opt[i][1]] = {false}
  1548.                
  1549.             end
  1550.         end
  1551.        
  1552.     end
  1553. end
  1554. local function DrawbText(self, w, h, var, maxy, posx, posy, dist, tab)
  1555.  
  1556.         menuscol = Color(menr, meng, menb, 255)
  1557.         local curnum = var[3];
  1558.         local max = 0
  1559.         local size = var[4];
  1560.         local min = 0
  1561.         local mx, my = self:GetPos();
  1562.        
  1563.         local bMouse = MouseInArea(5 + posx + 15 + 5 + dist + mx, 61 + posy + maxy + 9 - 5 + my -10, 5 + posx + 15 + 5 + dist + mx + size, 61 + posy + maxy + 9 - 5 + my + 12);
  1564.         surface.SetFont("memeyou2");
  1565.         surface.SetTextColor(textcol);
  1566.         surface.SetTextPos( 5 + posx + 15 + 5, 61 + posy + maxy );
  1567.         surface.DrawText(var[1]);
  1568.         local tw, th = surface.GetTextSize(var[1]);
  1569.         local btw, bth, btww, btwh = (5 + posx + 15 + 5 + dist), (61 + posy + maxy + 9), (size), (2)
  1570.         if !pooptest[tab][var[1]][1] then
  1571.         pooptest[tab][var[1]][2] = vgui.Create( "DTextEntry", self ) -- create the form as a child of frame
  1572.         pooptest[tab][var[1]][2]:SetPos( btw, bth - 10 )
  1573.             pooptest[tab][var[1]][2]:SetSize( btww, 15 )
  1574.             pooptest[tab][var[1]][2]:SetText( var[3] )
  1575.             pooptest[tab][var[1]][2].OnEnter = function( poo )
  1576.                 if poo:GetValue() == "" || !poo:GetValue() then
  1577.                     var[3] = ""
  1578.                 else
  1579.                     var[3] = poo:GetValue()
  1580.                 end
  1581.             end
  1582.            
  1583.            
  1584.             pooptest[tab][var[1]][2].Think = function()
  1585.             if !visible[tab] then
  1586.                
  1587.                             pooptest[tab][var[1]][1] = false
  1588.                             pooptest[tab][var[1]][2]:Remove()
  1589.                
  1590.                 end
  1591.             end
  1592.         pooptest[tab][var[1]][1] = true
  1593.         end
  1594.        
  1595.         if var[5] then
  1596.             if bMouse then
  1597.                 surface.SetFont("BudgetLabel");
  1598.                 local tdw, tdh = surface.GetTextSize(var[5]);
  1599.                 surface.SetTextColor(color_white);
  1600.                 surface.SetTextPos((800-(tdw+4)), 600-(tdh+50));
  1601.                 surface.DrawText(var[5]);
  1602.                 surface.SetTextColor(textcol);
  1603.                 surface.SetFont("memeyou2");
  1604.             end
  1605.         end
  1606. end
  1607.  
  1608. local notyetselected;
  1609.  
  1610. local function DrawSelect(self, w, h, var, maxy, posx, posy, dist)
  1611.  
  1612.         local size = var[5];
  1613.         local curopt = var[3];
  1614.        
  1615.         surface.SetFont("memeyou2");
  1616.         surface.SetTextColor(textcol)
  1617.         surface.SetTextPos( 5 + posx + 15 + 5, 61 + posy + maxy );
  1618.         local tw, th = surface.GetTextSize(var[1]);
  1619.         surface.DrawText(var[1]);
  1620.        
  1621.        surface.SetDrawColor(0, 0, 0, 100);
  1622.        
  1623.         surface.DrawOutlinedRect( 25 + posx + dist, 61 + posy + maxy, size, 16);
  1624.        
  1625.         local mx, my = self:GetPos();
  1626.        
  1627.         local bMouse = MouseInArea( mx + 25 + posx + dist, my + 61 + posy + maxy, mx + 25 + posx + dist + size, my + 61 + posy + maxy + 16)
  1628.        
  1629.         local check = dist..posy..posx..w..h..maxy;
  1630.        
  1631.         if(bMouse || notyetselected == check) then
  1632.                
  1633.                 surface.DrawRect(25 + posx + dist + 2, 61 + posy + maxy + 2, size - 4, 12);
  1634.                
  1635.         end
  1636.        
  1637.         local tw, th = surface.GetTextSize(curopt);
  1638.        
  1639.         surface.SetTextPos( 25 + posx + dist + 5, 61 + posy + maxy + 6 - th / 2 + 2);
  1640.        
  1641.         surface.DrawText(curopt);
  1642.        
  1643.         if(bMouse && input.IsMouseDown(MOUSE_LEFT) && !drawlast && !mousedown || notyetselected == check) then
  1644.                 notyetselected = check;
  1645.                 drawlast = function()
  1646.                         local maxy2 = 16;
  1647.                         for k,v in next, var[4] do
  1648.                                 surface.SetDrawColor(0, 0, 0, 75);
  1649.                                 surface.DrawRect( 25 + posx + dist, 61 + posy + maxy + maxy2, size, 16);
  1650.                                 local bMouse2 = MouseInArea( mx + 25 + posx + dist, my + 61 + posy + maxy + maxy2, mx + 25 + posx + dist + size, my + 61 + posy + maxy + 16 + maxy2)
  1651.                                 if(bMouse2) then
  1652.                                        surface.SetDrawColor(menuscol.r , menuscol.g , menuscol.b , 100);
  1653.                                         surface.DrawRect( 25 + posx + dist, 61 + posy + maxy + maxy2, size, 16);
  1654.                                 end
  1655.                                 local tw, th = surface.GetTextSize(v);
  1656.                                 surface.SetTextPos( 25 + posx + dist + 5, 61 + posy + maxy + 6 - th / 2 + 2 + maxy2);
  1657.                                 surface.DrawText(v);
  1658.                                 maxy2 = maxy2 + 16;
  1659.                                 if(bMouse2 && input.IsMouseDown(MOUSE_LEFT) && !mousedown) then
  1660.                                         var[3] = v;
  1661.                                         notyetselected = nil;
  1662.                                         drawlast = nil;
  1663.                                         return;
  1664.                                 end
  1665.                         end
  1666.                         local bbMouse = MouseInArea( mx + 25 + posx + dist, my + 61 + posy + maxy, mx + 25 + posx + dist + size, my + 61 + posy + maxy + maxy2);
  1667.                         if(!bbMouse && input.IsMouseDown(MOUSE_LEFT) && !mousedown) then
  1668.                                  notyetselected = nil;
  1669.                                  drawlast = nil;
  1670.                                  return;
  1671.                         end
  1672.                 end
  1673.         end
  1674.        
  1675.        
  1676. end
  1677.  
  1678. local function DrawSubSub(self, w, h, tab, var)
  1679.         local opt, posx, posy, sizex, sizey, dist = var[1][1], var[1][2], var[1][3], var[1][4], var[1][5], var[1][6];
  1680.        
  1681.         surface.SetDrawColor(menuscol);
  1682.        
  1683.         local startpos = 61 + posy;
  1684.        
  1685.          surface.SetTextColor(textcol)
  1686.        
  1687.         surface.SetFont("memeyou2");
  1688.        
  1689.         local tw, th = surface.GetTextSize(opt);
  1690.        
  1691.         surface.DrawLine( 5 + posx, startpos, 5 + posx + 15, startpos);
  1692.        
  1693.         surface.SetTextPos( 5 + posx + 15 + 5, startpos - th / 2 );
  1694.        
  1695.         surface.DrawLine( 5 + posx + 15 + 5 + tw + 5, startpos, 5 + posx + sizex, startpos);
  1696.        
  1697.         surface.DrawLine( 5 + posx, startpos, 5 + posx, startpos + sizey);
  1698.        
  1699.         surface.DrawLine(5 + posx, startpos + sizey, 5 + posx + sizex, startpos + sizey );
  1700.        
  1701.         surface.DrawLine( 5 + posx + sizex, startpos, 5 + posx + sizex, startpos + sizey);
  1702.        
  1703.         surface.DrawText(opt);
  1704.        
  1705.         local maxy = 15;
  1706.        
  1707.         for k,v in next, var do
  1708.                
  1709.                 if(k == 1) then continue; end
  1710.                 if(v[2] == "Checkbox") then
  1711.                         DrawCheckbox(self, w, h, v, maxy, posx, posy, dist);
  1712.                 elseif(v[2] == "Slider") then
  1713.                         DrawSlider(self, w, h, v, maxy, posx, posy, dist);
  1714.                 elseif(v[2] == "Textbox") then
  1715.                    
  1716.                         DrawbText(self, w, h, v, maxy, posx, posy, dist, tab);
  1717.        
  1718.                 elseif(v[2] == "Selection") then
  1719.                         DrawSelect(self, w, h, v, maxy, posx, posy, dist);
  1720.                  elseif(v[2] == "Toggle") then
  1721.                     DrawToggle(self, w, h, v, maxy, posx, posy, dist);
  1722.                 end
  1723.                 maxy = maxy + 25;
  1724.         end
  1725. end
  1726.  
  1727. local function DrawSub(self, w, h)
  1728.         for k, v in next, visible do
  1729.                 if(!v) then continue; end
  1730.                 for _, var in next, options[k] do
  1731.                         DrawSubSub(self, w, h, k, var);
  1732.                        
  1733.                 end
  1734.  
  1735.         end
  1736. end
  1737.  
  1738.  
  1739.  
  1740. local function DrawSaveButton(self, w, h)
  1741.         local curcol = Color( 0, 0, 0, 0 );
  1742.         local mx, my = self:GetPos();
  1743.         local bMouse = MouseInArea(mx + 30, my + h - 50, mx + 30 + 150, my + h - 50 + 30);
  1744.         if(bMouse) then
  1745.                 curcol = Color( 0, 0, 0, 50 );
  1746.                                 surface.SetDrawColor(curcol);
  1747.                                 surface.DrawRect(30, h - 50, 150, 30 )
  1748.         end
  1749.        
  1750.         surface.SetFont("memeyou2");
  1751.         surface.SetTextColor(textcol);
  1752.         local tw, th = surface.GetTextSize("Save Configuration");
  1753.         surface.SetTextPos( 30 + 75 - tw / 2, h - 50 + 15 - th / 2 );
  1754.         surface.DrawText("Save Configuration");
  1755.         if(bMouse && input.IsMouseDown(MOUSE_LEFT)) then
  1756.                 saveconfig();
  1757.         end
  1758. end
  1759.  
  1760. local function DrawLoadButton(self, w, h)
  1761.         local curcol = Color( 0, 0, 0, 0 );
  1762.         local mx, my = self:GetPos();
  1763.         local bMouse = MouseInArea(mx + 200, my + h - 50, mx + 200 + 150, my + h - 50 + 30);
  1764.         if(bMouse) then
  1765.                  curcol = Color( 0, 0, 0, 50 );
  1766.                                 surface.SetDrawColor(curcol);
  1767.                                 surface.DrawRect(200, h - 50, 150, 30 )
  1768.         end
  1769.        
  1770.         surface.SetFont("memeyou2");
  1771.          surface.SetTextColor(textcol)
  1772.         local tw, th = surface.GetTextSize("Load Configuration");
  1773.         surface.SetTextPos( 200 + 75 - tw / 2, h - 50 + 15 - th / 2 );
  1774.         surface.DrawText("Load Configuration");
  1775.         if(bMouse && input.IsMouseDown(MOUSE_LEFT)) then
  1776.                 loadconfig();
  1777.         end
  1778. end
  1779. local mousedownbutton = false
  1780. local function DrawWhatsNew(self, w, h)
  1781.         local curcol = Color( 0, 0, 0, 0 );
  1782.         local mx, my = self:GetPos();
  1783.         local bMouse = MouseInArea(mx + 670, my + h - 50, mx + 670 + 100, my + h - 50 + 30);
  1784.         if(bMouse) then
  1785.                  curcol = Color( 0, 0, 0, 50 );
  1786.                                 surface.SetDrawColor(curcol);
  1787.                                 surface.DrawRect(670, h - 50, 100, 30 )
  1788.         end
  1789.        
  1790.         surface.SetFont("memeyou2");
  1791.          surface.SetTextColor(textcol)
  1792.         local tw, th = surface.GetTextSize("What's New?");
  1793.         surface.SetTextPos( 670 + 50 - tw / 2, h - 50 + 15 - th / 2 );
  1794.         surface.DrawText("What's New?");
  1795.        if(bMouse && input.IsMouseDown(MOUSE_LEFT)) then
  1796.             if mousedownbutton == false then
  1797.                 whatsnewpopup()
  1798.                 mousedownbutton = true
  1799.             end
  1800.         elseif (!bMouse || input.IsMouseDown(MOUSE_LEFT)) then
  1801.             mousedownbutton = false
  1802.         end
  1803. end
  1804. local mousedownbutton2 = false
  1805. local function DrawPlayerlist(self, w, h)
  1806.         local curcol = Color( 0, 0, 0, 0 );
  1807.         local mx, my = self:GetPos();
  1808.         local bMouse = MouseInArea(mx + 370, my + h - 50, mx + 370 + 75, my + h - 50 + 30);
  1809.         if(bMouse) then
  1810.                  curcol = Color( 0, 0, 0, 50 );
  1811.                                 surface.SetDrawColor(curcol);
  1812.                                 surface.DrawRect(370, h - 50, 75, 30 )
  1813.         end
  1814.        
  1815.         surface.SetFont("memeyou2");
  1816.          surface.SetTextColor(textcol)
  1817.         local tw, th = surface.GetTextSize("Playerlist");
  1818.         surface.SetTextPos( 370 + (75/2) - tw / 2, h - 50 + 15 - th / 2 );
  1819.         surface.DrawText("Playerlist");
  1820.        if(bMouse && input.IsMouseDown(MOUSE_LEFT)) then
  1821.             if mousedownbutton2 == false then
  1822.                 SpamMenu(true)
  1823.                 mousedownbutton2 = true
  1824.             end
  1825.         elseif (!bMouse || !input.IsMouseDown(MOUSE_LEFT)) then
  1826.             mousedownbutton2 = false
  1827.         end
  1828. end
  1829.  
  1830. local function DrawSpamlist(self, w, h)
  1831.         local curcol = Color( 0, 0, 0, 0 );
  1832.         local mx, my = self:GetPos();
  1833.         local bMouse = MouseInArea(mx + 540, my + h - 50, mx + 540 + 75, my + h - 50 + 30);
  1834.         if(bMouse) then
  1835.                  curcol = Color( 0, 0, 0, 50 );
  1836.                                 surface.SetDrawColor(curcol);
  1837.                                 surface.DrawRect(540, h - 50, 75, 30 )
  1838.         end
  1839.        
  1840.         surface.SetFont("memeyou2");
  1841.          surface.SetTextColor(textcol)
  1842.         local tw, th = surface.GetTextSize("Spamlist");
  1843.         surface.SetTextPos( 540 + (75/2) - tw / 2, h - 50 + 15 - th / 2 );
  1844.         surface.DrawText("Spamlist");
  1845.        if(bMouse && input.IsMouseDown(MOUSE_LEFT)) then
  1846.             if mousedownbutton2 == false then
  1847.                 SpamMenu(false)
  1848.                 mousedownbutton2 = true
  1849.             end
  1850.         elseif (!bMouse || !input.IsMouseDown(MOUSE_LEFT)) then
  1851.             mousedownbutton2 = false
  1852.         end
  1853. end
  1854.  
  1855. loadconfig();
  1856.  
  1857. local insertdown2, insertdown, menuopen;
  1858.  
  1859. local function menu()
  1860.         local frame = vgui.Create("DFrame");
  1861.         frame:SetSize(800, 600);
  1862.         frame:Center();
  1863.         frame:SetTitle("");
  1864.         frame:MakePopup();
  1865.         frame:SetDraggable(true);
  1866.         frame:ShowCloseButton(false);
  1867.        
  1868.         frame.Paint = function(self, w, h)
  1869.                 if(candoslider && !mousedown && !drawlast && !input.IsMouseDown(MOUSE_LEFT)) then
  1870.                         candoslider = false;
  1871.                 end
  1872.                 DrawBackground(w, h);
  1873.                 DrawOptions(self, w, h);
  1874.                 DrawSub(self, w, h);
  1875.                 DrawSaveButton(self, w, h);
  1876.                 DrawLoadButton(self, w, h);
  1877.                 DrawWhatsNew(self, w, h);
  1878.                 DrawPlayerlist(self, w, h);
  1879.                 DrawSpamlist(self, w, h);
  1880.                 if(drawlast) then
  1881.                         drawlast();
  1882.                         candoslider = true;
  1883.                 end
  1884.                 mousedown = input.IsMouseDown(MOUSE_LEFT);
  1885.         end
  1886.        
  1887.         frame.Think = function()
  1888.                 if screengrab then
  1889.                     frame:SetPos( ScrW(), ScrH())
  1890.                 else
  1891.                     frame:Center()
  1892.                 end
  1893.  
  1894.  
  1895.                 if (input.IsKeyDown(KEY_INSERT) && !insertdown2) || testie then
  1896.                         testie = false
  1897.                         frame:Remove();
  1898.                         menuopen = false;
  1899.                         showfov = false
  1900.                         candoslider = false;
  1901.                         drawlast = nil;
  1902.                         for k,v in next, order do
  1903.  
  1904.                             for _, opt in next, options[v] do
  1905.        
  1906.                                 for i=1, #opt do
  1907.                                     if i == 1 then continue; end
  1908.                                     if opt[i][2] == "Textbox" then
  1909.                                         pooptest[v][opt[i][1]][1] = false
  1910.                                    
  1911.                                     end
  1912.                                 end
  1913.        
  1914.                             end
  1915.  
  1916.    
  1917.        
  1918.                         end
  1919.         menr = gInt("Color", "Menu Color", "Red")
  1920.         meng = gInt("Color", "Menu Color", "Green")
  1921.         menb = gInt("Color", "Menu Color", "Blue")
  1922.         menuscol = Color(menr, meng, menb, 255)
  1923.         texr = gInt("Color", "Text Color", "Red")
  1924.         texg = gInt("Color", "Text Color", "Green")
  1925.         texb = gInt("Color", "Text Color", "Blue")
  1926.         textcol = Color(texr, texg, texb, 255)
  1927.         cror = gInt("Color", "Crosshair Color", "Red")
  1928.         crog = gInt("Color", "Crosshair Color", "Green")
  1929.         crob = gInt("Color", "Crosshair Color", "Blue")
  1930.         crocol = Color(cror, crog, crob, 255)
  1931.                 end
  1932.         end
  1933. end
  1934.  
  1935. local function Think()
  1936.         if (input.IsKeyDown(KEY_INSERT) && !menuopen && !insertdown) then
  1937.                 menuopen = true;
  1938.                 insertdown = true;
  1939.                 menu();
  1940.         elseif (!input.IsKeyDown(KEY_INSERT) && !menuopen) then
  1941.                 insertdown = false;
  1942.         end
  1943.         if (input.IsKeyDown(KEY_INSERT) && insertdown && menuopen) then
  1944.                 insertdown2 = true;
  1945.         else
  1946.                 insertdown2 = false;
  1947.         end
  1948.         menr = gInt("Color", "Menu Color", "Red")
  1949.         meng = gInt("Color", "Menu Color", "Green")
  1950.         menb = gInt("Color", "Menu Color", "Blue")
  1951.         menuscol = Color(menr, meng, menb, 255)
  1952.         texr = gInt("Color", "Text Color", "Red")
  1953.         texg = gInt("Color", "Text Color", "Green")
  1954.         texb = gInt("Color", "Text Color", "Blue")
  1955.         textcol = Color(texr, texg, texb, 255)
  1956.         cror = gInt("Color", "Crosshair Color", "Red")
  1957.         crog = gInt("Color", "Crosshair Color", "Green")
  1958.         crob = gInt("Color", "Crosshair Color", "Blue")
  1959.         crocol = Color(cror, crog, crob, 255)
  1960.         if scnx ~= ScrW() then
  1961.             RunConsoleCommand("retry")
  1962.  
  1963.         end
  1964. end
  1965.  
  1966. hook.Add("Think", "HackThink", Think);
  1967.  
  1968. local FindMetaTable = FindMetaTable;
  1969.  
  1970. local em = FindMetaTable"Entity";
  1971. local pm = FindMetaTable"Player";
  1972. local cm = FindMetaTable"CUserCmd";
  1973. local wm = FindMetaTable"Weapon";
  1974. local am = FindMetaTable"Angle";
  1975. local vm = FindMetaTable"Vector";
  1976. local im = FindMetaTable"IMaterial";
  1977. local xm = FindMetaTable"VMatrix";
  1978. local Eye_Angles = em.EyeAngles
  1979.  
  1980. local testchange
  1981. local Vector = Vector;
  1982. local player = Copy(player);
  1983. local Angle = Angle;
  1984. local me = LocalPlayer();
  1985. local render = Copy(render);
  1986. local cma = Copy(cam);
  1987. local Material = Material;
  1988. local CreateMaterial = CreateMaterial;
  1989. local poop = {89, -89}
  1990. local fakelagTick, fakelagSend = 0;
  1991. local fakechokeS = 0;
  1992. local fakeLagSwitch
  1993. local sendCount, chokeCount = 0, 0;
  1994. local fakelagBucket = {};
  1995. local teststuck = 0
  1996. local nullVel = Vector();
  1997. local function GetAngle(ang)
  1998.     if(!gBool("Aimbot", "Accuracy", "NoRecoil")) then return ang + pm.GetPunchAngle(me); end
  1999.     return ang;
  2000. end
  2001.  
  2002. local function fakelag()
  2003.     if(!gBool("HVH", "FakeLag", "Enabled")) then
  2004.         sendCount = 0;
  2005.         chokeCount = 0;
  2006.         fakeLagSwitch = false;
  2007.         return;
  2008.     end
  2009.     local choke = gInt("HVH", "FakeLag", "Fakelag Rate");
  2010.  
  2011.     if(fakeLagSwitch) then
  2012.         if(sendCount >= 1) then
  2013.             fakeLagSwitch = false;
  2014.             sendCount = 0;
  2015.             chokeCount = 0;
  2016.         else
  2017.             sendCount = sendCount + 1;
  2018.         end
  2019.     else
  2020.         if(chokeCount >= choke) then
  2021.             fakeLagSwitch = true;
  2022.             sendCount = 0;
  2023.             chokeCount = 0;
  2024.         else
  2025.             chokeCount = chokeCount + 1;
  2026.         end
  2027.     end
  2028. end
  2029.  
  2030. local function fakelagPredict(v)
  2031.     if(!gBool("HVH", "FakeLag", "Fakelag Prediction")) then return; end
  2032.     if(!fakelagBucket[v]) then
  2033.         fakelagBucket[v] = {
  2034.             em.GetVelocity(v),
  2035.             em.GetPos(v),
  2036.             0,
  2037.         };
  2038.     end
  2039.  
  2040.     local oldVel = fakelagBucket[v][1];
  2041.        
  2042.         if !v:IsOnGround() then
  2043.             oldVel.z  = (0.5 * GetConVarNumber("sv_gravity") * engine.TickInterval()^2) + oldVel.z * engine.TickInterval()
  2044.         end
  2045.     local oldPos = fakelagBucket[v][2];
  2046.     local oldVelz = oldVel.z || 0
  2047.  
  2048.     fakelagBucket[v][1] = em.GetVelocity(v);
  2049.     fakelagBucket[v][2] = em.GetPos(v);
  2050.  
  2051.     if(oldVel == nullVel) then
  2052.         fakelagBucket[v][3] = 0;
  2053.         return;
  2054.     end
  2055.  
  2056.     if(fakelagBucket[v][1] == oldVel && oldPos == fakelagBucket[v][2]) then
  2057.         fakelagBucket[v][3] = fakelagBucket[v][3] + 1;
  2058.        
  2059.         return fakelagBucket[v][3], fakelagBucket[v][1];
  2060.     else
  2061.         fakelagBucket[v][3] = 0;
  2062.         return 1
  2063.     end
  2064. end
  2065.  
  2066.  
  2067.  
  2068.  
  2069. local function Filter(v)
  2070.     local enemy = gBool("Visuals", "Filter", "Enemies only");
  2071.     local dist = gBool("Visuals", "Filter", "Distance")
  2072.     if(enemy) then
  2073.         if gBool("Visuals", "Filter", "Always show Friends") then
  2074.             if(pm.Team(v) == pm.Team(me)) && (v:GetFriendStatus() ~= "friend" || table.HasValue(Friends, v)) && v ~= me then return false; end
  2075.         else
  2076.             if(pm.Team(v) == pm.Team(me)) && v ~= me then return false; end
  2077.         end
  2078.     end
  2079.     if(dist) then
  2080.         local maxdist = gBool("Visuals", "Filter", "Max Distance");
  2081.         if( vm.Distance( em.GetPos(v), em.GetPos(me) ) > (maxdist * 5) ) then return false; end
  2082.     end
  2083.     if (pm.Team(me) == TEAM_SPECTATOR && me:GetObserverMode() == 0 && pm.Team(v) ~= TEAM_SPECTATOR || pm.Team(me) ~= TEAM_SPECTATOR  && pm.Team(v) == TEAM_SPECTATOR) || !v:Alive() || v:GetObserverMode() ~= 0 then
  2084.         return false
  2085.     end
  2086.     return true;
  2087. end
  2088.  
  2089.  
  2090.  
  2091. local chamsmat = CreateMaterial("a", "VertexLitGeneric", {
  2092.     ["$ignorez"] = 1,
  2093.     ["$model"] = 1,
  2094.     ["$basetexture"] = "models/debug/debugwhite",
  2095. });
  2096.  
  2097. local chamsmat2 = CreateMaterial("@", "vertexlitgeneric", {
  2098.     ["$ignorez"] = 0,
  2099.     ["$model"] = 1,
  2100.     ["$basetexture"] = "models/debug/debugwhite",
  2101. });
  2102.  
  2103. local function GetChamsColor(v, vis)
  2104.     local pre = "Chams - Enemy";
  2105.     if(pm.Team(v) == pm.Team(me)) then
  2106.         pre = "Chams - Team";
  2107.     end
  2108.     if(vis) then
  2109.         local r = gInt("Color", pre, "Visible R") / 255;
  2110.         local g = gInt("Color", pre, "Visible G") / 255;
  2111.         local b = gInt("Color", pre, "Visible B") / 255;
  2112.         return r,g,b;
  2113.     end
  2114.     local r = gInt("Color", pre, "Not Visible R") / 255;
  2115.     local g = gInt("Color", pre, "Not Visible G") / 255;
  2116.     local b = gInt("Color", pre, "Not Visible B") / 255;
  2117.     return r,g,b;
  2118. end
  2119.  
  2120. local function GetHandsColor(vis)
  2121.     if(!vis) then
  2122.         local r = gInt("Color", "Chams - Hands", "Not Visible R") / 255;
  2123.         local g = gInt("Color", "Chams - Hands", "Not Visible G") / 255;
  2124.         local b = gInt("Color", "Chams - Hands", "Not Visible B") / 255;
  2125.         return r,g,b;
  2126.     end
  2127.     local r = gInt("Color", "Chams - Hands", "Visible R") / 255;
  2128.     local g = gInt("Color", "Chams - Hands", "Visible G") / 255;
  2129.     local b = gInt("Color", "Chams - Hands", "Visible B") / 255;
  2130.     return r,g,b;
  2131. end
  2132.  
  2133. local function GetWeapsColor()
  2134.    
  2135.     local r = gInt("Color", "Chams - Weapon", "Visible R") / 255;
  2136.     local g = gInt("Color", "Chams - Weapon", "Visible G") / 255;
  2137.     local b = gInt("Color", "Chams - Weapon", "Visible B") / 255;
  2138.     return r,g,b;
  2139. end
  2140.  
  2141. local buttons = {
  2142. [KEY_FIRST] = {KEY_FIRST, "KEY_FIRST"},
  2143. [KEY_NONE] = {KEY_NONE, "KEY_NONE"},
  2144. [KEY_0] = {KEY_0, "KEY_0"},
  2145. [KEY_1] = {KEY_1, "KEY_1"},
  2146. [KEY_2] = {KEY_2, "KEY_2"},
  2147. [KEY_3] = {KEY_3, "KEY_3"},
  2148. [KEY_4] = {KEY_4, "KEY_4"},
  2149. [KEY_5] = {KEY_5, "KEY_5"},
  2150. [KEY_6] = {KEY_6, "KEY_6"},
  2151. [KEY_7] = {KEY_7, "KEY_7"},
  2152. [KEY_8] = {KEY_8, "KEY_8"},
  2153. [KEY_9] = {KEY_9, "KEY_9"},
  2154. [KEY_A] = {KEY_A, "KEY_A"},
  2155. [KEY_B] = {KEY_B, "KEY_B"},
  2156. [KEY_C] = {KEY_C, "KEY_C"},
  2157. [KEY_D] = {KEY_D, "KEY_D"},
  2158. [KEY_E] = {KEY_E, "KEY_E"},
  2159. [KEY_F] = {KEY_F, "KEY_F"},
  2160. [KEY_G] = {KEY_G, "KEY_G"},
  2161. [KEY_H] = {KEY_H, "KEY_H"},
  2162. [KEY_I] = {KEY_I, "KEY_I"},
  2163. [KEY_J] = {KEY_J, "KEY_J"},
  2164. [KEY_K] = {KEY_K, "KEY_K"},
  2165. [KEY_L] = {KEY_L, "KEY_L"},
  2166. [KEY_M] = {KEY_M, "KEY_M"},
  2167. [KEY_N] = {KEY_N, "KEY_N"},
  2168. [KEY_O] = {KEY_O, "KEY_O"},
  2169. [KEY_P] = {KEY_P, "KEY_P"},
  2170. [KEY_Q] = {KEY_Q, "KEY_Q"},
  2171. [KEY_R] = {KEY_R, "KEY_R"},
  2172. [KEY_S] = {KEY_S, "KEY_S"},
  2173. [KEY_T] = {KEY_T, "KEY_T"},
  2174. [KEY_U] = {KEY_U, "KEY_U"},
  2175. [KEY_V] = {KEY_V, "KEY_V"},
  2176. [KEY_W] = {KEY_W, "KEY_W"},
  2177. [KEY_X] = {KEY_X, "KEY_X"},
  2178. [KEY_Y] = {KEY_Y, "KEY_Y"},
  2179. [KEY_Z] = {KEY_Z, "KEY_Z"},
  2180. [KEY_PAD_0] = {KEY_PAD_0, "KEY_PAD_0"},
  2181. [KEY_PAD_1] = {KEY_PAD_1, "KEY_PAD_1"},
  2182. [KEY_PAD_2] = {KEY_PAD_2, "KEY_PAD_2"},
  2183. [KEY_PAD_3] = {KEY_PAD_3, "KEY_PAD_3"},
  2184. [KEY_PAD_4] = {KEY_PAD_4, "KEY_PAD_4"},
  2185. [KEY_PAD_5] = {KEY_PAD_5, "KEY_PAD_5"},
  2186. [KEY_PAD_6] = {KEY_PAD_6, "KEY_PAD_6"},
  2187. [KEY_PAD_7] = {KEY_PAD_7, "KEY_PAD_7"},
  2188. [KEY_PAD_8] = {KEY_PAD_8, "KEY_PAD_8"},
  2189. [KEY_PAD_9] = {KEY_PAD_9, "KEY_PAD_9"},
  2190. [KEY_PAD_DIVIDE] = {KEY_PAD_DIVIDE, "KEY_PAD_DIVIDE"},
  2191. [KEY_PAD_MULTIPLY] = {KEY_PAD_MULTIPLY, "KEY_PAD_MULTIPLY"},
  2192. [KEY_PAD_MINUS] = {KEY_PAD_MINUS, "KEY_PAD_MINUS"},
  2193. [KEY_PAD_PLUS] = {KEY_PAD_PLUS, "KEY_PAD_PLUS"},
  2194. [KEY_PAD_ENTER] = {KEY_PAD_ENTER, "KEY_PAD_ENTER"},
  2195. [KEY_PAD_DECIMAL] = {KEY_PAD_DECIMAL, "KEY_PAD_DECIMAL"},
  2196. [KEY_LBRACKET] = {KEY_LBRACKET, "KEY_LBRACKET"},
  2197. [KEY_RBRACKET] = {KEY_RBRACKET, "KEY_RBRACKET"},
  2198. [KEY_SEMICOLON] = {KEY_SEMICOLON, "KEY_SEMICOLON"},
  2199. [KEY_APOSTROPHE] = {KEY_APOSTROPHE, "KEY_APOSTROPHE"},
  2200. [KEY_BACKQUOTE] = {KEY_BACKQUOTE, "KEY_BACKQUOTE"},
  2201. [KEY_COMMA] = {KEY_COMMA, "KEY_COMMA"},
  2202. [KEY_PERIOD] = {KEY_PERIOD, "KEY_PERIOD"},
  2203. [KEY_SLASH] = {KEY_SLASH, "KEY_SLASH"},
  2204. [KEY_BACKSLASH] = {KEY_BACKSLASH, "KEY_BACKSLASH"},
  2205. [KEY_MINUS] = {KEY_MINUS, "KEY_MINUS"},
  2206. [KEY_EQUAL] = {KEY_EQUAL, "KEY_EQUAL"},
  2207. [KEY_ENTER] = {KEY_ENTER, "KEY_ENTER"},
  2208. [KEY_SPACE] = {KEY_SPACE, "KEY_SPACE"},
  2209. [KEY_BACKSPACE] = {KEY_BACKSPACE, "KEY_BACKSPACE"},
  2210. [KEY_TAB] = {KEY_TAB, "KEY_TAB"},
  2211. [KEY_CAPSLOCK] = {KEY_CAPSLOCK, "KEY_CAPSLOCK"},
  2212. [KEY_NUMLOCK] = {KEY_NUMLOCK, "KEY_NUMLOCK"},
  2213. [KEY_ESCAPE] = {KEY_ESCAPE, "KEY_ESCAPE"},
  2214. [KEY_SCROLLLOCK] = {KEY_SCROLLLOCK, "KEY_SCROLLLOCK"},
  2215. [KEY_INSERT] = {KEY_INSERT, "KEY_INSERT"},
  2216. [KEY_DELETE] = {KEY_DELETE, "KEY_DELETE"},
  2217. [KEY_HOME] = {KEY_HOME, "KEY_HOME"},
  2218. [KEY_END] = {KEY_END, "KEY_END"},
  2219. [KEY_PAGEUP] = {KEY_PAGEUP, "KEY_PAGEUP"},
  2220. [KEY_PAGEDOWN] = {KEY_PAGEDOWN, "KEY_PAGEDOWN"},
  2221. [KEY_BREAK] = {KEY_BREAK, "KEY_BREAK"},
  2222. [KEY_LSHIFT] = {KEY_LSHIFT, "KEY_LSHIFT"},
  2223. [KEY_RSHIFT] = {KEY_RSHIFT, "KEY_RSHIFT"},
  2224. [KEY_LALT] = {KEY_LALT, "KEY_LALT"},
  2225. [KEY_RALT] = {KEY_RALT, "KEY_RALT"},
  2226. [KEY_LCONTROL] = {KEY_LCONTROL, "KEY_LCONTROL"},
  2227. [KEY_RCONTROL] = {KEY_RCONTROL, "KEY_RCONTROL"},
  2228. [KEY_LWIN] = {KEY_LWIN, "KEY_LWIN"},
  2229. [KEY_RWIN] = {KEY_RWIN, "KEY_RWIN"},
  2230. [KEY_APP] = {KEY_APP, "KEY_APP"},
  2231. [KEY_UP] = {KEY_UP, "KEY_UP"},
  2232. [KEY_LEFT] = {KEY_LEFT, "KEY_LEFT"},
  2233. [KEY_DOWN] = {KEY_DOWN, "KEY_DOWN"},
  2234. [KEY_RIGHT] = {KEY_RIGHT, "KEY_RIGHT"},
  2235. [KEY_F1] = {KEY_F1, "KEY_F1"},
  2236. [KEY_F2] = {KEY_F2, "KEY_F2"},
  2237. [KEY_F3] = {KEY_F3, "KEY_F3"},
  2238. [KEY_F4] = {KEY_F4, "KEY_F4"},
  2239. [KEY_F5] = {KEY_F5, "KEY_F5"},
  2240. [KEY_F6] = {KEY_F6, "KEY_F6"},
  2241. [KEY_F7] = {KEY_F7, "KEY_F7"},
  2242. [KEY_F8] = {KEY_F8, "KEY_F8"},
  2243. [KEY_F9] = {KEY_F9, "KEY_F9"},
  2244. [KEY_F10] = {KEY_F10, "KEY_F10"},
  2245. [KEY_F11] = {KEY_F11, "KEY_F11"},
  2246. [KEY_F12] = {KEY_F12, "KEY_F12"},
  2247. [KEY_CAPSLOCKTOGGLE] = {KEY_CAPSLOCKTOGGLE, "KEY_CAPSLOCKTOGGLE"},
  2248. [KEY_NUMLOCKTOGGLE] = {KEY_NUMLOCKTOGGLE, "KEY_NUMLOCKTOGGLE"},
  2249. [KEY_LAST] = {KEY_LAST, "KEY_LAST"},
  2250. [KEY_SCROLLLOCKTOGGLE] = {KEY_SCROLLLOCKTOGGLE, "KEY_SCROLLLOCKTOGGLE"},
  2251. [KEY_COUNT] = {KEY_COUNT, "KEY_COUNT"},
  2252. }
  2253.  
  2254. hook.Add("PlayerBindPress", "HackPBP", function( ply, bind, pressed )
  2255.     --To block more commands, you could add another line similar to
  2256.     --the one below, just replace the command
  2257.     local test = "KEY_"..string.upper(input.LookupBinding("voicerecord"))
  2258.     local gotit
  2259.     for i=0, #buttons, 1 do
  2260.         if buttons[i][2] == test then
  2261.             gotit = i
  2262.         end
  2263.     end
  2264.     if (string.find( bind, "+voicerecord" )&& (ChatOpen) ) then
  2265.         return true
  2266.     end
  2267. end)
  2268.  
  2269. local function Chams(v)
  2270.     --[[local plycolor = v:GetPlayerColor()
  2271.         plycolor = Color(plycolor.x, plycolor.y, plycolor.z)]]
  2272.     if !screengrab then
  2273.     if (gOption("Visuals", "ESP", "Model Type") == "XQZ") then
  2274.         cam.Start3D();
  2275.             render.SuppressEngineLighting(true)
  2276.             render.MaterialOverride();
  2277.             render.SetColorModulation(1,1,1);
  2278.             cam.IgnoreZ(true);
  2279.             em.DrawModel(v);
  2280.             cam.IgnoreZ(false);
  2281.             render.SetColorModulation(1,1,1);
  2282.             render.MaterialOverride();
  2283.             render.SuppressEngineLighting(false)
  2284.         cam.End3D();
  2285.     elseif (gOption("Visuals", "ESP", "Model Type") == "Chams 2D") then
  2286.         cam.Start3D();
  2287.             render.SuppressEngineLighting(true)
  2288.             render.MaterialOverride(chamsmat);
  2289.             render.SetColorModulation(GetChamsColor(v));
  2290.                
  2291.             em.DrawModel(v);
  2292.                
  2293.             render.SetColorModulation(GetChamsColor(v, true));
  2294.             render.MaterialOverride(chamsmat2);
  2295.                
  2296.             em.DrawModel(v);
  2297.             render.SuppressEngineLighting(false)
  2298.             render.MaterialOverride();
  2299.         cam.End3D();
  2300.     elseif (gOption("Visuals", "ESP", "Model Type") == "Chams 3D") then
  2301.         cam.Start3D();
  2302.             render.MaterialOverride(chamsmat);
  2303.             render.SetColorModulation(GetChamsColor(v));
  2304.                
  2305.             em.DrawModel(v);
  2306.                
  2307.             render.SetColorModulation(GetChamsColor(v, true));
  2308.             render.MaterialOverride(chamsmat2);
  2309.                
  2310.             em.DrawModel(v);
  2311.             render.MaterialOverride();
  2312.         cam.End3D();
  2313.     else
  2314.         render.SetColorModulation(1,1,1);
  2315.         render.MaterialOverride();
  2316.     end
  2317.     end
  2318. end
  2319.  
  2320.  
  2321. local mattable = {};
  2322.  
  2323.  
  2324. local AudioSource = nil
  2325. local AMP = 500
  2326. local addfov = 0
  2327. refreshrate = FFT_512
  2328.  
  2329. --this is deprived of the refreshrate's levels which can be found here: http://wiki.garrysmod.com/page/Enums/FFT
  2330. --i.e FFT_512 = 256
  2331. bitrate = 256
  2332.  
  2333. function Coords(v)
  2334. local omin, omax =  v:OBBMins(), v:OBBMaxs()
  2335. vCoords = {
  2336.     Vector(omin.x, omin.y, omin.z),
  2337.     Vector(omin.x, omin.y, omax.z),
  2338.     Vector(omin.x, omax.y, omin.z),
  2339.     Vector(omin.x, omax.y, omax.z),
  2340.     Vector(omax.x, omin.y, omin.z),
  2341.     Vector(omax.x, omin.y, omax.z),
  2342.     Vector(omax.x, omax.y, omin.z),
  2343.     Vector(omax.x, omax.y, omax.z)
  2344.     }
  2345.     local minx, miny, maxx, maxy = ScrW() * 9999, ScrH() * 9999, -ScrW() * 9999, -ScrH() * 9999
  2346.     for _, corner in pairs(vCoords) do
  2347.         local screen = (v:GetPos() + corner):ToScreen()
  2348.         minx, miny = math.min(minx, screen.x), math.min(miny, screen.y)
  2349.         maxx, maxy = math.max(maxx, screen.x), math.max(maxy, screen.y)
  2350.     end
  2351.     return minx, miny, maxx, maxy
  2352. end
  2353.  
  2354.  
  2355.  
  2356. local function GetColor(v)
  2357.     if(pm.Team(v) == pm.Team(me)) then
  2358.         local r = gInt("Colors", "Box - Team", "R");
  2359.         local g = gInt("Colors", "Box - Team", "G");
  2360.         local b = gInt("Colors", "Box - Team", "B");
  2361.         return(Color(r, g, b, 220));
  2362.     end
  2363.     local r = gInt("Colors", "Box - Enemy", "R");
  2364.     local g = gInt("Colors", "Box - Enemy", "G");
  2365.     local b = gInt("Colors", "Box - Enemy", "B");
  2366.     return(Color(r, g, b, 220));
  2367. end
  2368.  
  2369.  
  2370. local aimtarget;
  2371.  
  2372. local Spectators = {}
  2373. local Moderator = {}
  2374. local Admin = {}
  2375.  
  2376.  
  2377.  
  2378.  
  2379. local fa;
  2380. local aa;
  2381. local soo = false;
  2382. local ctype = 0
  2383. local cspin = 0
  2384. local ctype2 = 0
  2385. local ctype3 = 0
  2386. local ctype4 = 0
  2387. veloloss = false
  2388. cleft = 0
  2389. local function FixMovement(ucmd, aaaaa)
  2390.     if (fa) then
  2391.     aim = fa
  2392.     else
  2393.     aim = fa
  2394.     end
  2395.     if math.NormalizeAngle(cm.GetViewAngles(ucmd).p) > 89 || math.NormalizeAngle(cm.GetViewAngles(ucmd).p) < -89 then
  2396.         soo = true
  2397.     else
  2398.         soo = false
  2399.     end
  2400.     local move = Vector(cm.GetForwardMove(ucmd), cm.GetSideMove(ucmd), cm.GetUpMove(ucmd));
  2401.     if !input.IsKeyDown(KEY_SPACE) then
  2402.         canjump = false
  2403.     end
  2404.     if gBool("Misc", "BunnyHop", "Enabled") && me:GetMoveType() ~= MOVETYPE_NOCLIP && input.IsKeyDown( KEY_SPACE ) && canjump && me:Alive() && !ChatOpen && !PSBox then
  2405.     if (gOption("Misc", "BunnyHop", "Strafe Type") == "Full" || (gOption("Misc", "BunnyHop", "Strafe Type") ~= "Off" && (gKey("Misc", "BunnyHop", "cStrafe Toggle"))))  then
  2406.         if gKey("Misc", "BunnyHop", "cStrafe Toggle")  then
  2407.             veloloss = true
  2408.        
  2409.             if ctype == 0 then
  2410.                 ctype = 200
  2411.             elseif ucmd:CommandNumber() ~= 0 then
  2412.             ctype = ctype + (math.Clamp((me:GetVelocity():Length2D() *1), 0.25, math.Clamp(((math.Clamp(GetConVarNumber("sv_airaccelerate"),0,80)*(engine.TickInterval()*5))),0.20,8)) )+(cm.GetMouseX(ucmd) * -GetConVarNumber("m_yaw"))
  2413.             end
  2414.             math.NormalizeAngle(ctype)
  2415.             Vector(100, 0, cm.GetUpMove(ucmd))
  2416.         else
  2417.        
  2418.             ctype  = 0
  2419.             veloloss = false
  2420.        
  2421.                 if(!me:IsOnGround()) then
  2422.                     if(ucmd:GetMouseX() > 1 || ucmd:GetMouseX() < -1) then
  2423.                         move = Vector(0, (ucmd:GetMouseX() > 1 && 400 || -400), cm.GetUpMove(ucmd))
  2424.                     else
  2425.                         if ucmd:CommandNumber() ~= 0 then
  2426.                         move = Vector((5200 / me:GetVelocity():Length2D()), ((ucmd:CommandNumber() % 2 == 0) && -400 || 400), cm.GetUpMove(ucmd))
  2427.                         end
  2428.                     end
  2429.                 else
  2430.                     move = Vector(1, 0, cm.GetUpMove(ucmd))
  2431.                 end
  2432.    
  2433.         end
  2434.     elseif gOption("Misc", "BunnyHop", "Strafe Type") == "Assist" then
  2435.         ctype  = 0
  2436.         veloloss = false
  2437.         if(ucmd:GetMouseX() > 1 || ucmd:GetMouseX() < -1) then
  2438.             move = Vector(0, (ucmd:GetMouseX() > 1 && 300 || -300), cm.GetUpMove(ucmd))
  2439.         end
  2440.     else
  2441.         ctype  = 0
  2442.         veloloss = false
  2443.         move = Vector(cm.GetForwardMove(ucmd), cm.GetSideMove(ucmd), cm.GetUpMove(ucmd));
  2444.     end
  2445.     else
  2446.     ctype  = 0
  2447.     veloloss = false
  2448.     move = Vector(cm.GetForwardMove(ucmd), cm.GetSideMove(ucmd), cm.GetUpMove(ucmd));
  2449.     end
  2450.     ctype2 = math.rad(ctype)
  2451.     ctype3 = math.rad(ctype-80)
  2452.     ctype4 = math.rad(ctype+80)
  2453.     math.NormalizeAngle(ctype3)
  2454.     math.NormalizeAngle(ctype4)
  2455.    
  2456.     local speed = math.sqrt(move.x * move.x + move.y * move.y);
  2457.     local ang = vm.Angle(move);
  2458.     local yaw = math.rad(cm.GetViewAngles(ucmd).y - fa.y + ang.y);
  2459.     --print(yaw)
  2460.     cm.SetForwardMove(ucmd, (math.cos(yaw+ ctype2) * speed) * ( soo && -1 || 1 ));
  2461.     cm.SetSideMove(ucmd, math.sin(yaw + ctype2) * speed);
  2462.     cm.SetUpMove(ucmd, cm.GetUpMove(ucmd));
  2463. end
  2464.  
  2465. local function Clamp(val, min, max)
  2466.     if(val < min) then
  2467.         return min;
  2468.     elseif(val > max) then
  2469.         return max;
  2470.     end
  2471.     return val;
  2472. end
  2473.  
  2474. local function NormalizeAngle(ang)
  2475.     ang.x = math.NormalizeAngle(ang.x);
  2476.     ang.p = math.Clamp(ang.p, -120, 120);
  2477. end
  2478.  
  2479.  
  2480. local table = Copy(table);
  2481. local dists = {};
  2482.  
  2483.  
  2484.  
  2485. function Transform(pos, matrix)
  2486.     local matA, matB, matC = matrix[1], matrix[2], matrix[3]
  2487.     local x = Vector(matA[1], matA[2], matA[3])
  2488.     local y = Vector(matB[1], matB[2], matB[3])
  2489.     local z = Vector(matC[1], matC[2], matC[3])
  2490.  
  2491.     return Vector(pos:Dot(x) + matA[4], pos:Dot(y) + matB[4], pos:Dot(z)+ matC[4])
  2492. end
  2493.  
  2494.  
  2495. local function Hitbox(v)
  2496.     if v:IsValid() then
  2497.         local numHitBoxes = v:GetHitBoxCount( 0 )
  2498.         local headbox = nil
  2499.         local headbone = nil
  2500.         local headfound = false
  2501.         local spinebox = nil
  2502.         local spinebone = nil
  2503.         local spinefound = false
  2504.         local zombbox = nil
  2505.         local zombbone = nil
  2506.         local zombfound = false
  2507.         zombfound2 = false
  2508.  
  2509.     if !string.find(string.lower(GAMEMODE.Name), "prop") then
  2510.         for group = 0, em.GetHitBoxGroupCount(v) - 1 do
  2511.             local count = em.GetHitBoxCount(v, group)
  2512.             for hitbox = 0, count - 1 do
  2513.                 local bone = em.GetHitBoxBone( v, hitbox, group );
  2514.                 if(!bone) then continue; end
  2515.                 local min, max = em.GetHitBoxBounds( v, hitbox, group );
  2516.                 local bonepos, boneang = em.GetBonePosition( v, bone );
  2517.             end
  2518.         end
  2519.         for hitbox=0, numHitBoxes - 1 do
  2520.             local bone = v:GetHitBoxBone( hitbox, 0 )
  2521.             if !gBool("Aimbot", "Target", "Bodyaim") then
  2522.                 if string.find(string.lower(GAMEMODE.Name), "zomb") then
  2523.                     if string.find(string.lower(v:GetBoneName( bone )), "head") then
  2524.                     zombbox = hitbox
  2525.                     zombbone = em.GetHitBoxBone( v, hitbox, 0 )
  2526.                     zombfound = true
  2527.                     elseif string.find(string.lower(v:GetBoneName( bone )), "spine") && !zombfound then
  2528.                     zombbox = hitbox
  2529.                     zombbone = em.GetHitBoxBone( v, hitbox, 0 )
  2530.            
  2531.                     elseif (string.find(string.lower(v:GetBoneName( bone )), "body") || string.find(string.lower(v:GetBoneName( bone )), "headcrab")) && !zombfound then
  2532.                     zombbox = hitbox
  2533.                     zombbone = em.GetHitBoxBone( v, hitbox, 0 )
  2534.                
  2535.                     elseif hitbox == (numHitBoxes - 1) && bone && !zombfound then
  2536.                         zombbox = 0
  2537.                         zombbone = em.GetHitBoxBone( v, 0, 0 )
  2538.                         zombfound = true
  2539.                     end
  2540.                 elseif string.find(string.lower(v:GetBoneName( bone )), "head") then
  2541.                 headbox = hitbox
  2542.                 headbone = em.GetHitBoxBone( v, hitbox, 0 )
  2543.                 headfound = true
  2544.                 elseif string.find(string.lower(v:GetBoneName( bone )), "spine2") && !headfound then
  2545.                 spinebox = hitbox
  2546.                 spinebone = em.GetHitBoxBone( v, hitbox, 0 )
  2547.                 elseif hitbox == (numHitBoxes - 1) && !headfound then
  2548.                 headbox = 0
  2549.                 headbone = em.GetHitBoxBone( v, 0, 0 )
  2550.                 headfound = true
  2551.                 end
  2552.             else
  2553.                 if string.find(string.lower(GAMEMODE.Name), "zomb") then
  2554.                     if string.find(string.lower(v:GetBoneName( bone )), "spine") then
  2555.                     zombbox = hitbox
  2556.                     zombbone = em.GetHitBoxBone( v, hitbox, 0 )
  2557.                     zombfound = true
  2558.                     elseif (string.find(string.lower(v:GetBoneName( bone )), "body") || string.find(string.lower(v:GetBoneName( bone )), "headcrab")) && !zombfound then
  2559.                     zombbox = hitbox
  2560.                     zombbone = em.GetHitBoxBone( v, hitbox, 0 )
  2561.                     elseif hitbox == (numHitBoxes - 1) && !zombfound then
  2562.                         zombbox = 0
  2563.                         zombbone = em.GetHitBoxBone( v, 0, 0 )
  2564.                         zombfound = true
  2565.                     end
  2566.                 else
  2567.                     if string.find(string.lower(v:GetBoneName( bone )), "spine2") then
  2568.                         spinebox = hitbox
  2569.                         spinebone = em.GetHitBoxBone( v, hitbox, 0 )
  2570.                         spinefound = true
  2571.                     elseif string.find(string.lower(v:GetBoneName( bone )), "spine1") && !spinefound then
  2572.                         spinebox = hitbox
  2573.                         spinebone = em.GetHitBoxBone( v, hitbox, 0 )
  2574.                     elseif hitbox == (numHitBoxes - 1) && !spinefound then
  2575.                     spinebox = 0
  2576.                     spinebone = em.GetHitBoxBone( v, 0, 0 )
  2577.                     spinefound = true
  2578.                     end
  2579.                 end
  2580.             end
  2581.         end
  2582.         if headbone then
  2583.             local Matrix = em.GetBoneMatrix(v, headbone)
  2584.             if not Matrix then
  2585.             return
  2586.             end
  2587.             Matrix = xm.ToTable(Matrix)
  2588.             local min, max = em.GetHitBoxBounds( v, headbox, 0 );
  2589.             return (Transform(min, Matrix) + Transform(max, Matrix)) * 0.5;
  2590.         elseif zombbone then
  2591.             local Matrix = em.GetBoneMatrix(v, zombbone)
  2592.             if not Matrix then
  2593.             return
  2594.             end
  2595.             Matrix = xm.ToTable(Matrix)
  2596.             local min, max = em.GetHitBoxBounds( v, zombbox, 0 );
  2597.             return (Transform(min, Matrix) + Transform(max, Matrix)) * 0.5;
  2598.         elseif spinebox then
  2599.             local Matrix = em.GetBoneMatrix(v, spinebone)
  2600.             if not Matrix then
  2601.             return
  2602.             end
  2603.             Matrix = xm.ToTable(Matrix)
  2604.             local min, max = em.GetHitBoxBounds( v, spinebox, 0 );
  2605.             return (Transform(min, Matrix) + Transform(max, Matrix)) * 0.5;
  2606.         else
  2607.             if em.GetBoneMatrix(v, 0, 0) ~= nil then
  2608.             local Matrix = em.GetBoneMatrix(v, 0, 0)
  2609.             if not Matrix then
  2610.             return
  2611.             end
  2612.             Matrix = xm.ToTable(Matrix)
  2613.             local min, max = em.GetHitBoxBounds( v, 0, 0 );
  2614.             return (Transform(min, Matrix) + Transform(max, Matrix)) * 0.5;
  2615.             end
  2616.         end
  2617.     else
  2618.         return em.LocalToWorld(v, em.OBBCenter(v))
  2619.     end
  2620.     end
  2621. end
  2622.  
  2623. local function GetPos(v)
  2624.  
  2625.     if(gBool("Aimbot", "Target", "Bodyaim")) then return( em.LocalToWorld(v, em.OBBCenter(v)) ); end
  2626.  
  2627.     local eyes = em.LookupAttachment(v, "eyes");
  2628.    
  2629.     if(!eyes) then return( em.LocalToWorld(v, em.OBBCenter(v)) ); end
  2630.    
  2631.     local pos = em.GetAttachment(v, eyes);
  2632.    
  2633.     if(!pos) then return( em.LocalToWorld(v, em.OBBCenter(v)) ); end
  2634.    
  2635.     return(pos.Pos);
  2636. end
  2637.  
  2638. local aimignore;
  2639.  
  2640. function CloseChat()
  2641.     ChatOpen = false
  2642. end
  2643. hook.Add("FinishChat", "chatclosed", CloseChat)
  2644.  
  2645. function OpenChat(isTeamChat)
  2646.     if ( isTeamChat == false ) then
  2647.         ChatOpen = true
  2648.     else
  2649.         ChatOpen = true
  2650.     end
  2651. end
  2652. hook.Add("StartChat", "chatopened", OpenChat)
  2653.  
  2654. local function fasAutowall(wep, startPos, aimPos, v)
  2655. local trace_walls = bit.bor(CONTENTS_TESTFOGVOLUME, CONTENTS_EMPTY, CONTENTS_MONSTER, CONTENTS_HITBOX);
  2656. local NoPenetration = {[MAT_SLOSH] = true};
  2657. local PenMod = {[MAT_SAND] = 0.5, [MAT_DIRT] = 0.8, [MAT_METAL] = 1.1, [MAT_TILE] = 0.9, [MAT_WOOD] = 1.2};
  2658. local trace_normal = bit.bor(CONTENTS_SOLID, CONTENTS_OPAQUE, CONTENTS_MOVEABLE, CONTENTS_DEBRIS, CONTENTS_MONSTER, CONTENTS_HITBOX, 402653442, CONTENTS_WATER);
  2659. local MaxPenetration
  2660.         ammotype = game.GetAmmoName(wep:GetPrimaryAmmoType())
  2661.         wepname = me:GetActiveWeapon():GetClass()
  2662.         wepid =  string.Explode("_", wepname)
  2663.         if string.find(wepname, "m9k_") then
  2664.             if GetConVarNumber("M9KDisablePenetration") == 1 then
  2665.             return false
  2666.             end
  2667.         else
  2668.             return false
  2669.         end
  2670.        
  2671.        
  2672.  
  2673.     if ammotype == "SniperPenetratedRound" then -- .50 Ammo
  2674.                 MaxPenetration = 20
  2675.         elseif ammotype == "pistol" then -- pistols
  2676.                 MaxPenetration = 9
  2677.         elseif ammotype == "357" then -- revolvers with big ass bullets
  2678.                 MaxPenetration = 12
  2679.         elseif ammotype == "smg1" then -- smgs
  2680.                 MaxPenetration = 14
  2681.         elseif ammotype == "ar2" then -- assault rifles
  2682.                 MaxPenetration = 16
  2683.         elseif ammotype == "buckshot" then -- shotguns
  2684.                 MaxPenetration = 5
  2685.         elseif ammotype == "slam" then -- secondary shotguns
  2686.                 MaxPenetration = 5
  2687.         elseif ammotype ==     "AirboatGun" then -- metal piercing shotgun pellet
  2688.                 MaxPenetration = 17
  2689.         else
  2690.                 MaxPenetration = 14
  2691.         end
  2692.         local tr = {}
  2693.         local tres = {}
  2694.         local dist = {}
  2695.    
  2696.     local dir = ((Hitbox(v) + (em.GetVelocity(v) * engine.TickInterval())) - me:EyePos()):Angle();
  2697.     local maxpen = {}
  2698.  
  2699.     tr[1] = {
  2700.         start = me:EyePos(),
  2701.         endpos = Hitbox(v) + (em.GetVelocity(v) * engine.TickInterval()),
  2702.         mask = MASK_SHOT,
  2703.         filter = {me, v},
  2704.     };
  2705.     tres[1] = util.TraceLine(tr[1])
  2706.     tr[2] = {
  2707.         start = tres[1].HitPos + (dir:Forward() * MaxPenetration),
  2708.         endpos = tres[1].HitPos,
  2709.         mask = MASK_SHOT,
  2710.         filter = {me, v},
  2711.     };
  2712.     tres[2] = util.TraceLine(tr[2])
  2713.     if tres[1].Fraction == 1 && !tres[2].StartSolid then
  2714.     return true
  2715.     elseif (!tres[2].StartSolid && (tres[2].Fraction * MaxPenetration) <= MaxPenetration) && (tres[2].Fraction >= 0.00000001) then
  2716.     maxpen[1] = MaxPenetration * tres[2].Fraction
  2717.     elseif tres[2].StartSolid or (tres[2].Fraction == 0) then
  2718.     return false
  2719.     end
  2720.    
  2721.     tr[3] = {
  2722.         start = tres[2].HitPos,
  2723.         endpos = Hitbox(v) + (em.GetVelocity(v) * engine.TickInterval()),
  2724.         mask = MASK_SHOT,
  2725.         filter = {me, v},
  2726.     };
  2727.     tres[3] = util.TraceLine(tr[3])
  2728.     tr[4] = {
  2729.         start = tres[3].HitPos + (dir:Forward() * maxpen[1]),
  2730.         endpos = tres[3].HitPos,
  2731.         mask = MASK_SHOT,
  2732.         filter = {me, v},
  2733.     };
  2734.     tres[4] = util.TraceLine(tr[4])
  2735.     if tres[3].Fraction == 1 && tres[4].StartSolid then
  2736.     return true
  2737.     elseif (!tres[4].StartSolid && (tres[4].Fraction * maxpen[1]) <= maxpen[1]) && (tres[4].Fraction >= 0.00000001) then
  2738.     maxpen[2] = maxpen[1] * tres[4].Fraction
  2739.     elseif tres[4].StartSolid or (tres[4].Fraction == 0) then
  2740.     return false
  2741.     end
  2742.    
  2743.     tr[5] = {
  2744.         start = tres[4].HitPos,
  2745.         endpos = Hitbox(v) + (em.GetVelocity(v) * engine.TickInterval()),
  2746.         mask = MASK_SHOT,
  2747.         filter = {me, v},
  2748.     };
  2749.     tres[5] = util.TraceLine(tr[5])
  2750.     tr[6] = {
  2751.         start = tres[5].HitPos + (dir:Forward() * maxpen[2]),
  2752.         endpos = tres[5].HitPos,
  2753.         mask = MASK_SHOT,
  2754.         filter = {me, v},
  2755.     };
  2756.     tres[6] = util.TraceLine(tr[6])
  2757.     if tres[5].Fraction == 1 && tres[6].StartSolid then
  2758.     return true
  2759.     elseif (!tres[6].StartSolid && (tres[6].Fraction * maxpen[2]) <= maxpen[2]) && (tres[6].Fraction >= 0.00000001) then
  2760.     maxpen[3] = maxpen[2] * tres[6].Fraction
  2761.     elseif tres[6].StartSolid or (tres[6].Fraction == 0) then
  2762.     return false
  2763.     end
  2764.    
  2765.    
  2766.     tr[7] = {
  2767.         start = tres[6].HitPos,
  2768.         endpos = Hitbox(v),
  2769.         mask = MASK_SHOT,
  2770.         filter = {me, v},
  2771.     };
  2772.     tres[7] = util.TraceLine(tr[7])
  2773.     if tres[7].Fraction == 1 then
  2774.     return true
  2775.     end
  2776.    
  2777. end
  2778. local angting
  2779. function GetAng(angle, src, dst)
  2780.     delta = src - dst
  2781.     hyp = delta:Length2D()
  2782.     ang = Angle(math.deg(math.atan(delta.z / hyp)), math.deg(math.atan(delta.y / delta.x)), 0)
  2783.    
  2784.     if (delta.x >= 0) then
  2785.         ang.y = ang.y + 180
  2786.     end
  2787.    
  2788.     pitch = angle.p * math.pi / 180
  2789.     yaw = angle.y * math.pi / 180
  2790.     tmp = math.cos(pitch)
  2791.    
  2792.     aim = Angle(tmp * math.cos(yaw), math.sin(yaw) * tmp, -math.sin(pitch))
  2793.    
  2794.     pitch = ang.p * math.pi / 180
  2795.     yaw = ang.y * math.pi / 180
  2796.     tmp = math.cos(pitch)
  2797.    
  2798.     ang = Angle(tmp * math.cos(yaw), math.sin(yaw) * tmp, -math.sin(pitch))
  2799.    
  2800.     mag_s = math.sqrt((aim.p * aim.p) + (aim.y * aim.y) + (aim.r * aim.r))
  2801.     mag_d = math.sqrt((aim.p * aim.p) + (aim.y * aim.y) + (aim.r * aim.r))
  2802.     u_dot_v = aim.p * ang.p + aim.y * ang.y + aim.r * ang.r
  2803.     testfov = math.acos(u_dot_v / (mag_s * mag_d)) * (180 / math.pi)
  2804.     if (math.acos(u_dot_v / (mag_s * mag_d)) * (180 / math.pi)) then
  2805.         angting = (math.acos(u_dot_v / (mag_s * mag_d)) * (180 / math.pi))
  2806.     return math.acos(u_dot_v / (mag_s * mag_d)) * (180 / math.pi)
  2807.     end
  2808. end
  2809.  
  2810. local testfov = 0
  2811. function CanFov(angle, src, dst)
  2812.     if gInt("Aimbot", "Aimbot", "fov") == 0 || gInt("Aimbot", "Aimbot", "fov") == 180 then
  2813.         return true
  2814.     end
  2815.     local delta = src - dst
  2816.     local hyp = delta:Length2D()
  2817.     local ang = Angle(math.deg(math.atan(delta.z / hyp)), math.deg(math.atan(delta.y / delta.x)), 0)
  2818.    
  2819.     if (delta.x >= 0) then
  2820.         ang.y = ang.y + 180
  2821.     end
  2822.    
  2823.     local pitch = angle.p * math.pi / 180
  2824.     local yaw = angle.y * math.pi / 180
  2825.     local tmp = math.cos(pitch)
  2826.    
  2827.     local aim = Angle(tmp * math.cos(yaw), math.sin(yaw) * tmp, -math.sin(pitch))
  2828.    
  2829.     pitch = ang.p * math.pi / 180
  2830.     yaw = ang.y * math.pi / 180
  2831.     tmp = math.cos(pitch)
  2832.    
  2833.     ang = Angle(tmp * math.cos(yaw), math.sin(yaw) * tmp, -math.sin(pitch))
  2834.    
  2835.     local mag_s = math.sqrt((aim.p * aim.p) + (aim.y * aim.y) + (aim.r * aim.r))
  2836.     local mag_d = math.sqrt((aim.p * aim.p) + (aim.y * aim.y) + (aim.r * aim.r))
  2837.     local u_dot_v = aim.p * ang.p + aim.y * ang.y + aim.r * ang.r
  2838.     testfov = math.acos(u_dot_v / (mag_s * mag_d)) * (180 / math.pi)
  2839.     if (math.acos(u_dot_v / (mag_s * mag_d)) * (180 / math.pi)) <= gInt("Aimbot", "Aimbot", "fov") then
  2840.     return math.acos(u_dot_v / (mag_s * mag_d)) * (180 / math.pi)
  2841.     end
  2842. end
  2843.  
  2844. local IsFirstTimePredicted = IsFirstTimePredicted;
  2845. local CurTime = CurTime;
  2846. local servertime=0;
  2847. local bit = Copy(bit)
  2848.  
  2849. function ClipVelocity( inn, normal, overbounce )
  2850. backoff = nil
  2851. change = nil
  2852. angle = nil
  2853. blocked = nil
  2854. out = Vector()
  2855. angle = normal
  2856. blocked = 0
  2857. if angle[3] > 0 then blocked = 1 end
  2858. if angle[3] < 0 then blocked = 3 end
  2859. if !angle then blocked = 2 end
  2860. backoff = inn:Dot( normal ) * overbounce
  2861. for i = 1, 3 do
  2862. change = normal[i] * backoff
  2863. out[i] = inn[i] - change
  2864. end
  2865. local adjust = out:Dot( normal )
  2866. if adjust < 0 then
  2867. out = out - normal * adjust
  2868. end
  2869. return blocked, out
  2870. end
  2871.  
  2872.  
  2873. local testturn = {}
  2874. local turn = {}
  2875. local moving = {}
  2876. checkturn = {}
  2877. checkturn2 = {}
  2878. bunny = {}
  2879. bunny2 = {}
  2880.  
  2881. for i = 0, game.MaxPlayers(), 1 do
  2882. turn[i] = 0
  2883. end
  2884. for i = 0, game.MaxPlayers(), 1 do
  2885. testturn[i] = Angle(0, 0, 0)
  2886. end
  2887.  
  2888. for i = 0, game.MaxPlayers(), 1 do
  2889. checkturn[i] = Angle(0,0,0)
  2890. end
  2891.  
  2892. for i = 0, game.MaxPlayers(), 1 do
  2893. checkturn2[i] = Angle(0,0,0)
  2894. end
  2895. for i = 0, game.MaxPlayers(), 1 do
  2896. bunny[i] = 0
  2897. end
  2898.  
  2899. for i = 0, game.MaxPlayers(), 1 do
  2900. bunny2[i] = 0
  2901. end
  2902.  
  2903. local function crossbowcheck(v, withtime, cross, prfm , Zdrop, pDist)
  2904.     local fake, oldvelo = fakelagPredict(v) || 1;
  2905.     local sA, sB, sC = 0, 0, 0
  2906.     local aA, aB, aC = 0, 0, 0
  2907.     local disma2 = v:GetVelocity()
  2908.     local perf = 25
  2909.     local grav = GetConVarNumber("sv_gravity")
  2910.     if prfm then
  2911.         perf = prfm
  2912.     end
  2913.     local tim = 3500
  2914.     disma2 = disma2:Angle()
  2915.     aC = GetAng(disma2, v:GetShootPos(), em.EyePos(me))
  2916.     sB = 3500
  2917.         sA = (em.EyePos(v)+(Vector(v:GetVelocity().x,v:GetVelocity().y,velopre))):Distance(em.EyePos(v)) + ((em.EyePos(v)+(Vector(v:GetVelocity().x,v:GetVelocity().y,velopre))):Distance(em.EyePos(v)) * engine.TickInterval())
  2918.     if pDist then
  2919.         sA = pDist:Distance(em.EyePos(v)) + (pDist:Distance(em.EyePos(v))*engine.TickInterval())
  2920.     end
  2921.     sC = math.pow(sA,2) + math.pow(sB,2) - 2*(sA)*(sB)*(math.cos(aC))
  2922.     sC = math.sqrt(sC)
  2923.     if withtime then
  2924.         tim = (em.GetPos(v):Distance(em.GetPos(me)))/sC
  2925.         if cross then
  2926.             tim = tim +(tim*((me:Ping() * (92/78))/1000))
  2927.         else
  2928.             tim = 0
  2929.         end
  2930.     else
  2931.         tim = 1
  2932.     end
  2933.         if cross then
  2934.             tim = tim + (tim *(me:Ping() /1000))
  2935.         end
  2936.         tim = tim*fake
  2937.         local pl = v:EntIndex()
  2938.         local velocityply = em.GetVelocity(v)
  2939.             if oldvelo then
  2940.                 velocityply = oldvelo
  2941.             end
  2942.         local block = 0
  2943.         local starty = em.GetPos(v)
  2944.         local oldplypos = em.GetPos(v)
  2945.         local disv
  2946.         local air = 0
  2947.         local maxair = 0
  2948.         local turnstate = false
  2949.         local turnnum = 0
  2950.         local turnflag = Vector()
  2951.         local turnflag2 = Vector()
  2952.         local zvelo
  2953.         local gred, ggreen, gblue = 255, 0, 0
  2954.         local move
  2955.         local perf = 25
  2956.            
  2957.         local cDrop = ((0.5 * grav * 0.05) * (tim^2) + math.max(1, (tim * 0.4)))
  2958.         for i = 0, perf, 1 do
  2959.         if ggreen ~= 255 then
  2960.             ggreen = math.Clamp((255/perf) * (2*i), 0, 255)
  2961.         elseif ggreen == 255 then
  2962.             gred = math.Clamp((255 - (255 * (2*(i-perf)))), 0, 255)
  2963.         end
  2964.     local mins = v:OBBMins()
  2965.     local maxs = v:OBBMaxs()
  2966.     if v:Alive() then
  2967.         if block ~= 1 then
  2968.             disv = (velocityply*(tim+((me:Ping() * (92/78))/1000)))* (1/perf)
  2969.             if withtime && !cross then 
  2970.                 disv = (((velocityply*engine.TickInterval())* (1/perf)))
  2971.             end
  2972.         else
  2973.             disv = (((velocityply*tim)/8) * (1/perf))
  2974.             if withtime && !cross then
  2975.                 disv = ((((velocityply*engine.TickInterval())*tim)/8) * (1/perf))
  2976.             end
  2977.         end
  2978.         if (!v:IsOnGround() && block ~= 1) && v:GetMoveType() ~= MOVETYPE_NOCLIP then
  2979.         disv.z  = (0.5 * -grav * math.pow((tim*(1+i)/(perf)),2) + (velocityply.z) * ((tim)*(1+i)/(perf)))
  2980.         if withtime && !cross then
  2981.         disv.z  = (0.5 * -grav * math.pow(((engine.TickInterval() * fake)*(1+i)/(perf)),2) + (velocityply.z) * ((engine.TickInterval() * fake)*(1+i)/(perf)))
  2982.         end
  2983.         end
  2984.    
  2985.         zvelo = Vector(disv.x, disv.y, (oldplypos.z - starty.z) +(disv.z))
  2986.         if pm.KeyDown(me, IN_WALK) && Zdrop then
  2987.         zvelo:Rotate(Angle(0,(turn[pl]* tim) * (100*(i/perf)),0))
  2988.         if block == 1 then
  2989.         zvelo:Rotate(Angle(0,turn[pl] * (100*(turnnum/perf)),0))
  2990.         end
  2991.         end
  2992.     plytr = {
  2993.         start = starty + Vector(0,0,0.1),
  2994.         endpos = starty + zvelo+ Vector(0,0,0.1),
  2995.         maxs = maxs,
  2996.         mins = mins,
  2997.         filter = v,
  2998.     }
  2999.    
  3000.     plytr2 = {
  3001.         start = starty + Vector(0,0,0.1),
  3002.         endpos = starty - Vector(0,0,1),
  3003.         maxs = maxs - Vector(0,0,maxs.z),
  3004.         mins = mins,
  3005.         filter = v,
  3006.     }
  3007.    
  3008.     local plytres = util.TraceHull(plytr)
  3009.     if cross then
  3010.     plytres2 = util.TraceHull(plytr2)
  3011.     end
  3012.     if Zdrop && cross then
  3013.     if !plytres2.Hit && air == 0 then
  3014.         air = 1
  3015.        
  3016.     elseif plytres2.Hit then
  3017.         air = 0
  3018.         maxair = 0
  3019.     end
  3020.     end
  3021.    
  3022.     if plytres.Hit then
  3023.     starty = plytres.HitPos
  3024.     turnstate = true
  3025.     turnnum = i
  3026.     block, velocityply = ClipVelocity( velocityply, plytres.HitNormal, 1 )
  3027.    
  3028.     if block ~= 0 then
  3029.     oldplypos = plytres.HitPos
  3030.     end
  3031.     else
  3032.         starty = plytr.endpos
  3033.     end
  3034.  
  3035.     if i == perf then
  3036.         if Zdrop then
  3037.             return plytres.HitPos + Vector(0,0,cDrop)
  3038.         else
  3039.             return plytres.HitPos
  3040.         end
  3041.     end
  3042.     end
  3043.     end
  3044. end
  3045.  
  3046.  
  3047. local function Valid(v)
  3048.     --[[if pm.GetActiveWeapon(me):IsValid() then
  3049.         local w = pm.GetActiveWeapon(me);
  3050.         if (!w || !em.IsValid(w) || !me:Alive()) then return false
  3051.             else
  3052.             if wm.GetNextPrimaryFire(w) > servertime || (wm.GetNextPrimaryFire(w) <= servertime && (!input.IsKeyDown(gKey("Aimbot", "Aimbot", "Key Toggle")) || input.IsMouseDown(gKey("Aimbot", "Aimbot", "Key Toggle")) && !gBool("Aimbot", "Aimbot", "Autosnap"))) then
  3053.                 return false
  3054.             end
  3055.         end
  3056.     end]]
  3057.     wep = me:GetActiveWeapon()
  3058.     if IsValid(wep) then
  3059.         if (me:GetActiveWeapon():GetPrimaryAmmoType() > 0 && wm.GetNextPrimaryFire(wep) > servertime) then
  3060.             return
  3061.         end
  3062.     end
  3063.     if !v then
  3064.     return false
  3065.     end
  3066.     if(!v || !v:Alive() || v == me  || v:IsDormant() || v:GetObserverMode() ~= 0 || (!gKey("Aimbot", "Aimbot", "Key Toggle") && !gBool("Aimbot", "Aimbot", "Autosnap")) || em.Health(v) < 0 || v:GetObserverMode() > 0 || (v == aimignore && gOption("Aimbot", "Target", "Selection") == "Nextshot")) then return false; end
  3067.     if !CanFov(fa, me:GetShootPos(), Hitbox(v)) then return false; end
  3068.     modcolor = em.GetColor(v)
  3069.     if string.find(string.lower(GAMEMODE.Name), "prop") then
  3070.         modcolor = Color(255,255,255)
  3071.     end
  3072.  
  3073.     if(gBool("Aimbot", "Target", "Ignore Spawn Protection")) then
  3074.         modcolor = Color(255,255,255)
  3075.         if tttgod then
  3076.             modcolor.r = 100
  3077.         end
  3078.     end
  3079.     if(gBool("Aimbot", "Target", "Ignore Bots")) then
  3080.         if(pm.IsBot(v)) then return false; end
  3081.     end
  3082.     if(gBool("Aimbot", "Target", "Ignore Team")) then
  3083.         if(pm.Team(v) == pm.Team(me)) then return false; end
  3084.     end
  3085.     if(gBool("Aimbot", "Target", "Ignore Friends")) then
  3086.         if (v:GetFriendStatus() == "friend") || (table.HasValue(Friends, v)) then return false; end
  3087.     end
  3088.     if tbudd && table.HasValue(Tbud, v) then return false; end
  3089.     if string.find(string.lower(GAMEMODE.Name), "morbus") then
  3090.         if !tbudd && !table.HasValue(Traitors, v) && GetRoundState() ==3 && gBool("Aimbot", "Target", "Ignore Team") then return false; end
  3091.         if tbudd && table.HasValue(Traitors, v)&&GetRoundState() ==3 && gBool("Aimbot", "Target", "Ignore Team") then return false; end
  3092.     end
  3093.     if tdect && table.HasValue(Tdectt, v) then return false; end
  3094.     if(v:HasGodMode() || v:IsFlagSet(FL_GODMODE) || v.ULXHasGod ||(modcolor.r < 255 && modcolor.r > 0 || modcolor.g < 255 && modcolor.g > 0 || modcolor.b < 255 && modcolor.b > 0) || modcolor.a < 255  ) then return false; end
  3095.     if (pm.Team(me) == TEAM_SPECTATOR && pm.Team(v) ~= TEAM_SPECTATOR || pm.Team(me) ~= TEAM_SPECTATOR && pm.Team(v) == TEAM_SPECTATOR) || !v:Alive() || v:GetObserverMode() ~= 0 then
  3096.         return false
  3097.     end
  3098.    
  3099.     tr = {
  3100.         start = me:EyePos(),
  3101.         endpos = Hitbox(v) + (em.GetVelocity(v) * engine.TickInterval()),
  3102.         mask = MASK_SHOT,
  3103.         filter = {me},
  3104.     };
  3105.     if !string.find(string.lower(GAMEMODE.Name), "prop") then
  3106.         tr = {
  3107.             start = me:EyePos(),
  3108.             endpos = Hitbox(v) + (em.GetVelocity(v) * engine.TickInterval()),
  3109.             mask = MASK_SHOT,
  3110.             filter = {me, v},
  3111.         };
  3112.         if util.TraceLine(tr).Fraction == 1 then
  3113.             return true
  3114.         else
  3115.             local wep = me:GetActiveWeapon();
  3116.             if(wep && wep:IsValid() && gBool("Aimbot", "Accuracy", "Auto Wall")) then
  3117.                    
  3118.                 if me:Team() == TEAM_SPECTATOR && me:Alive() then
  3119.                     tr2 = {
  3120.                         start = me:EyePos(),
  3121.                         endpos = Hitbox(v) + (em.GetVelocity(v) * engine.TickInterval()),
  3122.                         mask = MASK_SHOT,
  3123.                         filter = function( ent ) if ( ent:GetClass() == "worldspawn" && ent ~= v && me ~= ent ) then return true end end,
  3124.                     };
  3125.                     return util.TraceLine(tr2).Fraction == 1 || util.TraceLine(tr2).Entity == v
  3126.                 elseif (me:Team() ~= TEAM_SPECTATOR && me:Alive()) then
  3127.                     tr2 = {
  3128.                         start = Hitbox(v) + (em.GetVelocity(v) * engine.TickInterval()),
  3129.                         endpos = me:EyePos(),
  3130.                         mask = MASK_SHOT,
  3131.                         filter = function( ent ) if ( ent:GetClass() ~= "func_breakable" && ent ~= v && me ~= ent ) then return true end end,
  3132.                     };
  3133.                     if (util.TraceLine(tr2).Fraction == 1) then
  3134.                         return true
  3135.                     else
  3136.                         if me:GetActiveWeapon() then
  3137.                             if string.find( me:GetActiveWeapon():GetClass(), "m9k_") && gBool("Aimbot", "Accuracy", "Auto Wall") then
  3138.                                 return fasAutowall(wep, tr2.start, util.TraceLine(tr2).HitPos, v)
  3139.                             end
  3140.                         end
  3141.                     end
  3142.                 end
  3143.             end
  3144.             return false
  3145.         end
  3146.     else
  3147.         if util.TraceLine(tr).Entity:IsValid() then
  3148.             if (((util.TraceLine(tr).Entity:GetClass()) == "ph_prop" || util.TraceLine(tr).Fraction == 1) && team.GetName(me:Team()) == "Hunters") || (((util.TraceLine(tr).Entity:GetClass()) == "player" || util.TraceLine(tr).Fraction == 1) && team.GetName(me:Team()) == "Props") then
  3149.                 return true
  3150.             end
  3151.         elseif util.TraceLine(tr).Fraction == 1 then
  3152.             return true
  3153.         end
  3154.     end
  3155. end
  3156.  
  3157. local function gettarget()
  3158.    
  3159.     local opt = gOption("Aimbot", "Target", "Selection");
  3160.    
  3161.     local sticky = gOption("Aimbot", "Aimbot", "Non-Sticky");
  3162.    
  3163.     if(opt == "Distance") then
  3164.  
  3165.         if( !sticky && Valid(aimtarget) ) then return; end
  3166.  
  3167.         dists = {};
  3168.        
  3169.         for k,v in next, player.GetAll() do
  3170.             if v ~= plysp then
  3171.                 v:SetNoDraw(false)
  3172.             else
  3173.                 v:SetNoDraw(true)
  3174.             end
  3175.             if(!Valid(v)) then continue; end
  3176.             dists[#dists + 1] = { vm.Distance( em.GetPos(v), em.GetPos(me) ), v };
  3177.         end
  3178.        
  3179.         table.sort(dists, function(a, b)
  3180.             return(a[1] < b[1]);
  3181.         end);
  3182.        
  3183.         aimtarget = dists[1] && dists[1][2] || nil;
  3184.        
  3185.        
  3186.     elseif(opt == "Health") then
  3187.        
  3188.         if( !sticky && Valid(aimtarget) ) then return; end
  3189.  
  3190.         dists = {};
  3191.        
  3192.         for k,v in next, player.GetAll() do
  3193.             if(!Valid(v)) then continue; end
  3194.             dists[#dists + 1] = { em.Health(v), v };
  3195.         end
  3196.        
  3197.         table.sort(dists, function(a, b)
  3198.             return(a[1] < b[1]);
  3199.         end);
  3200.        
  3201.         aimtarget = dists[1] && dists[1][2] || nil;
  3202.        
  3203.     elseif(opt == "Nextshot") then
  3204.         if( !sticky && Valid(aimtarget) ) then return; end
  3205.         aimtarget = nil;
  3206.         local allplys = player.GetAll();
  3207.         local avaib = {};
  3208.         for k,v in next,allplys do
  3209.             avaib[math.random(100)] = v;
  3210.         end
  3211.        
  3212.         for k,v in next, avaib do
  3213.             if(Valid(v)) then
  3214.                 aimtarget = v;
  3215.                
  3216.             end
  3217.         end
  3218.     elseif (opt == "Closest to Crosshair") then
  3219.     if ( !sticky && Valid(aimtarget) ) then return; end
  3220.     dists = {};
  3221.         local x, y = ScrW(), ScrH()
  3222.         local AngA, AngB = 0
  3223.         for k,v in next, player.GetAll() do
  3224.             if(!Valid(v)) then continue; end
  3225.             local EyePos = v:EyePos():ToScreen()
  3226.             dists[#dists + 1] = { math.Dist(x / 2, y / 2, EyePos.x, EyePos.y), v };
  3227.         end
  3228.        
  3229.         table.sort(dists, function(a, b)
  3230.             return(a[1] < b[1]);
  3231.         end);
  3232.        
  3233.         aimtarget = dists[1] && dists[1][2] || nil;
  3234.        
  3235.     end
  3236. end
  3237.  
  3238.  
  3239.  
  3240.  
  3241. local cones = {};
  3242.  
  3243.  
  3244.  
  3245. local nullvec = Vector() * -1;
  3246.  
  3247. hook.Add("Move", "HackMove", function()
  3248.     if(!IsFirstTimePredicted()) then return; end
  3249.     servertime = CurTime();
  3250. end);
  3251. local FaAng = {}
  3252. for i = 0, game.MaxPlayers(), 1 do
  3253. FaAng[i] = {0,0,0}
  3254. end
  3255.  
  3256. GAMEMODE["EntityFireBullets"] = function(self, p, data)
  3257.     aimignore = aimtarget;
  3258.     local w = pm.GetActiveWeapon(me);
  3259.     local Spread = data.Spread * -1;
  3260.     if wm.GetNextPrimaryFire(w) <= servertime then
  3261.     --chat.AddText(color_white, tostring(checkturn2[me:EntIndex()]))
  3262.     end
  3263.     if(!w || !em.IsValid(w) || cones[em.GetClass(w)] == Spread || Spread == nullvec) then return; end
  3264.     cones[em.GetClass(w)] = Spread;
  3265. end
  3266.  
  3267. local function PredictSpread(ucmd, ang)
  3268.     local w = pm.GetActiveWeapon(me);
  3269.     if(!w || !em.IsValid(w) || !cones[em.GetClass(w)] || !gBool("Aimbot", "Accuracy", "NoSpread") || ((gKey("Aimbot", "Aimbot", "Key Toggle"))&& (!gBool("Aimbot", "Aimbot", "Autofire")) && !cm.KeyDown(ucmd, IN_ATTACK))) then return am.Forward(ang); end
  3270.     return(dickwrap.Predict(ucmd, am.Forward(ang), cones[em.GetClass(w)]));
  3271. end
  3272. local wepswitch = 0
  3273. local function Autofire(ucmd)
  3274.    
  3275.     if(pm.KeyDown(me, IN_ATTACK) && gBool("Aimbot", "Aimbot", "Auto Pistol") && gBool("Aimbot", "Aimbot", "Enabled") && me:GetActiveWeapon():Clip1() > 0) then
  3276.         cm.SetButtons(ucmd, bit.bor( cm.GetButtons(ucmd), 1 ) );
  3277.  
  3278.         wepswitch = 0
  3279.         elseif gBool("Aimbot", "Aimbot", "Autofire") && gBool("Aimbot", "Aimbot", "Enabled") && me:GetActiveWeapon():Clip1() > 0 then
  3280.         cm.SetButtons(ucmd, bit.bor( cm.GetButtons(ucmd), 1 ) );
  3281.         wepswitch = 0
  3282.         elseif me:GetActiveWeapon():Clip1() <= 0  then
  3283.         cm.SetButtons(ucmd, bit.bor( cm.GetButtons(ucmd), 1 ) );
  3284.     end
  3285. end
  3286.  
  3287.  
  3288. local function WeaponCanFire()
  3289.     local w = pm.GetActiveWeapon(me);
  3290.     if(!w || !em.IsValid(w)) then return true; end
  3291.    
  3292.     return( wm.GetNextPrimaryFire(w) <= servertime  );
  3293. end
  3294.  
  3295. local function WeaponShootable()
  3296.     local wep = pm.GetActiveWeapon(me);
  3297.     if( em.IsValid(wep) ) then
  3298.          local n = string.lower(wep:GetPrintName())
  3299.          if( wep:Clip1() <= 0 ) then
  3300.             return false;
  3301.          end
  3302.          
  3303.          
  3304.          
  3305.          
  3306.          if( string.find(n,"knife") or string.find(n,"grenade") or string.find(n,"sword") or string.find(n,"bomb") or string.find(n,"ied") or string.find(n,"c4") or string.find(n,"slam") or string.find(n,"climb") or string.find(n,"hand") or string.find(n,"fist") ) then
  3307.             return false;
  3308.          end
  3309.          
  3310.          
  3311.           return true;
  3312.     end
  3313. end
  3314.  
  3315.  
  3316.  
  3317. local ox=-181;
  3318. local oy=0;
  3319.  
  3320. local ofx=-181;
  3321. local ofy=0;
  3322.  
  3323. local function RandCoin()
  3324.     local randcoin = math.random(0,1);
  3325.     if(randcoin == 1) then return 1; else return -1; end
  3326. end
  3327.  
  3328. local function GetX()
  3329.     if gInt("HVH", "Anti-Aim", "Pitch") == 0 then
  3330.     ox = fa.p
  3331.     else
  3332.         if gBool("HVH", "Anti-Aim", "Negitive Pitch") then
  3333.         ox = -gInt("HVH", "Anti-Aim", "Pitch")
  3334.         else
  3335.         ox = gInt("HVH", "Anti-Aim", "Pitch")
  3336.         end
  3337.     end
  3338. end
  3339.  
  3340. local function GetFX()
  3341.     if gInt("HVH", "FakeAngles", "Pitch") == 0 then
  3342.     ofx = fa.p
  3343.     else
  3344.         if gBool("HVH", "FakeAngles", "Negitive Pitch") then
  3345.         ofx = -gInt("HVH", "FakeAngles", "Pitch")
  3346.         else
  3347.         ofx = gInt("HVH", "FakeAngles", "Pitch")
  3348.         end
  3349.     end
  3350. end
  3351.  
  3352. local function GetClosest()
  3353.     local ddists = {};
  3354.    
  3355.     local closest;
  3356.        
  3357.     for k,v in next, player.GetAll() do
  3358.     if( !v:Alive() || v == me || gBool("Aimbot", "Target", "Ignore Friends") && (v:GetFriendStatus() ~= "friend" || ! table.HasValue(Friends, v) )) then continue; end
  3359.         ddists[#ddists + 1] = { vm.Distance( em.GetPos(v), em.GetPos(me) ), v };
  3360.     end
  3361.        
  3362.     table.sort(ddists, function(a, b)
  3363.         return(a[1] < b[1]);
  3364.     end);
  3365.        
  3366.     closest = ddists[1] && ddists[1][2] || nil;
  3367.    
  3368.     if(!closest) then return fa.y; end
  3369.    
  3370.     local pos = em.GetPos(closest) + (em.GetVelocity(closest) * (me:Ping()/1000))+ (em.GetVelocity(closest) * (closest:Ping()/1000));
  3371.    
  3372.     local pos = vm.Angle(pos - em.EyePos(me));
  3373.    
  3374.     return( pos.y );
  3375. end
  3376. local jit_AngY = 0
  3377. local jit_yawC = false
  3378.  
  3379. local jit_AngFY = 0
  3380. local jit_yawFC = false
  3381.  
  3382. local function GetY()
  3383.     local getclose = 0
  3384.     if gInt("HVH", "Anti-Aim", "Pitch") > 90 then
  3385.         if (jit_AngY > 5) then
  3386.             jit_yawC = true
  3387.         elseif (jit_AngY < -5) then
  3388.             jit_yawC = false
  3389.         end
  3390.         if (jit_yawC == true) then
  3391.             jit_AngY = jit_AngY - 0.3
  3392.         elseif (jit_yawC == false) then
  3393.             jit_AngY = jit_AngY + 0.3
  3394.         end
  3395.     else
  3396.         jit_AngY = 0
  3397.         jit_yawC = false
  3398.     end
  3399.         if gBool("HVH", "Anti-Aim", "Aim At Closest") then
  3400.         getclose = GetClosest() - fa.y
  3401.         if gBool("HVH", "Anti-Aim", "Static") then
  3402.             getclose = GetClosest()
  3403.         end
  3404.     end
  3405.     if gBool("HVH", "Anti-Aim", "Static") then
  3406.     if gInt("HVH", "Anti-Aim", "Spin") ~= 0 then
  3407.     oy = math.fmod(CurTime() / .1 * gInt("HVH", "Anti-Aim", "Spin") * 6, 360) + getclose
  3408.     else
  3409.     oy = gInt("HVH", "Anti-Aim", "Yaw") + jit_AngY + getclose
  3410.     end
  3411.     else
  3412.     if gInt("HVH", "Anti-Aim", "Spin") ~= 0 then
  3413.     oy = fa.y + math.fmod(CurTime() / .1 * gInt("HVH", "Anti-Aim", "Spin") * 6, 360) + getclose
  3414.     else
  3415.     oy = fa.y + gInt("HVH", "Anti-Aim", "Yaw") + jit_AngY + getclose
  3416.     end
  3417.     end
  3418. end
  3419.  
  3420. local function GetFY()
  3421.     local getclosef = 0
  3422.     if gInt("HVH", "FakeAngles", "Pitch") > 90 then
  3423.         if (jit_AngFY > 5) then
  3424.             jit_yawFC = true
  3425.         elseif (jit_AngFY < -5) then
  3426.             jit_yawFC = false
  3427.         end
  3428.         if (jit_yawFC == true) then
  3429.             jit_AngFY = jit_AngFY - 0.3
  3430.         elseif (jit_yawFC == false) then
  3431.             jit_AngFY = jit_AngFY + 0.3
  3432.         end
  3433.     else
  3434.         jit_AngFY = 0
  3435.         jit_yawFC = false
  3436.     end
  3437.     if gBool("HVH", "FakeAngles", "Aim At Closest") then
  3438.         getclosef = GetClosest() - fa.y
  3439.         if gBool("HVH", "FakeAngles", "Static") then
  3440.             getclosef = GetClosest()
  3441.         end
  3442.     end
  3443.  
  3444.     if gBool("HVH", "FakeAngles", "Static") then
  3445.     if gInt("HVH", "FakeAngles", "Spin") ~= 0 then
  3446.     ofy = math.fmod(CurTime() / .1 * gInt("HVH", "FakeAngles", "Spin") * 6, 360) + getclosef
  3447.     else
  3448.     ofy = gInt("HVH", "FakeAngles", "Yaw") + jit_AngFY + getclosef
  3449.     end
  3450.     else
  3451.     if gInt("HVH", "FakeAngles", "Spin") ~= 0 then
  3452.     ofy = fa.y + math.fmod(CurTime() / .1 * gInt("HVH", "FakeAngles", "Spin") * 6, 360) + getclosef
  3453.     else
  3454.     ofy = fa.y + gInt("HVH", "FakeAngles", "Yaw") + jit_AngFY + getclosef
  3455.     end
  3456.     end
  3457. end
  3458.  
  3459. local plychange = {}
  3460. local plyadd = {}
  3461. for i = 1, game.MaxPlayers(), 1 do
  3462. plychange[i] = 0
  3463. plyadd[i] = 0
  3464. end
  3465. local function DoAAA(v)
  3466.     fake, oldvelo = fakelagPredict(v) || 1, em.GetVelocity(v)
  3467.  
  3468.     velos= em.GetVelocity(v)
  3469.     velos.z = 0
  3470.     ang = vm.Angle(velos);
  3471.     Hackers = util.JSONToTable(file.Read("hackerlistv2.txt", "DATA"))
  3472.     pl = v:EntIndex()
  3473.    
  3474.     if FaAng[pl][1] >= gInt("HVH", "Resolvers", "FA bullet amount") then
  3475.  
  3476.         FaAng[pl][3] = FaAng[pl][3] + 1
  3477.         if FaAng[pl][3] >= 5 then
  3478.             FaAng[pl][3] = 0
  3479.             if FaAng[pl][2] == 0 then
  3480.                 FaAng[pl][2] = 1
  3481.             elseif FaAng[pl][2] == 2 then
  3482.                 FaAng[pl][2] = 1
  3483.             else
  3484.                 FaAng[pl][2] = 2
  3485.             end
  3486.         end
  3487.         FaAng[pl][1] = 0
  3488.         fyawadd = (FaAng[pl][3] > 2) && (FaAng[pl][3] - 2) * -45 || FaAng[pl][3] * 45
  3489.         fpitdiff = (FaAng[pl][2] <= 1 && 89) || -89
  3490.     end
  3491.     fyawadd = (FaAng[pl][3] > 2) && (FaAng[pl][3] - 2) * -45 || FaAng[pl][3] * 45
  3492.     fpitdiff = (FaAng[pl][2] <= 1 && 89) || -89
  3493.    
  3494.     local EyeAng = em.EyeAngles(v)
  3495.             EyeAng = Angle(math.NormalizeAngle(EyeAng.p), math.NormalizeAngle(EyeAng.y), math.NormalizeAngle(EyeAng.r))
  3496.     if (v ~= me) && (v:SteamID() ~= "STEAM_0:0:35717190") then
  3497.         pe = tostring(v:EntIndex())
  3498.        
  3499.         local plyang
  3500.         if plychange[pe] && plychange[pe] then
  3501.         if plychange[pe] ~= EyeAng.y then
  3502.             plyadd[pe] =  0
  3503.             plychange[pe] = 0
  3504.         else
  3505.             plyadd[pe] = 0
  3506.         end
  3507.         else
  3508.             plyadd[pe] =0
  3509.             plychange[pe] = 0
  3510.         end
  3511.         plyadd[pe] = plyadd[pe] * fake
  3512.         if !gBool("HVH", "Resolvers", "Fake-angles resolver") then
  3513.             FaAng[pl][1] = 0
  3514.             FaAng[pl][2] = 0
  3515.             FaAng[pl][3] = 0
  3516.         end
  3517.         if math.abs(EyeAng.r) > 170 && gBool("HVH", "Resolvers", "Anti-aim resolver") then
  3518.             if (EyeAng.p > 0.001) then
  3519.                 if !isHack then
  3520.                     HackTbl = {v:GetName(), v:SteamID(), "Invalid Angles p."..EyeAng.p..", r."..EyeAng.r}
  3521.                     table.insert(Hackers, HackTbl)
  3522.                     file.Write("hackerlistv3.txt", util.TableToJSON(Hackers))
  3523.                 end
  3524.                
  3525.                 v:SetRenderAngles(Angle(0, EyeAng.y - 120 + plyadd[pe]+ fyawadd , 0))
  3526.                
  3527.                 em.SetPoseParameter(v, "aim_pitch",  49)
  3528.                 v:InvalidateBoneCache()
  3529.             elseif (EyeAng.p < -0.021) then
  3530.                     if !isHack then
  3531.                     HackTbl = {v:GetName(), v:SteamID(), "Invalid Angles p."..EyeAng.p..", r."..EyeAng.r}
  3532.                     table.insert(Hackers, HackTbl)
  3533.                     file.Write("hackerlistv3.txt", util.TableToJSON(Hackers))
  3534.                 end
  3535.                 v:SetRenderAngles(Angle(0, EyeAng.y - 120 + plyadd[pe]+ fyawadd , 0))
  3536.                
  3537.                 em.SetPoseParameter(v, "aim_pitch", -89)
  3538.                 em.SetPoseParameter(v, "aim_yaw", 0)
  3539.                 v:InvalidateBoneCache()
  3540.             elseif ((EyeAng.p <= 0.001) && (EyeAng.p >= -0.011)) then
  3541.                 if !isHack then
  3542.                     HackTbl = {v:GetName(), v:SteamID(), "Invalid Angles p."..EyeAng.p..", r."..EyeAng.r}
  3543.                     table.insert(Hackers, HackTbl)
  3544.                     file.Write("hackerlistv3.txt", util.TableToJSON(Hackers))
  3545.                 end
  3546.                 v:SetRenderAngles(Angle(0, EyeAng.y - 180 + plyadd[pe]+ fyawadd , 0))
  3547.                
  3548.                 em.SetPoseParameter(v, "aim_pitch",89)
  3549.                 v:InvalidateBoneCache()
  3550.             end
  3551.             forw =math.cos(math.rad(((math.NormalizeAngle(EyeAng.y)-((math.NormalizeAngle(ang.y)-180)+ fyawadd)))))
  3552.             sidew = math.cos(math.rad(((math.NormalizeAngle(EyeAng.y)-((math.NormalizeAngle(ang.y)-90)+ fyawadd)))))
  3553.             em.SetPoseParameter(v, "move_x", forw)
  3554.             em.SetPoseParameter(v, "move_y", sidew)
  3555.         elseif math.abs(EyeAng.p) > 179.9 && gBool("HVH", "Resolvers", "Anti-aim resolver") then
  3556.             if !isHack then
  3557.                     HackTbl = {v:GetName(), v:SteamID(), "Invalid Angles p."..EyeAng.p..", r."..EyeAng.r}
  3558.                     table.insert(Hackers, HackTbl)
  3559.                     file.Write("hackerlistv3.txt", util.TableToJSON(Hackers))
  3560.                 end
  3561.             v:SetRenderAngles(Angle(0, EyeAng.y + plyadd[pe]+ fyawadd , 0))
  3562.            
  3563.             em.SetPoseParameter(v, "aim_pitch", 42)
  3564.             forw =math.cos(math.rad(((math.NormalizeAngle(EyeAng.y)-((math.NormalizeAngle(ang.y))+ fyawadd)))))
  3565.             sidew = math.cos(math.rad(((math.NormalizeAngle(EyeAng.y)-((math.NormalizeAngle(ang.y)+40)+ fyawadd)))))
  3566.             em.SetPoseParameter(v, "move_x", forw)
  3567.             em.SetPoseParameter(v, "move_y", sidew)
  3568.             v:InvalidateBoneCache()
  3569.         elseif (EyeAng.p > 40) && gBool("HVH", "Resolvers", "Anti-aim resolver") then
  3570.             if !isHack then
  3571.                     HackTbl = {v:GetName(), v:SteamID(), "Invalid Angles p."..EyeAng.p..", r."..EyeAng.r}
  3572.                     table.insert(Hackers, HackTbl)
  3573.                     file.Write("hackerlistv3.txt", util.TableToJSON(Hackers))
  3574.                 end
  3575.             v:SetRenderAngles(Angle(0, EyeAng.y + plyadd[pe]+ fyawadd , 0))
  3576.            
  3577.             em.SetPoseParameter(v, "aim_pitch", 22)
  3578.             forw =math.cos(math.rad(((math.NormalizeAngle(EyeAng.y)-((math.NormalizeAngle(ang.y))+ fyawadd)))))
  3579.             sidew = math.cos(math.rad(((math.NormalizeAngle(EyeAng.y)-((math.NormalizeAngle(ang.y)+30)+ fyawadd)))))
  3580.             em.SetPoseParameter(v, "move_x", forw)
  3581.             em.SetPoseParameter(v, "move_y", sidew)
  3582.             v:InvalidateBoneCache()
  3583.         elseif (EyeAng.p < -50) && gBool("HVH", "Resolvers", "Anti-aim resolver") then
  3584.             if !isHack then
  3585.                     HackTbl = {v:GetName(), v:SteamID(), "Invalid Angles p."..EyeAng.p..", r."..EyeAng.r}
  3586.                     table.insert(Hackers, HackTbl)
  3587.                     file.Write("hackerlistv3.txt", util.TableToJSON(Hackers))
  3588.                 end
  3589.             v:SetRenderAngles(Angle(0, EyeAng.y + plyadd[pe]+ fyawadd , 0))
  3590.            
  3591.             em.SetPoseParameter(v, "aim_pitch", -59)
  3592.             forw =math.cos(math.rad(((math.NormalizeAngle(EyeAng.y)-((math.NormalizeAngle(ang.y))+ fyawadd)))))
  3593.             sidew = math.cos(math.rad(((math.NormalizeAngle(EyeAng.y)-((math.NormalizeAngle(ang.y)+20)+ fyawadd)))))
  3594.            
  3595.             em.SetPoseParameter(v, "move_x", forw)
  3596.             em.SetPoseParameter(v, "move_y", sidew)
  3597.             v:InvalidateBoneCache()
  3598.         elseif FaAng[pl][1] ~= 0 && gBool("HVH", "Resolvers", "Fake-angles resolver") then
  3599.             if !isHack then
  3600.                 HackTbl = {v:GetName(), v:SteamID(), "Possible Fake-angles"}
  3601.                 table.insert(Hackers, HackTbl)
  3602.                 file.Write("hackerlistv3.txt", util.TableToJSON(Hackers))
  3603.             end
  3604.             v:SetRenderAngles(Angle(0, EyeAng.y + plyadd[pe]+ fyawadd , 0))
  3605.             em.SetPoseParameter(v, "aim_pitch", EyeAng.p)
  3606.             forw =math.cos(math.rad(((math.NormalizeAngle(EyeAng.y)-((math.NormalizeAngle(ang.y))+ fyawadd)))))
  3607.             sidew = math.cos(math.rad(((math.NormalizeAngle(EyeAng.y)-((math.NormalizeAngle(ang.y)-60)+ fyawadd)))))
  3608.             em.SetPoseParameter(v, "move_x", forw)
  3609.             em.SetPoseParameter(v, "move_y", sidew)
  3610.             v:InvalidateBoneCache()
  3611.         else
  3612.         --v:SetRenderAngles(Angle(0, EyeAng.y + plyadd[pe] , 0))
  3613.         end
  3614.        
  3615.         plyang = em.EyeAngles(v)
  3616.         v:InvalidateBoneCache()
  3617.     end
  3618. end
  3619.  
  3620. hook.Add("RenderScreenspaceEffects", "HackRSE", function()
  3621.  
  3622.     for k,v in next, player.GetAll() do
  3623.         if(!em.IsValid(v) || em.Health(v) < 0 || !v:Alive() || v:GetObserverMode() > 0  || v == me)  then continue; end
  3624.         if(!Filter(v)) then continue; end
  3625.         if gBool("Visuals", "ESP", "Enabled") then
  3626.         Chams(v);
  3627.         end
  3628.         local pl = v:EntIndex()
  3629.         local teastman = em.GetVelocity(v)
  3630.             teastman.z = 0
  3631.             teastman = teastman:Angle()
  3632.             teastman:Normalize()
  3633.                 if math.NormalizeAngle(teastman.y) ~=  math.NormalizeAngle(testturn[pl].y) then
  3634.         turn[pl] =  math.NormalizeAngle(teastman.y) -  math.NormalizeAngle(testturn[pl].y)
  3635.         testturn[pl] =  teastman
  3636.         elseif math.NormalizeAngle(teastman.y) ==  math.NormalizeAngle(testturn[pl].y) then
  3637.             turn[pl] = turn[pl]
  3638.             testturn[pl] = teastman
  3639.         else
  3640.         end
  3641.     end
  3642.     if gBool("Misc", "Spam", "Act Spam") then
  3643.         RunConsoleCommand("act", gOption("Misc", "Spam", "Act Type"))
  3644.     end
  3645. end);
  3646.  
  3647.  
  3648.  
  3649.  
  3650. local function PredictPos(v, vec)
  3651.  
  3652.     local tgtVelo = Vector(0, 0, 0)
  3653.     local plyVelo = Vector(0, 0, 0)
  3654.     if me:Alive() then
  3655.          plyVelo = (em.GetVelocity(me))
  3656.          if me:GetActiveWeapon():GetClass() == "weapon_crossbow" then
  3657.          plyVelo = em.GetVelocity(me) + (em.GetVelocity(me)*((me:Ping() * (92/78))/1000))
  3658.          end
  3659.          plyVelo = plyVelo * engine.TickInterval()
  3660.         if !me:IsOnGround() && me:GetMoveType() ~= MOVETYPE_NOCLIP then
  3661.             plyVelo.z  = (0.5 * -GetConVarNumber("sv_gravity") * math.pow(engine.TickInterval(),2) + em.GetVelocity(me).z * engine.TickInterval())
  3662.             if me:GetActiveWeapon():GetClass() == "weapon_crossbow" then
  3663.                 plyVelo.z  = (0.5 * -GetConVarNumber("sv_gravity") * math.pow(engine.TickInterval() + (engine.TickInterval() *((me:Ping() * (92/78))/1000)),2) + me:GetVelocity().z * (engine.TickInterval() + (engine.TickInterval() *((me:Ping() * (92/78))/1000))))
  3664.             end
  3665.         end
  3666.     else
  3667.         plyVelo = Vector(0, 0, 0)
  3668.     end
  3669.    
  3670.  
  3671.     if v:Alive() && v ~= nil && me:GetActiveWeapon():GetClass() ~= "weapon_crossbow" then
  3672.         if !string.find(string.lower(GAMEMODE.Name), "prop") then
  3673.             tgtVelo = (em.GetVelocity(v) * engine.TickInterval())
  3674.             if !v:IsOnGround() && v:GetMoveType() ~= MOVETYPE_NOCLIP then
  3675.                 tgtVelo.z  = (0.5 * -GetConVarNumber("sv_gravity") * math.pow(engine.TickInterval(),2) + em.GetVelocity(v).z * engine.TickInterval())
  3676.             end
  3677.             pvtr = {
  3678.                 start = em.GetPos(v)+ Vector(0,0,0.1),
  3679.                 endpos =  em.GetPos(v)+tgtVelo + Vector(0,0,0.1),
  3680.                 maxs = em.OBBMaxs(v),
  3681.                 mins = em.OBBMins(v),
  3682.                 filter = v
  3683.             }
  3684.             pvtres = util.TraceHull(pvtr)
  3685.             return (((pvtres.HitPos + (Hitbox(v) - em.GetPos(v))) - Vector(0,0,0.1))) - plyVelo
  3686.         else
  3687.             for _,ent in next, ents.GetAll() do
  3688.                 if ent:GetClass() == "ph_prop" && (ent:GetOwner() == v || ent:GetParent() == v) && v:Alive() then
  3689.                     tgtVelo = (em.GetVelocity(ent) * engine.TickInterval())
  3690.                     if !v:IsOnGround() && v:GetMoveType() ~= MOVETYPE_NOCLIP then
  3691.                         tgtVelo.z  = (0.5 * -GetConVarNumber("sv_gravity") * math.pow(engine.TickInterval(),2) + em.GetVelocity(ent).z * engine.TickInterval())
  3692.                     end
  3693.                     pvtr = {
  3694.                         start = em.GetPos(ent)+em.OBBCenter(ent),
  3695.                         endpos =  em.GetPos(ent)+em.OBBCenter(ent)+ tgtVelo,
  3696.                         maxs = em.OBBMaxs(v),
  3697.                         mins = em.OBBMins(v),
  3698.                         filter = {me, ent, v},
  3699.                     }
  3700.                     pvtres = util.TraceHull(pvtr)
  3701.  
  3702.                     return  (pvtres.HitPos) - plyVelo
  3703.                 end
  3704.             end
  3705.         end
  3706.             tgtVelo = (em.GetVelocity(v) * engine.TickInterval())
  3707.             if !v:IsOnGround() && v:GetMoveType() ~= MOVETYPE_NOCLIP then
  3708.                 tgtVelo.z  = (0.5 * -GetConVarNumber("sv_gravity") * math.pow(engine.TickInterval(),2) + em.GetVelocity(v).z * engine.TickInterval())
  3709.             end
  3710.             pvtr = {
  3711.                 start = em.GetPos(v),
  3712.                 endpos =  em.GetPos(v)+tgtVelo + Vector(0,0,0.1),
  3713.                 maxs = em.OBBMaxs(v),
  3714.                 mins = em.OBBMins(v),
  3715.                 filter = v
  3716.             }
  3717.             pvtres = util.TraceHull(pvtr)
  3718.  
  3719.         return (((pvtres.HitPos + (Hitbox(v) - em.GetPos(v))) - Vector(0,0,0.1))) - plyVelo
  3720.  
  3721.     elseif v:Alive() && v ~= nil && me:GetActiveWeapon():GetClass() == "weapon_crossbow" then
  3722.         trgpos = crossbowcheck(v, false)
  3723.         return crossbowcheck(v, true, true, 25 , true, trgpos) + (Hitbox(v) - v:GetPos()) - plyVelo
  3724.     end
  3725.    
  3726. end
  3727.  
  3728. hook.Add("PreDrawOpaqueRenderables", "HackPDOR", function()
  3729.     for k,v in next, player.GetAll() do
  3730.         if(!em.IsValid(v) || em.Health(v) < 0 || !v:Alive() || v:GetObserverMode() > 0  || v == me) then continue; end
  3731.         if(!Filter(v)) then continue; end
  3732.         DoAAA(v)
  3733.     end
  3734. end)
  3735.  
  3736.  
  3737.  
  3738. local myname = me:GetName()
  3739. local randply = player.GetAll()[math.random(#player.GetAll())]
  3740.  
  3741. local localname = false
  3742. canjump = false
  3743. local jumpen = true
  3744. local eyeposd = em.EyePos(me)
  3745. local baseposd = em.GetPos(me)
  3746. local eyediff = eyeposd.z - baseposd.z
  3747. local minsd = em.OBBMins(me)
  3748. local maxsd = em.OBBMaxs(me) - Vector(0 , 0,em.OBBMaxs(me).z)
  3749. local Switchy = true
  3750. local Fakie = 0
  3751. local wasair = false
  3752. local function bhop(ucmd)
  3753.     if cm.CommandNumber(ucmd) ~= 0 then
  3754.         fakelag()
  3755.         if(gBool("HVH", "FakeLag", "Enabled")) then
  3756.             if(fakeLagSwitch) then
  3757.                 Switchy = true
  3758.             else
  3759.                 Switchy = false
  3760.                 bSendPacket = false
  3761.             end
  3762.         else
  3763.             if(Fakie > 1) then
  3764.                 Switchy = true
  3765.                 Fakie = 0;
  3766.             else
  3767.                 Switchy = false
  3768.             end
  3769.             if (Switchy) then
  3770.                
  3771.             else
  3772.                 Fakie = Fakie + 1
  3773.                 bSendPacket = false
  3774.             end
  3775.         end
  3776.         wep = me:GetActiveWeapon()
  3777.         if IsValid(wep) then
  3778.             if wep:GetClass() == "weapon_zm_carry" then
  3779.                 bSendPacket = true
  3780.             end
  3781.         end
  3782.     else
  3783.         Switchy = false
  3784.     end
  3785.  
  3786.     --[[if cm.KeyDown(ucmd, IN_DUCK) then
  3787.         ducktr = {
  3788.         start = checkfovpos,
  3789.         endpos = checkfovpos - Vector(0,0,eyediff) + (me:GetVelocity()*engine.TickInterval()),
  3790.         maxs = me:OBBMaxs(),
  3791.         mins = me:OBBMins(),
  3792.         filter = me
  3793.         }
  3794.         dtres = util.TraceHull(ducktr)
  3795.         if !dtres.Hit && !me:IsOnGround() then
  3796.             if Switchy && cm.CommandNumber(ucmd) ~= 0 then
  3797.                 cm.SetButtons(ucmd, cm.GetButtons(ucmd), IN_DUCK)
  3798.             elseif !Switchy && cm.CommandNumber(ucmd) ~= 0 then
  3799.                 cm.RemoveKey(ucmd, IN_DUCK)
  3800.             end
  3801.             wasair = true
  3802.         elseif dtres.Hit && wasair && cm.CommandNumber(ucmd) ~= 0 then
  3803.             cm.RemoveKey(ucmd, IN_DUCK)
  3804.             bSendPacket = false
  3805.         end
  3806.  
  3807.     else
  3808.        
  3809.         wasair = false
  3810.     end]]
  3811.    
  3812.  
  3813.     randply = player.GetAll()[math.random(#player.GetAll())]
  3814.     local scrambledName = string.sub(randply:Nick(), 1, 1)..randply:Nick()
  3815.     if gBool("Misc", "BunnyHop", "Enabled") && ucmd:CommandNumber() ~= 0 && cm.KeyDown(ucmd, IN_JUMP) && me:GetObserverMode() == 0 && me:Alive() && !ChatOpen && !PSBox then
  3816.         local myVelo = Vector(0, 0, 0)
  3817.    
  3818.          myVelo = (em.GetVelocity(me))
  3819.          if me:Alive() && me:GetActiveWeapon()[3] then
  3820.          if me:GetActiveWeapon():GetClass() == "weapon_crossbow" then
  3821.                 myVelo = em.GetVelocity(me) + (em.GetVelocity(me)*((me:Ping() * (92/78))/1000))
  3822.             end
  3823.          end
  3824.          myVelo = myVelo * (engine.TickInterval()*5)
  3825.         if !me:IsOnGround() && me:GetMoveType() ~= MOVETYPE_NOCLIP then
  3826.             myVelo.z  = (0.5 * -GetConVarNumber("sv_gravity") * math.pow((engine.TickInterval()*5),2) + em.GetVelocity(me).z * (engine.TickInterval()*5))
  3827.         end
  3828.        
  3829.         if me:IsOnGround() then
  3830.         cm.SetButtons(ucmd, cm.GetButtons(ucmd), IN_JUMP)
  3831.         canjump = true
  3832.         elseif !me:IsOnGround() && me:WaterLevel() < 2 && me:GetMoveType() ~= MOVETYPE_LADDER then
  3833.             cm.RemoveKey(ucmd, IN_JUMP)
  3834.             canjump = true
  3835.         end
  3836.     end
  3837.         if gText("Misc", "Name Changer", "Custom Name") ~= "" then
  3838.             _fhook_changename("​"..gText("Misc", "Name Changer", "Custom Name"))
  3839.             localname = true
  3840.         else
  3841.             if gBool("Misc", "Name Changer", "Enabled") then
  3842.                 localname = true
  3843.                    
  3844.                 if randply:IsValid() && randply ~= me then
  3845.                     local nametable = string.Explode( "", randply:GetName() )
  3846.                     if #nametable > 30 then
  3847.                         return false
  3848.                     end
  3849.                     if (gBool("Misc", "Name Changer", "Ignore Friends")) && (randply:GetFriendStatus() == "friend" || table.HasValue(Friends, randply)) then
  3850.                         return false
  3851.                     end
  3852.                     if (gBool("Misc", "Name Changer", "Ignore Admins") && table.HasValue(Admin, randply)) then
  3853.                         return false
  3854.                     end
  3855.                     if (gBool("Misc", "Name Changer", "Team Only") && me:Team() ~= randply:Team()) then
  3856.                         return false
  3857.                     end
  3858.                     if randply:GetName() == "unconnected" then
  3859.                     return false
  3860.                     end
  3861.                         table.insert(nametable, math.random(1, #nametable), "​" )
  3862.                     namefin = string.Implode("", nametable)
  3863.                     local noname = string.Replace( me:GetName(), "​", "" )
  3864.                     if string.find(string.lower(GAMEMODE.Name), "darkrp") then
  3865.                     RunConsoleCommand("say", "/name "..scrambledName.."​")
  3866.                     end
  3867.                     if ucmd:CommandNumber() ~= 0 then
  3868.                         if string.find(string.lower(GAMEMODE.Name), "terror")  then
  3869.                             if GetConVarNumber("ttt_namechange_kick") ~= 0 then
  3870.                                 if GetRoundState() == 3 then
  3871.                                     _fhook_changename(me:GetName())
  3872.                                 elseif noname ~= randply:GetName() then
  3873.                                     _fhook_changename(namefin)
  3874.                                 end
  3875.                             else
  3876.                                 _fhook_changename(namefin)
  3877.                             end
  3878.                         else
  3879.                             if noname ~= randply:GetName() then
  3880.                                 _fhook_changename(namefin)
  3881.                             else
  3882.                                 _fhook_changename(me:GetName())
  3883.                             end
  3884.                         end
  3885.                     end
  3886.                 else
  3887.                     _fhook_changename(me:GetName())
  3888.                 end
  3889.             else
  3890.                 if localname == true then
  3891.                 _fhook_changename(myname)
  3892.                 localname = false
  3893.                 end
  3894.                 myname = me:GetName()
  3895.             end
  3896.         end
  3897.     local test = "KEY_"..string.upper(input.LookupBinding("voicerecord"))
  3898.     local gotit
  3899.     for i=0, #buttons, 1 do
  3900.         if buttons[i][2] == test then
  3901.             gotit = buttons[i][1]
  3902.         end
  3903.     end
  3904.     gotit2 = 0
  3905.     for i = 107, 113 do
  3906.         if input.LookupKeyBinding(i) == "+voicerecord" then
  3907.             gotit2 = i
  3908.         end
  3909.     end
  3910.     if (gotit && ((input.IsKeyDown(gotit)) || input.IsMouseDown(gotit2)) && !ChatOpen && !PSBox ) || gBool("Misc", "Spam", "Voice Spam") then
  3911.         if voicechat > 3 then
  3912.             voicechat = 0
  3913.             RunConsoleCommand("+voicerecord")
  3914.         else   
  3915.             voicechat = voicechat + 1
  3916.             RunConsoleCommand("-voicerecord")
  3917.         end
  3918.        
  3919.     else
  3920.         RunConsoleCommand("-voicerecord")
  3921.        
  3922.     end
  3923.     if gBool("Visuals", "Misc", "No Sky") && !screengrab then
  3924.         GetConVar("r_3dsky"):SetValue(0)
  3925.         GetConVar("r_drawskybox"):SetValue(0)
  3926.         GetConVar("gl_clear"):SetValue(1)
  3927.     else
  3928.         GetConVar("r_3dsky"):SetValue(1)
  3929.         GetConVar("r_drawskybox"):SetValue(1)
  3930.         GetConVar("gl_clear"):SetValue(1)
  3931.     end
  3932.     if (gBool("Visuals", "Misc", "Fullbright") || fullbrightstart) && !screengrab then
  3933.     GetConVar("mat_fullbright"):SetValue(1)
  3934.     fullbrightstart = false
  3935.     else
  3936.     GetConVar("mat_fullbright"):SetValue(0)
  3937.     end
  3938.  
  3939.  
  3940.  
  3941.  
  3942. end
  3943.  
  3944. propmin, propmax = Vector( -5, -5, -5 ), Vector(5,5,5)
  3945.  
  3946. local function aimer(ucmd)
  3947.     local wep = me:GetActiveWeapon()
  3948.     gettarget();
  3949.     if ChatOpen || PSBox then
  3950.         return false
  3951.     end
  3952.     if IsValid(wep) && cm.CommandNumber(ucmd) ~= 0 then
  3953.         if wep:Clip1() == 0 && me:GetActiveWeapon():GetMaxClip1() > 0 && wepswitch == 0 then
  3954.             cm.SetButtons(ucmd, bit.bor( cm.GetButtons(ucmd), 8192 ) );
  3955.             wepswitch = 1
  3956.         elseif wepswitch == 1 then
  3957.             cm.RemoveKey(ucmd, IN_RELOAD)
  3958.             wepswitch = 2
  3959.         elseif wep:Clip1() > 0 then
  3960.             wepswitch = 0
  3961.         end
  3962.     end
  3963.     if IsValid(wep) && wep:GetClass() == "weapon_zm_carry" then
  3964.             if input.IsMouseDown(MOUSE_RIGHT) &&  cm.CommandNumber(ucmd) ~= 0  then
  3965.             magtr = {
  3966.                 start = me:EyePos(),
  3967.                 endpos = me:EyePos() + (am.Forward(fa)*200),
  3968.                 mask = MASK_SOLID,
  3969.                 filter = me,
  3970.             };
  3971.             magres = util.TraceLine(magtr)
  3972.             if IsValid(magres.Entity) then
  3973.                 if (string.find(magres.Entity:GetClass(), "prop")||string.find(magres.Entity:GetClass(), "phys")) && magres.Entity && magres.Entity:GetOwner() == me then
  3974.                     propmin, propmax =magres.Entity:OBBMins(), magres.Entity:OBBMaxs()
  3975.                 end
  3976.             end
  3977.             end
  3978.         return
  3979.     end
  3980.     if( !wep:IsValid() || !gBool("Aimbot", "Aimbot", "Enabled") || !me:Alive()) then return; end
  3981.     aa = false;
  3982.     toggle = false
  3983.     if aimtarget && aimtarget:Alive() && CanFov(fa, me:GetShootPos(), Hitbox(aimtarget)) && (gKey("Aimbot", "Aimbot", "Key Toggle") || gBool("Aimbot", "Aimbot", "Autosnap")) && me:GetObserverMode() == 0 && ChatOpen == false && me ~= nil then
  3984.         local pos = PredictPos(aimtarget,  (Hitbox(aimtarget))) - em.EyePos(me)
  3985.         local ang = vm.Angle(PredictSpread(ucmd, vm.Angle(pos)));
  3986.         if gBool("Aimbot", "Aimbot", "Untrusted Angles") then
  3987.             ang = Angle(180 - ang.p, ang.y+180, 0)
  3988.         end
  3989.         if (gBool("Aimbot", "Aimbot", "pSilent")) then
  3990.         if (Switchy) then
  3991.         aa = false
  3992.             if (gBool("Aimbot", "Aimbot", "pSilent") && WeaponCanFire() && (cm.CommandNumber(ucmd) ~= 0)) then
  3993.            
  3994.             cm.SetViewAngles(ucmd, ang);
  3995.        
  3996.             aa = false;
  3997.             if(gBool("Aimbot", "Aimbot", "Autofire")) then
  3998.                 Autofire(ucmd);
  3999.             end
  4000.             end
  4001.         end
  4002.         else
  4003.             if (cm.CommandNumber(ucmd) ~= 0) then
  4004.                 cm.SetViewAngles(ucmd, ang);
  4005.                 if !gBool("Aimbot", "Aimbot", "Silent") then
  4006.                     fa = vm.Angle(pos)
  4007.                 end
  4008.                 if(gBool("Aimbot", "Aimbot", "Autofire")) then
  4009.                 Autofire(ucmd);
  4010.             end
  4011.             end
  4012.             aa = false;
  4013.         end
  4014.         if (gBool("Aimbot", "Aimbot", "Silent")) || gBool("Aimbot", "Aimbot", "pSilent") then
  4015.         else
  4016.             if (cm.CommandNumber(ucmd) ~= 0) then
  4017.             fa = vm.Angle(pos)
  4018.             end
  4019.             if(gBool("Aimbot", "Aimbot", "Autofire")) then
  4020.                 Autofire(ucmd);
  4021.             end
  4022.         end
  4023.     end
  4024. end
  4025.  
  4026.  
  4027.  
  4028. local function walldetect()
  4029.    
  4030.     local memeMePlease = {};
  4031.     local EyePos = em.EyePos(me);
  4032.     for i = 0, 360, 3 do
  4033.         local trace = {
  4034.             start = EyePos,
  4035.             endpos = EyePos + am.Forward(Angle(0, i, 0)) * 20;
  4036.             mask = MASK_SHOT,
  4037.             filter = function(ent) return(!ent:IsPlayer()) end
  4038.         };
  4039.  
  4040.         local frac = util.TraceLine(trace).Fraction;
  4041.  
  4042.         if(!memeMePlease.y) then
  4043.             memeMePlease.f = frac;
  4044.             memeMePlease.y = i;
  4045.             continue;
  4046.         end
  4047.  
  4048.         if( memeMePlease.f > frac ) then
  4049.             memeMePlease.f = frac;
  4050.             memeMePlease.y = i;
  4051.         end
  4052.     end