daily pastebin goal
16%
SHARE
TWEET

Shitcheat 4.1: the freecam hotfix

Caliber_ Jul 12th, 2017 (edited) 62 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local defcon = { Menu = { t = {}; b = {}; c = 0}; Alive = {};}
  2. defcon.Normal           = {
  3.     aimbot                  = true;
  4.     aimbot_fov              = 5;
  5.     aimbot_friendly_fire    = true;
  6.     triggerbot              = true;
  7.     silent                  = false;
  8.    
  9.     esp_player              = true;
  10.     esp_player_dist         = 16000;
  11.     esp_player_showdist     = true;
  12.     esp_player_name         = true;
  13.     esp_player_rank         = true;
  14.     esp_player_health       = true;
  15.     esp_player_armor        = true;
  16.     esp_player_glow         = true;
  17.     boxESP                  = false;
  18.     chams                   = false;
  19.    
  20.     esp_entity              = true;
  21.     esp_entity_dist         = 16000;
  22.     propchams               = false;
  23.    
  24.     flashlight_spam         = false;
  25.    
  26.     darkrp_money            = false;
  27.     darkrp_god              = false;
  28.    
  29.     ttt_deathnotifs         = true;
  30.     bhop_bhop               = true;
  31.     crosshair               = false;
  32.     velocity                = false;
  33.     chatspam1               = false;
  34.     chatspam2               = false;
  35.     lasereyes               = false;
  36.    
  37.     freecam_below           = false;
  38.     freecam_below2          = false;
  39.     freecam_below3          = false;
  40.     freecam_above           = false;
  41.     freecam_above2          = false;
  42.     freecam_above3          = false;
  43.     freecam_side            = false;
  44.     freecam_side2           = false;
  45.     freecam_side3           = false;
  46.     cl_noclip               = false;
  47.    
  48.     pickupinradius          = false;
  49.     dupeinradius            = false;
  50. }
  51. defcon.Settings         = (file.Exists("d_settings.txt", "DATA") and util.JSONToTable(file.Read("d_settings.txt", "DATA"))) or defcon.Normal
  52. defcon.Entities         = (file.Exists("d_entities.txt", "DATA") and util.JSONToTable(file.Read("d_entities.txt", "DATA"))) or {}
  53. defcon.Whitelist        = (file.Exists("d_whitelist.txt", "DATA") and util.JSONToTable(file.Read("d_whitelist.txt", "DATA"))) or {}
  54. defcon.AimKey           = (file.Exists("d_aimkey.txt", "DATA") and tonumber(file.Read("d_aimkey.txt", "DATA"))) or KEY_LALT
  55.  
  56. --colors
  57.  
  58. red = Color(255,0,0,255);
  59. black = Color(0,0,0,255);
  60. green = Color(0,255,0,255);
  61. white = Color(255,255,255,255);
  62. blue = Color(0,0,255,255);
  63. cyan = Color(0,255,255,255);
  64. pink = Color(255,0,255,255);
  65. blue = Color(0,0,255,255);
  66. grey = Color(100,100,100,255);
  67. gold = Color(255,228,0,255);
  68. lightblue = Color(155,205,248);
  69. lightgreen = Color(174,255,0);
  70. iceblue = Color(116,187,251,255);
  71. orange = Color(255,165,0,255);
  72. brown = Color(112, 89, 50, 255);
  73.  
  74. --menu display messages
  75.  
  76. defcon.Phrases          = {
  77.     "niggerniggerniggernigger";
  78.     "bob good is not so good";
  79.     "sheo is a kike";
  80.     "new shitcheat";
  81.     "i hate niggers";
  82.     "suck my dick";
  83.     "donul trump";
  84.     "remove kebab";
  85.     "remember, no russian";
  86.     "Made by the Madbluntz.rs Team";
  87.     "we need to nuke japan again";
  88.     "now with freecam";
  89.     "go fast eat ass";
  90.     "[OOC]Johnny Nutmegg: you fucking suck dick bro";
  91.     "the fuck are you looking at";
  92.     "fucking eat shit kid";
  93.     "commies go home";
  94.     "now with more dongs";
  95.     "north virginia battle falag isnt the confed flag";
  96.     "the KKK is dead stop crying about it";
  97.     "back to africa";
  98.     "if you voted for hillary delete system32";
  99.     "[LOOC]poop: hi";
  100.     "gulag";
  101.     "halgualuhglugaluaglhuaglhuaglhu";
  102.     "remember to enable ESP";
  103.     "skype is shit";
  104.     "bent dick";
  105.     "nigger";
  106.     "minecraft used to be good";
  107.     "lets go back to 2011";
  108.     "not an argument";
  109.     "where my new england homies at";
  110.     "JSY3050PA";
  111.     "cuck";
  112.     "free gift card giveaway";
  113.     "exploding capacitors";
  114.     "Team AVO deserves ice cream";
  115.     "made with notepad++";
  116.     "made on microshit windon't 8.1";
  117.     "Pravi srpski ratni heroj";
  118.     "kosovo je srbija";
  119.     "REMOV KEBAB";
  120.     "i hear sadness";
  121.     "this isn't the final version, trust me.";
  122.     "there's more where that came from";
  123.     "remember; no russian";
  124.     "whoops";
  125.     "how many of these fucking things do you have";
  126.     "jesus christ";
  127.     "one side";
  128.     "down with fascists";
  129.     "good night alt right";
  130.     "trump isn't a fascist you fucking retards";
  131.     "hitler only killed 12 million stfu";
  132.     "if you advertize a discord server i'll ddos u";
  133.     "don't forget to credit the people u steal hacks from";
  134.     "AUFHIFUWEHFUWAHFULFUWAHIFAWHIFUWHLFIUAWHFIUAWHFILWUHWAFHWILUFHWALIUFHWIUFHWAIUFHWUFHWLIFUHWIUFWHUIHFW";
  135.     "dirty fucking NIGGERS";
  136.     "spear chuckers get out of my country";
  137.     "hi";
  138.     "if you see this message, tell calb";
  139.     "BIG FUCK, TELL TONY";
  140.     "cucked ape";
  141.     "rust sucks";
  142.     "garry newman more like garry jewman";
  143.     "official website: madbluntz.rs/shitcheat";
  144.     "listen to my music @ caliberr.bandcamp.com";
  145.     "discord.gg/nigger";
  146.     "furries will die from brain tumors";
  147.     "space left blank intentionally";
  148.     "whoa, dude";
  149.     "As seen on TV";
  150.     "Awesome";
  151.     "100% pure";
  152.     "May contain nuts";
  153.     "Better than Prey";
  154.     "More polygons";
  155.     "Sexy";
  156.     "Limited edition";
  157.     "Flashing letters";
  158.     "It's here";
  159.     "Best in class";
  160.     "It's finished";
  161.     "Kind of dragon free";
  162.     "Excrement";
  163.     "More than 500 sold";
  164.     "One of a kind";
  165.     "Heaps of hits on YouTube";
  166.     "Indev";
  167.     "Spiders everywhere";
  168.     "Check it out";
  169.     "Holy cow, man";
  170.     "It's a game";
  171.     "Made in Sweden";
  172.     "Uses LWJGL";
  173.     "Reticulating splines";
  174.     "Singleplayer";
  175.     "Keyboard compatible";
  176.     "Undocumented";
  177.     "Ingots";
  178.     "That's no moon";
  179.     "l33t";
  180.     "Exclusive";
  181.     "The bee's knee";
  182.     "Down with O.P.P.";
  183.     "Closed source";
  184.     "Classy";
  185.     "Wow";
  186.     "Not on steam";
  187.     "Oh man";
  188.     "Awesome community";
  189.     "Pixels";
  190.     "Teetsuuuuoooo";
  191.     "Kaaneeeedaaaa";
  192.     "Now with difficulty";
  193.     "Enhanced";
  194.     "90% bug free";
  195.     "Pretty";
  196.     "12 herbs and spices";
  197.     "Fat free";
  198.     "Absolutely no memes";
  199.     "PRESS INSERT TO OPEN THE SECRET MENU";
  200.     "Free dental";
  201.     "Ask your doctor";
  202.     "Minors not welcome";
  203.     "Cloud computing";
  204.     "Legal in Finland";
  205.     "Hard to label";
  206.     "Technically good";
  207.     "Bringing home the bacon";
  208.     "Indie";
  209.     "GOTY";
  210.     "Ceci n'est pas une cheat menu";
  211.     "Euclidian";
  212.     "Now in 2D";
  213.     "Inspirational";
  214.     "Herregud";
  215.     "Complex cellular automata";
  216.     "NO SIR";
  217.     "Played by cowboys";
  218.     "OpenGL 2.1 (if supported)";
  219.     "tens of colors";
  220.     "Try it";
  221.     "Age of empires is better";
  222.     "Try the mushroom sjw";
  223.     "Sensational";
  224.     "Hot tamale, hot hot tamale";
  225.     "Play him off, fuckhead";
  226.     "Guaranteed";
  227.     "Macroscopic";
  228.     "Bring it on";
  229.     "Random splash";
  230.     "Call your mother";
  231.     "Monster infighting";
  232.     "Loved by millions";
  233.     "Ultimate edition";
  234.     "Freaky";
  235.     "PRESS INSERT TO OPEN sekrit MENU";
  236.     "You've got a brand new key";
  237.     "not water proof";
  238.     "Uninflammable";
  239.     "Whoa, dude";
  240.     "All inclusive";
  241.     "Tell your friends";
  242.     "NP is not in P";
  243.     "Livestreamed";
  244.     "Haunted";
  245.     "Polynomial";
  246.     "Terrestrial";
  247.     "All is full of ERP";
  248.     "Full of stars";
  249.     "Scientific";
  250.     "Not as cool as Spock";
  251.     "Collaborate and listen";
  252.     "Never fuck up";
  253.     "Take frequent breaks";
  254.     "Not linear";
  255.     "Han shot first";
  256.     "Nice to meet you";
  257.     "Buckets of lava";
  258.     "Ride the pig";
  259.     "Larger than Earth";
  260.     "sqrt(-1) love you";
  261.     "Phobos anomaly";
  262.     "getting wood";
  263.     "Falling off cliffs";
  264.     "14% sugar";
  265.     "150% hyperbole";
  266.     "Synecdoche";
  267.     "Let's punc";
  268.     "Seecret Friday update";
  269.     "Reference implementation";
  270.     "PRESS INSERT 2 open secret bitch";
  271.     "Lewd with two dudes with food";
  272.     "Kiss the sky";
  273.     "20 GOTO 10";
  274.     "Verlet intregration";
  275.     "Peter Griffin";
  276.     "Do not distribute";
  277.     "Cogito ergo sum";
  278.     "44 lines of code";
  279.     "A skeleton popped out";
  280.     "The Work of nutmegg";
  281.     "The sum of its parts";
  282.     "BTAF used to be good";
  283.     "I miss ADOM";
  284.     "umop-apisdn";
  285.     "OICU812";
  286.     "Bring me Ray Cokes";
  287.     "Finger-licking";
  288.     "Thematic";
  289.     "Pneumatic";
  290.     "Sublime";
  291.     "Octagonal";
  292.     "Une baguette";
  293.     "Gargamel uses it";
  294.     "Rita is the new top dog";
  295.     "SWM forever";
  296.     "Representing Edsbyn";
  297.     "Matt Damon";
  298.     "Supercalifragilisticexpialidocious";
  299.     "Consummate V's";
  300.     "Cow Tools";
  301.     "Double buffered";
  302.     "Fan fiction";
  303.     "Flaxkikare";
  304.     "Jason Jason Jason";
  305.     "Hotter than the sun";
  306.     "Internet enabled";
  307.     "Autonomous";
  308.     "Engage";
  309.     "Fantasy";
  310.     "DRR DRR DRR";
  311.     "Kick it root down";
  312.     "Google anlyticsed";
  313.     "Now supports åäö";
  314.     "Give us Gordon";
  315.     "Tip your waiter";
  316.     "Very fun";
  317.     "12345 is a bad password";
  318.     "Vote for net neutrality";
  319.     "Lives in a pineapple under the sea";
  320.     "MAP11 has two names";
  321.     "Omnipotent";
  322.     "Gasp";
  323.     "...";
  324.     "Bees, bees, bees, bees";
  325.     "Jag känner en bot";
  326.     "Haha, LOL";
  327.     "Menger sponge";
  328.     "idspispopd";
  329.     "Eple (original edit)";
  330.     "So fresh, so clean";
  331.     "Slow acting portals";
  332.     "Don't look directly at the bugs";
  333.     "Finally without NIGGERS";
  334.     "Scary";
  335.     "Twittered about";
  336.     "Jump up, jump up, and get down";
  337.     "sheo is neat";
  338.     "a riddle, wrapped in a mystery";
  339.     "Huge tracts of land";
  340.     "Welcome to your Doom";
  341.     "Stay a while, stay forever";
  342.     "Stay a while and listen";
  343.     "Treatment for your rash";
  344.     "'Autological' is";
  345.     "Information wants to be free";
  346.     "Almost never' is an interesting concept";
  347.     "Lots of truthiness";
  348.     "The nigger is a baffoon";
  349.     "Turing complete";
  350.     "It's groundbreaking";
  351.     "Let our battles begin";
  352.     "The sky is the limit";
  353.     "Casul gayming";
  354.     "Undefeated";
  355.     "Kinda like Lemmings";
  356.     "Follow the train, CJ";
  357.     "Leveraging synergy";
  358.     "This message will never appear on the hack menu, isn't that weird?";
  359.     "Read more books";
  360.     "Khaaaaaaaaan";
  361.     "Less addictive than TV Tropes";
  362.     "More addictive than lemonade";
  363.     "Bigger than a bread box";
  364.     "Millions of peaches";
  365.     "Fnord";
  366.     "This is my true form";
  367.     "Totally forgot about Dre";
  368.     "Don't bother with the clones";
  369.     "Pumpkinhead";
  370.     "Hobo humping slobo babe";
  371.     "Feature packed";
  372.     "Conventional";
  373.     "Homeomorphic to a 3-sphere";
  374.     "Doesn't avoid double negatives";
  375.     "Meeting expectations";
  376.     "lives in cambodia";
  377.     "PC gaming since 1873";
  378.     "Ghoughpteighbteau tchoghs";
  379.     "GET GUD AT MINGING U NIGGER";
  380.     "NEXUS NOT FOUND";
  381.     "ADMIN SPOTTED";
  382.     "/plyban ^ 0";
  383.     " everyone type in chat caliber is a stupid nigger";
  384.     "caliber .50 BMG";
  385.     "andy.b choked on niggermenu";
  386.     "Déjà vu";
  387.     "Déjà vu";
  388.     "Got your nose";
  389.     "Haley loves Elan";
  390.     "Afraid of the big, black bat";
  391.     "Doesn't use stonel code";
  392.     "Child's play";
  393.     "See you next Friday or so";
  394.     "From the streets of Södermalm";
  395.     "150 bpm for 400000 minutes";
  396.     "Technologic";
  397.     "Funk soul brother";
  398.     "Pumpa kungen";
  399.     "日本ハロー!";
  400.     "한국 안녕하세요";
  401.     "Helo Cymru";
  402.     "Cześć Polsko";
  403.     "你好中国!";
  404.     "Привет Россия";
  405.     "Γεια σου Ελλάδα";
  406.     "My life for Aiur";
  407.     "I see your vocabulary has improved";
  408.     "Who put it there?";
  409.     "You can't explain that";
  410.     "if not ok then return end";
  411.     "§1C§2o§3l§4o§5r§6m§7a§8t§9i§ac";
  412.     "§kFUNKY LOL";
  413.     "Big Pointy Teeth";
  414.     "Bekarton guards the gate";
  415.     "Mmmph, mmph";
  416.     "Don't feed avocados to parrots";
  417.     "Swords for everyone";
  418.     ".party()";
  419.     "Pretty scary";
  420.     "I have a suggestion.";
  421.     "Now with extra hugs";
  422.     "Now Lua 6";
  423.     "Woah.";
  424.     "HURNERJSGER?";
  425.     "What's up, Doc?";
  426.     "Now contains 6 million random daily kikes!";
  427.     "That's Niggerwang";
  428.     "join this server right now u niggers";
  429.     "Put a little fence around it";
  430.     "Throw a blanket over it";
  431.     "Now with additional stuff";
  432.     "Extra things";
  433.     "niggaz in da hood";
  434.     "So sweet";
  435.     "Popping tags";
  436.     "Very influential in its circle";
  437.     "Now with extra yeet";
  438.     "Rise from your grave";
  439.     "Warning A huge battleship is approaching fast!";
  440.     "Blue warrior shot the food";
  441.     "Run, coward I hunger";
  442.     "Flavor with no seasoning";
  443.     "Strange, but not a stranger";
  444.     "Tougher than diamonds, rich like cream";
  445.     "Getting ready to show";
  446.     "Getting ready to know";
  447.     "i'm happy with it.";
  448.     "Getting ready to drop";
  449.     "Getting ready to suck";
  450.     "Getting ready to freak";
  451.     "Getting ready to speak";
  452.     "It swings, it jives";
  453.     "Cruising streets for gold";
  454.     "Take an eggbeater and beat it against a skillet";
  455.     "Make me a table, a funky table";
  456.     "Take the elevator to the mezzanine";
  457.     "Stop being reasonable, this is the Internet";
  458.     "/giveweapon m9k_1911a1 1";
  459.     "This is good for Realms.";
  460.     "now with memeware";
  461.     "fuck all y'all";
  462.     "cocaine is bad for u";
  463.     "school is gay";
  464.     "Any computer is a laptop if you're brave enough";
  465.     "Do it all, everything";
  466.     "Where there is not light, there can spider";
  467.     "GNU Terry Pratchett";
  468.     "More Digital";
  469.     "doot doot";
  470.     "Falling with style";
  471.     "There's no stopping the nutmegg";
  472.     "Throw yourself at the ground and miss";
  473.     "Rule #1: it's never my fault";
  474.     "Replaced molten cheese with blood?";
  475.     "Absolutely fixed relatively broken coordinates";
  476.     "Boats FTW";
  477.     "gay edition";
  478.     "REALLY gay edition";
  479.     "You're going too fast";
  480.     "made without parential permission";
  481.     "lapfuckstrax";
  482.     "aspie collective";
  483.     "a product of its time";
  484.     "their they're and there";
  485.     "endless streams of shit";
  486.     "new! old! terrible!";
  487.     "i make music now";
  488.     "this is my life now";
  489.     "i'm ok with this";
  490.     "u know wwhat this is prob the last version, i dont have anything new to add";
  491.     "shoutout to johnny nutmegg";
  492.     "etxraneous bullshit";
  493.     "inflated filesize";
  494.     "cancer";
  495.     "die";
  496.     "aimbot key is f";
  497.     "oh fuck off";
  498.     "try exanima";
  499.     "jerkcity.com - since 1998";
  500.    
  501. }
  502.  
  503. defcon.Phrases2             = {
  504.     "got fucked";
  505.     "got shit on";
  506.     "died";
  507.     "got holocausted";
  508.     "ate shit";
  509.     "tried to fly a potato";
  510.     "dug too deep";
  511.     "got RDM'd";
  512.     "tried to drink molten stone";
  513.     "got owned";
  514.     "ate that dirt";
  515.     "fought the law (and the law won)";
  516.     "was slain";
  517.     "tried to do hvh with an aimware user";
  518.     "downloaded memeware";
  519.     "deleted system32";
  520.     "got mad";
  521.     "kicked the bucket";
  522.     "downloaded malware";
  523.     "unsubscribed from dramaalert";
  524.     "went to hell";
  525.     "did not pass go";
  526.     "did not collect 200 dollars";
  527.     "went to detroit at night";
  528.     "got smashed";
  529.     "got their fucking brains blown out";
  530.     "became one with the ground";
  531.     "got gangbanged";
  532.     "tried to run from a cheater";
  533. }
  534. defcon.Keys = {
  535. "KEY_0", "KEY_1", "KEY_2", "KEY_3", "KEY_4", "KEY_5",
  536. "KEY_6", "KEY_7", "KEY_8", "KEY_9", "KEY_A", "KEY_B", "KEY_C",
  537. "KEY_D", "KEY_E", "KEY_F", "KEY_G", "KEY_H", "KEY_I", "KEY_J",
  538. "KEY_K", "KEY_L", "KEY_M", "KEY_N", "KEY_O", "KEY_P", "KEY_Q",
  539. "KEY_R", "KEY_S", "KEY_T", "KEY_U", "KEY_V", "KEY_W", "KEY_X",
  540. "KEY_Y", "KEY_Z", "KEY_PAD_0", "KEY_PAD_1", "KEY_PAD_2", "KEY_PAD_3",
  541. "KEY_PAD_4", "KEY_PAD_5", "KEY_PAD_6", "KEY_PAD_7", "KEY_PAD_8", "KEY_PAD_9",
  542. "KEY_PAD_DIVIDE", "KEY_PAD_MULTIPLY", "KEY_PAD_MINUS", "KEY_PAD_PLUS", "KEY_PAD_ENTER",
  543. "KEY_PAD_DECIMAL", "KEY_LBRACKET", "KEY_RBRACKET", "KEY_SEMICOLON", "KEY_APOSTROPHE",
  544. "KEY_BACKQUOTE", "KEY_COMMA", "KEY_PERIOD", "KEY_SLASH", "KEY_BACKSLASH", "KEY_MINUS",
  545. "KEY_EQUAL", "KEY_ENTER", "KEY_SPACE", "KEY_BACKSPACE", "KEY_TAB", "KEY_CAPSLOCK",
  546. "KEY_NUMLOCK", "KEY_ESCAPE", "KEY_SCROLLLOCK", "KEY_INSERT", "KEY_DELETE", "KEY_HOME",
  547. "KEY_END", "KEY_PAGEUP", "KEY_PAGEDOWN", "KEY_BREAK", "KEY_LSHIFT", "KEY_RSHIFT",
  548. "KEY_LALT", "KEY_RALT", "KEY_LCONTROL", "KEY_RCONTROL", "KEY_LWIN", "KEY_RWIN",
  549. "KEY_APP", "KEY_UP", "KEY_LEFT", "KEY_DOWN", "KEY_RIGHT", "KEY_F1", "KEY_F2",
  550. "KEY_F3", "KEY_F4", "KEY_F5", "KEY_F6", "KEY_F7", "KEY_F8", "KEY_F9",
  551. "KEY_F10", "KEY_F11", "KEY_F12", "KEY_CAPSLOCKTOGGLE", "KEY_NUMLOCKTOGGLE",
  552. "KEY_SCROLLLOCKTOGGLE"
  553. };
  554.  
  555. local function SafeCheck(v)
  556.     if v ~=LocalPlayer() and v:Alive() and v:IsValid() and v:GetActiveWeapon():IsValid() and v:Health() >= 1 then
  557.         return true
  558.     else
  559.         return false
  560.     end
  561. end
  562.  
  563. for k,v in pairs(defcon.Normal) do
  564.     if defcon.Settings[k] == nil then
  565.         defcon.Settings = defcon.Normal
  566.         -- so that if a new key is added to the normal config, the Settings will reset
  567.     end
  568. end
  569.  
  570. -- functions
  571.  
  572. function defcon.Update(x,y,z, ok)
  573.     if x == "setting" then
  574.         defcon.Settings[y] = z
  575.         if ok == true then
  576.             file.Write("d_settings.txt", util.TableToJSON(defcon.Settings))
  577.         end
  578.     elseif x == "entity" then
  579.         file.Write("d_entities.txt", util.TableToJSON(defcon.Entities))
  580.     elseif x == "friend" then
  581.         file.Write("d_whitelist.txt", util.TableToJSON(defcon.Whitelist))
  582.     end
  583. end
  584. function defcon.ESPCheck(typ, v)
  585.     if typ == "player" then
  586.         if v:Alive() && v:Health() >= 1 && v ~= LocalPlayer() /*&& /*LocalPlayer():Alive() &&*/ /*LocalPlayer():Team() ~= TEAM_SPECTATOR*/ then
  587.             return true
  588.         end
  589.     elseif typ == "entity" then
  590.         if IsValid(v) then
  591.             return true
  592.         end
  593.     end
  594.     return false
  595. end
  596. function defcon.ESPDistance(typ, v)
  597.     if typ == "player" then
  598.         if defcon.Settings["esp_player_dist"] >= 16000 then
  599.             return true
  600.         elseif v:GetPos():Distance(LocalPlayer():GetPos()) < (defcon.Settings["esp_player_dist"]) then
  601.             return true
  602.         end
  603.     elseif typ == "entity" then
  604.         if defcon.Settings["esp_entity_dist"] >= 16000 then
  605.             return true
  606.         elseif v:GetPos():Distance(LocalPlayer():GetPos()) < (defcon.Settings["esp_entity_dist"]) then
  607.             return true
  608.         end
  609.     end
  610.     return false
  611. end
  612. function defcon.GetShootPos(ent)
  613.     local eyes = ent:LookupAttachment("eyes");
  614.     if(eyes ~= 0) then
  615.         eyes = ent:GetAttachment(eyes);
  616.         if(eyes and eyes.Pos) then
  617.             return eyes.Pos, eyes.Ang;
  618.         end
  619.     end
  620. end
  621. function defcon.Visible(ent)
  622.     local pos = LocalPlayer():GetShootPos()
  623.     local ang = LocalPlayer():GetAimVector()
  624.     local trace = {start = LocalPlayer():GetShootPos(), endpos = defcon.GetShootPos(ent), filter = {LocalPlayer(), ent}, mask = 1174421507};
  625.     local tr = util.TraceLine(trace);
  626.     return(tr.Fraction == 1);
  627. end
  628. function defcon.Whitelisted(ent)
  629.     if defcon.Whitelist[ent:SteamID()] then return true
  630.     else return false end
  631. end
  632. function defcon.CanTarget(v)
  633.     if v:IsPlayer() then
  634.         if (defcon.Visible(v) and (not defcon.Whitelisted(v)) and v:Alive() and (v:Health() > 0) and v:Team() ~= TEAM_SPECTATOR) then
  635.             if (v ~= LocalPlayer() and LocalPlayer():Alive() and LocalPlayer():Team() ~= TEAM_SPECTATOR) then
  636.                 if not(defcon.Settings["aimbot_friendly_fire"]) then
  637.                     if (v:Team() ~= LocalPlayer():Team()) then
  638.                         return true
  639.                     end
  640.                 else
  641.                     return true
  642.                 end
  643.             end
  644.         end
  645.     end
  646.     return false
  647. end
  648. function defcon.Ents()
  649.     local t = {}
  650.     for k,v in pairs(ents.GetAll()) do
  651.         if IsValid(v) and not(table.HasValue(t, v:GetClass())) then
  652.             table.insert(t, v:GetClass())
  653.         end
  654.     end
  655.     table.sort(t, function(a,b) return a < b end)
  656.    
  657.     return t
  658. end
  659.  
  660. -- fonts
  661.  
  662. surface.CreateFont("deffont", {
  663.     font    =   "impact",
  664.     size    =   64
  665. });
  666.  
  667. surface.CreateFont("deffontesp1", {
  668.     font="TabLarge",
  669.     size=13,
  670.     weight=700
  671. });
  672. surface.CreateFont("deffontesp2", {
  673.     font="TabLarge",
  674.     size=10,
  675.     weight=700
  676. });
  677. surface.CreateFont("fuck", {
  678.     font="Console",
  679.     size=13,
  680.     weight=100
  681. });
  682. surface.CreateFont("velmet", {
  683.  size = 50,
  684.  weight = 500,
  685.  antialias = true,
  686.  font = "VCR OSD Mono"
  687.  });
  688.  surface.CreateFont("warnign", {
  689.  size = 18,
  690.  weight = 0,
  691.  antialias = false,
  692.  font = "times new roman"
  693.  });
  694.  
  695. -- short vars
  696.  
  697. local menu              = defcon.Menu
  698. local current           = defcon.Current
  699. local alive             = defcon.Alive
  700. local normal            = defcon.Normal
  701. local settings          = defcon.Settings
  702. local entities          = defcon.Entities
  703. local whitelist         = defcon.Whitelist
  704. local phrases           = defcon.Phrases
  705. local espcheck          = defcon.ESPCheck
  706. local espdistance       = defcon.ESPDistance
  707.  
  708. -- menu
  709.  
  710. local function AddTab(txt, tab, func)
  711.     menu.c = menu.c + 1 -- increase the counter for the amount of tabs
  712.     local panel
  713.     if tab and tab == true then
  714.         panel = vgui.Create("DPanel", menu.frame);
  715.         panel:SetPos(120,25);
  716.         panel:SetSize(376,406);
  717.         if menu.Current == txt then
  718.             panel:SetVisible(true)
  719.         else
  720.             panel:SetVisible(false)
  721.         end
  722.         panel.Paint = function()
  723.             surface.SetDrawColor( 163, 163, 163, 255 )
  724.             surface.DrawOutlinedRect( 0, 0, panel:GetWide() - 1, panel:GetTall() - 1)
  725.             draw.SimpleText(string.upper(txt), "deffont", 10, 5, Color(210, 210, 210, 235), TEXT_ALIGN_LEFT);
  726.         end
  727.     end
  728.     local button = vgui.Create("DButton", menu.buttons);
  729.     button:SetText(txt);
  730.     button:SetSize(80, 20);
  731.     button:SetPos(15, -15+(25*menu.c));
  732.     button:SetTextColor(color_white)
  733.     button.Paint = function(self)
  734.         surface.SetDrawColor(100,100,100,220)
  735.         surface.DrawRect(0, 0,self:GetSize())
  736.         surface.SetDrawColor(0,0,0,0)
  737.         surface.DrawOutlinedRect(0,0,self:GetSize())
  738.     end
  739.     button.DoClick = func or (tab and tab == true and function()
  740.         for k,v in pairs(menu.t) do
  741.             if v ~= panel then
  742.                 v:SetVisible(false)
  743.             end
  744.         end
  745.         panel:SetVisible(true)
  746.         menu.Current = txt
  747.         surface.PlaySound("ambient/levels/canals/drip4.wav");
  748.     end)
  749.     return panel, button;
  750. end
  751.  
  752. --derma bullshit
  753.  
  754. local function AddFeature(id, parent, typ, name, setting, o1, o2)
  755.     if not parent then return end
  756.     if typ == "button" then
  757.         local label = vgui.Create("DLabel", parent)
  758.         label:SetText(name)
  759.         label:SetPos(5,(55+(id*25)))
  760.         label:SizeToContents(false)
  761.         local button = vgui.Create("DButton", parent)
  762.         if defcon.Settings[setting] == true then
  763.             button:SetText("enabled")
  764.         else
  765.             button:SetText("disabled")
  766.         end
  767.         button:SetSize(80,20)
  768.         if not id then
  769.             button:SetPos(285,45)
  770.         else
  771.             button:SetPos(285,(55+(id*25)))
  772.         end
  773.         button.DoClick = function()
  774.             if button:GetText() == "enabled" then
  775.                 button:SetText("disabled"); defcon.Update("setting", setting, false, true)
  776.             else
  777.                 button:SetText("enabled"); defcon.Update("setting", setting, true, true)
  778.             end
  779.         end
  780.         button:SetTextColor(color_white)
  781.         button.Paint = function(self)
  782.             surface.SetDrawColor(100,100,100,220)
  783.             surface.DrawRect(0, 0,self:GetSize())
  784.             surface.SetDrawColor(0,0,0,0)
  785.             surface.DrawOutlinedRect(0,0,self:GetSize())
  786.         end
  787.         return button,label
  788.     elseif typ == "slider" then
  789.         local slider = vgui.Create("DNumSlider", parent)
  790.         slider:SetPos(5, (45+(id*25)))
  791.         slider:SetText(name)
  792.         slider:SetMinMax(o1, o2)
  793.         slider:SetWide(372.5)
  794.         slider:SetDecimals( 0 )
  795.         slider:SetFGColor(255,255,255,255)
  796.         slider:SetBGColor(255,255,255,255)
  797.         slider:SetValue(defcon.Settings[setting])
  798.         slider.OnValueChanged = function(panel, value)
  799.             local c = tonumber(value)
  800.             defcon.Update("setting", setting, math.Round(c), true)
  801.         end
  802.         return slider;
  803.     end
  804.  
  805.     if typ == "label" then
  806.         local label = vgui.Create("DLabel", parent)
  807.         label:SetText(name)
  808.         label:SetPos(5,(55+(id*25)))
  809.         label:SizeToContents(false)
  810.         label:SetFont("warnign")
  811.         label.Paint = function(self)
  812.             label:SetTextColor(Color( 43, 98, 226, 255 ))
  813.             end
  814.        
  815.     return label
  816.     end
  817.         if typ == "label2" then
  818.         local label = vgui.Create("DLabel", parent)
  819.         label:SetText(name)
  820.         label:SetPos(5,(55+(id*25)))
  821.         label:SizeToContents(false)
  822.         label:SetFont("fuck")
  823.         label.Paint = function(self)
  824.             label:SetTextColor(Color( 140, 140, 140, 255 ))
  825.             end
  826.            
  827.     return label2
  828.     end
  829.         if typ == "label3" then
  830.         local label = vgui.Create("DLabel", parent)
  831.         label:SetText(name)
  832.         label:SetPos(5,(55+(id*25)))
  833.         label:SizeToContents(false)
  834.         label:SetFont("warnign")
  835.         label.Paint = function(self)
  836.             label:SetTextColor(Color( 43, 98, 226, 255 ))
  837.             end
  838.        
  839.     return label3
  840. end
  841.     if not parent then return end
  842.     if typ == "canser" then
  843.         local label = vgui.Create("DLabel", parent)
  844.         label:SetText(name)
  845.         label:SetPos(5,(55+(id*25)))
  846.         label:SizeToContents(false)
  847.         local button = vgui.Create("DButton", parent)
  848.         if defcon.Settings[setting] == true then
  849.             button:SetText("enabled")
  850.         else
  851.             button:SetText("disabled")
  852.         end
  853.         button:SetSize(80,20)
  854.         if not id then
  855.             button:SetPos(285,45)
  856.         else
  857.             button:SetPos(285,(55+(id*25)))
  858.         end
  859.         button.DoClick = function()
  860.             if button:GetText() == "enabled" then
  861.                 button:SetText("disabled"); defcon.Update("setting", setting, false, true); RunConsoleCommand "SH_toggle"
  862.             else
  863.                 button:SetText("enabled"); defcon.Update("setting", setting, true, true); RunConsoleCommand "SH_toggle"
  864.             end
  865.         end
  866.         button:SetTextColor(color_white)
  867.         button.Paint = function(self)
  868.             surface.SetDrawColor(100,100,100,220)
  869.             surface.DrawRect(0, 0,self:GetSize())
  870.             surface.SetDrawColor(0,0,0,0)
  871.             surface.DrawOutlinedRect(0,0,self:GetSize())
  872.     end
  873.     end
  874.     if not parent then return end
  875.     if typ == "landsernigger" then
  876.         local label = vgui.Create("DLabel", parent)
  877.         label:SetText(name)
  878.         label:SetPos(5,(55+(id*25)))
  879.         label:SizeToContents(false)
  880.         local button = vgui.Create("DButton", parent)
  881.         if defcon.Settings[setting] == true then
  882.             button:SetText("search")
  883.         else
  884.             button:SetText("search")
  885.         end
  886.         button:SetSize(80,20)
  887.         if not id then
  888.             button:SetPos(285,45)
  889.         else
  890.             button:SetPos(285,(55+(id*25)))
  891.         end
  892.         button.DoClick = function()
  893.             if button:GetText() == "enabled" then
  894.                 button:SetText("search"); defcon.Update("setting", setting, false, true); RunConsoleCommand "pickupinradius"
  895.             else
  896.                 button:SetText("search"); defcon.Update("setting", setting, true, true); RunConsoleCommand "pickupinradius"
  897.             end
  898.         end
  899.         button:SetTextColor(color_white)
  900.         button.Paint = function(self)
  901.             surface.SetDrawColor(100,100,100,220)
  902.             surface.DrawRect(0, 0,self:GetSize())
  903.             surface.SetDrawColor(0,0,0,0)
  904.             surface.DrawOutlinedRect(0,0,self:GetSize())
  905.     end
  906.     end
  907.         if not parent then return end
  908.     if typ == "landsernigger6" then
  909.         local label = vgui.Create("DLabel", parent)
  910.         label:SetText(name)
  911.         label:SetPos(5,(55+(id*25)))
  912.         label:SizeToContents(false)
  913.         local button = vgui.Create("DButton", parent)
  914.         if defcon.Settings[setting] == true then
  915.             button:SetText("enabled")
  916.         else
  917.             button:SetText("disabled")
  918.         end
  919.         button:SetSize(80,20)
  920.         if not id then
  921.             button:SetPos(285,45)
  922.         else
  923.             button:SetPos(285,(55+(id*25)))
  924.         end
  925.         button.DoClick = function()
  926.             if button:GetText() == "enabled" then
  927.                 button:SetText("disabled"); defcon.Update("setting", setting, false, true); RunConsoleCommand ("defcon.chams", "0")
  928.             else
  929.                 button:SetText("enabled"); defcon.Update("setting", setting, true, true); RunConsoleCommand ("defcon.chams", "1")
  930.             end
  931.         end
  932.         button:SetTextColor(color_white)
  933.         button.Paint = function(self)
  934.             surface.SetDrawColor(100,100,100,220)
  935.             surface.DrawRect(0, 0,self:GetSize())
  936.             surface.SetDrawColor(0,0,0,0)
  937.             surface.DrawOutlinedRect(0,0,self:GetSize())
  938.     end
  939.     end
  940.     if not parent then return end
  941.     if typ == "landsernigger3" then
  942.         local label = vgui.Create("DLabel", parent)
  943.         label:SetText(name)
  944.         label:SetPos(5,(55+(id*25)))
  945.         label:SizeToContents(false)
  946.         local button = vgui.Create("DButton", parent)
  947.         if defcon.Settings[setting] == true then
  948.             button:SetText("enabled")
  949.         else
  950.             button:SetText("disabled")
  951.         end
  952.         button:SetSize(80,20)
  953.         if not id then
  954.             button:SetPos(285,45)
  955.         else
  956.             button:SetPos(285,(55+(id*25)))
  957.         end
  958.         button.DoClick = function()
  959.             if button:GetText() == "enabled" then
  960.                 button:SetText("disabled"); defcon.Update("setting", setting, false, true); RunConsoleCommand ("defcon.boxESP", "0")
  961.             else
  962.                 button:SetText("enabled"); defcon.Update("setting", setting, true, true); RunConsoleCommand ("defcon.boxESP", "1")
  963.             end
  964.         end
  965.         button:SetTextColor(color_white)
  966.         button.Paint = function(self)
  967.             surface.SetDrawColor(100,100,100,220)
  968.             surface.DrawRect(0, 0,self:GetSize())
  969.             surface.SetDrawColor(0,0,0,0)
  970.             surface.DrawOutlinedRect(0,0,self:GetSize())
  971.     end
  972.     end
  973.             if not parent then return end
  974.     if typ == "landsernigger4" then
  975.         local label = vgui.Create("DLabel", parent)
  976.         label:SetText(name)
  977.         label:SetPos(5,(55+(id*25)))
  978.         label:SizeToContents(false)
  979.         local button = vgui.Create("DButton", parent)
  980.         if defcon.Settings[setting] == true then
  981.             button:SetText("enabled")
  982.         else
  983.             button:SetText("disabled")
  984.         end
  985.         button:SetSize(80,20)
  986.         if not id then
  987.             button:SetPos(285,45)
  988.         else
  989.             button:SetPos(285,(55+(id*25)))
  990.         end
  991.         button.DoClick = function()
  992.             if button:GetText() == "enabled" then
  993.                 button:SetText("disabled"); defcon.Update("setting", setting, false, true); RunConsoleCommand ("defcon.propchams", "0")
  994.             else
  995.                 button:SetText("enabled"); defcon.Update("setting", setting, true, true); RunConsoleCommand ("defcon.propchams", "1")
  996.             end
  997.         end
  998.         button:SetTextColor(color_white)
  999.         button.Paint = function(self)
  1000.             surface.SetDrawColor(100,100,100,220)
  1001.             surface.DrawRect(0, 0,self:GetSize())
  1002.             surface.SetDrawColor(0,0,0,0)
  1003.             surface.DrawOutlinedRect(0,0,self:GetSize())
  1004.     end
  1005.     end
  1006.                 if not parent then return end
  1007.     if typ == "landsernigger5" then
  1008.         local label = vgui.Create("DLabel", parent)
  1009.         label:SetText(name)
  1010.         label:SetPos(5,(55+(id*25)))
  1011.         label:SizeToContents(false)
  1012.         local button = vgui.Create("DButton", parent)
  1013.         if defcon.Settings[setting] == true then
  1014.             button:SetText("enabled")
  1015.         else
  1016.             button:SetText("disabled")
  1017.         end
  1018.         button:SetSize(80,20)
  1019.         if not id then
  1020.             button:SetPos(285,45)
  1021.         else
  1022.             button:SetPos(285,(55+(id*25)))
  1023.         end
  1024.         button.DoClick = function()
  1025.             if button:GetText() == "enabled" then
  1026.                 button:SetText("disabled"); defcon.Update("setting", setting, false, true); RunConsoleCommand ("defcon.radiochams", "0")
  1027.             else
  1028.                 button:SetText("enabled"); defcon.Update("setting", setting, true, true); RunConsoleCommand ("defcon.radiochams", "1")
  1029.             end
  1030.         end
  1031.         button:SetTextColor(color_white)
  1032.         button.Paint = function(self)
  1033.             surface.SetDrawColor(100,100,100,220)
  1034.             surface.DrawRect(0, 0,self:GetSize())
  1035.             surface.SetDrawColor(0,0,0,0)
  1036.             surface.DrawOutlinedRect(0,0,self:GetSize())
  1037.     end
  1038.     end
  1039.     if not parent then return end
  1040.     if typ == "landsernigger2" then
  1041.         local label = vgui.Create("DLabel", parent)
  1042.         label:SetText(name)
  1043.         label:SetPos(5,(55+(id*25)))
  1044.         label:SizeToContents(false)
  1045.         local button = vgui.Create("DButton", parent)
  1046.         if defcon.Settings[setting] == true then
  1047.             button:SetText("dupe")
  1048.         else
  1049.             button:SetText("dupe")
  1050.         end
  1051.         button:SetSize(80,20)
  1052.         if not id then
  1053.             button:SetPos(285,45)
  1054.         else
  1055.             button:SetPos(285,(55+(id*25)))
  1056.         end
  1057.         button.DoClick = function()
  1058.             if button:GetText() == "enabled" then
  1059.                 button:SetText("dupe"); defcon.Update("setting", setting, false, true); RunConsoleCommand "dupeinradius"
  1060.             else
  1061.                 button:SetText("dupe"); defcon.Update("setting", setting, true, true); RunConsoleCommand "dupeinradius"
  1062.             end
  1063.         end
  1064.         button:SetTextColor(color_white)
  1065.         button.Paint = function(self)
  1066.             surface.SetDrawColor(100,100,100,220)
  1067.             surface.DrawRect(0, 0,self:GetSize())
  1068.             surface.SetDrawColor(0,0,0,0)
  1069.             surface.DrawOutlinedRect(0,0,self:GetSize())
  1070.     end
  1071. end
  1072. end
  1073.  
  1074. --menu assthetic
  1075.  
  1076. local function AddButton(parent, text, posx, posy, func)
  1077.     local button = vgui.Create("DButton", parent)
  1078.     button:SetText(text)
  1079.     button:SetSize(80,20)
  1080.     button:SetPos(posx,posy)
  1081.     button:SetTextColor(color_white)
  1082.     button.DoClick = func or function() end
  1083.     button.Paint = function(self)
  1084.         surface.SetDrawColor(100,100,100,220)
  1085.         surface.DrawRect(0, 0,self:GetSize())
  1086.         surface.SetDrawColor(163,163,163,0)
  1087.         surface.DrawOutlinedRect(0,0,self:GetSize())
  1088.     end
  1089.     return button
  1090. end
  1091.  
  1092. local function DrawMenu()
  1093.     if(menu.frame) then menu.frame:Remove(); menu.frame = nil; end
  1094.    
  1095.     menu.c = 0
  1096.    
  1097.     menu.frame = vgui.Create("DFrame");
  1098.     menu.frame:SetPos(ScrW()/2-184, ScrH()/2-155);
  1099.     menu.frame:SetSize(500, 435);
  1100.     menu.frame:SetTitle("Shitcheat 4.1: BIG FUCK EDITION :: "..defcon.Phrases[math.random(1, table.Count(defcon.Phrases))]);
  1101.     menu.frame.Paint = function()
  1102.         surface.SetDrawColor(50,50,50,200)
  1103.         surface.DrawRect(0, 0,menu.frame:GetWide(),menu.frame:GetTall())
  1104.         surface.SetDrawColor(163,163,0,0)
  1105.         surface.DrawOutlinedRect(0,0,menu.frame:GetWide(),menu.frame:GetTall())
  1106.     end
  1107.     menu.frame:SetVisible(true);
  1108.     menu.frame:SetDraggable(true);
  1109.     menu.frame:SetSizable(false);
  1110.     menu.frame:ShowCloseButton(false);
  1111.     menu.frame:SetBackgroundBlur(true)
  1112.     menu.frame:MakePopup();
  1113.    
  1114.     menu.close = vgui.Create("DButton", menu.frame)
  1115.     menu.close:SetFont('marlett')
  1116.     menu.close:SetText('r')
  1117.     menu.close:SetColor(Color(255, 255, 255))
  1118.     menu.close:SetSize(15, 15)
  1119.     menu.close:SetDrawBackground(false)
  1120.     menu.close:SetPos(menu.frame:GetWide() - 20, 5)
  1121.     menu.close.DoClick = function()
  1122.         menu.frame:Remove(); menu.frame = nil;
  1123.     end
  1124.  
  1125.     menu.buttons = vgui.Create("DPanel",menu.frame)
  1126.     menu.buttons:SetPos(5, 25)
  1127.     menu.buttons:SetSize(111,406)
  1128.     menu.buttons:SetVisible(true)
  1129.     menu.buttons.Paint = function()
  1130.         surface.SetDrawColor(163,163,163,255)
  1131.         surface.DrawOutlinedRect(0,0,110,405)
  1132.     end
  1133.  
  1134.     menu.t.def = vgui.Create("DPanel", menu.frame);
  1135.     menu.t.def:SetPos(120,25);
  1136.     menu.t.def:SetSize(376,406);
  1137.     if menu.Current ~= nil then menu.t.def:SetVisible(false) end
  1138.     menu.t.def.Paint = function()
  1139.         surface.SetDrawColor( 163, 163, 163, 255 )
  1140.         surface.DrawOutlinedRect( 0, 0, menu.t.def:GetWide() - 1, menu.t.def:GetTall() - 1)
  1141.     end
  1142.    
  1143.     menu.t.a, menu.b.a      = AddTab("Aimbot",      true)
  1144.     menu.t.p, menu.b.p      = AddTab("Player ESP",  true)
  1145.     menu.t.e, menu.b.e      = AddTab("Entity ESP",  true)
  1146.     menu.t.m, menu.b.m      = AddTab("Misc.",       true)
  1147.     menu.t.f, menu.b.f      = AddTab("Freecam", true)
  1148.     --id, parent  , the type, the text , setting
  1149.     AddFeature(1, menu.t.a, "button", "Enabled (broken after july 2017 update)", "aimbot")
  1150.     AddFeature(2, menu.t.a, "button", "Triggerbot", "triggerbot")
  1151.     AddFeature(3, menu.t.a, "button", "Friendly Fire", "aimbot_friendly_fire")
  1152.     AddFeature(4, menu.t.a, "slider", "FOV", "aimbot_fov", 0, 180)
  1153.     AddFeature(6, menu.t.a, "label2", "The aimbot key is F by default                                                                                                                 ")
  1154.    
  1155.     AddFeature(1, menu.t.p, "button", "Enabled", "esp_player")
  1156.     AddFeature(2, menu.t.p, "button", "Show Name", "esp_player_name")
  1157.     AddFeature(3, menu.t.p, "button", "Show Rank", "esp_player_rank")
  1158.     AddFeature(4, menu.t.p, "button", "Show Health", "esp_player_health")
  1159.     AddFeature(5, menu.t.p, "button", "Show Armor", "esp_player_armor")
  1160.     AddFeature(6, menu.t.p, "button", "Show Distance", "esp_player_showdist")
  1161.     AddFeature(7, menu.t.p, "slider", "Draw Distance", "esp_player_dist", 0, 16000)
  1162.     AddFeature(8, menu.t.p, "button", "Draw Glow Halo", "esp_player_glow")
  1163.     AddFeature(9, menu.t.p, "button", "Laser Eyes", "lasereyes")
  1164.     AddFeature(10,menu.t.p, "landsernigger3", "Draw Hitboxes", "defcon.boxESP")
  1165.     AddFeature(11,menu.t.p, "landsernigger6", "Player Chams", "defcon.chams")
  1166.    
  1167.     AddFeature(1, menu.t.e, "button", "Entity Finder", "esp_entity")
  1168.     AddFeature(2, menu.t.e, "slider", "Draw Distance", "esp_entity_dist", 0, 16000)
  1169.     AddFeature(3, menu.t.e, "landsernigger4", "Physics Prop chams" , "defcon.propchams")
  1170.    
  1171.     AddFeature(1, menu.t.m, "button", "Flashlight Spam [hold leftarrow]", "flashlight_spam")
  1172.     AddFeature(2, menu.t.m, "button", "Bunny hopping [hold space]", "bhop_bhop")
  1173.     AddFeature(3, menu.t.m, "button", "Client side crosshair", "crosshair")
  1174.     AddFeature(4, menu.t.m, "button", "Big velocity meter", "velocity")
  1175.     AddFeature(5, menu.t.m, "button", "Chat spammer 1 [random messages, no vc]", "chatspam1")
  1176.     AddFeature(6, menu.t.m, "button", "Chat spammer 2 [hl2rp vc messages]", "chatspam2")
  1177.     AddFeature(7, menu.t.m, "label3", "You can bind the two scripts under this message to any key                                               ")
  1178.     AddFeature(8, menu.t.m, "label3", "Just type 'bind commandname key', e.g. 'bind +jump m'                                               ")
  1179.     AddFeature(9, menu.t.m, "landsernigger", "Pick up items in radius [Clockwork schemas only]","pickupinradius")
  1180.     AddFeature(10, menu.t.m, "label2", "Console coammand: pickupinradius                                               ")
  1181.     AddFeature(11, menu.t.m, "landsernigger2", "Duplicate items in radius [Clockwork schemas only]", "dupeinradius")
  1182.     AddFeature(12, menu.t.m, "label2", "Console command: dupeinradius                                               ")
  1183.  
  1184.     AddFeature(1, menu.t.f, "canser", "New Freecam", "cl_noclip")
  1185.     AddFeature(2, menu.t.f, "button", "Ghettocam (depricated)", "freecam_side")
  1186.  
  1187.     AddFeature(11, menu.t.f, "label", "NOTICE: entities may not appear when using freecam                                                     ")
  1188.    
  1189.     if string.find(gmod.GetGamemode().Name, "DarkRP") then
  1190.         AddFeature(1, menu.t.g, "button", "God-mode Exploit (Costs in-game $$$)", "darkrp_god")
  1191.     elseif string.find(gmod.GetGamemode().Name, "Trouble in Terrorist Town") then
  1192.         AddFeature(1, menu.t.g, "button", "Display Death Notifications", "ttt_deathnotifs")
  1193.     end
  1194.     local elist
  1195.     local elist2
  1196.     local elistc
  1197.     local elistc2
  1198.     local function makeelist()
  1199.         elist = vgui.Create("DComboBox", menu.t.e)
  1200.         elist:SetPos(10,menu.t.e:GetTall()-43)
  1201.         elist:SetSize(130,20)
  1202.         for k,v in pairs(defcon.Ents()) do
  1203.             if not(defcon.Entities[v]) then
  1204.                 local i = elist:AddChoice(v)
  1205.             end
  1206.         end
  1207.         elist.OnSelect = function(index,value,data)
  1208.             print(data)
  1209.             elist2 = data
  1210.         end
  1211.     end
  1212.     local function makeelistc()
  1213.         elistc = vgui.Create("DComboBox", menu.t.e)
  1214.         elistc:SetPos(235, menu.t.e:GetTall()-43)
  1215.         elistc:SetSize(130,20)
  1216.         for k,v in pairs(defcon.Entities) do
  1217.             local i = elistc:AddChoice(v)
  1218.         end
  1219.         elistc.OnSelect = function(index,value,data)
  1220.             elistc2 = data
  1221.         end
  1222.     end
  1223.     makeelist()
  1224.     makeelistc()
  1225.     AddButton(menu.t.e, "Add Entity", 35, menu.t.e:GetTall()-23, function()
  1226.         if(elist2) then
  1227.             for k,v in pairs(defcon.Ents()) do
  1228.                 if (v == elist2) then
  1229.                     print(v)
  1230.                     table.insert(defcon.Entities, v)
  1231.                     defcon.Update("entity")
  1232.                 end
  1233.             end
  1234.         end
  1235.         makeelist()
  1236.         makeelistc()
  1237.     end)
  1238.     AddButton(menu.t.e, "Remove Entity", 260, menu.t.e:GetTall()-23, function()
  1239.         if(elistc2) then
  1240.             for k,v in pairs(defcon.Entities) do
  1241.                 if (v == elistc2) then
  1242.                     defcon.Entities[k] = nil;
  1243.                     defcon.Update("entity")
  1244.                 end
  1245.             end
  1246.         end
  1247.         makeelist()
  1248.         makeelistc()
  1249.     end)
  1250.     local flist
  1251.     local flist2
  1252.     local flistc
  1253.     local flistc2
  1254.     local function makeflist()
  1255.         flist = vgui.Create("DComboBox", menu.t.a)
  1256.         flist:SetPos(10,menu.t.a:GetTall()-43)
  1257.         flist:SetSize(130,20)
  1258.         for k,v in pairs(player.GetAll()) do
  1259.             if v ~= LocalPlayer() then
  1260.                 if not(defcon.Whitelist[v:SteamID()]) then
  1261.                     local i = flist:AddChoice(v:Nick())
  1262.                 end
  1263.             end
  1264.         end
  1265.         flist.OnSelect = function(index,value,data)
  1266.             print(data)
  1267.             elist2 = data
  1268.         end
  1269.     end
  1270.     local function makeflistc()
  1271.         flistc = vgui.Create("DComboBox", menu.t.a)
  1272.         flistc:SetPos(235, menu.t.a:GetTall()-43)
  1273.         flistc:SetSize(130,20)
  1274.         for k,v in pairs(player.GetAll()) do
  1275.             if v ~= LocalPlayer() then
  1276.                 if defcon.Whitelist[v:SteamID()] then
  1277.                     local i = flistc:AddChoice(v:Nick())
  1278.                 end
  1279.             end
  1280.         end
  1281.         flistc.OnSelect = function(index,value,data)
  1282.             flistc2 = data
  1283.         end
  1284.     end
  1285.     makeflist()
  1286.     makeflistc()
  1287.     AddButton(menu.t.a, "Add Friend", 35, menu.t.a:GetTall()-23, function()
  1288.         if(flist2) then
  1289.             for k,v in pairs(player.GetAll()) do
  1290.                 if (v:Nick() == flist2) then
  1291.                     print(v:Nick())
  1292.                     table.insert(defcon.Whitelist, v:SteamID())
  1293.                     PrintTable(defcon.Whitelist)
  1294.                     defcon.Update("friend")
  1295.                 end
  1296.             end
  1297.         end
  1298.         makeflist()
  1299.         makeflistc()
  1300.     end)
  1301.     AddButton(menu.t.a, "Remove Friend", 260, menu.t.a:GetTall()-23, function()
  1302.         if(flistc2) then
  1303.             for k,v in pairs(defcon.Whitelist) do
  1304.                 if (v:SteamID() == flistc2) then
  1305.                     defcon.Whitelist[k] = nil;
  1306.                     defcon.Update("friend")
  1307.                 end
  1308.             end
  1309.         end
  1310.         makeflist()
  1311.         makeflistc()
  1312.     end)
  1313. end
  1314.  
  1315. --clientside noclip
  1316.  
  1317. local SH = {}
  1318.  
  1319. SH.Enabled = false
  1320. SH.ViewOrigin = Vector( 0, 0, 0 )
  1321. SH.ViewAngle = Angle( 0, 0, 0 )
  1322. SH.Velocity = Vector( 0, 0, 0 )
  1323. --[[
  1324. hook.Add("CalcView", "", function(p, o, a, f)
  1325.     return({
  1326.         angles = GetAngle(fa),
  1327.         origin = (defcon.Settings["freecam_side"] && o + am.Forward(fa) * -353 || o),
  1328.         fov = f,
  1329.     });
  1330. end);
  1331. --]]
  1332.  
  1333. function SH.CalcView( ply, origin, angles, fov, p, o, a, f )
  1334.     if ( !SH.Enabled ) then return end
  1335.     if ( SH.SetView ) then
  1336.         SH.ViewOrigin = origin
  1337.         SH.ViewAngle = angles
  1338.        
  1339.         SH.SetView = false
  1340.     end
  1341.     return { origin = SH.ViewOrigin, angles = SH.ViewAngle }
  1342. end
  1343. hook.Add( "CalcView", "niggerwalk", SH.CalcView )
  1344.  
  1345. function SH.CreateMove( cmd, ply, origin, angles, fov, p, o, a, f )
  1346.     if ( !SH.Enabled ) then return end
  1347.    
  1348.     local time = FrameTime()
  1349.     SH.ViewOrigin = SH.ViewOrigin + ( SH.Velocity * time)
  1350.     SH.Velocity = SH.Velocity * 0.95
  1351.    
  1352.     local sensitivity = 0.022
  1353.     SH.ViewAngle.p = math.Clamp( SH.ViewAngle.p + ( cmd:GetMouseY() * sensitivity ), -89, 89 )
  1354.     SH.ViewAngle.y = SH.ViewAngle.y + ( cmd:GetMouseX() * -1 * sensitivity )
  1355.    
  1356.     local nig = Vector( 0, 0, 0 )
  1357.     local add = Vector( 0, 0, 0 )
  1358.     local ang = SH.ViewAngle
  1359.     if ( cmd:KeyDown( IN_FORWARD ) ) then add = add + ang:Forward() end
  1360.     if ( cmd:KeyDown( IN_BACK ) ) then add = add - ang:Forward() end
  1361.     if ( cmd:KeyDown( IN_MOVERIGHT ) ) then add = add + ang:Right() end
  1362.     if ( cmd:KeyDown( IN_MOVELEFT ) ) then add = add - ang:Right() end
  1363.     if ( cmd:KeyDown( IN_JUMP ) ) then add = add + ang:Up() end
  1364.     if ( cmd:KeyDown( IN_DUCK ) ) then add = add - ang:Up() end
  1365.    
  1366.     add = add:GetNormal() * time * 500
  1367.     if ( cmd:KeyDown( IN_SPEED ) ) then add = add * 2 end
  1368.    
  1369.     SH.Velocity = SH.Velocity + add
  1370.    
  1371.     if ( SH.LockView == true ) then
  1372.         SH.LockView = cmd:GetViewAngles()
  1373.     end
  1374.     if ( SH.LockView ) then
  1375.         cmd:SetViewAngles( SH.LockView )
  1376.     end
  1377.    
  1378.     cmd:SetForwardMove( 0 )
  1379.     cmd:SetSideMove( 0 )
  1380.     cmd:SetUpMove( 0 )
  1381. end
  1382. hook.Add( "CreateMove", "niggerwalk", SH.CreateMove )
  1383.  
  1384. function SH.Toggle()
  1385.     SH.Enabled = !SH.Enabled
  1386.     SH.LockView = SH.Enabled
  1387.     SH.SetView = true
  1388.    
  1389.     local status = { [ true ] = "enabled", [ false ] = "disabled" }
  1390.     print( "freecam " .. status[ SH.Enabled ] )
  1391. end
  1392. concommand.Add( "SH_toggle", SH.Toggle )
  1393.  
  1394. concommand.Add( "SH_pos", function() print( SH.ViewOrigin ) end )
  1395.  
  1396. --defunct freecam
  1397.  
  1398. hook.Add( "ShouldDrawLocalPlayer", "ThirdPersonDrawPlayer", function()
  1399.  
  1400.     if defcon.Settings["freecam_below"] or defcon.Settings["freecam_below2"] or defcon.Settings["freecam_below3"] or defcon.Settings["freecam_above"] or defcon.Settings["freecam_above2"] or defcon.Settings["freecam_above3"] or defcon.Settings["freecam_side"] or defcon.Settings["freecam_side2"] or defcon.Settings["freecam_side3"] then
  1401.  
  1402.         return true
  1403.  
  1404.     end
  1405.  
  1406. end )
  1407. hook.Add( "CalcView", "ThirdPersonView", "", function( ply, pos, angles, fov, p, o, a, f )
  1408.     if defcon.Settings["freecam_below"] then
  1409.         local view = {}
  1410.         view.origin = pos - ( angles:Forward() * -200 ) + ( angles:Right() * 0 ) + ( angles:Up() * -150 )
  1411.         view.angles = ply:EyeAngles() + Angle( 0, 180, 0 )
  1412.         view.fov = fov
  1413.         return GAMEMODE:CalcView( ply, view.origin, view.angles, view.fov )
  1414.     end
  1415.     if defcon.Settings["freecam_below2"] then
  1416.         local view = {}
  1417.         view.origin = pos - ( angles:Forward() * 200 ) + ( angles:Right() * 0 ) + ( angles:Up() * -150 )
  1418.         view.angles = ply:EyeAngles() + Angle( 0, 0, 0 )
  1419.         view.fov = fov
  1420.         return GAMEMODE:CalcView( ply, view.origin, view.angles, view.fov )
  1421.     end
  1422.         if defcon.Settings["freecam_below3"] then
  1423.         local view = {}
  1424.         view.origin = pos - ( angles:Forward() * 200 ) + ( angles:Right() * 0 ) + ( angles:Up() * -650 )
  1425.         view.angles = ply:EyeAngles() + Angle( 0, 0, 0 )
  1426.         view.fov = fov
  1427.         return GAMEMODE:CalcView( ply, view.origin, view.angles, view.fov )
  1428.     end
  1429.         if defcon.Settings["freecam_above"] then
  1430.         local view = {}
  1431.         view.origin = pos - ( angles:Forward() * 200 ) + ( angles:Right() * 0 ) + ( angles:Up() * 150 )
  1432.         view.angles = ply:EyeAngles() + Angle( 0, 0, 0 )
  1433.         view.fov = fov
  1434.         return GAMEMODE:CalcView( ply, view.origin, view.angles, view.fov )
  1435.     end
  1436.         if defcon.Settings["freecam_above2"] then
  1437.         local view = {}
  1438.         view.origin = pos - ( angles:Forward() * -200 ) + ( angles:Right() * 0 ) + ( angles:Up() * 150 )
  1439.         view.angles = ply:EyeAngles() + Angle( 0, 180, 0 )
  1440.         view.fov = fov
  1441.         return GAMEMODE:CalcView( ply, view.origin, view.angles, view.fov )
  1442.     end
  1443.         if defcon.Settings["freecam_above3"] then
  1444.         local view = {}
  1445.         view.origin = pos - ( angles:Forward() * 200 ) + ( angles:Right() * 0 ) + ( angles:Up() * 650 )
  1446.         view.angles = ply:EyeAngles() + Angle( 0, 0, 0 )
  1447.         view.fov = fov
  1448.         return GAMEMODE:CalcView( ply, view.origin, view.angles, view.fov )
  1449.     end
  1450.         if defcon.Settings["freecam_side"] then
  1451.         local view = {}
  1452.         view.origin = pos - ( angles:Forward() * 150 ) + ( angles:Right() * 150 ) + ( angles:Up() * 0 )
  1453.         view.angles = ply:EyeAngles() + Angle( 0, 0, 0 )
  1454.         view.fov = fov
  1455.         return GAMEMODE:CalcView( ply, view.origin, view.angles, view.fov )
  1456.     end
  1457.         if defcon.Settings["freecam_side2"] then
  1458.         local view = {}
  1459.         view.origin = pos - ( angles:Forward() * -150 ) + ( angles:Right() * 150 ) + ( angles:Up() * 0 )
  1460.         view.angles = ply:EyeAngles() + Angle( 0, 180, 0 )
  1461.         view.fov = fov
  1462.         return GAMEMODE:CalcView( ply, view.origin, view.angles, view.fov )
  1463.     end
  1464.             if defcon.Settings["freecam_side3"] then
  1465.         local view = {}
  1466.         view.origin = pos - ( angles:Forward() * 150 ) + ( angles:Right() * 650 ) + ( angles:Up() * 0 )
  1467.         view.angles = ply:EyeAngles() + Angle( 0, 0, 0 )
  1468.         view.fov = fov
  1469.         return GAMEMODE:CalcView( ply, view.origin, view.angles, view.fov )
  1470.     end
  1471.     end)
  1472.    
  1473. --esp
  1474.  
  1475. hook.Add("HUDPaint", "catHUD", function()
  1476.     if defcon.Settings["esp_player"] or defcon.Settings["esp_entity"] then
  1477.         for k,v in pairs(ents.GetAll()) do
  1478.             if defcon.Settings["esp_player"] && v:IsPlayer() then
  1479.                 if(espcheck("player", v) and espdistance("player", v))then
  1480.                     local ESP = (v:EyePos()):ToScreen()
  1481.                     local name,health,rank,col,distance = "","","","",""
  1482.                     local outcol = Color(0,0,0,255)
  1483.                     local white = Color(255,255,255,255)
  1484.                     local outcol2 = outcol
  1485.                     if defcon.Settings["esp_player_name"] then
  1486.                         if v.GetRPName then name = v:GetRPName()
  1487.                         else name = v:Nick() end
  1488.                     end
  1489.                     if v:Nick() ~= name then rank = " "..v:Nick() end
  1490.                     if v.SteamName and name ~= v:SteamName() then rank = " "..v:SteamName() end
  1491.                     if defcon.Settings["esp_player_rank"] then
  1492.                         if v:IsSuperAdmin() then
  1493.                             rank = "[Super Admin]"..rank
  1494.                         elseif v:IsAdmin() then
  1495.                             rank = "[Admin]"..rank
  1496.                         elseif v:IsUserGroup("moderator") or v:IsUserGroup("mod") then
  1497.                             rank = "[Moderator]"..rank
  1498.                         elseif v:IsUserGroup("vip") or v:IsUserGroup("donator") then
  1499.                             rank = "[Donator]"..rank
  1500.                         end
  1501.                     end
  1502.                     if defcon.Settings["esp_player_health"] and not(defcon.Settings["esp_player_armor"]) then
  1503.                         health = v:Health().."H"
  1504.                     elseif defcon.Settings["esp_player_armor"] and not(defcon.Settings["esp_player_health"]) then
  1505.                         health = v:Armor().."A"
  1506.                     elseif defcon.Settings["esp_player_armor"] and defcon.Settings["esp_player_health"] then
  1507.                         health = v:Health().. "H - "..v:Armor().."A"
  1508.                     end
  1509.                     if defcon.Settings["esp_player_showdist"] then
  1510.                         distance = v:GetPos():Distance(LocalPlayer():GetPos())
  1511.                         distance = math.Round(distance).." m"
  1512.                     end
  1513.                     col = team.GetColor(v:Team())
  1514.                     if(col.r <= 50 and col.g <= 50 and col.b <= 50) then
  1515.                         outcol2 = Color(200,200,200,255)
  1516.                     end
  1517.                     if col.a <= 50 then
  1518.                         col = Color(col.r,col.g,col.b, 255)
  1519.                     end
  1520.                     draw.SimpleTextOutlined(rank, "deffontesp2", ESP.x, ESP.y -46, col, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, 1, outcol2)
  1521.                     draw.SimpleTextOutlined(name, "deffontesp1", ESP.x, ESP.y - 34, col, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, 1, outcol2)
  1522.                     if health ~= "" then
  1523.                         draw.SimpleTextOutlined(health, "deffontesp2", ESP.x, ESP.y -22, white, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, 1, outcol)
  1524.                         draw.SimpleTextOutlined(distance, "deffontesp2", ESP.x, ESP.y - 10, white, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, 1, outcol)
  1525.                     else
  1526.                         draw.SimpleTextOutlined(distance, "deffontesp2", ESP.x, ESP.y - 22, white, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, 1, outcol)
  1527.                     end
  1528.                     if defcon.Settings["esp_player_glow"] then
  1529.                         halo.Add({v}, col, 2, 2, 1, true, true)
  1530.                     end
  1531.                 end
  1532.             end
  1533.             if (defcon.Settings["esp_entity"] and espcheck("entity", v) and espdistance("entity", v))then
  1534.                 if table.HasValue(defcon.Entities, v:GetClass()) then
  1535.                     local ESP = (v:EyePos()):ToScreen()
  1536.                     draw.SimpleTextOutlined(v:GetClass(), "deffontesp1", ESP.x, ESP.y - 46, Color(255,0,0,255), TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, 1, Color(0,0,0,255))
  1537.                 end
  1538.             end
  1539.         end
  1540.     end
  1541. end)
  1542.  
  1543. --aimboat
  1544.  
  1545. hook.Add("Think", "catBOT", function()
  1546.     if(input.IsKeyDown(KEY_TAB) && input.IsKeyDown(KEY_Q) && !menu.frame)then
  1547.         DrawMenu()
  1548.     elseif(menu.frame && input.IsKeyDown(KEY_ESCAPE))then
  1549.         menu.frame:Remove();menu.frame = nil
  1550.     end
  1551.     if defcon.Settings["flashlight_spam"] and input.IsKeyDown(KEY_LEFT) then
  1552.         RunConsoleCommand("impulse", "100")
  1553.     end
  1554.     if(defcon.Settings["triggerbot"] && input.IsMouseDown(MOUSE_MIDDLE)) then
  1555.         local pos = LocalPlayer():GetShootPos()
  1556.         local ang = LocalPlayer():GetAimVector()
  1557.         local tracedata = {}
  1558.         tracedata.start = pos
  1559.         tracedata.endpos = pos+(ang*9999999999999)
  1560.         local trace = util.TraceLine(tracedata)
  1561.         if(trace.HitNonWorld) then
  1562.             target = trace.Entity
  1563.             if(target:IsPlayer() and defcon.CanTarget(target)) then
  1564.                 RunConsoleCommand("+attack")
  1565.                 timer.Simple(0.000000000000000000001, function() RunConsoleCommand("-attack") end)
  1566.             end
  1567.         end
  1568.     end
  1569.     if(defcon.Settings["aimbot"] && /*input.IsKeyDown(defcon.AimKey)*/ input.IsKeyDown(KEY_F)) then
  1570.         for k,v in pairs(player.GetAll()) do
  1571.             if defcon.CanTarget(v) then
  1572.                 local head = v:LookupBone("ValveBiped.Bip01_Head1")
  1573.                 if head ~= nil then
  1574.                     local fov = defcon.Settings["aimbot_fov"]
  1575.                     if fov == 0 then
  1576.                         local headpos,targetheadang = v:GetBonePosition(head)
  1577.                         LocalPlayer():SetEyeAngles((headpos - LocalPlayer():GetShootPos()):Angle())
  1578.                     else
  1579.                         local lpang = LocalPlayer():GetAngles();
  1580.                         local ang = (v:GetPos() - LocalPlayer():GetPos()):Angle();
  1581.                         local ady = math.abs(math.NormalizeAngle(lpang.y - ang.y))
  1582.                         local adp = math.abs(math.NormalizeAngle(lpang.p - ang.p ))
  1583.                         if not(ady > fov or adp > fov) then
  1584.                             local headpos,targetheadang = v:GetBonePosition(head)
  1585.                             if headpos != nil and targetheadang != nil then
  1586.                                 LocalPlayer():SetEyeAngles((headpos - LocalPlayer():GetShootPos()):Angle())
  1587.                             end
  1588.                         end
  1589.                     end
  1590.                 end
  1591.             end
  1592.         end
  1593.     end
  1594.     if defcon.Settings["ttt_deathnotifs"] then
  1595.         for k,v in pairs(player.GetAll()) do
  1596.             if v:Alive() and not (defcon.Alive[v:UniqueID()] == true) then
  1597.                 defcon.Alive[v:UniqueID()] = true
  1598.             elseif not v:Alive() and (defcon.Alive[v:UniqueID()] == true) then
  1599.                 defcon.Alive[v:UniqueID()] = false
  1600.                 notification.AddLegacy(v:Nick().. (" "..defcon.Phrases2[math.random(1, table.Count(defcon.Phrases2))]), NOTIFY_GENERIC, 5)
  1601.             end
  1602.         end
  1603.     end
  1604. end)
  1605.  
  1606. --bhop
  1607.  
  1608. hook.Add( "CreateMove", "Billard_Bhop", function( ucmd )
  1609.     if defcon.Settings["bhop_bhop"] then
  1610.         if ucmd:KeyDown( IN_JUMP ) then
  1611.             if LocalPlayer():WaterLevel() <= 1 && LocalPlayer():GetMoveType() != MOVETYPE_LADDER && !LocalPlayer():IsOnGround() then
  1612.                     ucmd:RemoveKey( IN_JUMP )
  1613.             end
  1614.         end
  1615.     end
  1616. end )
  1617.  
  1618. --velocity meter
  1619.  
  1620. hook.Add("HUDPaint", "Velocity", function()
  1621.     for k,v in pairs(player.GetAll()) do
  1622.         if defcon.Settings ["velocity"] then
  1623.             local showvel = math.floor(LocalPlayer():GetVelocity():Length())
  1624.                 draw.RoundedBox(1, ScrW()/2.5, ScrH()/1.07, ScrW()/4.21, ScrH()/26, Color(50, 50, 50, 150))
  1625.                 draw.DrawText("velocity: "..showvel, "velmet", ScrW()/2.5, ScrH()/1.08, Color(255, 255, 255, 185))
  1626.                 end
  1627.             end
  1628.     end)
  1629.    
  1630. --crosshair
  1631.  
  1632. hook.Add( "HUDPaint", "CrossHair", function ( ucmd )
  1633.     if defcon.Settings["crosshair"] then
  1634.         local h = ScrH() / 2
  1635.         local w = ScrW() / 2
  1636.         local h1 = ScrH() / 2
  1637.         local w1 = ScrW() / 2
  1638.        
  1639.         surface.SetDrawColor( 0, 255, 255 )
  1640.         surface.DrawLine( w + 10, h, w - 10, h )
  1641.         surface.DrawLine( w, h + 10, w, h - 10 )
  1642.     end
  1643.        
  1644. end)
  1645.  
  1646. --physics prop ESP
  1647.  
  1648. local propchams = CreateMaterial("propchams","VertexLitGeneric",{
  1649.         ["$basetexture"] = "models/debug/debugwhite",
  1650.         ["$model"] = 1,
  1651.         ["$translucent"] = 1,
  1652.         ["$alpha"] = 1,
  1653.         ["$nocull"] = 1,
  1654.         ["$ignorez"] = 1
  1655. }
  1656. )
  1657.  
  1658. hook.Add( "HUDPaint", "PropESP", function()
  1659.     for k,v in pairs ( ents.FindByClass( "prop_physics" ) ) do
  1660.         if GetConVarNumber("defcon.propchams") == 1 then
  1661.             cam.Start3D(EyePos(), EyeAngles())
  1662.                 if v:IsValid() then
  1663.                     render.SuppressEngineLighting( false )
  1664.                     render.MaterialOverride( propchams )
  1665.                     render.SetBlend(0.2)
  1666.                     render.SetColorModulation( 0, 255, 0)
  1667.                     v:DrawModel()
  1668.             cam.End3D()
  1669.             end
  1670.         end
  1671.     end
  1672. end)
  1673.  
  1674. -- player chams
  1675.  
  1676. hook.Add( "HUDPaint", "ESPChams", function()
  1677.  
  1678.     for k,v in pairs ( player.GetAll() ) do
  1679.     if GetConVarNumber("defcon.chams") == 1 then
  1680.        
  1681.         if SafeCheck(v) == true then
  1682.        
  1683.             local ply = LocalPlayer()
  1684.            
  1685.             cam.Start3D(EyePos(), EyeAngles())
  1686.                      render.MaterialOverride( propchams )
  1687.                      render.SuppressEngineLighting( false )
  1688.                      render.SetBlend( 1 )
  1689.                      render.SetColorModulation( 0, 255, 255 )
  1690.                     v:DrawModel();
  1691.                     -- This bit is for weapons. --
  1692.                      render.MaterialOverride( propchams )
  1693.                      render.SuppressEngineLighting( false )
  1694.                      render.SetBlend( 1 )
  1695.                      render.SetColorModulation( 255, 0, 0 )
  1696.                     v:GetActiveWeapon():DrawModel()
  1697.                 cam.End3D()
  1698.         end
  1699.     end
  1700. end
  1701. end)
  1702.  
  1703. --box ESP
  1704.  
  1705. hook.Add("HUDPaint", "3DBoxESP", function()
  1706.     for k,v in pairs(player.GetAll()) do
  1707.         if GetConVarNumber("defcon.boxESP") == 1 then
  1708.             if SafeCheck(v) == true then
  1709.             local ply = LocalPlayer()
  1710.             local plyPos = v:GetPos()
  1711.             local head = v:OBBMaxs()
  1712.             local feet = v:OBBMins()
  1713.             local eye = v:EyeAngles()
  1714.                 cam.Start3D()
  1715.                     render.DrawWireframeBox( plyPos, Angle( 0, eye.y, 0), feet, head, team.GetColor(v:Team()) )
  1716.                      cam.End3D()
  1717.                   end
  1718.            end
  1719.     end
  1720. end)
  1721. --chat spam
  1722.  
  1723. local function Spam2()
  1724.     if defcon.Settings["chatspam1"] then
  1725.          LocalPlayer():ConCommand("say "..table.Random(normalspam).." " )
  1726.     end
  1727. end
  1728. timer.Create("Spammins2", .5,0,Spam2)
  1729.  
  1730. normalspam = {}
  1731. normalspam[1] = "mods = fags"
  1732. normalspam[2] = "I hate niggers"
  1733. normalspam[3] = "sheo was here"
  1734. normalspam[4] = "try finger but hole"
  1735. normalspam[5] = "time for crab"
  1736. normalspam[6] = "THIS SERVER IS GETTING FUCKING NULLED RN"
  1737. normalspam[7] = "whoever made this server is a fucking downie holy shit"
  1738. normalspam[8] = "this serv sucks, fuck you guys"
  1739. normalspam[9] = "im not hacking wtf?"
  1740. normalspam[10] = "Mega.co.nz is famous for it's shitposting on 4chan."
  1741. normalspam[11] = "How much memes could a cock suck if 9/11?"
  1742. normalspam[12] = "assrape"
  1743. normalspam[13] = "AHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH"
  1744. normalspam[14] = "Sweedish fish are like apples, they taste good as candy, not the actual thing."
  1745. normalspam[15] = "you what"
  1746. normalspam[16] = "I'll quote your head with a rock"
  1747. normalspam[17] = "fuck me harder daddy"
  1748. normalspam[18] = "dickrape is neat"
  1749. normalspam[19] = "Shitty memes from a shitty dream."
  1750. normalspam[20] = "sheogorath has aids"
  1751. normalspam[21] = "fuck niggers"
  1752. normalspam[22] = "♫im an alabama nigger and i wanna be free, to hell with the n double a-c-p♫"
  1753. normalspam[23] = "hey whats up guys it's scarce here"
  1754. normalspam[24] = "//this is a test of the emergency broadcast system"
  1755. normalspam[25] = "erp = b&"
  1756. normalspam[26] = "50 percent off all fat farts at the fag store"
  1757. normalspam[27] = "dennis the menace"
  1758. normalspam[28] = "that's how things came to be, and that can never change, that can never change, no way.  That's how things came to be and that can never change, except when things'll change some day."
  1759. normalspam[29] = "shoutout to poopnig420 for providing memes"
  1760. normalspam[30] = "shoutout to inboot for providing packets"
  1761. normalspam[31] = "geklmin is a grade-a autist."
  1762. normalspam[32] = "REMOVE KEBAB remove kebab"
  1763. normalspam[33] = "you are worst turk. you are the turk idiot you are the turk smell. return to croatioa. to our croatia cousins you may come our contry. you may live in the zoo….ahahahaha"
  1764. normalspam[34] = "hahahahaha idiot turk and bosnian smell so bad..wow i can smell it."
  1765. normalspam[35] = "you will get caught. russia+usa+croatia+slovak=kill bosnia…"
  1766. normalspam[36] = "you will ww2/ tupac alive in serbia, tupac making album of serbia . fast rap tupac serbia."
  1767. normalspam[37] = "2pac aliv and real strong wizard kill all the turk farm aminal with rap magic now we the serba rule ."
  1768. normalspam[38] = "ape of the zoo presidant georg bush fukc the great satan and lay egg this egg hatch and bosnia wa;s born."
  1769. normalspam[39] = "stupid baby form the eggn give bak our clay we will crush u lik a skull of pig. serbia greattst countrey"
  1770. normalspam[40] = "cetnik rascal FUck but fuck asshole turk stink bosnia sqhipere shqipare..turk genocide best day of my life."
  1771. normalspam[41] = "http://www.madbluntz.rs offical sponsor of the republika srpska - marijuana fanatics serbia"
  1772.  
  1773. local function Spam()
  1774.     if defcon.Settings["chatspam2"] then
  1775.          LocalPlayer():ConCommand("cwsay "..table.Random(hl2rpvcspam).." " )
  1776.     end
  1777. end
  1778. timer.Create("Spammins", .5,0,Spam)
  1779.  
  1780. hl2rpvcspam = {}
  1781. hl2rpvcspam[1] = "noooo"
  1782. hl2rpvcspam[2] = "whistle tune"
  1783. hl2rpvcspam[3] = "i could eat a horse"
  1784. hl2rpvcspam[4] = "combine"
  1785. hl2rpvcspam[5] = "zombies"
  1786. hl2rpvcspam[6] = "run"
  1787. hl2rpvcspam[7] = "over here"
  1788. hl2rpvcspam[8] = "hey over here"
  1789. hl2rpvcspam[9] = "run for your life"
  1790. hl2rpvcspam[10] = "hes dead"
  1791. hl2rpvcspam[11] = "woops"
  1792. hl2rpvcspam[12] = "hands on doctor breen"
  1793. hl2rpvcspam[13] = "dream about cheese"
  1794. hl2rpvcspam[14] = "dibs on the suit"
  1795.  
  1796. --laser eyes
  1797.  
  1798. hook.Add("PostDrawOpaqueRenderables", "lasereyes", function()
  1799.     if defcon.Settings["lasereyes"] then
  1800.     for k, v in pairs(player.GetAll())do
  1801.     if SafeCheck(v) == true then
  1802.         local pos, ang = v:GetShootPos();
  1803.         render.SetMaterial(Material("sprites/bluelaser1"));
  1804.         render.DrawBeam(pos, v:GetEyeTrace().HitPos, 5, 1, 1, team.GetColor(v:Team()));
  1805.     end
  1806.     end
  1807.     end
  1808. end)  
  1809.  
  1810. --shit shamelessly stolen from my pal rootie
  1811.  
  1812. function DupeInRadius()
  1813.         local ply = LocalPlayer()
  1814.             for k,v in pairs( ents.GetAll() ) do
  1815.                     local pos = v:GetPos()
  1816.                     if v:IsValid() and ply:GetPos():Distance(pos) <= 180 then
  1817.                             if v:GetClass() == "cw_item"  then
  1818.                                     for i=0,2,1 do
  1819.                                             Clockwork.datastream:Start("EntityMenuOption", {v, "cwItemTake", "cwItemTake"})
  1820.                                                                         end
  1821.                                                         elseif v:GetClass() == "cw_cash" then
  1822.                                                                 for i=0,2,1 do
  1823.                                             Clockwork.datastream:Start("EntityMenuOption", {v, "cwCashTake", "cwCashTake"})
  1824.                                     end
  1825.                             end
  1826.                     end
  1827.             end
  1828.     end
  1829.  
  1830.    concommand.Add( "dupeinradius", DupeInRadius )
  1831.  
  1832. function PickUpInRadius()
  1833.     local ply = LocalPlayer()
  1834.         for k,v in pairs( ents.GetAll() ) do
  1835.                 local pos = v:GetPos()
  1836.                 if v:IsValid() and ply:GetPos():Distance(pos) <= 2048 then
  1837.                         if v:GetClass() == "cw_item"  then
  1838.                                 Clockwork.datastream:Start("EntityMenuOption", {v, "cwItemTake", "cwItemTake"});
  1839.                         elseif v:GetClass() == "cw_cash" then
  1840.                                 Clockwork.datastream:Start("EntityMenuOption", {v, "cwCashTake", "cwCashTake"});
  1841.                         elseif v:GetClass() == "cw_shipment" then
  1842.                                 Clockwork.datastream:Start("EntityMenuOption", {v, "cwShipmentOpen", "cwShipmentOpen"});
  1843.                         elseif v:GetClass() == "prop_physics" then
  1844.                                 Clockwork.datastream:Start("EntityMenuOption", {v, "cwContainerOpen", "cwContainerOpen"});
  1845.                         elseif v:GetClass() == "prop_ragdoll" then
  1846.                                 Clockwork.datastream:Start("EntityMenuOption", {v, "cwContainerOpen", "cwContainerOpen"});
  1847.                          end
  1848.                 end
  1849.         end
  1850. end
  1851. concommand.Add( "pickupinradius", PickUpInRadius )
  1852.  
  1853. CreateClientConVar( "defcon.boxESP", 0, true, false)
  1854. CreateClientConVar( "defcon.propchams", 0, true, false)
  1855. CreateClientConVar( "defcon.radiochams", 0, true, false)
  1856. CreateClientConVar( "defcon.chams", 0, true, false)
  1857.  
  1858. --literal fucking copy of memeware
  1859.  
  1860. local type = type;
  1861. local next = next;
  1862.  
  1863. local function Copy(tt, lt)
  1864.     local copy = {}
  1865.     if lt then
  1866.         if type(tt) == "table" then
  1867.             for k,v in next, tt do
  1868.                 copy[k] = Copy(k, v)
  1869.             end
  1870.         else
  1871.             copy = lt
  1872.         end
  1873.         return copy
  1874.     end
  1875.     if type(tt) != "table" then
  1876.         copy = tt
  1877.     else
  1878.         for k,v in next, tt do
  1879.             copy[k] = Copy(k, v)
  1880.         end
  1881.     end
  1882.     return copy
  1883. end
  1884.  
  1885. local surface = Copy(surface);
  1886. local vgui = Copy(vgui);
  1887. local input = Copy(input);
  1888. local Color = Color;
  1889. local ScrW, ScrH = ScrW, ScrH;
  1890. local gui = Copy(gui);
  1891. local math = Copy(math);
  1892. local file = Copy(file);
  1893. local util = Copy(util);
  1894.  
  1895. surface.CreateFont("memeyou", {
  1896.     font = "Console",
  1897.     size = 13,
  1898.     weight = 700,
  1899.     shadow = false,
  1900.     antialias = false,
  1901. });
  1902.  
  1903. surface.CreateFont("memeyou2", {
  1904.     font = "Console",
  1905.     size = 13,
  1906.     weight = 700,
  1907.     shadow = false,
  1908.     antialias = false,
  1909. });
  1910.  
  1911. local options = {
  1912.     ["Ragebot"] = {
  1913.         {
  1914.             {"Aimbot", 20, 20, 350, 240, 120},
  1915.             {"Enabled", "Checkbox", false, 0},
  1916.             {"Silent", "Checkbox", false, 0},
  1917.             {"Autofire", "Checkbox", false, 0},
  1918.             {"Autosnap", "Checkbox", false, 0},
  1919.             {"Auto Pistol", "Checkbox", false, 0},
  1920.             {"Non-Sticky", "Checkbox", false, 0},
  1921.             {"Bullettime", "Checkbox", false, 0},
  1922.         },
  1923.         {
  1924.             {"Target", 20, 280, 350, 180, 120},
  1925.             {"Selection", "Selection", "Distance", {"Distance", "Health", "Nextshot"}, 150 },
  1926.             {"Bodyaim", "Checkbox", false, 0},
  1927.             {"Ignore Bots", "Checkbox", false, 0},
  1928.             {"Ignore Team", "Checkbox", false, 0},
  1929.             {"Ignore Friends", "Checkbox", false, 0},
  1930.             {"Snapline", "Checkbox", false, 0},
  1931.         },
  1932.         {
  1933.             {"Accuracy", 380, 20, 350, 190, 120},
  1934.             {"Anti Spread", "Checkbox", false, 0},
  1935.             {"Anti Recoil", "Checkbox", false, 0},
  1936.         },
  1937.         {
  1938.             {"Anti-Aim", 380, 230, 350, 230, 140},
  1939.             {"Enabled", "Checkbox", false, 0},
  1940.             {"X", "Selection", "Emotion", {"Up", "Down", "Jitter", "Emotion"}, 150},
  1941.             {"Y", "Selection", "Emotion", {"Forward", "Backwards", "Jitter", "TJitter", "Sideways", "Emotion", "Static", "Towards Players"}, 150},
  1942.             {"Max Y", "Slider", 50, 360, 150},
  1943.             {"Min Y", "Slider", 0, 360, 150},
  1944.             {"Emotion Randomcoin X", "Slider", 50, 100, 150},
  1945.             {"Emotion Randomcoin Y", "Slider", 20, 100, 150},
  1946.         },
  1947.     },
  1948.     ["Visuals"] = {
  1949.         {
  1950.             {"ESP", 20, 20, 350, 240, 220},
  1951.             {"Enabled", "Checkbox", false, 54},
  1952.             {"Box", "Checkbox", false, 54},
  1953.             {"Box Type", "Selection", "2D Box", {"2D Box", "3D Box"}, 68},
  1954.             {"Name", "Checkbox", false, 54},
  1955.             {"Health", "Checkbox", false, 54},
  1956.             {"Weapon", "Checkbox", false, 54},
  1957.             {"XQZ", "Checkbox", false, 54},
  1958.             {"Chams", "Checkbox", false, 54},
  1959.             {"Skeleton", "Checkbox", false, 54},
  1960.         },
  1961.         {
  1962.             {"Filter", 20, 280, 350, 180, 220},
  1963.             {"Enemies only", "Checkbox", false, 54},
  1964.             {"Distance", "Checkbox", false, 54},
  1965.             {"Max Distance", "Slider", 0, 10000, 68},
  1966.         },
  1967.         {
  1968.             {"Misc", 380, 20, 350, 190, 220},
  1969.             {"Thirdperson", "Checkbox", false, 54},
  1970.         },
  1971.     },
  1972.     ["Colors"] = {
  1973.         {
  1974.             {"Box - Team", 20, 20, 250, 175, 130},
  1975.             {"R", "Slider", 255, 255, 88},
  1976.             {"G", "Slider", 255, 255, 88},
  1977.             {"B", "Slider", 0, 255, 88},
  1978.         },
  1979.         {
  1980.             {"Box - Enemy", 20, 205, 250, 175, 130},
  1981.             {"R", "Slider", 180, 255, 88},
  1982.             {"G", "Slider", 120, 255, 88},
  1983.             {"B", "Slider", 0, 255, 88},
  1984.         },
  1985.         {
  1986.             {"Chams - Team", 290, 20, 250, 175, 130},
  1987.             {"Visible R", "Slider", 0, 255, 88},
  1988.             {"Visible G", "Slider", 255, 255, 88},
  1989.             {"Visible B", "Slider", 0, 255, 88},
  1990.             {"Not Visible R", "Slider", 0, 255, 88},
  1991.             {"Not Visible G", "Slider", 0, 255, 88},
  1992.             {"Not Visible B", "Slider", 255, 255, 88},
  1993.         },
  1994.        
  1995.         {
  1996.             {"Chams - Enemy", 290, 205, 250, 175, 130},
  1997.             {"Visible R", "Slider", 255, 255, 88},
  1998.             {"Visible G", "Slider", 0, 255, 88},
  1999.             {"Visible B", "Slider", 0, 255, 88},
  2000.             {"Not Visible R", "Slider", 180, 255, 88},
  2001.             {"Not Visible G", "Slider", 120, 255, 88},
  2002.             {"Not Visible B", "Slider", 0, 255, 88},
  2003.         },
  2004.     },
  2005. };
  2006.  
  2007. local order = {
  2008.     "Ragebot",
  2009.     "Visuals",
  2010.     "Colors",
  2011. };
  2012.  
  2013. local function updatevar( men, sub, lookup, new )
  2014.     for aa,aaa in next, options[men] do
  2015.         for key, val in next, aaa do
  2016.             if(aaa[1][1] != sub) then continue; end
  2017.             if(val[1] == lookup) then
  2018.                 val[3] = new;
  2019.             end
  2020.         end
  2021.     end
  2022. end
  2023.  
  2024. local function loadconfig()
  2025.     if(!file.Exists("secretbitch.txt", "DATA")) then return; end
  2026.     local tab = util.JSONToTable( file.Read("secretbitch.txt", "DATA") );
  2027.     local cursub;
  2028.     for k,v in next, tab do
  2029.         if(!options[k]) then continue; end
  2030.         for men, subtab in next, v do
  2031.             for key, val in next, subtab do
  2032.                 if(key == 1) then cursub = val[1]; continue; end
  2033.                 updatevar(k, cursub, val[1], val[3]);
  2034.             end
  2035.         end
  2036.     end
  2037. end
  2038.  
  2039. local function gBool(men, sub, lookup)
  2040.     if(!options[men]) then return; end
  2041.     for aa,aaa in next, options[men] do
  2042.         for key, val in next, aaa do
  2043.             if(aaa[1][1] != sub) then continue; end
  2044.             if(val[1] == lookup) then
  2045.                 return val[3];
  2046.             end
  2047.         end
  2048.     end
  2049. end
  2050.  
  2051. local function gOption(men, sub, lookup)
  2052.     if(!options[men]) then return ""; end
  2053.     for aa,aaa in next, options[men] do
  2054.         for key, val in next, aaa do
  2055.             if(aaa[1][1] != sub) then continue; end
  2056.             if(val[1] == lookup) then
  2057.                 return val[3];
  2058.             end
  2059.         end
  2060.     end
  2061.     return "";
  2062. end
  2063.  
  2064. local function gInt(men, sub, lookup)
  2065.     if(!options[men]) then return 0; end
  2066.     for aa,aaa in next, options[men] do
  2067.         for key, val in next, aaa do
  2068.             if(aaa[1][1] != sub) then continue; end
  2069.             if(val[1] == lookup) then
  2070.                 return val[3];
  2071.             end
  2072.         end
  2073.     end
  2074.     return 0;
  2075. end
  2076.  
  2077. local function saveconfig()
  2078.     file.Write("secretbitch.txt", util.TableToJSON(options));
  2079. end
  2080.  
  2081. local mousedown;
  2082. local candoslider;
  2083. local drawlast;
  2084.  
  2085. local visible = {};
  2086.  
  2087. for k,v in next, order do
  2088.     visible[v] = false;
  2089. end
  2090.  
  2091. local function DrawBackground(w, h)
  2092.     surface.SetDrawColor(50, 50, 50, 200);
  2093.     surface.DrawRect(0, 0, w, h);
  2094.    
  2095.     local curcol = Color(50, 50, 50, 200);
  2096.    
  2097.     for i = 0, 30 do
  2098.         surface.SetDrawColor(curcol);
  2099.         curcol.r = curcol.r ;
  2100.         surface.DrawLine(0, i, w, i);
  2101.     end
  2102.    
  2103.     surface.SetDrawColor(curcol);
  2104.    
  2105.     surface.SetFont("memeyou");
  2106.    
  2107.     local tw, th = surface.GetTextSize("SUPER SECRET MEMEWARE MENU");
  2108.    
  2109.     surface.SetTextPos(5, 15 - th / 2);
  2110.    
  2111.     surface.SetTextColor(255, 255, 255);
  2112.    
  2113.     surface.DrawText("SUPER SECRET MEMEWARE MENU");
  2114.    
  2115.     surface.DrawRect(0, 31, 5, h - 31);
  2116.     surface.DrawRect(0, h - 5, w, h);
  2117.     surface.DrawRect(w - 5, 31, 5, h);
  2118. end
  2119.  
  2120. local function MouseInArea(minx, miny, maxx, maxy)
  2121.     local mousex, mousey = gui.MousePos();
  2122.     return(mousex < maxx && mousex > minx && mousey < maxy && mousey > miny);
  2123. end
  2124.  
  2125. local function DrawOptions(self, w, h)
  2126.     local mx, my = self:GetPos();
  2127.    
  2128.     local sizeper = (w - 10) / #order;
  2129.    
  2130.     local maxx = 0;
  2131.    
  2132.     for k,v in next, order do
  2133.         local bMouse = MouseInArea(mx + 5 + maxx, my + 31, mx + 5 + maxx + sizeper, my + 31 + 30);
  2134.         if(visible[v]) then
  2135.             local curcol = Color(60, 60, 60, 200);
  2136.             for i = 0, 30 do
  2137.                 surface.SetDrawColor(curcol);
  2138.                 curcol.r, curcol.g, curcol.b = curcol.r + 0, curcol.g + 0, curcol.b + 0;
  2139.                 surface.DrawLine( 5 + maxx, 31 + i, 5 + maxx + sizeper, 31 + i);
  2140.             end
  2141.         elseif(bMouse) then
  2142.             local curcol = Color(55, 55, 55, 200);
  2143.             for i = 0, 30 do
  2144.                 surface.SetDrawColor(curcol);
  2145.                 curcol.r, curcol.g, curcol.b = curcol.r - 0, curcol.g - 0, curcol.b - 0;
  2146.                 surface.DrawLine( 5 + maxx, 31 + i, 5 + maxx + sizeper, 31 + i);
  2147.             end
  2148.         else
  2149.             local curcol = Color(50, 50, 50, 200);
  2150.             for i = 0, 30 do
  2151.                 surface.SetDrawColor(curcol);
  2152.                 curcol.r, curcol.g, curcol.b = curcol.r - 0, curcol.g - 0, curcol.b - 0;
  2153.                 surface.DrawLine( 5 + maxx, 31 + i, 5 + maxx + sizeper, 31 + i);
  2154.             end
  2155.         end
  2156.         if(bMouse && input.IsMouseDown(MOUSE_LEFT) && !mousedown && !visible[v]) then
  2157.             local nb = visible[v];
  2158.             for key,val in next, visible do
  2159.                 visible[key] = false;
  2160.             end
  2161.             visible[v] = !nb;
  2162.         end
  2163.         surface.SetFont("memeyou2");
  2164.         surface.SetTextColor(255, 255, 255);
  2165.         local tw, th = surface.GetTextSize(v);
  2166.         surface.SetTextPos( 5 + maxx + sizeper / 2 - tw / 2, 31 + 15 - th / 2 );
  2167.         surface.DrawText(v);
  2168.         maxx = maxx + sizeper;
  2169.     end
  2170. end
  2171.  
  2172. local function DrawCheckbox(self, w, h, var, maxy, posx, posy, dist)
  2173.     surface.SetFont("memeyou2");
  2174.     surface.SetTextColor(255, 255, 255);
  2175.     surface.SetTextPos( 5 + posx + 15 + 5, 61 + posy + maxy );
  2176.     local tw, th = surface.GetTextSize(var[1]);
  2177.     surface.DrawText(var[1]);
  2178.    
  2179.     surface.SetDrawColor(163, 163, 163);
  2180.    
  2181.     surface.DrawOutlinedRect( 5 + posx + 15 + 5 + dist + var[4], 61 + posy + maxy + 2, 14, 14);
  2182.    
  2183.     local mx, my = self:GetPos();
  2184.    
  2185.     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);
  2186.    
  2187.     if(bMouse) then
  2188.         surface.DrawRect( 5 + posx + 15 + 5 + dist + 2 + var[4], 61 + posy + maxy + 4, 10, 10);
  2189.     end
  2190.    
  2191.     if(var[3]) then
  2192.         surface.SetDrawColor(43, 98, 226);
  2193.         surface.DrawRect( 5 + posx + 15 + 5 + dist + 2 + var[4], 61 + posy + maxy + 4, 10, 10);
  2194.         surface.SetDrawColor(43, 98, 226);
  2195.         surface.DrawOutlinedRect( 5 + posx + 15 + 5 + dist + 2 + var[4], 61 + posy + maxy + 4, 10, 10);
  2196.     end
  2197.    
  2198.     if(bMouse && input.IsMouseDown(MOUSE_LEFT) && !mousedown && !drawlast) then
  2199.         var[3] = !var[3];
  2200.     end
  2201. end
  2202.  
  2203. local function DrawSlider(self, w, h, var, maxy, posx, posy, dist)
  2204.     local curnum = var[3];
  2205.     local max = var[4];
  2206.     local size = var[5];
  2207.     surface.SetFont("memeyou2");
  2208.     surface.SetTextColor(255, 255, 255);
  2209.     surface.SetTextPos( 5 + posx + 15 + 5, 61 + posy + maxy );
  2210.     surface.DrawText(var[1]);
  2211.    
  2212.     local tw, th = surface.GetTextSize(var[1]);
  2213.    
  2214.     surface.SetDrawColor(163, 163, 163);
  2215.    
  2216.     surface.DrawRect( 5 + posx + 15 + 5 + dist, 61 + posy + maxy + 9, size, 2);
  2217.    
  2218.     local ww = math.ceil(curnum * size / max);
  2219.    
  2220.     surface.SetDrawColor(43, 98, 226);
  2221.    
  2222.     surface.DrawRect( 3 + posx + 15 + 5 + dist + ww, 61 + posy + maxy + 9 - 5, 4, 12);
  2223.    
  2224.     surface.SetDrawColor(43, 98, 226);
  2225.    
  2226.     local tw, th = surface.GetTextSize(curnum..".00");
  2227.    
  2228.     surface.DrawOutlinedRect( 3 + posx + 15 + 5 + dist + ww, 61 + posy + maxy + 4, 4, 12);
  2229.    
  2230.     surface.SetTextPos( 5 + posx + 15 + 5 + dist + (size / 2) - tw / 2, 61 + posy + maxy + 16);
  2231.    
  2232.     surface.DrawText(curnum..".00");
  2233.    
  2234.     local mx, my = self:GetPos();
  2235.    
  2236.     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);
  2237.    
  2238.     if(bMouse && input.IsMouseDown(MOUSE_LEFT) && !drawlast && !candoslider) then
  2239.         local mw, mh = gui.MousePos();
  2240.    
  2241.         local new = math.ceil( ((mw - (mx + posx + 25 + dist - size)) - (size + 1)) / (size - 2) * max);
  2242.         var[3] = new;
  2243.     end
  2244. end
  2245.  
  2246. local notyetselected;
  2247.  
  2248. local function DrawSelect(self, w, h, var, maxy, posx, posy, dist)
  2249.  
  2250.     local size = var[5];
  2251.     local curopt = var[3];
  2252.    
  2253.     surface.SetFont("memeyou2");
  2254.     surface.SetTextColor(255, 255, 255);
  2255.     surface.SetTextPos( 5 + posx + 15 + 5, 61 + posy + maxy );
  2256.     local tw, th = surface.GetTextSize(var[1]);
  2257.     surface.DrawText(var[1]);
  2258.    
  2259.     surface.SetDrawColor(163, 163, 163);
  2260.    
  2261.     surface.DrawOutlinedRect( 25 + posx + dist, 61 + posy + maxy, size, 16);
  2262.    
  2263.     local mx, my = self:GetPos();
  2264.    
  2265.     local bMouse = MouseInArea( mx + 25 + posx + dist, my + 61 + posy + maxy, mx + 25 + posx + dist + size, my + 61 + posy + maxy + 16)
  2266.    
  2267.     local check = dist..posy..posx..w..h..maxy;
  2268.    
  2269.     if(bMouse || notyetselected == check) then
  2270.        
  2271.         surface.DrawRect(25 + posx + dist + 2, 61 + posy + maxy + 2, size - 4, 12);
  2272.        
  2273.     end
  2274.    
  2275.     local tw, th = surface.GetTextSize(curopt);
  2276.    
  2277.     surface.SetTextPos( 25 + posx + dist + 5, 61 + posy + maxy + 6 - th / 2 + 2);
  2278.    
  2279.     surface.DrawText(curopt);
  2280.    
  2281.     if(bMouse && input.IsMouseDown(MOUSE_LEFT) && !drawlast && !mousedown || notyetselected == check) then
  2282.         notyetselected = check;
  2283.         drawlast = function()
  2284.             local maxy2 = 16;
  2285.             for k,v in next, var[4] do
  2286.                 surface.SetDrawColor(163, 163, 163);
  2287.                 surface.DrawRect( 25 + posx + dist, 61 + posy + maxy + maxy2, size, 16);
  2288.                 local bMouse2 = MouseInArea( mx + 25 + posx + dist, my + 61 + posy + maxy + maxy2, mx + 25 + posx + dist + size, my + 61 + posy + maxy + 16 + maxy2)
  2289.                 if(bMouse2) then
  2290.                     surface.SetDrawColor(200, 200, 200);
  2291.                     surface.DrawRect( 25 + posx + dist, 61 + posy + maxy + maxy2, size, 16);
  2292.                 end
  2293.                 local tw, th = surface.GetTextSize(v);
  2294.                 surface.SetTextPos( 25 + posx + dist + 5, 61 + posy + maxy + 6 - th / 2 + 2 + maxy2);
  2295.                 surface.DrawText(v);
  2296.                 maxy2 = maxy2 + 16;
  2297.                 if(bMouse2 && input.IsMouseDown(MOUSE_LEFT) && !mousedown) then
  2298.                     var[3] = v;
  2299.                     notyetselected = nil;
  2300.                     drawlast = nil;
  2301.                     return;
  2302.                 end
  2303.             end
  2304.             local bbMouse = MouseInArea( mx + 25 + posx + dist, my + 61 + posy + maxy, mx + 25 + posx + dist + size, my + 61 + posy + maxy + maxy2);
  2305.             if(!bbMouse && input.IsMouseDown(MOUSE_LEFT) && !mousedown) then
  2306.                  notyetselected = nil;
  2307.                  drawlast = nil;
  2308.                  return;
  2309.             end
  2310.         end
  2311.     end
  2312.    
  2313.    
  2314. end
  2315.  
  2316. local function DrawSubSub(self, w, h, k, var)
  2317.     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];
  2318.    
  2319.     surface.SetDrawColor(163, 163, 163);
  2320.    
  2321.     local startpos = 61 + posy;
  2322.    
  2323.     surface.SetTextColor(255, 255, 255);
  2324.    
  2325.     surface.SetFont("memeyou2");
  2326.    
  2327.     local tw, th = surface.GetTextSize(opt);
  2328.    
  2329.     surface.DrawLine( 5 + posx, startpos, 5 + posx + 15, startpos);
  2330.    
  2331.     surface.SetTextPos( 5 + posx + 15 + 5, startpos - th / 2 );
  2332.    
  2333.     surface.DrawLine( 5 + posx + 15 + 5 + tw + 5, startpos, 5 + posx + sizex, startpos);
  2334.    
  2335.     surface.DrawLine( 5 + posx, startpos, 5 + posx, startpos + sizey);
  2336.    
  2337.     surface.DrawLine(5 + posx, startpos + sizey, 5 + posx + sizex, startpos + sizey );
  2338.    
  2339.     surface.DrawLine( 5 + posx + sizex, startpos, 5 + posx + sizex, startpos + sizey);
  2340.    
  2341.     surface.DrawText(opt);
  2342.    
  2343.     local maxy = 15;
  2344.    
  2345.     for k,v in next, var do
  2346.         if(k == 1) then continue; end
  2347.         if(v[2] == "Checkbox") then
  2348.             DrawCheckbox(self, w, h, v, maxy, posx, posy, dist);
  2349.         elseif(v[2] == "Slider") then
  2350.             DrawSlider(self, w, h, v, maxy, posx, posy, dist);
  2351.         elseif(v[2] == "Selection") then
  2352.             DrawSelect(self, w, h, v, maxy, posx, posy, dist);
  2353.         end
  2354.         maxy = maxy + 25;
  2355.     end
  2356. end
  2357.  
  2358. local function DrawSub(self, w, h)
  2359.     for k, v in next, visible do
  2360.         if(!v) then continue; end
  2361.         for _, var in next, options[k] do
  2362.             DrawSubSub(self, w, h, k, var);
  2363.         end
  2364.     end
  2365. end
  2366.  
  2367. local function DrawSaveButton(self, w, h)
  2368.     local curcol = Color(60, 60, 60, 200);
  2369.     local mx, my = self:GetPos();
  2370.     local bMouse = MouseInArea(mx + 30, my + h - 50, mx + 30 + 200, my + h - 50 + 30);
  2371.     if(bMouse) then
  2372.         curcol = Color(65, 65, 65, 200);
  2373.     end
  2374.     for i = 0, 30 do
  2375.         surface.SetDrawColor(curcol);
  2376.         surface.DrawLine( 30, h - 50 + i, 30 + 200, h - 50 + i );
  2377.         for k,v in next, curcol do
  2378.             curcol[k] = curcol[k] - 0;
  2379.         end
  2380.     end
  2381.     surface.SetFont("memeyou2");
  2382.     surface.SetTextColor(255, 255, 255);
  2383.     local tw, th = surface.GetTextSize("Save Config");
  2384.     surface.SetTextPos( 30 + 100 - tw / 2, h - 50 + 15 - th / 2 );
  2385.     surface.DrawText("Save Config");
  2386.     if(bMouse && input.IsMouseDown(MOUSE_LEFT)) then
  2387.         saveconfig();
  2388.     end
  2389. end
  2390.  
  2391. local function DrawLoadButton(self, w, h)
  2392.     local curcol = Color(60, 60, 60, 200);
  2393.     local mx, my = self:GetPos();
  2394.     local bMouse = MouseInArea(mx + 250, my + h - 50, mx + 250 + 200, my + h - 50 + 30);
  2395.     if(bMouse) then
  2396.         curcol = Color(65, 65, 65, 200);
  2397.     end
  2398.     for i = 0, 30 do
  2399.         surface.SetDrawColor(curcol);
  2400.         surface.DrawLine( 250, h - 50 + i, 250 + 200, h - 50 + i );
  2401.         for k,v in next, curcol do
  2402.             curcol[k] = curcol[k] - 0;
  2403.         end
  2404.     end
  2405.     surface.SetFont("memeyou2");
  2406.     surface.SetTextColor(255, 255, 255);
  2407.     local tw, th = surface.GetTextSize("Load Config");
  2408.     surface.SetTextPos( 250 + 100 - tw / 2, h - 50 + 15 - th / 2 );
  2409.     surface.DrawText("Load Config");
  2410.     if(bMouse && input.IsMouseDown(MOUSE_LEFT)) then
  2411.         loadconfig();
  2412.     end
  2413. end
  2414.  
  2415. loadconfig();
  2416.  
  2417. local insertdown2, insertdown, menuopen;
  2418.  
  2419. local function menu()
  2420.     local frame = vgui.Create("DFrame");
  2421.     frame:SetSize(800, 600);
  2422.     frame:Center();
  2423.     frame:SetTitle("");
  2424.     frame:MakePopup();
  2425.     frame:ShowCloseButton(false);
  2426.    
  2427.     frame.Paint = function(self, w, h)
  2428.         if(candoslider && !mousedown && !drawlast && !input.IsMouseDown(MOUSE_LEFT)) then
  2429.             candoslider = false;
  2430.         end
  2431.         DrawBackground(w, h);
  2432.         DrawOptions(self, w, h);
  2433.         DrawSub(self, w, h);
  2434.         DrawSaveButton(self, w, h);
  2435.         DrawLoadButton(self, w, h);
  2436.         if(drawlast) then
  2437.             drawlast();
  2438.             candoslider = true;
  2439.         end
  2440.         mousedown = input.IsMouseDown(MOUSE_LEFT);
  2441.     end
  2442.    
  2443.     frame.Think = function()
  2444.         if (input.IsKeyDown(KEY_INSERT) && !insertdown2) then
  2445.             frame:Remove();
  2446.             menuopen = false;
  2447.             candoslider = false;
  2448.             drawlast = nil;
  2449.         end
  2450.     end
  2451. end
  2452.  
  2453. local function Think()
  2454.     if (input.IsKeyDown(KEY_INSERT) && !menuopen && !insertdown) then
  2455.         menuopen = true;
  2456.         insertdown = true;
  2457.         menu();
  2458.     elseif (!input.IsKeyDown(KEY_INSERT) && !menuopen) then
  2459.         insertdown = false;
  2460.     end
  2461.     if (input.IsKeyDown(KEY_INSERT) && insertdown && menuopen) then
  2462.         insertdown2 = true;
  2463.     else
  2464.         insertdown2 = false;
  2465.     end
  2466. end
  2467.  
  2468. hook.Add("Think", "", Think);
  2469.  
  2470. --[[
  2471. Actual codens
  2472. ]]
  2473.  
  2474. local FindMetaTable = FindMetaTable;
  2475.  
  2476. local em = FindMetaTable"Entity";
  2477. local pm = FindMetaTable"Player";
  2478. local cm = FindMetaTable"CUserCmd";
  2479. local wm = FindMetaTable"Weapon";
  2480. local am = FindMetaTable"Angle";
  2481. local vm = FindMetaTable"Vector";
  2482.  
  2483. local Vector = Vector;
  2484. local player = Copy(player);
  2485. local Angle = Angle;
  2486. local me = LocalPlayer();
  2487. local render = Copy(render);
  2488. local cma = Copy(cam);
  2489. local Material = Material;
  2490. local CreateMaterial = CreateMaterial;
  2491.  
  2492. --[[
  2493. esp
  2494. ]]
  2495.  
  2496. local function Filter(v)
  2497.     local enemy = gBool("Visuals", "Filter", "Enemies only");
  2498.     local dist = gBool("Visuals", "Filter", "Distance")
  2499.     if(enemy) then
  2500.         if(pm.Team(v) == pm.Team(me)) then return false; end
  2501.     end
  2502.     if(dist) then
  2503.         local maxdist = gBool("Visuals", "Filter", "Max Distance");
  2504.         if( vm.Distance( em.GetPos(v), em.GetPos(me) ) > (maxdist * 5) ) then return false; end
  2505.     end
  2506.     return true;
  2507. end
  2508.  
  2509.  
  2510. local chamsmat = CreateMaterial("a", "VertexLitGeneric", {
  2511.     ["$ignorez"] = 1,
  2512.     ["$model"] = 1,
  2513.     ["$basetexture"] = "models/debug/debugwhite",
  2514. });
  2515.  
  2516. local chamsmat2 = CreateMaterial("@", "vertexlitgeneric", {
  2517.     ["$ignorez"] = 0,
  2518.     ["$model"] = 1,
  2519.     ["$basetexture"] = "models/debug/debugwhite",
  2520. });
  2521.  
  2522. local function GetChamsColor(v, vis)
  2523.     local pre = "Chams - Enemy";
  2524.     if(pm.Team(v) == pm.Team(me)) then
  2525.         pre = "Chams - Team";
  2526.     end
  2527.     if(vis) then
  2528.         local r = gInt("Colors", pre, "Visible R") / 255;
  2529.         local g = gInt("Colors", pre, "Visible G") / 255;
  2530.         local b = gInt("Colors", pre, "Visible B") / 255;
  2531.         return r,g,b;
  2532.     end
  2533.     local r = gInt("Colors", pre, "Not Visible R") / 255;
  2534.     local g = gInt("Colors", pre, "Not Visible G") / 255;
  2535.     local b = gInt("Colors", pre, "Not Visible B") / 255;
  2536.     return r,g,b;
  2537. end
  2538.  
  2539. local function Chams(v)
  2540.     if(gBool("Visuals", "ESP", "XQZ")) then
  2541.         cam.Start3D();
  2542.             cam.IgnoreZ(true);
  2543.             em.DrawModel(v);
  2544.             cam.IgnoreZ(false);
  2545.         cam.End3D();
  2546.     end
  2547.     if(gBool("Visuals", "ESP", "Chams")) then
  2548.         cam.Start3D();
  2549.            
  2550.             render.MaterialOverride(chamsmat);
  2551.             render.SetColorModulation(GetChamsColor(v));
  2552.                
  2553.             em.DrawModel(v);
  2554.                
  2555.             render.SetColorModulation(GetChamsColor(v, true));
  2556.             render.MaterialOverride(chamsmat2);
  2557.                
  2558.             em.DrawModel(v);
  2559.            
  2560.         cam.End3D();
  2561.     end
  2562. end
  2563.  
  2564. local function GetColor(v)
  2565.     if(pm.Team(v) == pm.Team(me)) then
  2566.         local r = gInt("Colors", "Box - Team", "R");
  2567.         local g = gInt("Colors", "Box - Team", "G");
  2568.         local b = gInt("Colors", "Box - Team", "B");
  2569.         return(Color(r, g, b, 220));
  2570.     end
  2571.     local r = gInt("Colors", "Box - Enemy", "R");
  2572.     local g = gInt("Colors", "Box - Enemy", "G");
  2573.     local b = gInt("Colors", "Box - Enemy", "B");
  2574.     return(Color(r, g, b, 220));
  2575. end
  2576.  
  2577. local function ESP(v)
  2578.     local pos = em.GetPos(v);
  2579.     local pos, pos2 = vm.ToScreen(pos - Vector(0, 0, 5)), vm.ToScreen( pos + Vector(0, 0, 70 ) );
  2580.     local h = pos.y - pos2.y;
  2581.     local w = h / 2.2;
  2582.     if(gBool("Visuals", "ESP", "Box") && gOption("Visuals", "ESP", "Box Type") == "2D Box") then   
  2583.        
  2584.         surface.SetDrawColor(GetColor(v));
  2585.         surface.DrawOutlinedRect( pos.x - w / 2, pos.y - h, w, h);
  2586.         surface.SetDrawColor(0, 0, 0, 220);
  2587.         surface.DrawOutlinedRect( pos.x - w / 2 - 1, pos.y - h - 1, w + 2, h + 2);
  2588.         surface.DrawOutlinedRect( pos.x - w / 2 + 1, pos.y - h + 1, w - 2, h - 2);
  2589.        
  2590.     end
  2591.    
  2592.     if(gBool("Visuals", "ESP", "Health")) then
  2593.         local hp = em.Health(v) * h / 100;
  2594.         if(hp > h) then hp = h; end
  2595.         local diff = h - hp;
  2596.         surface.SetDrawColor(0, 0, 0, 255);
  2597.         surface.DrawRect(pos.x - w / 2 - 5, pos.y - h - 1, 3, h + 2);
  2598.         surface.SetDrawColor( ( 100 - em.Health(v) ) * 2.55, em.Health(v) * 2.55, 0, 255);
  2599.         surface.DrawRect(pos.x - w / 2 - 4, pos.y - h + diff, 1, hp);
  2600.     end
  2601.  
  2602.        
  2603.     surface.SetFont("BudgetLabel");
  2604.    
  2605.     surface.SetTextColor(255, 255, 255);
  2606.    
  2607.     if(gBool("Visuals", "ESP", "Name")) then
  2608.    
  2609.         local tw, th = surface.GetTextSize(pm.Name(v));
  2610.        
  2611.         surface.SetTextPos( pos.x - tw / 2, pos.y - h + 2 - th );
  2612.        
  2613.         surface.DrawText(pm.Name(v));
  2614.        
  2615.     end
  2616.    
  2617.     if(gBool("Visuals", "ESP", "Weapon")) then
  2618.        
  2619.         local w = pm.GetActiveWeapon(v);
  2620.         if(w && em.IsValid(w)) then
  2621.             local tw,  th = surface.GetTextSize(em.GetClass(w));
  2622.             surface.SetTextPos( pos.x - tw / 2, pos.y - th / 2 + 5 );
  2623.             surface.DrawText(em.GetClass(w));
  2624.         end
  2625.        
  2626.     end
  2627.    
  2628.     if(gBool("Visuals", "ESP", "Skeleton")) then
  2629.         local origin = em.GetPos(v);
  2630.         for i = 1, em.GetBoneCount(v) do
  2631.             local parent = em.GetBoneParent(v, i);
  2632.             if(!parent) then continue; end
  2633.             local bonepos, parentpos = em.GetBonePosition(v, i), em.GetBonePosition(v, parent);
  2634.             if(!bonepos || !parentpos || bonepos == origin) then continue; end
  2635.             local bs, ps = vm.ToScreen(bonepos), vm.ToScreen(parentpos);
  2636.             surface.SetDrawColor(255, 255, 255);
  2637.             surface.DrawLine(bs.x, bs.y, ps.x, ps.y);
  2638.         end
  2639.     end
  2640.    
  2641. end
  2642.  
  2643. local aimtarget;
  2644.  
  2645.  
  2646. hook.Add("HUDPaint", "", function()
  2647.     if(aimtarget && gBool("Ragebot", "Target", "Snapline")) then
  2648.         local pos = vm.ToScreen(em.LocalToWorld(aimtarget, em.OBBCenter(aimtarget)));
  2649.         surface.SetDrawColor(255, 255, 255);
  2650.         surface.DrawLine(ScrW() / 2, ScrH() / 2, pos.x, pos.y);
  2651.     end
  2652.     if(!gBool("Visuals", "ESP", "Enabled")) then return; end
  2653.     for k,v in next, player.GetAll() do
  2654.         if(!em.IsValid(v) || em.Health(v) < 1 || v == me || em.IsDormant(v)) then continue; end
  2655.         if(!Filter(v)) then continue; end
  2656.         ESP(v);
  2657.     end
  2658. end);
  2659.  
  2660. hook.Add("RenderScreenspaceEffects", "", function()
  2661.     if(!gBool("Visuals", "ESP", "Enabled")) then return; end
  2662.     for k,v in next, player.GetAll() do
  2663.         if(!em.IsValid(v) || em.Health(v) < 1 || v == me || em.IsDormant(v)) then continue; end
  2664.         if(!Filter(v)) then continue; end
  2665.         Chams(v);
  2666.     end
  2667. end);
  2668.  
  2669. saveconfig();
  2670.  
  2671. --[[
  2672. memes
  2673. ]]
  2674.  
  2675. local fa;
  2676. local aa;
  2677.  
  2678. local function FixMovement(ucmd, aaaaa)
  2679.     --local move = Vector(cm.GetForwardMove(ucmd), cm.GetSideMove(ucmd), 0);
  2680.     --local move = am.Forward( vm.Angle(move) + ( cm.GetViewAngles(ucmd) - fa ) ) * vm.Length(move);
  2681.     local move = Vector(cm.GetForwardMove(ucmd), cm.GetSideMove(ucmd), cm.GetUpMove(ucmd));
  2682.     local speed = math.sqrt(move.x * move.x + move.y * move.y);
  2683.     local ang = vm.Angle(move);
  2684.     local yaw = math.rad(cm.GetViewAngles(ucmd).y - fa.y + ang.y);
  2685.     cm.SetForwardMove(ucmd, (math.cos(yaw) * speed) * ( aaaaa && -1 || 1 ));
  2686.     cm.SetSideMove(ucmd, math.sin(yaw) * speed);
  2687.     --cm.SetForwardMove(ucmd, move.x);
  2688.     --cm.SetSideMove(ucmd, (aaaaa && move.y * -1 || move.y));
  2689. end
  2690.  
  2691. local function Clamp(val, min, max)
  2692.     if(val < min) then
  2693.         return min;
  2694.     elseif(val > max) then
  2695.         return max;
  2696.     end
  2697.     return val;
  2698. end
  2699.  
  2700. local function NormalizeAngle(ang)
  2701.     ang.x = math.NormalizeAngle(ang.x);
  2702.     ang.p = math.Clamp(ang.p, -89, 89);
  2703. end
  2704.  
  2705. --[[
  2706. aimer
  2707. ]]
  2708.  
  2709. local table = Copy(table);
  2710. local dists = {};
  2711.  
  2712. local function GetPos(v)
  2713.  
  2714.     if(gBool("Ragebot", "Target", "Bodyaim")) then return( em.LocalToWorld(v, em.OBBCenter(v)) ); end
  2715.  
  2716.     local eyes = em.LookupAttachment(v, "eyes");
  2717.    
  2718.     if(!eyes) then return( em.LocalToWorld(v, em.OBBCenter(v)) ); end
  2719.    
  2720.     local pos = em.GetAttachment(v, eyes);
  2721.    
  2722.     if(!pos) then return( em.LocalToWorld(v, em.OBBCenter(v)) ); end
  2723.    
  2724.     return(pos.Pos);
  2725. end
  2726.  
  2727. local aimignore;
  2728.  
  2729. local function Valid(v)
  2730.     if(!v || !em.IsValid(v) || v == me || em.Health(v) < 1 || em.IsDormant(v) || pm.Team(v) == 1002 || (v == aimignore && gOption("Ragebot", "Target", "Selection") == "Nextshot")) then return false; end
  2731.     if(gBool("Ragebot", "Target", "Ignore Bots")) then
  2732.         if(pm.IsBot(v)) then return false; end
  2733.     end
  2734.     if(gBool("Ragebot", "Target", "Ignore Team")) then
  2735.         if(pm.Team(v) == pm.Team(me)) then return false; end
  2736.     end
  2737.     if(gBool("Ragebot", "Target", "Ignore Friends")) then
  2738.         if(pm.GetFriendStatus(v) == "friend") then return false; end
  2739.     end
  2740.     local tr = {
  2741.         start = em.EyePos(me),
  2742.         endpos = GetPos(v),
  2743.         mask = MASK_SHOT,
  2744.         filter = {me, v},
  2745.     };
  2746.     return(util.TraceLine(tr).Fraction == 1);
  2747. end
  2748.  
  2749. local function gettarget()
  2750.  
  2751.     local opt = gOption("Ragebot", "Target", "Selection");
  2752.    
  2753.     local sticky = gOption("Ragebot", "Aimbot", "Non-Sticky");
  2754.    
  2755.     if(opt == "Distance") then
  2756.  
  2757.         if( !sticky && Valid(aimtarget) ) then return; end
  2758.  
  2759.         dists = {};
  2760.        
  2761.         for k,v in next, player.GetAll() do
  2762.             if(!Valid(v)) then continue; end
  2763.             dists[#dists + 1] = { vm.Distance( em.GetPos(v), em.GetPos(me) ), v };
  2764.         end
  2765.        
  2766.         table.sort(dists, function(a, b)
  2767.             return(a[1] < b[1]);
  2768.         end);
  2769.        
  2770.         aimtarget = dists[1] && dists[1][2] || nil;
  2771.        
  2772.     elseif(opt == "Health") then
  2773.        
  2774.         if( !sticky && Valid(aimtarget) ) then return; end
  2775.  
  2776.         dists = {};
  2777.        
  2778.         for k,v in next, player.GetAll() do
  2779.             if(!Valid(v)) then continue; end
  2780.             dists[#dists + 1] = { em.Health(v), v };
  2781.         end
  2782.        
  2783.         table.sort(dists, function(a, b)
  2784.             return(a[1] < b[1]);
  2785.         end);
  2786.        
  2787.         aimtarget = dists[1] && dists[1][2] || nil;
  2788.        
  2789.     elseif(opt == "Nextshot") then
  2790.         if( !sticky && Valid(aimtarget) ) then return; end
  2791.         aimtarget = nil;
  2792.         local allplys = player.GetAll();
  2793.         local avaib = {};
  2794.         for k,v in next,allplys do
  2795.             avaib[math.random(100)] = v;
  2796.         end
  2797.        
  2798.         for k,v in next, avaib do
  2799.             if(Valid(v)) then
  2800.                 aimtarget = v;
  2801.             end
  2802.         end
  2803.     end
  2804.        
  2805. end
  2806.  
  2807.  
  2808. local cones = {};
  2809.  
  2810. local pcall = pcall;
  2811. local require = require;
  2812.  
  2813. local nullvec = Vector() * -1;
  2814.  
  2815. local IsFirstTimePredicted = IsFirstTimePredicted;
  2816. local CurTime = CurTime;
  2817. local servertime=0;
  2818. local bit = Copy(bit);
  2819.  
  2820.  
  2821. hook.Add("Move", "", function()
  2822.     if(!IsFirstTimePredicted()) then return; end
  2823.     servertime = CurTime();
  2824. end);
  2825.  
  2826.  
  2827. GAMEMODE["EntityFireBullets"] = function(self, p, data)
  2828.     aimignore = aimtarget;
  2829.     local w = pm.GetActiveWeapon(me);
  2830.     local Spread = data.Spread * -1;
  2831.     if(!w || !em.IsValid(w) || cones[em.GetClass(w)] == Spread || Spread == nullvec) then return; end
  2832.     cones[em.GetClass(w)] = Spread;
  2833. end
  2834.  
  2835. local function PredictSpread(ucmd, ang)
  2836.     local w = pm.GetActiveWeapon(me);
  2837.     if(!w || !em.IsValid(w) || !cones[em.GetClass(w)] || !gBool("Ragebot", "Accuracy", "Anti Spread")) then return am.Forward(ang); end
  2838.     return(dickwrap.Predict(ucmd, am.Forward(ang), cones[em.GetClass(w)]));
  2839. end
  2840.  
  2841. local function Autofire(ucmd)
  2842.     if(pm.KeyDown(me, 1) && gBool("Ragebot", "Aimbot", "Auto Pistol")) then
  2843.         cm.SetButtons(ucmd, bit.band( cm.GetButtons(ucmd), bit.bnot( 1 ) ) );
  2844.     else
  2845.         cm.SetButtons(ucmd, bit.bor( cm.GetButtons(ucmd), 1 ) );
  2846.     end
  2847. end
  2848.  
  2849. local function WeaponCanFire()
  2850.     local w = pm.GetActiveWeapon(me);
  2851.     if(!w || !em.IsValid(w) || !gBool("Ragebot", "Aimbot", "Bullettime")) then return true; end
  2852.     return( servertime >= wm.GetNextPrimaryFire(w) );
  2853. end
  2854.  
  2855. local function WeaponShootable()
  2856.     local wep = pm.GetActiveWeapon(me);
  2857.     if( em.IsValid(wep) ) then // I would never get lazy..
  2858.          local n = string.lower(wep:GetPrintName())
  2859.          if( wep:Clip1() <= 0 ) then
  2860.             return false;
  2861.          end
  2862.          
  2863.          
  2864.          
  2865.          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
  2866.             return false;
  2867.          end
  2868.          
  2869.          
  2870.           return true;
  2871.     end
  2872. end
  2873.  
  2874. local function PredictPos(pos)
  2875. local myvel = LocalPlayer():GetVelocity()
  2876. local pos = pos - (myvel * engine.TickInterval());
  2877. return pos;
  2878. end
  2879.  
  2880.  
  2881. local function aimer(ucmd)
  2882.     if(cm.CommandNumber(ucmd) == 0 || !gBool("Ragebot", "Aimbot", "Enabled")) then return; end
  2883.     gettarget();
  2884.     aa = false;
  2885.     if(aimtarget && (input.IsKeyDown(KEY_LALT) || gBool("Ragebot", "Aimbot", "Autosnap")) ) then
  2886.         aa = true;
  2887.         local pos = GetPos(aimtarget) - em.EyePos(me);
  2888.         PredictPos(pos);
  2889.         local ang = vm.Angle( PredictSpread(ucmd, vm.Angle(pos)));
  2890.         NormalizeAngle(ang);
  2891.         cm.SetViewAngles(ucmd, ang);
  2892.         if(gBool("Ragebot", "Aimbot", "Autofire")) then
  2893.             Autofire(ucmd);
  2894.         end
  2895.         if(gBool("Ragebot", "Aimbot", "Silent")) or defcon.Settings["silent"] then
  2896.             FixMovement(ucmd);
  2897.         else
  2898.             fa = ang;
  2899.         end
  2900.     end
  2901. end
  2902.  
  2903. --[[
  2904. antiaimer
  2905. ]]
  2906.  
  2907.  
  2908.  
  2909. local ox=-181;
  2910. local oy=0;
  2911.  
  2912. local function RandCoin()
  2913.     local randcoin = math.random(0,1);
  2914.     if(randcoin == 1) then return 1; else return -1; end
  2915. end
  2916.  
  2917. local function GetX()
  2918.     local opt = gOption("Ragebot", "Anti-Aim", "X");
  2919.     if(opt == "Emotion") then
  2920.         local randcoin = gInt("Ragebot", "Anti-Aim", "Emotion Randomcoin X");
  2921.         if( math.random(100) < randcoin ) then
  2922.             ox = RandCoin() * 181;
  2923.         end
  2924.     elseif( opt == "Up" ) then
  2925.         ox = -181;
  2926.     elseif( opt == "Down" ) then
  2927.         ox = 181;
  2928.     elseif(opt == "Jitter") then
  2929.         ox = ox * -1;
  2930.     end
  2931. end
  2932.  
  2933. local function GetClosest()
  2934.     local ddists = {};
  2935.    
  2936.     local closest;
  2937.        
  2938.     for k,v in next, player.GetAll() do
  2939.     if(!Valid(v)) then continue; end
  2940.         ddists[#ddists + 1] = { vm.Distance( em.GetPos(v), em.GetPos(me) ), v };
  2941.     end
  2942.        
  2943.     table.sort(ddists, function(a, b)
  2944.         return(a[1] < b[1]);
  2945.     end);
  2946.        
  2947.     closest = ddists[1] && ddists[1][2] || nil;
  2948.    
  2949.     if(!closest) then return fa.y; end
  2950.    
  2951.     local pos = em.GetPos(closest);
  2952.    
  2953.     local pos = vm.Angle(pos - em.EyePos(me));
  2954.    
  2955.     return( pos.y );
  2956. end
  2957.  
  2958. local function GetY()
  2959.     local opt = gOption("Ragebot", "Anti-Aim", "Y");
  2960.     if(opt == "Emotion") then
  2961.         local randcoin = gInt("Ragebot", "Anti-Aim", "Emotion Randomcoin Y");
  2962.         if( math.random(100) < randcoin ) then
  2963.             oy = fa.y + math.random(-180, 180);
  2964.         end
  2965.     elseif( opt == "Eye Angles" ) then
  2966.         oy = fa.y;
  2967.     elseif( opt == "Sideways" ) then
  2968.         oy = fa.y - 90;
  2969.     elseif(opt == "Jitter") then
  2970.         oy = fa.y + math.random(-90, 90);
  2971.     elseif(opt == "TJitter") then
  2972.         oy = fa.y - 180 + math.random(-90, 90);
  2973.     elseif(opt == "Static") then
  2974.         oy = 0;
  2975.     elseif(opt == "Forward") then
  2976.         oy = fa.y;
  2977.     elseif(opt == "Backwards") then
  2978.         oy = fa.y - 180;
  2979.     elseif(opt == "Towards Players") then
  2980.         oy = GetClosest();
  2981.     end
  2982. end
  2983.  
  2984. local function walldetect()
  2985.     local eye = em.EyePos(me);
  2986.     local tr = util.TraceLine({
  2987.         start = eye,
  2988.         endpos = (eye + (am.Forward(fa) * 10)),
  2989.         mask = MASK_ALL,
  2990.     });
  2991.     if(tr.Hit) then
  2992.         ox = -181;
  2993.         oy = -90;
  2994.     end
  2995. end
  2996.  
  2997. local function antiaimer(ucmd)
  2998.     if( (cm.CommandNumber(ucmd) == 0 && !gBool("Visuals", "Misc", "Thirdperson")) || cm.KeyDown(ucmd, 1) || cm.KeyDown(ucmd, 32) || aa || !gBool("Ragebot", "Anti-Aim", "Enabled")) then return; end
  2999.     GetX();
  3000.     GetY();
  3001.     walldetect();
  3002.     local aaang = Angle(ox, oy, 0);
  3003.     cm.SetViewAngles(ucmd, aaang);
  3004.     FixMovement(ucmd, true);
  3005. end
  3006.  
  3007. local function GetAngle(ang)
  3008.     if(!gBool("Ragebot", "Accuracy", "Anti Recoil")) then return ang + pm.GetPunchAngle(me); end
  3009.     return ang;
  3010. end
  3011.  
  3012. local function rapidfire(ucmd)
  3013.     if(pm.KeyDown(me, 1) && gBool("Ragebot", "Aimbot", "Auto Pistol")) then
  3014.         cm.SetButtons(ucmd, bit.band( cm.GetButtons(ucmd), bit.bnot( 1 ) ) );
  3015.     end
  3016. end
  3017.  
  3018. local function meme(ucmd)
  3019.     if(!fa) then fa = cm.GetViewAngles(ucmd); end
  3020.     fa = fa + Angle(cm.GetMouseY(ucmd) * .023, cm.GetMouseX(ucmd) * -.023, 0);
  3021.     NormalizeAngle(fa);
  3022.     if(cm.CommandNumber(ucmd) == 0) then
  3023.         cm.SetViewAngles(ucmd, GetAngle(fa));
  3024.         return;
  3025.     end
  3026.     if(cm.KeyDown(ucmd, 1)) then
  3027.         local ang = GetAngle(vm.Angle( PredictSpread(ucmd, fa ) ) );
  3028.         NormalizeAngle(ang);
  3029.         cm.SetViewAngles(ucmd, ang);
  3030.     end
  3031.     if(cm.KeyDown(ucmd, 2) && !em.IsOnGround(me)) then
  3032.         cm.SetButtons(ucmd, bit.band( cm.GetButtons(ucmd), bit.bnot( 2 ) ) );
  3033.     end
  3034. end
  3035.  
  3036.  
  3037. hook.Add("CreateMove", "", function(ucmd)
  3038.     meme(ucmd);
  3039.     aimer(ucmd);
  3040.     antiaimer(ucmd);
  3041. end);
  3042.  
  3043. hook.Add("CalcView", "", function(p, o, a, f)
  3044.     return({
  3045.         angles = GetAngle(fa),
  3046.         origin = (gBool("Visuals", "Misc", "Thirdperson") && o + am.Forward(fa) * -150 || o),
  3047.         fov = f,
  3048.     });
  3049. end);
  3050.  
  3051. hook.Add("ShouldDrawLocalPlayer", "", function()
  3052.     return(gBool("Visuals", "Misc", "Thirdperson"));
  3053. end);
  3054.  
  3055. --experimental new freecam
  3056.  
  3057. hook.Add("CalcView", "", function( p, o, a, f)
  3058.  
  3059. end);
  3060.  
  3061. --everything below is disabled, don't fuck with this unless you know what you're doing.
  3062.  
  3063. /*concommand.Add("debug", function()
  3064.     local pcash,gname = "", gmod.GetGamemode().Name
  3065.     print("Game-mode:\n    "..gname)
  3066.     if string.find(gname, "DarkRP") then
  3067.         print("Player Cash Amounts")
  3068.         for k,v in pairs(player.GetAll()) do
  3069.             if not(v.DarkRPVars and v.DarkRPVars.money)and(darkrpvar == true) then
  3070.                 darkrpvar = false
  3071.             end
  3072.             if v ~= LocalPlayer() then
  3073.                 pcash = pcash.."    "..v:Nick().." - "..v.DarkRPVars.money.."\n"
  3074.             end
  3075.         end
  3076.         if pcash ~= "" then
  3077.             print(pcash)
  3078.         end
  3079.     end
  3080.     if LocalPlayer().GetActiveWeapon and LocalPlayer():GetActiveWeapon() ~= nil and IsValid(LocalPlayer():GetActiveWeapon()) then
  3081.         print("Current Weapon")
  3082.         print("    "..LocalPlayer():GetActiveWeapon():GetClass())
  3083.     end
  3084.         local pos = LocalPlayer():GetShootPos()
  3085.     local ang = LocalPlayer():GetAimVector()
  3086.     local tracedata = {}
  3087.     tracedata.start = pos
  3088.     tracedata.endpos = pos+(ang*9999999999999)
  3089.     local trace = util.TraceLine(tracedata)
  3090.     if(trace.HitNonWorld) then
  3091.         target = trace.Entity
  3092.         print("Entity Info")
  3093.         print("    Class: "..target:GetClass())
  3094.         print("    Model: "..target:GetModel())
  3095.     end
  3096. end)*/
  3097.  
  3098. --GREETZ:
  3099. --Johnny Nutmegg, Tito, Komrade Seals, Lincent, Dr. Richard Head, Caliber, the rest of the Madbluntz.rs team, Nigel farage,
  3100. --Rush, Mack, Ghost, Shawntism, Fried_Kooch, Timi, AROLTD, Kibler, Adolf Hitler, Oscar, Rootie, Alex Jones, Verrock,
  3101. --Thrice, A5, Ted and Quak
RAW Paste Data
Top