Advertisement
Guest User

Untitled

a guest
Jan 25th, 2015
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 102.72 KB | None | 0 0
  1. --[[
  2.  
  3. SantaHack
  4.  
  5. Created by SantasLittleHelper
  6. Current Version: FWRP EDITION
  7.  
  8. Features:
  9. On/Off Switch - In the top right of the hack there is an on/off switch that will deactivate everything.
  10.  
  11. Aimbot -
  12. Active - Determines, overall, if the aimbot should be working.
  13. Random Bone - If enabled the aimbot will pick a random bone to attack instead of always going at the players head.
  14. Preference - Used to determine who the aimbot should target next. Can be set to Distance or Angle.
  15. Attack NPCs - Determines if the aimbot should target NPCs.
  16. Attack Player - Determines if the aimbot should target Players.
  17. Prediction - Velocity prediction, to increase the aimbots accuracy.
  18. Aim On Key - If this is on the aimbot will only target when your selected key is pressed.
  19. Key - Determines the key for the previous option.
  20. Anti Snap - Stops the aimbot from snapping to the target. But will decrease accuracy.
  21. A-Snap Speed - The speed of the anti-snap. Value between 1 and 5.
  22. Max Angle - The maximum angle the target can be away from you. Value between 0-270.
  23. Auto Shoot - If this is on and the aimbot is locked on it will automatically shoot.
  24. Panic Mode - If this is on the aimbot wont function while you are being spectated.
  25. Ignore Team - If this is on the aimbot will not target players on your team, works with TTT if the traitor detector is enabled.
  26.  
  27. ESP -
  28. Active - Determines, overall, if the ESP is working.
  29. Player Info - Determines if the ESP should show player information.
  30. NPC Info - Determines if the ESP should show NPC information.
  31. Names - Determines if the targets name should be shown. (on NPCs it will be the class name, ex: npc_monk)
  32. Weapons - Determines if the targets weapon should be displayed
  33. Distance - Determines if distance between you and the target should be displayed.
  34. Health - Determines if the targets health should be displayed.
  35. Bounding Box - Determines if a bounding box should be drawn around the target.
  36. TTT Feature - Show Traitors - Determines if the ESP should display if the target is a traitor. (must have traitor finder active, see Misc)
  37. TTT Feature - Bodies - Will display body information on TTT. (Credits on body, Name of player, Found or not found)
  38. 2D Radar - Enables a 2D radar on screen. Players and NPCs are shown as arrows, bodies (TTT) are shown as circles.
  39. Radar Scale - The distance the radar reaches. Value between 1 and 100
  40. Max Distance - Determines the maximum distance the ESP will work to. (set to 0 for unlimited distance)
  41. Team Based - Make the color of the ESP based on the targets team. Works with TTT.
  42.  
  43. Chams -
  44. Active - Determines, overall, if the Chams are working.
  45. Draw Players - Determines if the Chams should draw players.
  46. Draw NPCs - Determines if the Chams should draw NPCs.
  47. Draw Weapons - Determines if the Chams should draw the targets weapon.
  48. TTT Feature - Bodies - Adds TTT bodies to the Chams
  49. Team Based - Makes the color of the chams based on the targets team. Works with TTT.
  50. Max Distance - Determines the maximum distance the Chams will work to. (set to 0 for unlimited distance)
  51.  
  52. Misc -
  53. Show Admins - Displays all current admins in the top right corner of your screen.
  54. Crosshair - Will draw a crosshair on your screen.
  55. Crosshair Size - The size of the crosshair. Value between 0 and 1000.
  56. No Recoil - Will remove all weapon recoil. (doesn't work in singleplayer)
  57. Spectators - Displays all your current spectators in the top right corner of your screen, under the admins.
  58. Auto Reload - Will automatically reload your weapon when your magazine is empty.
  59. Bunny Hop - If this is on you will bunny hop while pressing the bunny hop key.
  60. Key - Determines the key for the previous option.
  61. Auto Pistol - Fires semi-automatic weapons as fast as possible. (doesn't work on default HL2 weapons)
  62. DarkRP Feature - Buy Health - Will automatically use /buyhealth when your health falls below the minimum value set.
  63. DarkRP Feature - Minimum - Minimum health before buying health. Value between 0 and 100.
  64. TTT Feature - Traitor Finder - Will display when a traitor buys a traitor weapon. (see also the ESP option for displaying traitors)
  65. Show Deaths - Will notify you via chat when a player dies.
  66. Sounds - Enables sound cues along with notifications.
  67. Lasersight - Enables a lasersight on most weapons.
  68.  
  69. Style -
  70. Bounding Box - Determines the color the bounding box should draw in.
  71. ESP Text - Determines the color the ESP text should draw in.
  72. Crosshair - Determines the color the Crosshair should draw in.
  73. TTT Feature - Body Text - Determines the color body information will be shown in.
  74. Chams - The color of the chams. (will be overwritten if Cham option Team Based is on)
  75. TTT Feature - Body Chams - The color TTT bodies should be on the chams.
  76. --]]
  77.  
  78. //I hear this makes the hack load faster, i didn't actually check the O times but whatever.
  79. local hook = hook
  80. local derma = derma
  81. local surface = surface
  82. local vgui = vgui
  83. local input = input
  84. local util = util
  85. local cam = cam
  86. local render = render
  87. local math = math
  88. local draw = draw
  89. local team = team
  90.  
  91. local SebHack = {}
  92. SebHack.Active = CreateClientConVar("SantaHack_Active", 1, true, false)
  93. SebHack.Version = "1.1.0"
  94. SebHack.Ply = LocalPlayer()
  95. SebHack.TTT = (GAMEMODE and GAMEMODE.Name and string.find(GAMEMODE.Name, "Terror") and true) or false
  96. SebHack.DarkRP = (GAMEMODE and GAMEMODE.Name and string.find(GAMEMODE.Name, "DarkRP") and true) or false
  97.  
  98. //Converts a string of a color (ex. "Color(255, 255, 255, 255)") into an actual color, and returns the color.
  99. SebHack.GetColorFromString = function(words)
  100. //I probably shouldve just used string.explode...well.......
  101. if type(words) != "string" then return Color(255, 255, 255, 255) end
  102. words = "return "..words
  103. local func = CompileString(words, "GettingColors", true)
  104. local good, color = pcall(func)
  105. if good and type(color) == "table" and color.r and color.g and color.b and color.a then
  106. return color
  107. else
  108. return Color(255, 255, 255, 255)
  109. end
  110. end
  111.  
  112. SebHack.Chars = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
  113. SebHack.RandomName = function(amount)
  114. local toReturn = ""
  115. local amount = amount or 10
  116. for i = 1, amount do
  117. if math.random(0, 1) == 0 then
  118. toReturn = toReturn..string.lower(table.Random(SebHack.Chars))
  119. else
  120. toReturn = toReturn..table.Random(SebHack.Chars)
  121. end
  122. end
  123. return toReturn
  124. end
  125.  
  126. SebHack.Message = function(...)
  127. chat.AddText(Color(50, 255, 100), "[SebHack] ", ...)
  128. end
  129.  
  130. SebHack.Aimbot = {}
  131. SebHack.Aimbot.CurTarget = nil
  132. SebHack.Aimbot.Vars = {}
  133. SebHack.Aimbot.Vars["Active"] = CreateClientConVar("SebHack_Aimbot_Active", 0, true, false)
  134. SebHack.Aimbot.Vars["RandomBones"] = CreateClientConVar("SebHack_Aimbot_RandomBones", 0, true, false)
  135. SebHack.Aimbot.Vars["AttackNPCs"] = CreateClientConVar("SebHack_Aimbot_AttackNPCs", 0, true, false)
  136. SebHack.Aimbot.Vars["AttackPlayers"] = CreateClientConVar("SebHack_Aimbot_AttackPlayers", 0, true, false)
  137. SebHack.Aimbot.Vars["Prediction"] = CreateClientConVar("SebHack_Aimbot_Prediction", 0, true, false)
  138. SebHack.Aimbot.Vars["AimOnKey"] = CreateClientConVar("SebHack_Aimbot_AimOnKey", 0, true, false)
  139. SebHack.Aimbot.Vars["AimOnKey_Key"] = CreateClientConVar("SebHack_Aimbot_AimOnKey_Key", "MOUSE_LEFT", true, false)
  140. SebHack.Aimbot.Vars["MaxAngle"] = CreateClientConVar("SebHack_Aimbot_MaxAngle", 180, true, false)
  141. SebHack.Aimbot.Vars["Preferance"] = CreateClientConVar("SebHack_Aimbot_Preferance", "Distance", true, false)
  142. SebHack.Aimbot.Vars["AntiSnap"] = CreateClientConVar("SebHack_Aimbot_AntiSnap", 0, true, false)
  143. SebHack.Aimbot.Vars["AntiSnapSpeed"] = CreateClientConVar("SebHack_Aimbot_AntiSnapSpeed", 4, true, false)
  144. SebHack.Aimbot.Vars["AutoShoot"] = CreateClientConVar("SebHack_Aimbot_AutoShoot", 0, true, false)
  145. SebHack.Aimbot.Vars["PanicMode"] = CreateClientConVar("SebHack_Aimbot_PanicMode", 0, true, false)
  146. SebHack.Aimbot.Vars["IgnoreTeam"] = CreateClientConVar("SebHack_Aimbot_IgnoreTeam", 0, true, false)
  147.  
  148. SebHack.Friends = {}
  149. SebHack.Friends.List = {} //The steamIDs of everyone on your friends list
  150. SebHack.Friends.Vars = {}
  151. SebHack.Friends.Vars["Active"] = CreateClientConVar("SebHack_Friends_Active", 0, true, false)
  152. SebHack.Friends.Vars["Reverse"] = CreateClientConVar("SebHack_Friends_Reverse", 0, true, false)
  153.  
  154. SebHack.ESP = {}
  155. SebHack.ESP.Vars = {}
  156. SebHack.ESP.Vars["Active"] = CreateClientConVar("SebHack_ESP_Active", 0, true, false)
  157. SebHack.ESP.Vars["Players"] = CreateClientConVar("SebHack_ESP_Players", 0, true, false)
  158. SebHack.ESP.Vars["NPCs"] = CreateClientConVar("SebHack_ESP_NPCs", 0, true, false)
  159. SebHack.ESP.Vars["Name"] = CreateClientConVar("SebHack_ESP_Name", "Off", true, false)
  160. SebHack.ESP.Vars["Weapons"] = CreateClientConVar("SebHack_ESP_Weapons", "Off", true, false)
  161. SebHack.ESP.Vars["Distance"] = CreateClientConVar("SebHack_ESP_Distance", "Off", true, false)
  162. SebHack.ESP.Vars["Health"] = CreateClientConVar("SebHack_ESP_Health", "Off", true, false)
  163. SebHack.ESP.Vars["MaxDistance"] = CreateClientConVar("SebHack_ESP_MaxDistance", 0, true, false)
  164. SebHack.ESP.Vars["Box"] = CreateClientConVar("SebHack_ESP_Box", 0, true, false)
  165. SebHack.ESP.Vars["ShowTraitors"] = CreateClientConVar("SebHack_ESP_ShowTraitors", "Off", true, false)
  166. SebHack.ESP.Vars["Bodies"] = CreateClientConVar("SebHack_ESP_Bodies", 0, true, false)
  167. SebHack.ESP.Vars["Radar"] = CreateClientConVar("SebHack_ESP_Radar", 0, true, false)
  168. SebHack.ESP.Vars["RadarScale"] = CreateClientConVar("SebHack_ESP_RadarScale", 20, true, false)
  169. SebHack.ESP.Vars["TeamBased"] = CreateClientConVar("SebHack_ESP_TeamBased", 0, true, false)
  170.  
  171. SebHack.Chams = {}
  172. SebHack.Chams.Mat = CreateMaterial(SebHack.RandomName(math.random(10,15)), "VertexLitGeneric", { ["$basetexture"] = "models/debug/debugwhite", ["$model"] = 1, ["$ignorez"] = 1 })
  173. SebHack.Chams.Vars = {}
  174. SebHack.Chams.Vars["Active"] = CreateClientConVar("SebHack_Chams_Active", 0, true, false)
  175. SebHack.Chams.Vars["Players"] = CreateClientConVar("SebHack_Chams_Players", 0, true, false)
  176. SebHack.Chams.Vars["NPCs"] = CreateClientConVar("SebHack_Chams_NPCs", 0, true, false)
  177. SebHack.Chams.Vars["Weapons"] = CreateClientConVar("SebHack_Chams_Weapons", 0, true, false)
  178. SebHack.Chams.Vars["MaxDistance"] = CreateClientConVar("SebHack_Chams_MaxDistance", 0, true, false)
  179. SebHack.Chams.Vars["Bodies"] = CreateClientConVar("SebHack_Chams_Bodies", 0, true, false)
  180. SebHack.Chams.Vars["TeamBased"] = CreateClientConVar("SebHack_Chams_TeamBased", 0, true, false)
  181.  
  182. SebHack.Entities = {}
  183. SebHack.Entities.List = {} //The class namse of all the entities
  184. SebHack.Entities.Vars = {}
  185. SebHack.Entities.Vars["Active"] = CreateClientConVar("SebHack_Entities_Active", 0, true, false)
  186.  
  187. SebHack.Misc = {}
  188. SebHack.Misc.Vars = {}
  189. SebHack.Misc.Vars["ShowAdmins"] = CreateClientConVar("SebHack_Misc_ShowAdmins", 0, true, false)
  190. SebHack.Misc.Vars["Crosshair"] = CreateClientConVar("SebHack_Misc_Cross", 0, true, false)
  191. SebHack.Misc.Vars["CrosshairSize"] = CreateClientConVar("SebHack_Misc_CrossSize", 50, true, false)
  192. SebHack.Misc.Vars["NoRecoil"] = CreateClientConVar("SebHack_Misc_NoRecoil", 0, true, false)
  193. SebHack.Misc.Vars["ShowSpectators"] = CreateClientConVar("SebHack_Misc_ShowSpectators", 0, true, false)
  194. SebHack.Misc.Vars["BunnyHop"] = CreateClientConVar("SebHack_Misc_BunnyHop", 0, true, false)
  195. SebHack.Misc.Vars["BunnyHop_Key"] = CreateClientConVar("SebHack_Misc_BunnyHop_Key", "KEY_SPACE", true, false)
  196. SebHack.Misc.Vars["AutoReload"] = CreateClientConVar("SebHack_Misc_AutoReload", 0, true, false)
  197. SebHack.Misc.Vars["AutoPistol"] = CreateClientConVar("SebHack_Misc_AutoPistol", 0, true, false)
  198. SebHack.Misc.Vars["BuyHealth"] = CreateClientConVar("SebHack_Misc_BuyHealth", 0, true, false)
  199. SebHack.Misc.Vars["BuyHealth_Minimum"] = CreateClientConVar("SebHack_Misc_BuyHealth_Minimum", 80, true, false)
  200. SebHack.Misc.Vars["TraitorFinder"] = CreateClientConVar("SebHack_Misc_TraitorFinder", 0, true, false)
  201. SebHack.Misc.Vars["Deaths"] = CreateClientConVar("SebHack_Misc_Deaths", 0, true, false)
  202. SebHack.Misc.Vars["Sounds"] = CreateClientConVar("SebHack_Misc_Sounds", 0, true, false)
  203. SebHack.Misc.Vars["Lasersight"] = CreateClientConVar("SebHack_Misc_Lasersight", 0, true, false)
  204.  
  205. SebHack.Style = {}
  206. SebHack.Style.Vars = {}
  207. SebHack.Style.Vars["BoundingBox"] = {}
  208. SebHack.Style.Vars["BoundingBox"].var = CreateClientConVar("SebHack_Style_BoundingBox", "Color(255, 0, 0, 255)", true, false)
  209. SebHack.Style.Vars["BoundingBox"].color = SebHack.GetColorFromString(SebHack.Style.Vars["BoundingBox"].var:GetString())
  210. SebHack.Style.Vars["ESPText"] = {}
  211. SebHack.Style.Vars["ESPText"].var = CreateClientConVar("SebHack_Style_ESPText", "Color(255, 255, 255, 255)", true, false)
  212. SebHack.Style.Vars["ESPText"].color = SebHack.GetColorFromString(SebHack.Style.Vars["ESPText"].var:GetString())
  213. SebHack.Style.Vars["Crosshair"] = {}
  214. SebHack.Style.Vars["Crosshair"].var = CreateClientConVar("SebHack_Style_Cross", "Color(255, 255, 255, 255)", true, false)
  215. SebHack.Style.Vars["Crosshair"].color = SebHack.GetColorFromString(SebHack.Style.Vars["Crosshair"].var:GetString())
  216. SebHack.Style.Vars["BodyText"] = {}
  217. SebHack.Style.Vars["BodyText"].var = CreateClientConVar("SebHack_Style_BodyText", "Color(255, 255, 255, 255)", true, false)
  218. SebHack.Style.Vars["BodyText"].color = SebHack.GetColorFromString(SebHack.Style.Vars["BodyText"].var:GetString())
  219. SebHack.Style.Vars["Chams"] = {}
  220. SebHack.Style.Vars["Chams"].var = CreateClientConVar("SebHack_Style_Chams", "Color(0, 255, 0, 255)", true, false)
  221. SebHack.Style.Vars["Chams"].color = SebHack.GetColorFromString(SebHack.Style.Vars["Chams"].var:GetString())
  222. SebHack.Style.Vars["BodyChams"] = {}
  223. SebHack.Style.Vars["BodyChams"].var = CreateClientConVar("SebHack_Style_BodyChams", "Color(0, 255, 0, 255)", true, false)
  224. SebHack.Style.Vars["BodyChams"].color = SebHack.GetColorFromString(SebHack.Style.Vars["BodyChams"].var:GetString())
  225.  
  226. //This loads our friends list and custom entities list.
  227. SebHack.SavedData = CreateClientConVar("SebHack_SaveData", SebHack.RandomName(math.random(10, 15)), true, false)
  228. if file.Exists(SebHack.SavedData:GetString()..".txt", "DATA") then
  229. local info = string.Explode("\n", file.Read(SebHack.SavedData:GetString()..".txt", "DATA"))
  230. if type(info) == "table" and info[1] and info[2] then
  231. SebHack.Friends.List = util.JSONToTable(info[1])
  232. SebHack.Entities.List = util.JSONToTable(info[2])
  233. end
  234. end
  235.  
  236. SebHack.SaveData = function()
  237. file.Write(SebHack.SavedData:GetString()..".txt", util.TableToJSON(SebHack.Friends.List))
  238. file.Append(SebHack.SavedData:GetString()..".txt", "\n")
  239. file.Append(SebHack.SavedData:GetString()..".txt", util.TableToJSON(SebHack.Entities.List))
  240. end
  241.  
  242. //This is all the bones i look for in the order im looking for them. Feel free to change the order if you want to attack the foot before the head or something like that.
  243. SebHack.Bones = {
  244. "ValveBiped.Bip01_Head1",
  245. "ValveBiped.Bip01_Neck1",
  246. "ValveBiped.Bip01_Spine4",
  247. "ValveBiped.Bip01_Spine2",
  248. "ValveBiped.Bip01_Spine1",
  249. "ValveBiped.Bip01_Spine",
  250. "ValveBiped.Bip01_R_UpperArm",
  251. "ValveBiped.Bip01_R_Forearm",
  252. "ValveBiped.Bip01_R_Hand",
  253. "ValveBiped.Bip01_L_UpperArm",
  254. "ValveBiped.Bip01_L_Forearm",
  255. "ValveBiped.Bip01_L_Hand",
  256. "ValveBiped.Bip01_R_Thigh",
  257. "ValveBiped.Bip01_R_Calf",
  258. "ValveBiped.Bip01_R_Foot",
  259. "ValveBiped.Bip01_R_Toe0",
  260. "ValveBiped.Bip01_L_Thigh",
  261. "ValveBiped.Bip01_L_Calf",
  262. "ValveBiped.Bip01_L_Foot",
  263. "ValveBiped.Bip01_L_Toe0"
  264. }
  265.  
  266. //If random bones is enabled this list is gone through, randomly, and if none of the bones on this list are found the entire list (above) is gone through.
  267. //If you edit this be sure to edit the function below it.
  268. SebHack.RandomBones = {
  269. "ValveBiped.Bip01_Head1",
  270. "ValveBiped.Bip01_Neck1",
  271. "ValveBiped.Bip01_Spine4",
  272. "ValveBiped.Bip01_Spine2",
  273. "ValveBiped.Bip01_R_UpperArm",
  274. "ValveBiped.Bip01_L_UpperArm"
  275. }
  276. SebHack.GetRandomBones = function()
  277. local temp = {}
  278. local function GetBones() //Ahh recursion, i love you.
  279. if #SebHack.RandomBones > 0 then
  280. local random = math.random(1, #SebHack.RandomBones)
  281. table.insert(temp, SebHack.RandomBones[random])
  282. table.remove(SebHack.RandomBones, random)
  283. GetBones()
  284. else
  285. table.insert(SebHack.RandomBones, "ValveBiped.Bip01_Head1")
  286. table.insert(SebHack.RandomBones, "ValveBiped.Bip01_Neck1")
  287. table.insert(SebHack.RandomBones, "ValveBiped.Bip01_Spine4")
  288. table.insert(SebHack.RandomBones, "ValveBiped.Bip01_Spine2")
  289. table.insert(SebHack.RandomBones, "ValveBiped.Bip01_R_UpperArm")
  290. table.insert(SebHack.RandomBones, "ValveBiped.Bip01_L_UpperArm")
  291. end
  292. end
  293. GetBones()
  294. return temp
  295. end
  296.  
  297. //A list of all keyboard keys, for binding
  298. SebHack.Keys = {
  299. [0] = "KEY_NONE",
  300. [1] = "KEY_0",
  301. [2] = "KEY_1",
  302. [3] = "KEY_2",
  303. [4] = "KEY_3",
  304. [5] = "KEY_4",
  305. [6] = "KEY_5",
  306. [7] = "KEY_6",
  307. [8] = "KEY_7",
  308. [9] = "KEY_8",
  309. [10] = "KEY_9",
  310. [11] = "KEY_A",
  311. [12] = "KEY_B",
  312. [13] = "KEY_C",
  313. [14] = "KEY_D",
  314. [15] = "KEY_E",
  315. [16] = "KEY_F",
  316. [17] = "KEY_G",
  317. [18] = "KEY_H",
  318. [19] = "KEY_I",
  319. [20] = "KEY_J",
  320. [21] = "KEY_K",
  321. [22] = "KEY_L",
  322. [23] = "KEY_M",
  323. [24] = "KEY_N",
  324. [25] = "KEY_O",
  325. [26] = "KEY_P",
  326. [27] = "KEY_Q",
  327. [28] = "KEY_R",
  328. [29] = "KEY_S",
  329. [30] = "KEY_T",
  330. [31] = "KEY_U",
  331. [32] = "KEY_V",
  332. [33] = "KEY_W",
  333. [34] = "KEY_X",
  334. [35] = "KEY_Y",
  335. [36] = "KEY_Z",
  336. [37] = "KEY_PAD_0",
  337. [38] = "KEY_PAD_1",
  338. [39] = "KEY_PAD_2",
  339. [40] = "KEY_PAD_3",
  340. [41] = "KEY_PAD_4",
  341. [42] = "KEY_PAD_5",
  342. [43] = "KEY_PAD_6",
  343. [44] = "KEY_PAD_7",
  344. [45] = "KEY_PAD_8",
  345. [46] = "KEY_PAD_9",
  346. [47] = "KEY_PAD_DIVIDE",
  347. [48] = "KEY_PAD_MULTIPLY",
  348. [49] = "KEY_PAD_MINUS",
  349. [50] = "KEY_PAD_PLUS",
  350. [51] = "KEY_PAD_ENTER",
  351. [52] = "KEY_PAD_DECIMAL",
  352. [53] = "KEY_LBRACKET",
  353. [54] = "KEY_RBRACKET",
  354. [55] = "KEY_SEMICOLON",
  355. [56] = "KEY_APOSTROPHE",
  356. [57] = "KEY_BACKQUOTE",
  357. [58] = "KEY_COMMA",
  358. [59] = "KEY_PERIOD",
  359. [60] = "KEY_SLASH",
  360. [61] = "KEY_BACKSLASH",
  361. [62] = "KEY_MINUS",
  362. [63] = "KEY_EQUAL",
  363. [64] = "KEY_ENTER",
  364. [65] = "KEY_SPACE",
  365. [66] = "KEY_BACKSPACE",
  366. [67] = "KEY_TAB",
  367. [68] = "KEY_CAPSLOCK",
  368. [69] = "KEY_NUMLOCK",
  369. [70] = "KEY_ESCAPE",
  370. [71] = "KEY_SCROLLLOCK",
  371. [72] = "KEY_INSERT",
  372. [73] = "KEY_DELETE",
  373. [74] = "KEY_HOME",
  374. [75] = "KEY_END",
  375. [76] = "KEY_PAGEUP",
  376. [77] = "KEY_PAGEDOWN",
  377. [78] = "KEY_BREAK",
  378. [79] = "KEY_LSHIFT",
  379. [80] = "KEY_RSHIFT",
  380. [81] = "KEY_LALT",
  381. [82] = "KEY_RALT",
  382. [83] = "KEY_LCONTROL",
  383. [84] = "KEY_RCONTROL",
  384. [85] = "KEY_LWIN",
  385. [86] = "KEY_RWIN",
  386. [87] = "KEY_APP",
  387. [88] = "KEY_UP",
  388. [89] = "KEY_LEFT",
  389. [90] = "KEY_DOWN",
  390. [91] = "KEY_RIGHT",
  391. [92] = "KEY_F1",
  392. [93] = "KEY_F2",
  393. [94] = "KEY_F3",
  394. [95] = "KEY_F4",
  395. [96] = "KEY_F5",
  396. [97] = "KEY_F6",
  397. [98] = "KEY_F7",
  398. [99] = "KEY_F8",
  399. [100] = "KEY_F9",
  400. [101] = "KEY_F10",
  401. [102] = "KEY_F11",
  402. [103] = "KEY_F12",
  403. //[104] = "KEY_CAPSLOCKTOGGLE", //THESE
  404. //[105] = "KEY_NUMLOCKTOGGLE", //MOFOS
  405. //[106] = "KEY_SCROLLLOCKTOGGLE", //SHOULD DIE
  406. [107] = "KEY_XBUTTON_UP",
  407. [108] = "KEY_XBUTTON_DOWN",
  408. [109] = "KEY_XBUTTON_LEFT",
  409. [110] = "KEY_XBUTTON_RIGHT",
  410. [111] = "KEY_XBUTTON_START",
  411. [112] = "KEY_XBUTTON_BACK",
  412. [113] = "KEY_XBUTTON_STICK1",
  413. [114] = "KEY_XBUTTON_STICK2",
  414. [115] = "KEY_XBUTTON_A",
  415. [116] = "KEY_XBUTTON_B",
  416. [117] = "KEY_XBUTTON_X",
  417. [118] = "KEY_XBUTTON_Y",
  418. [119] = "KEY_XBUTTON_BLACK",
  419. [120] = "KEY_XBUTTON_WHITE",
  420. [121] = "KEY_XBUTTON_LTRIGGER",
  421. [122] = "KEY_XBUTTON_RTRIGGER",
  422. [123] = "KEY_XSTICK1_UP",
  423. [124] = "KEY_XSTICK1_DOWN",
  424. [125] = "KEY_XSTICK1_LEFT",
  425. [126] = "KEY_XSTICK1_RIGHT",
  426. [127] = "KEY_XSTICK2_UP",
  427. [128] = "KEY_XSTICK2_DOWN",
  428. [129] = "KEY_XSTICK2_LEFT",
  429. [130] = "KEY_XSTICK2_RIGHT"
  430. }
  431. //A list of all mouse keys, for binding
  432. SebHack.MouseKeys = {
  433. [107] = "MOUSE_LEFT",
  434. [108] = "MOUSE_RIGHT",
  435. [109] = "MOUSE_MIDDLE",
  436. [110] = "MOUSE_4",
  437. [111] = "MOUSE_5"
  438. }
  439. //Tells me if a specific key is pressed. Loops through both tables.
  440. SebHack.KeyPressed = function(key)
  441. if SebHack.InChat then return false end
  442.  
  443. for k = 107, 111 do
  444. if key == SebHack.MouseKeys[k] then
  445. if input.IsMouseDown(k) then
  446. return true
  447. else
  448. return false
  449. end
  450. end
  451. end
  452.  
  453. for k = 0, 130 do
  454. if key == SebHack.Keys[k] then
  455. if input.IsKeyDown(k) then
  456. return true
  457. else
  458. return false
  459. end
  460. end
  461. end
  462.  
  463. return false
  464. end
  465.  
  466. //Very simple. If the boolean is true it returns 1. If the boolean is false then it returns 0. I dont think i ended up using this anywhere, but whatever, ill leave it here.
  467. SebHack.BoolToInt = function(bool)
  468. if bool then
  469. return 1
  470. else
  471. return 0
  472. end
  473. end
  474.  
  475. //Checking if a bone is visible, pos is the position of the bone and ent is the entity whos bone were looking for.
  476. SebHack.SpotIsVisible = function(pos, ent)
  477. ent = ent or SebHack.Aimbot.CurTarget
  478. local tracedata = {}
  479. tracedata.start = SebHack.Ply:GetShootPos()
  480. tracedata.endpos = pos
  481. tracedata.filter = {SebHack.Ply, ent}
  482.  
  483. local trace = util.TraceLine(tracedata)
  484. if trace.HitPos:Distance(pos) < 0.005 then
  485. return true
  486. else
  487. return false
  488. end
  489. end
  490.  
  491. //Checks all of the entities bones to find if we can see this entity or not.
  492. SebHack.CanSee = function(ent)
  493. for k = 1, #SebHack.Bones do
  494. local v = SebHack.Bones[k]
  495. local bone = ent:LookupBone(v)
  496. if bone != nil then
  497. local pos, ang = ent:GetBonePosition(bone)
  498. if SebHack.SpotIsVisible(pos, ent) then
  499. return true
  500. end
  501. end
  502. end
  503. return false
  504. end
  505.  
  506. //This returns the next entity we should attack.
  507. SebHack.GetTarget = function()
  508. if SebHack.Aimbot.Vars["AttackNPCs"]:GetBool() or SebHack.Aimbot.Vars["AttackPlayers"]:GetBool() then
  509. local targets = {}
  510. local everything = ents.GetAll()
  511. for k = 1, #everything do
  512. local v = everything[k]
  513. if SebHack.Aimbot.Vars["AttackNPCs"]:GetBool() and v:IsNPC() then
  514. if SebHack.CanSee(v) then
  515. table.insert(targets, {["Target"] = v, ["Pos"] = v:LocalToWorld(v:OBBCenter())})
  516. end
  517. elseif SebHack.Aimbot.Vars["AttackPlayers"]:GetBool() and v:IsPlayer() and v != SebHack.Ply then
  518. if SebHack.CanSee(v) then
  519. table.insert(targets, {["Target"] = v, ["Pos"] = v:LocalToWorld(v:OBBCenter())})
  520. end
  521. end
  522. end
  523.  
  524. for k,v in SortedPairs(targets, true) do //It will already be sorted so this shouldn't be too resource heavy, the main point of this is to loop through the table backwards
  525. local v = v["Target"]
  526. local shouldremove = false
  527. if SebHack.Aimbot.Vars["IgnoreTeam"]:GetBool() and v:IsPlayer() then
  528. if SebHack.TTT then
  529. if SebHack.Ply:GetRole() == 1 and v:GetRole() == 1 then
  530. shouldremove = true
  531. end
  532.  
  533. if SebHack.Ply:GetRole() != 1 and not table.HasValue(SebHack.Traitors, v) then
  534. shouldremove = true
  535. end
  536. else
  537. if v:Team() == SebHack.Ply:Team() then
  538. shouldremove = true
  539. end
  540. end
  541. end
  542.  
  543. if SebHack.Friends.Vars["Active"]:GetBool() then
  544. if SebHack.Friends.Vars["Reverse"]:GetBool() then
  545. if not table.HasValue(SebHack.Friends.List, v:SteamID()) then
  546. shouldremove = true
  547. end
  548. else
  549. if table.HasValue(SebHack.Friends.List, v:SteamID()) then
  550. shouldremove = true
  551. end
  552. end
  553. end
  554.  
  555. if shouldremove then
  556. table.remove(targets, k)
  557. end
  558. end
  559.  
  560. if #targets == 0 then
  561. return nil
  562. elseif #targets == 1 then
  563. targets[1]["Target"].BoneToAimAt = nil
  564. return targets[1]["Target"]
  565. end
  566.  
  567. if SebHack.Aimbot.Vars["Preferance"]:GetString() == "Distance" then
  568. local min = {["Distance"] = SebHack.Ply:GetPos():Distance(targets[1]["Pos"]), ["Target"] = targets[1]["Target"]}
  569. for k = 1, #targets do
  570. local v = targets[k]
  571.  
  572. local distance = SebHack.Ply:GetPos():Distance(v["Pos"])
  573. if distance < min["Distance"] then
  574. min = {["Distance"] = distance, ["Target"] = v["Target"]}
  575. end
  576. end
  577. min["Target"].BoneToAimAt = nil
  578. return min["Target"]
  579. elseif SebHack.Aimbot.Vars["Preferance"]:GetString() == "Angle" then
  580. local min = {["Angle"] = SebHack.AngleTo(targets[1]["Pos"]), ["Target"] = targets[1]["Target"]}
  581. for k = 1, #targets do
  582. local v = targets[k]
  583.  
  584. local angle = SebHack.AngleTo(v["Pos"])
  585. if angle < min["Angle"] then
  586. min = {["Angle"] = angle, ["Target"] = v["Target"]}
  587. end
  588. end
  589. min["Target"].BoneToAimAt = nil
  590. return min["Target"]
  591. end
  592. else
  593. return nil
  594. end
  595. end
  596.  
  597. //This returns the total angle away from the target we are, and then the pitch and yaw seperately
  598. SebHack.AngleTo = function(pos)
  599. local myAngs = SebHack.Ply:GetAngles()
  600. local needed = (pos - SebHack.Ply:GetShootPos()):Angle()
  601.  
  602. myAngs.p = math.NormalizeAngle(myAngs.p)
  603. needed.p = math.NormalizeAngle(needed.p)
  604.  
  605. myAngs.y = math.NormalizeAngle(myAngs.y)
  606. needed.y = math.NormalizeAngle(needed.y)
  607.  
  608. local p = math.NormalizeAngle(needed.p - myAngs.p)
  609. local y = math.NormalizeAngle(needed.y - myAngs.y)
  610.  
  611. return math.abs(p) + math.abs(y), {p = p, y = y}
  612. end
  613.  
  614. //Returns true if our target meets our preferances.
  615. SebHack.ValidTarget = function()
  616. if SebHack.Aimbot.CurTarget == nil then return false end
  617. if not IsValid(SebHack.Aimbot.CurTarget) then return false end
  618. if SebHack.Aimbot.CurTarget:IsPlayer() and (not SebHack.Aimbot.CurTarget:Alive() or SebHack.Aimbot.CurTarget:Team() == TEAM_SPECTATOR or SebHack.Aimbot.CurTarget:Health() < 1) then return false end
  619. if not SebHack.Aimbot.Vars["AttackNPCs"]:GetBool() and SebHack.Aimbot.CurTarget:IsNPC() then return false end
  620. if not SebHack.Aimbot.Vars["AttackPlayers"]:GetBool() and SebHack.Aimbot.CurTarget:IsPlayer() then return false end
  621. if not SebHack.CanSee(SebHack.Aimbot.CurTarget) then return false end
  622. if SebHack.Aimbot.Vars["IgnoreTeam"]:GetBool() and SebHack.Aimbot.CurTarget:IsPlayer() then
  623. if SebHack.TTT then
  624. if SebHack.Ply:GetRole() == 1 and SebHack.Aimbot.CurTarget:GetRole() == 1 then return false end
  625. if SebHack.Ply:GetRole() != 1 and not table.HasValue(SebHack.Traitors, SebHack.Aimbot.CurTarget) then return false end
  626. else
  627. if SebHack.Aimbot.CurTarget:Team() == SebHack.Ply:Team() then return false end
  628. end
  629. end
  630.  
  631. return true
  632. end
  633.  
  634. hook.Add("RenderScreenspaceEffects", SebHack.RandomName(math.random(10, 15)), function()
  635. if SebHack.Active:GetBool() then
  636. local everything = ents.GetAll()
  637. for k = 1, #everything do
  638. local v = everything[k]
  639.  
  640. if SebHack.Chams.Vars["Active"]:GetBool() and v != SebHack.Ply and (SebHack.Chams.Vars["MaxDistance"]:GetInt() == 0 or v:GetPos():Distance(SebHack.Ply:GetPos()) < SebHack.Chams.Vars["MaxDistance"]:GetInt()) then
  641. cam.Start3D(EyePos(), EyeAngles())
  642. if (v:IsPlayer() and v:Alive() and v:Team() != TEAM_SPECTATOR and SebHack.Chams.Vars["Players"]:GetBool()) or (v:IsNPC() and v:Health() > 0 and SebHack.Chams.Vars["NPCs"]:GetBool()) then
  643. local color = SebHack.Style.Vars["Chams"].color
  644. if SebHack.Chams.Vars["TeamBased"]:GetBool() and v:IsPlayer() then
  645. color = team.GetColor(v:Team())
  646. if SebHack.TTT then
  647. if v:GetRole() == 2 then
  648. color = Color(0, 0, 255, 255)
  649. elseif table.HasValue(SebHack.Traitors, v) then
  650. color = Color(255, 0, 0, 255)
  651. else
  652. color = Color(0, 255, 0, 255)
  653. end
  654. end
  655. end
  656. render.SuppressEngineLighting(true)
  657. render.SetColorModulation(color.r/255, color.g/255, color.b/255, 1)
  658. render.MaterialOverride(SebHack.Chams.Mat)
  659. v:DrawModel()
  660.  
  661. render.SetColorModulation((color.r + 150)/250, (color.g + 150)/250, (color.b + 150)/255, 1)
  662. if IsValid(v:GetActiveWeapon()) and SebHack.Chams.Vars["Weapons"]:GetBool() then
  663. v:GetActiveWeapon():DrawModel()
  664. end
  665.  
  666. render.SetColorModulation(1, 1, 1, 1)
  667. render.MaterialOverride()
  668. render.SetModelLighting(4, color.r/255, color.g/255, color.b/255)
  669. v:DrawModel()
  670. render.SuppressEngineLighting(false)
  671. elseif SebHack.TTT and SebHack.Chams.Vars["Bodies"]:GetBool() and v:GetClass() == "prop_ragdoll" then
  672. local color = SebHack.Style.Vars["BodyChams"].color
  673. render.SuppressEngineLighting(true)
  674. render.SetColorModulation(color.r/255, color.g/255, color.b/255, 1)
  675. render.MaterialOverride(SebHack.Chams.Mat)
  676. v:DrawModel()
  677. render.SetColorModulation(1, 1, 1, 1)
  678. render.MaterialOverride()
  679. render.SetModelLighting(4, color.r/255, color.g/255, color.b/255)
  680. v:DrawModel()
  681. render.SuppressEngineLighting(false)
  682. elseif SebHack.Entities.Vars["Active"]:GetBool() and table.HasValue(SebHack.Entities.List, v:GetClass()) then
  683. local color = SebHack.Style.Vars["Chams"].color
  684. render.SuppressEngineLighting(true)
  685. render.SetColorModulation(color.r/255, color.g/255, color.b/255, 1)
  686. render.MaterialOverride(SebHack.Chams.Mat)
  687. v:DrawModel()
  688. render.SetColorModulation(1, 1, 1, 1)
  689. render.MaterialOverride()
  690. render.SetModelLighting(4, color.r/255, color.g/255, color.b/255)
  691. v:DrawModel()
  692. render.SuppressEngineLighting(false)
  693. end
  694. cam.End3D()
  695. end
  696. end
  697. end
  698. end)
  699.  
  700. //Helper function on radar. I just copied this one from the wiki.
  701. SebHack.DrawFilledCircle = function(x, y, radius, quality)
  702. local circle = {}
  703. local tmp = 0
  704. for i = 1, quality do
  705. tmp = math.rad(i * 360) / quality
  706. circle[i] = {x = x + math.cos(tmp) * radius, y = y + math.sin(tmp) * radius}
  707. end
  708. surface.DrawPoly(circle)
  709. end
  710.  
  711. //Another helper fuction on the radar.
  712. SebHack.DrawArrow = function(x, y, myRotation)
  713. local arrow = {}
  714. arrow[1] = {x = x, y = y}
  715. arrow[2] = {x = x + 4, y = y + 7.5}
  716. arrow[3] = {x = x, y = y + 5}
  717. arrow[4] = {x = x - 4, y = y + 7.5}
  718.  
  719. //Now that i have the arrow determined, i have to rotate it to match the targets angle
  720. myRotation = myRotation * -1
  721. myRotation = math.rad(myRotation)
  722. for i = 1, 4 do
  723. local theirX = arrow[i].x
  724. local theirY = arrow[i].y
  725.  
  726. theirX = theirX - x
  727. theirY = theirY - y
  728.  
  729. arrow[i].x = theirX * math.cos(myRotation) - theirY * math.sin(myRotation)
  730. arrow[i].y = theirX * math.sin(myRotation) + theirY * math.cos(myRotation)
  731.  
  732. arrow[i].x = arrow[i].x + x
  733. arrow[i].y = arrow[i].y + y
  734. end
  735.  
  736. surface.DrawPoly(arrow)
  737. end
  738.  
  739. SebHack.Traitors = {}
  740. SebHack.SuperAdmins = {}
  741. SebHack.Admins = {}
  742. SebHack.Spectators = {}
  743. local radarX, radarY, radarWidth, radarHeight = 100, 200, 150, 150
  744. hook.Add("HUDPaint", SebHack.RandomName(math.random(10, 15)), function()
  745. if SebHack.Active:GetBool() then
  746. local everything = ents.GetAll()
  747.  
  748. if SebHack.ESP.Vars["Active"]:GetBool() and SebHack.ESP.Vars["Radar"]:GetBool() then //Setting up the background here. And since the ESP doesnt draw you
  749. draw.RoundedBox(0, radarX, radarY, radarWidth, radarHeight, Color(100, 100, 100, 255 ))
  750. draw.NoTexture()
  751. if SebHack.ESP.Vars["TeamBased"]:GetBool() then
  752. local color = team.GetColor(SebHack.Ply:Team())
  753. if SebHack.TTT then
  754. if SebHack.Ply:GetRole() == 2 then
  755. color = Color(0, 0, 255, 255)
  756. elseif SebHack.Ply:GetRole() == 1 then
  757. color = Color(255, 0, 0, 255)
  758. else
  759. color = Color(0, 255, 0, 255)
  760. end
  761. end
  762. surface.SetDrawColor(color)
  763. else
  764. surface.SetDrawColor(SebHack.Style.Vars["ESPText"].color)
  765. end
  766. SebHack.DrawArrow(radarX + (radarWidth / 2), radarY + (radarHeight / 2), 0)
  767. end
  768.  
  769. for k = 1, #everything do
  770. local v = everything[k]
  771.  
  772. if SebHack.ESP.Vars["Active"]:GetBool() and v != SebHack.Ply and (SebHack.ESP.Vars["MaxDistance"]:GetInt() == 0 or v:GetPos():Distance(SebHack.Ply:GetPos()) < SebHack.ESP.Vars["MaxDistance"]:GetInt()) then
  773. if (v:IsPlayer() and v:Alive() and v:Team() != TEAM_SPECTATOR and SebHack.ESP.Vars["Players"]:GetBool()) or (v:IsNPC() and v:Health() > 0 and SebHack.ESP.Vars["NPCs"]:GetBool()) then
  774. local color = SebHack.Style.Vars["ESPText"].color
  775. if SebHack.ESP.Vars["TeamBased"]:GetBool() and v:IsPlayer() then
  776. color = team.GetColor(v:Team())
  777. if SebHack.TTT then
  778. if v:GetRole() == 2 then
  779. color = Color(0, 0, 255, 255)
  780. elseif table.HasValue(SebHack.Traitors, v) then
  781. color = Color(255, 0, 0, 255)
  782. else
  783. color = Color(0, 255, 0, 255)
  784. end
  785. end
  786. end
  787.  
  788. local Min, Max = v:GetCollisionBounds()
  789. if SebHack.ESP.Vars["Box"]:GetBool() then
  790. local one = v:LocalToWorld(Min):ToScreen()
  791. local two = v:LocalToWorld(Vector(Min.x, Min.y, Max.z)):ToScreen()
  792. local three = v:LocalToWorld(Vector(Min.x, Min.y + (Max.y * 2), Min.z)):ToScreen()
  793. local four = v:LocalToWorld(Vector(Min.x + (Max.x * 2), Min.y, Min.z)):ToScreen()
  794. local five = v:LocalToWorld(Max):ToScreen()
  795. local six = v:LocalToWorld(Vector(Max.x, Max.y, Min.z)):ToScreen()
  796. local seven = v:LocalToWorld(Vector(Max.x, Max.y + (Min.y * 2), Max.z)):ToScreen()
  797. local eight = v:LocalToWorld(Vector(Max.x + (Min.x * 2), Max.y, Max.z)):ToScreen()
  798.  
  799. if SebHack.ESP.Vars["TeamBased"]:GetBool() then
  800. surface.SetDrawColor(color)
  801. else
  802. surface.SetDrawColor(SebHack.Style.Vars["BoundingBox"].color)
  803. end
  804. local function connect(tabone, tabtwo)
  805. surface.DrawLine(tabone.x, tabone.y, tabtwo.x, tabtwo.y)
  806. end
  807.  
  808. connect(one, two)
  809. connect(three, eight)
  810. connect(four, seven)
  811. connect(six, five)
  812. connect(four, six)
  813. connect(four, one)
  814. connect(one, three)
  815. connect(three, six)
  816. connect(five, eight)
  817. connect(eight, two)
  818. connect(two, seven)
  819. connect(seven, five)
  820. end
  821.  
  822. surface.SetFont("ESPFont")
  823. local top = v:GetPos() + Vector(0, 0, Max.z + 10) // A little above their head so its not constantly covering their face.
  824. local topscreen = top:ToScreen()
  825. local topy = topscreen.y
  826.  
  827. local bottom = v:GetPos()
  828. local bottomscreen = bottom:ToScreen()
  829. local bottomy = bottomscreen.y
  830.  
  831. local function DrawAbove(text)
  832. local W, H = surface.GetTextSize(text)
  833. surface.SetTextPos(topscreen.x - W / 2, topy)
  834. surface.DrawText(text)
  835.  
  836. topy = topy + H
  837. end
  838.  
  839. local function DrawBelow(text)
  840. local W, H = surface.GetTextSize(text)
  841. surface.SetTextPos(bottomscreen.x - W / 2, bottomy)
  842. surface.DrawText(text)
  843.  
  844. bottomy = bottomy + H
  845. end
  846.  
  847. surface.SetTextColor(Color(255, 0, 0, 255))
  848. if SebHack.ESP.Vars["ShowTraitors"]:GetString() != "Off" and table.HasValue(SebHack.Traitors, v) then
  849. if SebHack.ESP.Vars["ShowTraitors"]:GetString() == "Above" then
  850. DrawAbove("Traitor")
  851. else
  852. DrawBelow("Traitor")
  853. end
  854. end
  855.  
  856. surface.SetTextColor(color)
  857. if v:IsPlayer() then
  858. if SebHack.ESP.Vars["Name"]:GetString() == "Above" then
  859. DrawAbove("Name: "..v:Nick())
  860. elseif SebHack.ESP.Vars["Name"]:GetString() == "Below" then
  861. DrawBelow("Name: "..v:Nick())
  862. end
  863. else
  864. if SebHack.ESP.Vars["Name"]:GetString() == "Above" then
  865. DrawAbove("Name: "..v:GetClass())
  866. elseif SebHack.ESP.Vars["Name"]:GetString() == "Below" then
  867. DrawBelow("Name: "..v:GetClass())
  868. end
  869. end
  870.  
  871. if SebHack.ESP.Vars["Weapons"]:GetString() == "Above" and IsValid(v:GetActiveWeapon()) then
  872. DrawAbove("Weapon: "..v:GetActiveWeapon():GetClass())
  873. elseif SebHack.ESP.Vars["Weapons"]:GetString() == "Below" and IsValid(v:GetActiveWeapon()) then
  874. DrawBelow("Weapon: "..v:GetActiveWeapon():GetClass())
  875. end
  876.  
  877. if SebHack.ESP.Vars["Distance"]:GetString() == "Above" then
  878. DrawAbove("Distance: "..bottom:Distance(SebHack.Ply:GetPos()))
  879. elseif SebHack.ESP.Vars["Distance"]:GetString() == "Below" then
  880. DrawBelow("Distance: "..bottom:Distance(SebHack.Ply:GetPos()))
  881. end
  882.  
  883. if SebHack.ESP.Vars["Health"]:GetString() == "Above" then
  884. DrawAbove("HP: "..v:Health())
  885. elseif SebHack.ESP.Vars["Health"]:GetString() == "Below" then
  886. DrawBelow("HP: "..v:Health())
  887. end
  888.  
  889. if SebHack.ESP.Vars["Radar"]:GetBool() then
  890. surface.SetDrawColor(color)
  891. local myPos = SebHack.Ply:GetPos()
  892. local theirPos = v:GetPos()
  893. local myAngles = SebHack.Ply:GetAngles()
  894.  
  895. local theirX = (radarX + (radarWidth / 2)) + ((theirPos.x - myPos.x) / SebHack.ESP.Vars["RadarScale"]:GetInt())
  896. local theirY = (radarY + (radarHeight / 2)) + ((myPos.y - theirPos.y) / SebHack.ESP.Vars["RadarScale"]:GetInt())
  897.  
  898. //Now i have to rotate this
  899. local myRotation = myAngles.y - 90
  900. myRotation = math.rad(myRotation)
  901.  
  902. theirX = theirX - (radarX + (radarWidth / 2))
  903. theirY = theirY - (radarY + (radarHeight / 2))
  904. local newX = theirX * math.cos(myRotation) - theirY * math.sin(myRotation)
  905. local newY = theirX * math.sin(myRotation) + theirY * math.cos(myRotation)
  906. newX = newX + (radarX + (radarWidth / 2))
  907. newY = newY + (radarY + (radarHeight / 2))
  908.  
  909. //And now that its rotated i can check if its within our radars bounds and draw it
  910. if newX < (radarX + radarWidth) and newX > radarX and newY < (radarY + radarHeight) and newY > radarY then
  911. SebHack.DrawArrow(newX, newY, v:EyeAngles().y - myAngles.y)
  912. end
  913. end
  914. elseif SebHack.TTT and SebHack.ESP.Vars["Bodies"]:GetBool() and v:GetClass() == "prop_ragdoll" then
  915. surface.SetFont("ESPFont")
  916.  
  917. //Im just going to position this info at the center of the player, if i get any complaints ill change it
  918. local pos = v:LocalToWorld(v:OBBCenter())
  919. local poscreen = pos:ToScreen()
  920. local W, H = surface.GetTextSize("Sample") //It doesnt have to be perfect but this will help center the text more.
  921. local y = poscreen.y - (H * 1.5)
  922.  
  923. local function DrawText(text)
  924. local W, H = surface.GetTextSize(text)
  925. surface.SetTextPos(poscreen.x - W / 2, y)
  926. surface.DrawText(text)
  927.  
  928. y = y + H
  929. end
  930.  
  931. surface.SetTextColor(SebHack.Style.Vars["BodyText"].color)
  932. DrawText("Credits: "..SebHack.TTTCORPSE.GetCredits(v, 0))
  933. DrawText("Name: "..SebHack.TTTCORPSE.GetPlayerNick(v, "Unknown"))
  934. DrawText("Found: "..tostring(SebHack.TTTCORPSE.GetFound(v, false)))
  935.  
  936. if SebHack.ESP.Vars["Radar"] then
  937. surface.SetDrawColor(SebHack.Style.Vars["BodyText"].color)
  938. local myPos = SebHack.Ply:GetPos()
  939. local theirPos = v:GetPos()
  940.  
  941. local theirX = (radarX + (radarWidth / 2)) + ((theirPos.x - myPos.x) / SebHack.ESP.Vars["RadarScale"]:GetInt())
  942. local theirY = (radarY + (radarHeight / 2)) + ((myPos.y - theirPos.y) / SebHack.ESP.Vars["RadarScale"]:GetInt())
  943.  
  944. //Now i have to rotate this
  945. local myRotation = SebHack.Ply:GetAngles().y - 90
  946. myRotation = math.rad(myRotation)
  947.  
  948. theirX = theirX - (radarX + (radarWidth / 2))
  949. theirY = theirY - (radarY + (radarHeight / 2))
  950. local newX = theirX * math.cos(myRotation) - theirY * math.sin(myRotation)
  951. local newY = theirX * math.sin(myRotation) + theirY * math.cos(myRotation)
  952. newX = newX + (radarX + (radarWidth / 2))
  953. newY = newY + (radarY + (radarHeight / 2))
  954.  
  955. //And now that its rotated i can check if its within our radars bounds and draw it
  956. if newX < (radarX + radarWidth) and newX > radarX and newY < (radarY + radarHeight) and newY > radarY then
  957. SebHack.DrawFilledCircle(newX, newY, 2, 4)
  958. end
  959. end
  960. elseif SebHack.Entities.Vars["Active"]:GetBool() and table.HasValue(SebHack.Entities.List, v:GetClass()) then
  961. surface.SetFont("ESPFont")
  962. surface.SetTextColor(SebHack.Style.Vars["ESPText"].color)
  963.  
  964. local text = v:GetClass()
  965. local W, H = surface.GetTextSize(text)
  966.  
  967. local PosScreen = v:GetPos():ToScreen()
  968. surface.SetTextPos(PosScreen.x - W / 2, PosScreen.y)
  969. surface.DrawText(text)
  970. end
  971. end
  972.  
  973. surface.SetFont("default")
  974. if v:IsPlayer() and v:IsSuperAdmin() then
  975. if not table.HasValue(SebHack.SuperAdmins, v) then
  976. table.insert(SebHack.SuperAdmins, v)
  977. SebHack.Message("Super Admin "..v:Nick().." joined the game.")
  978. if SebHack.Misc.Vars["Sounds"]:GetBool() then
  979. surface.PlaySound("vo/npc/Alyx/watchout02.wav")
  980. end
  981. end
  982. end
  983. if v:IsPlayer() and v:IsAdmin() and not v:IsSuperAdmin() then
  984. if not table.HasValue(SebHack.Admins, v) then
  985. table.insert(SebHack.Admins, v)
  986. SebHack.Message("Admin "..v:Nick().." joined the game.")
  987. if SebHack.Misc.Vars["Sounds"]:GetBool() then
  988. surface.PlaySound("vo/npc/Alyx/watchout01.wav")
  989. end
  990. end
  991. end
  992. for k,v in SortedPairs(SebHack.Admins, true) do
  993. if not IsValid(v) then
  994. table.remove(SebHack.Admins, k)
  995. end
  996. end
  997. for k,v in SortedPairs(SebHack.SuperAdmins, true) do
  998. if not IsValid(v) then
  999. table.remove(SebHack.SuperAdmins, k)
  1000. end
  1001. end
  1002.  
  1003. if v:IsPlayer() and v:GetObserverTarget() == SebHack.Ply then
  1004. if not table.HasValue(SebHack.Spectators, v) then
  1005. table.insert(SebHack.Spectators, v)
  1006. SebHack.Message(v:Nick().." started spectating you.")
  1007. if SebHack.Misc.Vars["Sounds"]:GetBool() then
  1008. surface.PlaySound("vo/npc/female01/ohno.wav")
  1009. end
  1010. end
  1011. end
  1012. for k,v in SortedPairs(SebHack.Spectators, true) do
  1013. if IsValid(v) then
  1014. if v:GetObserverTarget() != SebHack.Ply then
  1015. table.remove(SebHack.Spectators, k)
  1016. end
  1017. else
  1018. table.remove(SebHack.Spectators, k)
  1019. end
  1020. end
  1021.  
  1022. if SebHack.TTT and SebHack.Misc.Vars["TraitorFinder"]:GetBool() then
  1023. if GetRoundState() == 3 and v:IsWeapon() and type(v:GetOwner()) == "Player" and v.Buyer == nil and v.CanBuy and table.HasValue(v.CanBuy, 1) then
  1024. local owner = v:GetOwner()
  1025. if owner:GetRole() == 2 then
  1026. v.Buyer = owner
  1027. else
  1028. SebHack.Message(owner:Nick().." bought a traitor weapon: "..v:GetClass())
  1029. v.Buyer = owner
  1030. table.insert(SebHack.Traitors, owner)
  1031. if SebHack.Misc.Vars["Sounds"]:GetBool() then
  1032. surface.PlaySound("weapons/shotgun/shotgun_cock.wav")
  1033. end
  1034. end
  1035. elseif GetRoundState() != 3 then
  1036. table.Empty(SebHack.Traitors)
  1037. end
  1038. end
  1039.  
  1040. if SebHack.Misc.Vars["Deaths"]:GetBool() and v:IsPlayer() then
  1041. if v:Alive() then
  1042. v.IsAlive = true
  1043. elseif v.IsAlive then
  1044. SebHack.Message(3, v:Nick().." just died.")
  1045. v.IsAlive = false
  1046. if SebHack.Misc.Vars["Sounds"]:GetBool() then
  1047. surface.PlaySound("npc/combine_soldier/vo/onedown.wav")
  1048. end
  1049. end
  1050. end
  1051. end
  1052.  
  1053. surface.SetFont("default")
  1054. surface.SetTextColor(Color(255, 255, 255, 255))
  1055. local AdminWidest = 0
  1056. local AdminTotalHeight = 0
  1057. local AdminHeight = 20
  1058. if SebHack.Misc.Vars["ShowAdmins"]:GetBool() then
  1059. for k,v in pairs(SebHack.SuperAdmins) do
  1060. local W, H = surface.GetTextSize(v:Nick().." - Super Admin")
  1061. if W > AdminWidest then
  1062. AdminWidest = W
  1063. end
  1064. AdminTotalHeight = AdminTotalHeight + H
  1065. end
  1066. for k,v in pairs(SebHack.Admins) do
  1067. local W, H = surface.GetTextSize(v:Nick().." - Admin")
  1068. if W > AdminWidest then
  1069. AdminWidest = W
  1070. end
  1071. AdminTotalHeight = AdminTotalHeight + H
  1072. end
  1073. draw.RoundedBox(8, ScrW() - AdminWidest - 30, 10, AdminWidest + 20, AdminTotalHeight + 20, Color(0, 0, 0, 150 ))
  1074. for k,v in pairs(SebHack.SuperAdmins) do
  1075. local text = v:Nick().." - Super Admin"
  1076. local W, H = surface.GetTextSize(text)
  1077. surface.SetTextPos(ScrW() - 20 - AdminWidest, AdminHeight)
  1078. surface.DrawText(text)
  1079. AdminHeight = AdminHeight + H
  1080. end
  1081. for k,v in pairs(SebHack.Admins) do
  1082. local text = v:Nick().." - Admin"
  1083. local W, H = surface.GetTextSize(text)
  1084. surface.SetTextPos(ScrW() - 20 - AdminWidest, AdminHeight)
  1085. surface.DrawText(text)
  1086. AdminHeight = AdminHeight + H
  1087. end
  1088. end
  1089.  
  1090. local SpecWidest = 0
  1091. local SpecTotalHeight = 0
  1092. local SpecHeight = AdminTotalHeight + 50
  1093. if SebHack.Misc.Vars["ShowSpectators"]:GetBool() then
  1094. for k,v in pairs(SebHack.Spectators) do
  1095. local W, H = surface.GetTextSize(v:Nick())
  1096. if W > SpecWidest then
  1097. SpecWidest = W
  1098. end
  1099. SpecTotalHeight = SpecTotalHeight + H
  1100. end
  1101. draw.RoundedBox(8, ScrW() - SpecWidest - 30, 40 + AdminTotalHeight, SpecWidest + 20, SpecTotalHeight + 20, Color(0, 0, 0, 150 ))
  1102. for k,v in pairs(SebHack.Spectators) do
  1103. local text = v:Nick()
  1104. local W, H = surface.GetTextSize(text)
  1105. surface.SetTextPos(ScrW() - 20 - SpecWidest, SpecHeight)
  1106. surface.DrawText(text)
  1107. SpecHeight = SpecHeight + H
  1108. end
  1109. end
  1110.  
  1111. if SebHack.Misc.Vars["Crosshair"]:GetBool() then
  1112. local size = SebHack.Misc.Vars["CrosshairSize"]:GetInt()
  1113. local MiddleScreen = {x = surface.ScreenWidth() / 2, y = surface.ScreenHeight() / 2}
  1114. surface.SetDrawColor(SebHack.Style.Vars["Crosshair"].color)
  1115. surface.DrawLine(MiddleScreen.x, MiddleScreen.y, MiddleScreen.x - size, MiddleScreen.y)
  1116. surface.DrawLine(MiddleScreen.x, MiddleScreen.y, MiddleScreen.x, MiddleScreen.y - size)
  1117. surface.DrawLine(MiddleScreen.x, MiddleScreen.y, MiddleScreen.x + size, MiddleScreen.y)
  1118. surface.DrawLine(MiddleScreen.x, MiddleScreen.y, MiddleScreen.x, MiddleScreen.y + size)
  1119. end
  1120.  
  1121. if SebHack.Misc.Vars["Lasersight"]:GetBool() then
  1122. local ply = LocalPlayer()
  1123. local vm = ply:GetViewModel()
  1124.  
  1125. if vm then
  1126. local attachmentIndex = vm:LookupAttachment("1")
  1127.  
  1128. if attachmentIndex == 0 then attachmentIndex = vm:LookupAttachment("muzzle") end
  1129.  
  1130. local t = util.GetPlayerTrace(ply)
  1131. local tr = util.TraceLine(t)
  1132. if vm:GetAttachment(attachmentIndex) then
  1133. cam.Start3D(EyePos(), EyeAngles())
  1134. render.SetMaterial(Material("sprites/bluelaser1"))
  1135. render.DrawBeam(vm:GetAttachment(attachmentIndex).Pos, tr.HitPos, 10, 0, 12.5, Color(255, 0, 0, 255))
  1136. local Size = math.random() * 10
  1137. cam.End3D()
  1138. end
  1139. end
  1140. end
  1141.  
  1142. end
  1143. end)
  1144.  
  1145. hook.Add("Think", SebHack.RandomName(math.random(10, 15)), function()
  1146. if SebHack.Active:GetBool() then
  1147. if SebHack.Aimbot.Vars["Active"]:GetBool() and not (SebHack.Aimbot.Vars["PanicMode"]:GetBool() and #SebHack.Spectators > 0) then
  1148. if not SebHack.Aimbot.Vars["AimOnKey"]:GetBool() or (SebHack.Aimbot.Vars["AimOnKey"]:GetBool() and SebHack.KeyPressed(SebHack.Aimbot.Vars["AimOnKey_Key"]:GetString())) then
  1149. if SebHack.ValidTarget() then
  1150. local BoneOrder = {}
  1151. if SebHack.Aimbot.CurTarget.BoneToAimAt and SebHack.Aimbot.Vars["RandomBones"]:GetBool() then
  1152. table.insert(BoneOrder, SebHack.Aimbot.CurTarget.BoneToAimAt)
  1153. table.Add(BoneOrder, SebHack.GetRandomBones())
  1154. table.Add(BoneOrder, SebHack.Bones)
  1155. else
  1156. if SebHack.Aimbot.Vars["RandomBones"]:GetBool() then
  1157. table.Add(BoneOrder, SebHack.GetRandomBones())
  1158. table.Add(BoneOrder, SebHack.Bones)
  1159. else
  1160. table.Add(BoneOrder, SebHack.Bones)
  1161. end
  1162. end
  1163. for k = 1, #BoneOrder do
  1164. local v = BoneOrder[k]
  1165. local bone = SebHack.Aimbot.CurTarget:LookupBone(v)
  1166. if bone != nil then
  1167. local pos, ang = SebHack.Aimbot.CurTarget:GetBonePosition(bone)
  1168. if v == "ValveBiped.Bip01_Head1" then
  1169. pos = pos + Vector(0, 0, 3) //Aiming a little higher for the head
  1170. end
  1171. local total, needed = 300, {300, 300}
  1172.  
  1173. if SebHack.Aimbot.Vars["Prediction"]:GetBool() then
  1174. local tarSpeed = SebHack.Aimbot.CurTarget:GetVelocity() * 0.013
  1175. local plySpeed = SebHack.Ply:GetVelocity() * 0.013
  1176. total, needed = SebHack.AngleTo(pos - plySpeed + tarSpeed)
  1177. else
  1178. total, needed = SebHack.AngleTo(pos)
  1179. end
  1180.  
  1181. if SebHack.SpotIsVisible(pos) and total < SebHack.Aimbot.Vars["MaxAngle"]:GetInt() then
  1182. local myAngles = SebHack.Ply:GetAngles()
  1183. local NewAngles = Angle(myAngles.p + needed.p, myAngles.y + needed.y, 0)
  1184.  
  1185. if SebHack.Aimbot.Vars["AntiSnap"]:GetBool() then
  1186. local speed = SebHack.Aimbot.Vars["AntiSnapSpeed"]:GetInt()
  1187. NewAngles = (Angle(math.Approach(myAngles.p, NewAngles.p, speed), math.Approach(myAngles.y, NewAngles.y, speed), 0))
  1188. end
  1189.  
  1190. SebHack.Ply:SetEyeAngles(NewAngles)
  1191. SebHack.Aimbot.CurTarget.BoneToAimAt = BoneOrder[k]
  1192. break
  1193. end
  1194. end
  1195. end
  1196. else
  1197. SebHack.Aimbot.CurTarget = SebHack.GetTarget()
  1198. end
  1199. else
  1200. SebHack.Aimbot.CurTarget = nil
  1201. end
  1202. end
  1203.  
  1204. if SebHack.Misc.Vars["NoRecoil"]:GetBool() then
  1205. if IsValid(SebHack.Ply:GetActiveWeapon()) then
  1206. local weapon = SebHack.Ply:GetActiveWeapon()
  1207. if weapon.Primary then
  1208. weapon.OldRecoil = weapon.OldRecoil or weapon.Primary.Recoil or weapon.Recoil
  1209. weapon.Primary.Recoil = 0
  1210. weapon.Recoil = 0
  1211. else
  1212. weapon.OldRecoil = weapon.OldRecoil or weapon.Recoil
  1213. weapon.Recoil = 0
  1214. end
  1215. end
  1216. elseif IsValid(SebHack.Ply:GetActiveWeapon()) then
  1217. local weapon = SebHack.Ply:GetActiveWeapon()
  1218. if weapon.Primary then
  1219. weapon.Primary.Recoil = weapon.OldRecoil or weapon.Primary.Recoil or weapon.Recoil
  1220. weapon.Recoil = weapon.OldRecoil or weapon.Recoil or weapon.Primary.Recoil
  1221. else
  1222. weapon.Recoil = weapon.OldRecoil or weapon.Recoil
  1223. end
  1224. end
  1225.  
  1226. if SebHack.DarkRP and SebHack.Misc.Vars["BuyHealth"]:GetBool() then
  1227. if SebHack.Ply:Alive() and SebHack.Ply:Health() < SebHack.Misc.Vars["BuyHealth_Minimum"]:GetInt() then
  1228. SebHack.Ply:ConCommand("say /buyhealth")
  1229. end
  1230. end
  1231. end
  1232. end)
  1233.  
  1234. SebHack.Misc.NextReload = CurTime()
  1235. SebHack.Misc.ShootNext = true
  1236. hook.Add("CreateMove", SebHack.RandomName(math.random(10, 15)), function(cmd)
  1237. if SebHack.Active:GetBool() then
  1238. local DontShoot = {"gmod_tool", "gmod_camera", "weapon_physgun", "weapon_physcannon"}
  1239. if SebHack.Aimbot.Vars["AutoShoot"]:GetBool() and SebHack.Aimbot.Vars["Active"]:GetBool() and SebHack.Ply:GetEyeTrace().Entity == SebHack.Aimbot.CurTarget and IsValid(SebHack.Ply:GetActiveWeapon()) and not table.HasValue(DontShoot, SebHack.Ply:GetActiveWeapon():GetClass()) then
  1240. cmd:SetButtons(cmd:GetButtons() + IN_ATTACK)
  1241. end
  1242.  
  1243. if SebHack.Misc.Vars["BunnyHop"]:GetBool() and cmd:KeyDown(IN_JUMP) and SebHack.KeyPressed(SebHack.Misc.Vars["BunnyHop_Key"]:GetString()) then
  1244. cmd:SetButtons(cmd:GetButtons() - IN_JUMP)
  1245. end
  1246. if SebHack.Misc.Vars["BunnyHop"]:GetBool() and SebHack.Ply:OnGround() and SebHack.KeyPressed(SebHack.Misc.Vars["BunnyHop_Key"]:GetString()) then
  1247. cmd:SetButtons(cmd:GetButtons() + IN_JUMP)
  1248. end
  1249.  
  1250. local DontReload = {"gmod_tool", "gmod_camera", "weapon_physgun", "weapon_physcannon", "weapon_crowbar"}
  1251. if SebHack.Misc.Vars["AutoReload"]:GetBool() and IsValid(SebHack.Ply:GetActiveWeapon()) and SebHack.Ply:GetActiveWeapon():Clip1() < 1 and not table.HasValue(DontReload, SebHack.Ply:GetActiveWeapon():GetClass()) and SebHack.Misc.NextReload < CurTime() then
  1252. cmd:SetButtons(cmd:GetButtons() + IN_RELOAD)
  1253. end
  1254.  
  1255. if SebHack.Misc.Vars["AutoPistol"]:GetBool() and IsValid(SebHack.Ply:GetActiveWeapon()) then
  1256. local weapon = SebHack.Ply:GetActiveWeapon()
  1257. if weapon.Primary and type(weapon.Primary.Automatic) == "boolean" and not weapon.Primary.Automatic then
  1258. if cmd:KeyDown(IN_ATTACK) then
  1259. if SebHack.Misc.ShootNext then
  1260. SebHack.Misc.ShootNext = false
  1261. else
  1262. cmd:SetButtons(cmd:GetButtons() - IN_ATTACK)
  1263. SebHack.Misc.ShootNext = true
  1264. end
  1265. end
  1266. elseif type(weapon.Automatic) == "boolean" and not weapon.Automatic then
  1267. if cmd:KeyDown(IN_ATTACK) then
  1268. if SebHack.Misc.ShootNext then
  1269. SebHack.Misc.ShootNext = false
  1270. else
  1271. cmd:SetButtons(cmd:GetButtons() - IN_ATTACK)
  1272. SebHack.Misc.ShootNext = true
  1273. end
  1274. end
  1275. end
  1276. end
  1277. end
  1278. end)
  1279.  
  1280. //Used to see if the player is typing in chat or not. Binds arent called when you're in chat.
  1281. SebHack.InChat = false
  1282. hook.Add("StartChat", SebHack.RandomName(math.random(10, 15)), function()
  1283. SebHack.InChat = true
  1284. end)
  1285. hook.Add("FinishChat", SebHack.RandomName(math.random(10, 15)), function()
  1286. SebHack.InChat = false
  1287. end)
  1288.  
  1289. concommand.Add("SebHack_Menu", function()
  1290. //Im only using DColumnSheet because everyone used DPropertySheet. I just want to be different
  1291. local main = vgui.Create("DFrame")
  1292. main:SetSize(500,496)
  1293. main:Center()
  1294. main:SetTitle("")
  1295. main:MakePopup()
  1296. main:ShowCloseButton(false)
  1297. main.Paint = function()
  1298. draw.RoundedBox( 0, 0, 0, main:GetWide(), main:GetTall(), Color( 0, 0, 0, 150 ) )
  1299. end
  1300.  
  1301. local PanicButton = vgui.Create("DButton", main)
  1302. PanicButton:SetSize(50, 20)
  1303. PanicButton:SetPos(415, 3)
  1304. local function Enable()
  1305. PanicButton:SetText("Disable")
  1306. PanicButton.DoClick = function()
  1307. PanicButton:SetText("Enable")
  1308. PanicButton.DoClick = Enable
  1309. SebHack.Ply:ConCommand("SebHack_Active 0")
  1310. end
  1311. SebHack.Ply:ConCommand("SebHack_Active 1")
  1312. end
  1313. local function Disable()
  1314. PanicButton:SetText("Enable")
  1315. PanicButton.DoClick = function()
  1316. PanicButton:SetText("Disable")
  1317. PanicButton.DoClick = Disable
  1318. SebHack.Ply:ConCommand("SebHack_Active 1")
  1319. end
  1320. SebHack.Ply:ConCommand("SebHack_Active 0")
  1321. end
  1322. if SebHack.Active:GetBool() then
  1323. PanicButton:SetText("Disable")
  1324. PanicButton.DoClick = Disable
  1325. else
  1326. PanicButton:SetText("Enable")
  1327. PanicButton.DoClick = Enable
  1328. end
  1329.  
  1330. local CloseButton = vgui.Create("DButton", main)
  1331. CloseButton:SetSize(30, 20)
  1332. CloseButton:SetPos(465, 3)
  1333. CloseButton:SetText("X")
  1334. CloseButton.DoClick = function()
  1335. main:Close()
  1336. end
  1337.  
  1338. local title = vgui.Create("DLabel", main)
  1339. title:SetColor(Color(255, 255, 255, 255))
  1340. title:SetFont("TitleFont")
  1341. title:SetText("SebHack - "..SebHack.Version)
  1342. title:SizeToContents()
  1343. title:SetPos(main:GetWide() / 2 - title:GetWide() / 2,3)
  1344.  
  1345. ColumnSheet = vgui.Create("DColumnSheet",main)
  1346. ColumnSheet:SetPos(5, 25)
  1347. ColumnSheet:SetSize(500 ,465)
  1348.  
  1349. local y = 40
  1350. local function ToggleOption(name, parent, var)
  1351. local Options = vgui.Create("DComboBox", parent)
  1352. Options:SetSize(100, 20)
  1353. Options:SetPos(parent:GetWide() * 0.75 - Options:GetWide() / 2, y)
  1354. Options:AddChoice("Off", 0)
  1355. Options:AddChoice("On", 1)
  1356. Options.OnSelect = function(panel,index,value,data)
  1357. SebHack.Ply:ConCommand(var.." "..data)
  1358. end
  1359. Options:SetText(Options:GetOptionText(GetConVar(var):GetInt() + 1))
  1360.  
  1361. local text = vgui.Create("DLabel", parent)
  1362. text:SetColor(Color(0, 0, 0, 255))
  1363. text:SetFont("CatagoryText")
  1364. text:SetText(name)
  1365. text:SizeToContents()
  1366. text:SetPos(parent:GetWide() / 4 - text:GetWide() / 2, y + Options:GetTall() / 2 - text:GetTall() / 2)
  1367.  
  1368. y = y + Options:GetTall() + 20
  1369. end
  1370.  
  1371. local function SetKeyOption(name, parent, var)
  1372. local Options = vgui.Create("DButton", parent)
  1373. Options:SetSize(100, 20)
  1374. Options:SetPos(parent:GetWide() * 0.75 - Options:GetWide() / 2, y)
  1375. Options:SetText(GetConVar(var):GetString())
  1376. Options.DoClick = function()
  1377. Options:SetText("Press a key...")
  1378. Options.Think = function()
  1379. for k = 107, 111 do
  1380. if input.IsMouseDown(k) then
  1381. SebHack.Ply:ConCommand(var.." "..SebHack.MouseKeys[k])
  1382. Options:SetText(SebHack.MouseKeys[k])
  1383. Options.Think = nil
  1384. end
  1385. end
  1386.  
  1387. for k = 0, 130 do
  1388. if input.IsKeyDown(k) then
  1389. SebHack.Ply:ConCommand(var.." "..SebHack.Keys[k])
  1390. Options:SetText(SebHack.Keys[k])
  1391. Options.Think = nil
  1392. end
  1393. end
  1394. end
  1395. end
  1396.  
  1397. local text = vgui.Create("DLabel", parent)
  1398. text:SetColor(Color(0, 0, 0, 255))
  1399. text:SetFont("CatagoryText")
  1400. text:SetText(name)
  1401. text:SizeToContents()
  1402. text:SetPos(parent:GetWide() / 4 - text:GetWide() / 2, y + Options:GetTall() / 2 - text:GetTall() / 2)
  1403.  
  1404. y = y + Options:GetTall() + 20
  1405. end
  1406.  
  1407. local function SetNumberOption(name, parent, var, min, max, decimals)
  1408. local Options = vgui.Create("DNumberWang", parent)
  1409. Options:SetSize(100, 20)
  1410. Options:SetPos(parent:GetWide() * 0.75 - Options:GetWide() / 2, y)
  1411. Options:SetMin(min)
  1412. Options:SetMax(max)
  1413. Options:SetDecimals(decimals)
  1414. Options:SetConVar(var)
  1415.  
  1416. local text = vgui.Create("DLabel", parent)
  1417. text:SetColor(Color(0, 0, 0, 255))
  1418. text:SetFont("CatagoryText")
  1419. text:SetText(name)
  1420. text:SizeToContents()
  1421. text:SetPos(parent:GetWide() / 4 - text:GetWide() / 2, y + Options:GetTall() / 2 - text:GetTall() / 2)
  1422.  
  1423. y = y + Options:GetTall() + 20
  1424. end
  1425.  
  1426. local function MultiOption(name, parent, var, tab)
  1427. local Options = vgui.Create("DComboBox", parent)
  1428. Options:SetSize(100, 20)
  1429. Options:SetPos(parent:GetWide() * 0.75 - Options:GetWide() / 2, y)
  1430. for i = 1, #tab do
  1431. Options:AddChoice(tab[i])
  1432. end
  1433. Options.OnSelect = function(panel,index,value,data)
  1434. SebHack.Ply:ConCommand(var.." "..value)
  1435. end
  1436. Options:SetText(GetConVar(var):GetString())
  1437.  
  1438. local text = vgui.Create("DLabel", parent)
  1439. text:SetColor(Color(0, 0, 0, 255))
  1440. text:SetFont("CatagoryText")
  1441. text:SetText(name)
  1442. text:SizeToContents()
  1443. text:SetPos(parent:GetWide() / 4 - text:GetWide() / 2, y + Options:GetTall() / 2 - text:GetTall() / 2)
  1444.  
  1445. y = y + Options:GetTall() + 20
  1446. end
  1447.  
  1448. //Starting the Aimbot panel
  1449. local Aimbot = vgui.Create("DPanel")
  1450. Aimbot:SetSize(379, 465)
  1451. Aimbot.Paint = function()
  1452. draw.RoundedBox( 0, 0, 0, Aimbot:GetWide(), Aimbot:GetTall(), Color( 240, 240, 240, 255 ) )
  1453. end
  1454.  
  1455. local title = vgui.Create("DLabel", Aimbot)
  1456. title:SetColor(Color(0, 0, 0, 255))
  1457. title:SetFont("CatagoryHeader")
  1458. title:SetText("Aimbot")
  1459. title:SizeToContents()
  1460. title:SetPos(Aimbot:GetWide() / 2 - title:GetWide() / 2, 0)
  1461.  
  1462. ToggleOption("Active", Aimbot, "SebHack_Aimbot_Active")
  1463. ToggleOption("Random Bones", Aimbot, "SebHack_Aimbot_RandomBones")
  1464. MultiOption("Preferance", Aimbot, "SebHack_Aimbot_Preferance", {"Distance", "Angle"})
  1465. ToggleOption("Attack Players", Aimbot, "SebHack_Aimbot_AttackPlayers")
  1466. ToggleOption("Attack NPCs", Aimbot, "SebHack_Aimbot_AttackNPCs")
  1467. ToggleOption("Prediction", Aimbot, "SebHack_Aimbot_Prediction")
  1468. ToggleOption("Aim On Key", Aimbot, "SebHack_Aimbot_AimOnKey")
  1469. SetKeyOption("Key", Aimbot, "SebHack_Aimbot_AimOnKey_Key")
  1470. ToggleOption("Anti Snap", Aimbot, "SebHack_Aimbot_AntiSnap")
  1471. SetNumberOption("Anti Snap Speed", Aimbot, "SebHack_Aimbot_AntiSnapSpeed", 1, 5, 2)
  1472. SetNumberOption("Max Angle", Aimbot, "SebHack_Aimbot_MaxAngle", 0, 270, 0)
  1473. ToggleOption("Auto Shoot", Aimbot, "SebHack_Aimbot_AutoShoot")
  1474. ToggleOption("Panic Mode", Aimbot, "SebHack_Aimbot_PanicMode")
  1475. ToggleOption("Ignore Team", Aimbot, "SebHack_Aimbot_IgnoreTeam")
  1476.  
  1477. if y > 465 then
  1478. Aimbot:SetTall(y)
  1479. end
  1480.  
  1481. //This is the best way i can find to add a scrollbar to the menu...
  1482. AimbotList = vgui.Create( "DPanelList" )
  1483. AimbotList:SetSize(379, 465)
  1484. AimbotList:SetSpacing(0)
  1485. AimbotList:EnableHorizontal(false)
  1486. AimbotList:EnableVerticalScrollbar(true)
  1487. AimbotList:AddItem(Aimbot)
  1488.  
  1489. ColumnSheet:AddSheet("Aimbot", AimbotList, "icon16/application_xp_terminal.png")
  1490.  
  1491. //Starting the Friends panel
  1492. local FriendsPanel = vgui.Create("DPanel")
  1493. FriendsPanel:SetSize(379, 465)
  1494. FriendsPanel.Paint = function()
  1495. draw.RoundedBox( 0, 0, 0, FriendsPanel:GetWide(), FriendsPanel:GetTall(), Color( 240, 240, 240, 255 ) )
  1496. end
  1497.  
  1498. local title = vgui.Create("DLabel", FriendsPanel)
  1499. title:SetColor(Color(0, 0, 0, 255))
  1500. title:SetFont("CatagoryHeader")
  1501. title:SetText("Friends")
  1502. title:SizeToContents()
  1503. title:SetPos(FriendsPanel:GetWide() / 2 - title:GetWide() / 2, 3)
  1504.  
  1505. local Friends = {}
  1506. local Enemies = {}
  1507.  
  1508. local players = player.GetAll()
  1509. for k = 1, #players do
  1510. local v = players[k]
  1511. if v != SebHack.Ply then
  1512. if table.HasValue(SebHack.Friends.List, v:SteamID()) then
  1513. table.insert(Friends, v)
  1514. else
  1515. table.insert(Enemies, v)
  1516. end
  1517. end
  1518. end
  1519.  
  1520. y = 40
  1521. local EnemiesList = vgui.Create("DListView", FriendsPanel) //Need this up here so FriendsList can reference it.
  1522. local FriendsList = vgui.Create("DListView", FriendsPanel)
  1523. FriendsList:SetSize(150, 200)
  1524. FriendsList:SetPos(FriendsPanel:GetWide() * 0.25 - FriendsList:GetWide() / 2, y)
  1525. FriendsList:SetMultiSelect(false)
  1526. FriendsList:AddColumn("Friends")
  1527. for k = 1, #Friends do
  1528. FriendsList:AddLine(Friends[k]:Nick())
  1529. end
  1530. FriendsList.DoDoubleClick = function(panel, index, line)
  1531. table.insert(Enemies, Friends[index])
  1532. table.remove(Friends, index)
  1533.  
  1534. FriendsList:Clear()
  1535. EnemiesList:Clear()
  1536. for k = 1, #Friends do
  1537. FriendsList:AddLine(Friends[k]:Nick())
  1538. end
  1539. for k = 1, #Enemies do
  1540. EnemiesList:AddLine(Enemies[k]:Nick())
  1541. end
  1542.  
  1543. SebHack.Friends.List = {}
  1544. for k = 1, #Friends do
  1545. table.insert(SebHack.Friends.List, Friends[k]:SteamID())
  1546. end
  1547. //SebHack.SaveData()
  1548. end
  1549.  
  1550. EnemiesList:SetSize(150, 200)
  1551. EnemiesList:SetPos(FriendsPanel:GetWide() * 0.75 - EnemiesList:GetWide() / 2, y)
  1552. EnemiesList:SetMultiSelect(false)
  1553. EnemiesList:AddColumn("Enemies")
  1554. for k = 1, #Enemies do
  1555. EnemiesList:AddLine(Enemies[k]:Nick())
  1556. end
  1557. EnemiesList.DoDoubleClick = function(panel, index, line)
  1558. table.insert(Friends, Enemies[index])
  1559. table.remove(Enemies, index)
  1560.  
  1561. FriendsList:Clear()
  1562. EnemiesList:Clear()
  1563. for k = 1, #Friends do
  1564. FriendsList:AddLine(Friends[k]:Nick())
  1565. end
  1566. for k = 1, #Enemies do
  1567. EnemiesList:AddLine(Enemies[k]:Nick())
  1568. end
  1569.  
  1570. SebHack.Friends.List = {}
  1571. for k = 1, #Friends do
  1572. table.insert(SebHack.Friends.List, Friends[k]:SteamID())
  1573. end
  1574. //SebHack.SaveData()
  1575. end
  1576.  
  1577. y = y + EnemiesList:GetTall() + 20
  1578. ToggleOption("Use", FriendsPanel, "SebHack_Friends_Active")
  1579. ToggleOption("Reverse", FriendsPanel, "SebHack_Friends_Reverse")
  1580.  
  1581. if y > 465 then
  1582. FriendsPanel:SetTall(y)
  1583. end
  1584.  
  1585. local FriendsPanelList = vgui.Create( "DPanelList" )
  1586. FriendsPanelList:SetSize(379, 465)
  1587. FriendsPanelList:SetSpacing(0)
  1588. FriendsPanelList:EnableHorizontal(false)
  1589. FriendsPanelList:EnableVerticalScrollbar(true)
  1590. FriendsPanelList:AddItem(FriendsPanel)
  1591.  
  1592. ColumnSheet:AddSheet("Friends", FriendsPanelList, "icon16/group.png")
  1593.  
  1594. //Starting the ESP panel
  1595. local ESP = vgui.Create("DPanel")
  1596. ESP:SetSize(379, 465)
  1597. ESP.Paint = function()
  1598. draw.RoundedBox( 0, 0, 0, ESP:GetWide(), ESP:GetTall(), Color( 240, 240, 240, 255 ) )
  1599. end
  1600.  
  1601. local title = vgui.Create("DLabel", ESP)
  1602. title:SetColor(Color(0, 0, 0, 255))
  1603. title:SetFont("CatagoryHeader")
  1604. title:SetText("ESP")
  1605. title:SizeToContents()
  1606. title:SetPos(ESP:GetWide() / 2 - title:GetWide() / 2, 3)
  1607.  
  1608. y = 40
  1609. ToggleOption("Active", ESP, "SebHack_ESP_Active")
  1610. ToggleOption("Player Info", ESP, "SebHack_ESP_Players")
  1611. ToggleOption("NPC Info", ESP, "SebHack_ESP_NPCs")
  1612. MultiOption("Name", ESP, "SebHack_ESP_Name", {"Off", "Above", "Below"})
  1613. MultiOption("Weapon", ESP, "SebHack_ESP_Weapons", {"Off", "Above", "Below"})
  1614. MultiOption("Health", ESP, "SebHack_ESP_Health", {"Off", "Above", "Below"})
  1615. MultiOption("Distance", ESP, "SebHack_ESP_Distance", {"Off", "Above", "Below"})
  1616. //MultiOption("Show Traitors", ESP, "SebHack_ESP_ShowTraitors", {"Off", "Above", "Below"})
  1617. ToggleOption("Bounding Box", ESP, "SebHack_ESP_Box")
  1618. ToggleOption("Body Info", ESP, "SebHack_ESP_Bodies")
  1619. ToggleOption("2D Radar", ESP, "SebHack_ESP_Radar")
  1620. SetNumberOption("Radar Scale", ESP, "SebHack_ESP_RadarScale", 1, 100, 0)
  1621. SetNumberOption("Max Distance", ESP, "SebHack_ESP_MaxDistance", 0, 8000, 0)
  1622. ToggleOption("Team Based", ESP, "SebHack_ESP_TeamBased")
  1623.  
  1624. if y > 465 then
  1625. ESP:SetTall(y)
  1626. end
  1627.  
  1628. ESPList = vgui.Create( "DPanelList" )
  1629. ESPList:SetSize(379, 465)
  1630. ESPList:SetSpacing(0)
  1631. ESPList:EnableHorizontal(false)
  1632. ESPList:EnableVerticalScrollbar(true)
  1633. ESPList:AddItem(ESP)
  1634.  
  1635. ColumnSheet:AddSheet("ESP", ESPList, "icon16/pencil.png")
  1636.  
  1637. //Starting the Chams panel
  1638. local Chams = vgui.Create("DPanel")
  1639. Chams:SetSize(379, 465)
  1640. Chams.Paint = function()
  1641. draw.RoundedBox( 0, 0, 0, Chams:GetWide(), Chams:GetTall(), Color( 240, 240, 240, 255 ) )
  1642. end
  1643.  
  1644. local title = vgui.Create("DLabel", Chams)
  1645. title:SetColor(Color(0, 0, 0, 255))
  1646. title:SetFont("CatagoryHeader")
  1647. title:SetText("Chams")
  1648. title:SizeToContents()
  1649. title:SetPos(Chams:GetWide() / 2 - title:GetWide() / 2, 3)
  1650.  
  1651. y = 40
  1652. ToggleOption("Active", Chams, "SebHack_Chams_Active")
  1653. ToggleOption("Draw Players", Chams, "SebHack_Chams_Players")
  1654. ToggleOption("Draw NPCs", Chams, "SebHack_Chams_NPCs")
  1655. ToggleOption("Draw Weapons", Chams, "SebHack_Chams_Weapons")
  1656. ToggleOption("Draw Bodies", Chams, "SebHack_Chams_Bodies")
  1657. ToggleOption("Team Based", Chams, "SebHack_Chams_TeamBased")
  1658. SetNumberOption("Max Distance", Chams, "SebHack_Chams_MaxDistance", 0, 8000, 0)
  1659.  
  1660. if y > 465 then
  1661. Chams:SetTall(y)
  1662. end
  1663.  
  1664. ChamsList = vgui.Create( "DPanelList" )
  1665. ChamsList:SetSize(379, 465)
  1666. ChamsList:SetSpacing(0)
  1667. ChamsList:EnableHorizontal(false)
  1668. ChamsList:EnableVerticalScrollbar(true)
  1669. ChamsList:AddItem(Chams)
  1670.  
  1671. ColumnSheet:AddSheet("Chams", ChamsList, "icon16/eye.png")
  1672.  
  1673. //Starting the Finder panel
  1674. local Finder = vgui.Create("DPanel")
  1675. Finder:SetSize(379, 465)
  1676. Finder.Paint = function()
  1677. draw.RoundedBox( 0, 0, 0, Finder:GetWide(), Finder:GetTall(), Color( 240, 240, 240, 255 ) )
  1678. end
  1679.  
  1680. local title = vgui.Create("DLabel", Finder)
  1681. title:SetColor(Color(0, 0, 0, 255))
  1682. title:SetFont("CatagoryHeader")
  1683. title:SetText("Entity Finder")
  1684. title:SizeToContents()
  1685. title:SetPos(Finder:GetWide() / 2 - title:GetWide() / 2, 3)
  1686.  
  1687. local ToShow = {}
  1688. local Others = {}
  1689.  
  1690. local All = ents.GetAll()
  1691. for k = 1, #All do
  1692. local v = All[k]
  1693. if table.HasValue(SebHack.Entities.List, v:GetClass()) then
  1694. if not table.HasValue(ToShow, v:GetClass()) then
  1695. table.insert(ToShow, v:GetClass())
  1696. end
  1697. elseif not table.HasValue(Others, v:GetClass()) then
  1698. table.insert(Others, v:GetClass())
  1699. end
  1700. end
  1701.  
  1702. y = 40
  1703. local IgnoreList = vgui.Create("DListView", Finder) //Need this up here so ToShowList can reference it.
  1704. local ToShowList = vgui.Create("DListView", Finder)
  1705. ToShowList:SetSize(150, 200)
  1706. ToShowList:SetPos(Finder:GetWide() * 0.25 - ToShowList:GetWide() / 2, y)
  1707. ToShowList:SetMultiSelect(false)
  1708. ToShowList:AddColumn("To Show")
  1709. for k = 1, #ToShow do
  1710. ToShowList:AddLine(ToShow[k])
  1711. end
  1712. ToShowList.DoDoubleClick = function(panel, index, line)
  1713. table.insert(Others, ToShow[index])
  1714. table.remove(ToShow, index)
  1715.  
  1716. ToShowList:Clear()
  1717. IgnoreList:Clear()
  1718. for k = 1, #ToShow do
  1719. ToShowList:AddLine(ToShow[k])
  1720. end
  1721. for k = 1, #Others do
  1722. IgnoreList:AddLine(Others[k])
  1723. end
  1724.  
  1725. SebHack.Entities.List = {}
  1726. for k = 1, #ToShow do
  1727. table.insert(SebHack.Entities.List, ToShow[k])
  1728. end
  1729. //SebHack.SaveData()
  1730. end
  1731.  
  1732. IgnoreList:SetSize(150, 200)
  1733. IgnoreList:SetPos(Finder:GetWide() * 0.75 - IgnoreList:GetWide() / 2, y)
  1734. IgnoreList:SetMultiSelect(false)
  1735. IgnoreList:AddColumn("Others")
  1736. for k = 1, #Others do
  1737. IgnoreList:AddLine(Others[k])
  1738. end
  1739. IgnoreList.DoDoubleClick = function(panel, index, line)
  1740. table.insert(ToShow, Others[index])
  1741. table.remove(Others, index)
  1742.  
  1743. ToShowList:Clear()
  1744. IgnoreList:Clear()
  1745. for k = 1, #ToShow do
  1746. ToShowList:AddLine(ToShow[k])
  1747. end
  1748. for k = 1, #Others do
  1749. IgnoreList:AddLine(Others[k])
  1750. end
  1751.  
  1752. SebHack.Entities.List = {}
  1753. for k = 1, #ToShow do
  1754. table.insert(SebHack.Entities.List, ToShow[k])
  1755. end
  1756. //SebHack.SaveData()
  1757. end
  1758.  
  1759. y = y + IgnoreList:GetTall() + 20
  1760. ToggleOption("Active", Finder, "SebHack_Entities_Active")
  1761.  
  1762. if y > 465 then
  1763. Finder:SetTall(y)
  1764. end
  1765.  
  1766. local FinderList = vgui.Create( "DPanelList" )
  1767. FinderList:SetSize(379, 465)
  1768. FinderList:SetSpacing(0)
  1769. FinderList:EnableHorizontal(false)
  1770. FinderList:EnableVerticalScrollbar(true)
  1771. FinderList:AddItem(Finder)
  1772.  
  1773. ColumnSheet:AddSheet("Finder", FinderList, "icon16/magnifier.png")
  1774.  
  1775. //Starting the Misc panel
  1776. local Misc = vgui.Create("DPanel")
  1777. Misc:SetSize(379, 465)
  1778. Misc.Paint = function()
  1779. draw.RoundedBox( 0, 0, 0, Misc:GetWide(), Misc:GetTall(), Color( 240, 240, 240, 255 ) )
  1780. end
  1781.  
  1782. local title = vgui.Create("DLabel", Misc)
  1783. title:SetColor(Color(0, 0, 0, 255))
  1784. title:SetFont("CatagoryHeader")
  1785. title:SetText("Misc")
  1786. title:SizeToContents()
  1787. title:SetPos(Misc:GetWide() / 2 - title:GetWide() / 2, 3)
  1788.  
  1789. y = 40
  1790. ToggleOption("Show Admins", Misc, "SebHack_Misc_ShowAdmins")
  1791. ToggleOption("Crosshair", Misc, "SebHack_Misc_Cross")
  1792. SetNumberOption("Corsshair Size", Misc, "SebHack_Misc_CrossSize", 0, 1000, 0)
  1793. ToggleOption("No Recoil", Misc, "SebHack_Misc_NoRecoil")
  1794. ToggleOption("Spectators", Misc, "SebHack_Misc_ShowSpectators")
  1795. ToggleOption("Auto Reload", Misc, "SebHack_Misc_AutoReload")
  1796. ToggleOption("Bunny Hop", Misc, "SebHack_Misc_BunnyHop")
  1797. SetKeyOption("Key", Misc, "SebHack_Misc_BunnyHop_Key")
  1798. ToggleOption("Auto Pistol", Misc, "SebHack_Misc_AutoPistol")
  1799. ToggleOption("Buy Health", Misc, "SebHack_Misc_BuyHealth")
  1800. SetNumberOption("Minimum", Misc, "SebHack_Misc_BuyHealth_Minimum", 0, 100, 0)
  1801. //ToggleOption("Traitor Finder", Misc, "SebHack_Misc_TraitorFinder")
  1802. ToggleOption("Show Deaths", Misc, "SebHack_Misc_Deaths")
  1803. ToggleOption("Sounds", Misc, "SebHack_Misc_Sounds")
  1804. ToggleOption("Lasersight", Misc, "SebHack_Misc_Lasersight")
  1805.  
  1806.  
  1807. if y > 465 then
  1808. Misc:SetTall(y)
  1809. end
  1810.  
  1811. MiscList = vgui.Create( "DPanelList" )
  1812. MiscList:SetSize(379, 465)
  1813. MiscList:SetSpacing(0)
  1814. MiscList:EnableHorizontal(false)
  1815. MiscList:EnableVerticalScrollbar(true)
  1816. MiscList:AddItem(Misc)
  1817.  
  1818. ColumnSheet:AddSheet("Misc", MiscList, "icon16/package.png")
  1819.  
  1820. local function ColorOption(name, parent, tab)
  1821. local Options = vgui.Create("DColorMixer", parent)
  1822. Options:SetSize(150, 100)
  1823. Options:SetPos(parent:GetWide() * 0.75 - Options:GetWide() / 2, y)
  1824. Options:SetColor(tab.color)//SebHack.GetColorFromString(GetConVar(var):GetString()))
  1825. Options:SetWangs(false)
  1826. Options:SetPalette(false)
  1827. Options.ValueChanged = function(panel, color)
  1828. SebHack.Ply:ConCommand(tab.var:GetName().." ".."Color("..color.r..","..color.g..","..color.b..","..color.a..")")
  1829. tab.color = SebHack.GetColorFromString(tab.var:GetString())
  1830. end
  1831.  
  1832. local text = vgui.Create("DLabel", parent)
  1833. text:SetColor(Color(0, 0, 0, 255))
  1834. text:SetFont("CatagoryText")
  1835. text:SetText(name)
  1836. text:SizeToContents()
  1837. text:SetPos(parent:GetWide() / 4 - text:GetWide() / 2, y + Options:GetTall() / 2 - text:GetTall() / 2)
  1838.  
  1839. y = y + Options:GetTall() + 10
  1840. end
  1841. //Starting the Style panel
  1842. local Style = vgui.Create("DPanel")
  1843. Style:SetSize(379, 465)
  1844. Style.Paint = function()
  1845. draw.RoundedBox( 0, 0, 0, Style:GetWide(), Style:GetTall(), Color( 240, 240, 240, 255 ) )
  1846. end
  1847.  
  1848. local title = vgui.Create("DLabel", Style)
  1849. title:SetColor(Color(0, 0, 0, 255))
  1850. title:SetFont("CatagoryHeader")
  1851. title:SetText("Style")
  1852. title:SizeToContents()
  1853. title:SetPos(Style:GetWide() / 2 - title:GetWide() / 2, 3)
  1854.  
  1855. y = 50
  1856. ColorOption("Bounding Box", Style, SebHack.Style.Vars["BoundingBox"])
  1857. ColorOption("ESP Text", Style, SebHack.Style.Vars["ESPText"])
  1858. ColorOption("Crosshair", Style, SebHack.Style.Vars["Crosshair"])
  1859. //ColorOption("TTT Body Text", Style, SebHack.Style.Vars["BodyText"])
  1860. ColorOption("Chams", Style, SebHack.Style.Vars["Chams"])
  1861. //ColorOption("TTT Body Chams", Style, SebHack.Style.Vars["BodyChams"])
  1862.  
  1863. if y > 465 then
  1864. Style:SetTall(y)
  1865. end
  1866.  
  1867. StyleList = vgui.Create( "DPanelList" )
  1868. StyleList:SetSize(379, 465)
  1869. StyleList:SetSpacing(0)
  1870. StyleList:EnableHorizontal(false)
  1871. StyleList:EnableVerticalScrollbar(true)
  1872. StyleList:AddItem(Style)
  1873.  
  1874. ColumnSheet:AddSheet("Style", StyleList, "icon16/color_wheel.png")
  1875. end)
  1876.  
  1877.  
  1878. //Just some fonts
  1879. surface.CreateFont("TitleFont", {font = "Arial", size = 20})
  1880. surface.CreateFont("CatagoryHeader", {font = "CloseCaption_Normal", size = 34})
  1881. surface.CreateFont("CatagoryText", {font = "CloseCaption_Normal", size = 28})
  1882. surface.CreateFont("ESPFont", {font = "CloseCaption_Normal", weight = 1000, size = 15})
  1883.  
  1884. --[[
  1885. DPropertySheet - Slightly edited so it looks good.
  1886. --]]
  1887. local PANEL = {}
  1888. AccessorFunc( PANEL, "ActiveButton", "ActiveButton" )
  1889.  
  1890. --[[---------------------------------------------------------
  1891. Name: Init
  1892. -----------------------------------------------------------]]
  1893. function PANEL:Init()
  1894. self.Navigation = vgui.Create( "DScrollPanel", self )
  1895. self.Navigation:Dock( LEFT )
  1896. self.Navigation:SetWidth( 100 )
  1897. self.Navigation:DockMargin( 0, 0, 10, 0 )
  1898.  
  1899. self.Content = vgui.Create( "Panel", self )
  1900. self.Content:Dock( FILL )
  1901.  
  1902. self.Items = {}
  1903. end
  1904.  
  1905. function PANEL:UseButtonOnlyStyle()
  1906. self.ButtonOnly = true
  1907. end
  1908.  
  1909. --[[---------------------------------------------------------
  1910. Name: AddSheet
  1911. -----------------------------------------------------------]]
  1912. function PANEL:AddSheet( label, panel, material )
  1913. if ( !IsValid( panel ) ) then return end
  1914.  
  1915. local Sheet = {}
  1916.  
  1917. if ( self.ButtonOnly ) then
  1918. Sheet.Button = vgui.Create( "DImageButton", self.Navigation )
  1919. else
  1920. Sheet.Button = vgui.Create( "DButton", self.Navigation )
  1921. end
  1922. Sheet.Button:SetImage( material )
  1923. Sheet.Button.Target = panel
  1924. Sheet.Button:Dock( TOP )
  1925. Sheet.Button:SetText( label )
  1926. Sheet.Button:DockMargin( 0, 0, 0, 5 )
  1927.  
  1928. Sheet.Button.DoClick = function ()
  1929. self:SetActiveButton( Sheet.Button )
  1930. end
  1931.  
  1932. Sheet.Panel = panel
  1933. Sheet.Panel:SetParent( self.Content )
  1934. Sheet.Panel:SetVisible( false )
  1935.  
  1936. if ( self.ButtonOnly ) then
  1937. Sheet.Button:SizeToContents()
  1938. Sheet.Button:SetColor( Color( 150, 150, 150, 255 ) )
  1939. end
  1940.  
  1941. table.insert( self.Items, Sheet )
  1942.  
  1943. if ( !IsValid( self.ActiveButton ) ) then
  1944. self:SetActiveButton( Sheet.Button )
  1945. end
  1946. end
  1947.  
  1948. --[[---------------------------------------------------------
  1949. Name: SetActiveTab
  1950. -----------------------------------------------------------]]
  1951. function PANEL:SetActiveButton( active )
  1952. if ( self.ActiveButton == active ) then return end
  1953.  
  1954. if ( self.ActiveButton && self.ActiveButton.Target ) then
  1955. self.ActiveButton.Target:SetVisible( false )
  1956. self.ActiveButton:SetSelected( false )
  1957. self.ActiveButton:SetColor( Color( 0, 0, 0, 255 ) )
  1958. end
  1959. self.ActiveButton = active
  1960. active.Target:SetVisible( true )
  1961. active:SetSelected( true )
  1962. active:SetColor( Color( 150, 150, 150, 255 ) )
  1963.  
  1964. self.Content:InvalidateLayout()
  1965. end
  1966.  
  1967. derma.DefineControl( "DColumnSheet", "", PANEL, "Panel" )
  1968.  
  1969. SebHack.Message("Hack Loaded")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement