Guest User

Skeetware by boner

a guest
Dec 27th, 2016
380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.63 KB | None | 0 0
  1. require("bSendPacket")
  2. require("name_enabler")
  3. require("cvar3")
  4.  
  5. local me = LocalPlayer()
  6. local fakeview = Angle(666)
  7. local switch = false
  8. local Ticks = 0
  9. bSendPacket = true
  10. local skeet = {}
  11. skeet.version = "0.6 alpha"
  12. skeet.attacking = false
  13. skeet.aimbotting = false
  14. function skeet.log(...)
  15. MsgC(Color(150, 150, 150), "[", Color(25, 175, 220), "skeetware", Color(150, 150, 150), "] ", Color(25, 175, 220), ...)
  16. MsgN("Welcome to skeetware for gmod. Email us at [email protected]")
  17. end)
  18.  
  19. surface.CreateFont("skeet_esp", {font = "Courier New", size = 15, weight = 500, outline = true})
  20.  
  21. skeet.log("startup, version " .. skeet.version)
  22. skeet.vars = {
  23. { // aimbot
  24. enabled = {[0] = 1, "bool", "Enabled", false},
  25. silent = {[0] = 2, "bool", "Silent", false},
  26. static = {[0] = 3, "bool", "Static AA", false},
  27. autoshoot = {[0] = 4, "bool", "AutoShoot", false},
  28. ignoreteam = {[0] = 5, "bool", "Ignore Team", false},
  29. fovcheck = {[0] = 6, "bool", "FOV Check", false},
  30. fov = {[0] = 7, "slider", "FOV", 0, 180, 0}
  31. },
  32.  
  33. { // visuals
  34. enabled = {[0] = 1, "bool", "Enabled", false},
  35. name = {[0] = 2, "bool", "Draw Names", false},
  36. box = {[0] = 3, "bool", "Draw Boxes", false},
  37. boxtype = {[0] = 4, "dropdown", "Box Type", 1, {"2D", "3D"}}, // 2D is better in every aspect even when it comes to girls
  38. health = {[0] = 5, "bool", "Draw Healthbars", false},
  39. nosky = {[0] = 6, "bool", "No Sky", false},
  40. fov = {[0] = 7, "slider", "FOV", 0, 30, 0}
  41. },
  42.  
  43. { // misc
  44. enabled = {[0] = 1, "bool", "Enabled", false},
  45. autohop = {[0] = 2, "bool", "AutoHop", false},
  46. autostrafe = {[0] = 3, "bool", "AutoStrafe", false},
  47. namesteal = {[0] = 4, "bool", "NameSteal", false},
  48. namespam = {[0] = 5, "bool", "NameSpam", false},
  49. thirdperson = {[0] = 6, "bool", "Thirdperson", false}
  50. },
  51.  
  52. { // hvh
  53. enabled = {[0] = 1, "bool", "Enabled", false},
  54. antiaimx = {[0] = 2, "dropdown", "Anti-Aim X", 1, {"Static Up", "Static Down", "Jitter", "Fake Down", "Fake Up"}},
  55. antiaimy = {[0] = 3, "dropdown", "Anti-Aim Y", 1, {"Fake Sideways", "Fake 0", "Fake 180", "Right", "Left","Backwards"}},
  56. fakelag = {[0] = 4, "bool", "FakeLag", false},
  57. choke = {[0] = 5, "slider", "Choke", 0, 14, 0}
  58. }
  59. }
  60.  
  61. function skeet.SetVar(tab, name, val)
  62. skeet.vars[tab][name][3] = val
  63. end
  64.  
  65. function skeet.GetVar(tab, name)
  66. return skeet.vars[tab][name][3]
  67. end
  68.  
  69. function skeet.SaveVars()
  70. file.Write("skeet.dat", util.TableToJSON(skeet.vars))
  71. end
  72.  
  73. function skeet.LoadVars()
  74. if file.Exists("skeet.dat", "DATA") then
  75. local tab = util.JSONToTable(file.Read("skeet.dat", "DATA"))
  76. for k,v in next, tab do
  77. for i,l in next, v do
  78. skeet.vars[k][i] = l // backwards compatibility
  79. end
  80. end
  81. skeet.log("loaded settings")
  82. else
  83. skeet.log("no previous settings save, saving...")
  84. skeet.SaveVars()
  85. end
  86. end
  87.  
  88. -- BEGIN M3MEHOOK MENU SOURCE --
  89.  
  90. skeet.menu = {
  91. chName = ("skeetware " .. skeet.version),
  92. iTotalTabCount = 4,
  93. iMouseX = 1,
  94. iMouseY = 1,
  95. iWidth = 1,
  96. iHeight = 1,
  97. iScreenWidth = 1,
  98. iScreenHeight = 1,
  99. iTab = 1,
  100. bClicked = false,
  101. bMouseD = false
  102. }
  103.  
  104. function skeet.menu.GetMousePos()
  105. skeet.menu.iMouseX = gui.MouseX()
  106. skeet.menu.iMouseY = gui.MouseY()
  107. end
  108.  
  109. function skeet.menu.GetClicked()
  110. if (input.IsMouseDown(MOUSE_LEFT)) then
  111. skeet.menu.bClicked = false
  112. skeet.menu.bMouseD = true
  113. else
  114. if (skeet.menu.bMouseD) then
  115. skeet.menu.bClicked = true
  116. skeet.menu.bMouseD = false
  117. else
  118. skeet.menu.bClicked = false
  119. end
  120. end
  121. end
  122.  
  123. function skeet.menu.MouseXPos(iXStart, iXEnd)
  124. local iRealXStart = ((skeet.menu.iScreenWidth / 2) - (skeet.menu.iWidth / 2)) + iXStart
  125. return skeet.menu.iMouseX - iRealXStart
  126. end
  127.  
  128. function skeet.menu.Hovering(iXStart, iYStart, iXEnd, iYEnd)
  129. local iRealXStart = ((skeet.menu.iScreenWidth / 2) - (skeet.menu.iWidth / 2)) + iXStart
  130. local iRealYStart = ((skeet.menu.iScreenHeight / 2) - (skeet.menu.iHeight / 2)) + iYStart
  131. local iRealXEnd = iRealXStart + iXEnd
  132. local iRealYEnd = iRealYStart + iYEnd
  133.  
  134. if (skeet.menu.iMouseX >= iRealXStart && iRealXEnd >= skeet.menu.iMouseX) then
  135. if (skeet.menu.iMouseY >= iRealYStart && iRealYEnd >= skeet.menu.iMouseY) then
  136. return true
  137. end
  138. end
  139.  
  140. return false
  141. end
  142.  
  143. function skeet.menu.Clicked(iXStart, iYStart, iXEnd, iYEnd)
  144. if (skeet.menu.bClicked) then
  145. if (skeet.menu.Hovering(iXStart, iYStart, iXEnd, iYEnd)) then
  146. return true
  147. end
  148. end
  149.  
  150. return false
  151. end
  152.  
  153. function skeet.menu.Holding(iXStart, iYStart, iXEnd, iYEnd)
  154. if (input.IsMouseDown(MOUSE_LEFT)) then
  155. if (skeet.menu.Hovering(iXStart, iYStart, iXEnd, iYEnd)) then
  156. return true
  157. end
  158. end
  159.  
  160. return false
  161. end
  162.  
  163. function skeet.menu.DrawRect(x, y, w, h, c)
  164. surface.SetDrawColor(c)
  165. surface.DrawRect(x, y, w, h)
  166. end
  167.  
  168. function skeet.menu.DrawOutlinedRect(x, y, w, h, c)
  169. surface.SetDrawColor(c)
  170. surface.DrawOutlinedRect(x, y, w, h)
  171. end
  172.  
  173. function skeet.menu.DrawStringA(x, y, c, m)
  174. draw.SimpleText(m, "Trebuchet18", x, y, c, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  175. end
  176.  
  177. function skeet.menu.DrawStringB(x, y, c, m)
  178. draw.SimpleText(m, "Trebuchet18", x, y, c, TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
  179. end
  180.  
  181. function skeet.menu.DrawRectM(iXStart, iYStart, iRWidth, iRHeight, colDrawColor)
  182. local iRealXStart = ((skeet.menu.iScreenWidth / 2) - (skeet.menu.iWidth / 2)) + iXStart
  183. local iRealYStart = ((skeet.menu.iScreenHeight / 2) - (skeet.menu.iHeight / 2)) + iYStart
  184.  
  185. skeet.menu.DrawRect(iRealXStart, iRealYStart, iRWidth, iRHeight, colDrawColor)
  186. end
  187.  
  188. function skeet.menu.DrawOutlinedRectM(iXStart, iYStart, iRWidth, iRHeight, colDrawColor)
  189. local iRealXStart = ((skeet.menu.iScreenWidth / 2) - (skeet.menu.iWidth / 2)) + iXStart
  190. local iRealYStart = ((skeet.menu.iScreenHeight / 2) - (skeet.menu.iHeight / 2)) + iYStart
  191.  
  192. skeet.menu.DrawOutlinedRect(iRealXStart, iRealYStart, iRWidth, iRHeight, colDrawColor)
  193. end
  194.  
  195. function skeet.menu.DrawStringM(iX, iY, colDrawColor, msg)
  196. local iRealX = ((skeet.menu.iScreenWidth / 2) - (skeet.menu.iWidth / 2)) + iX
  197. local iRealY = ((skeet.menu.iScreenHeight / 2) - (skeet.menu.iHeight / 2)) + iY
  198.  
  199. skeet.menu.DrawStringA(iRealX, iRealY, colDrawColor, msg)
  200. end
  201.  
  202. function skeet.menu.DrawStringM2(iX, iY, colDrawColor, msg)
  203. local iRealX = ((skeet.menu.iScreenWidth / 2) - (skeet.menu.iWidth / 2)) + iX
  204. local iRealY = ((skeet.menu.iScreenHeight / 2) - (skeet.menu.iHeight / 2)) + iY
  205.  
  206. skeet.menu.DrawStringB(iRealX, iRealY, colDrawColor, msg)
  207. end
  208.  
  209. function skeet.menu.DrawButton(strText, iTabIndex, iX, iY, chName)
  210. if (skeet.menu.iTab == iTabIndex) then
  211. if (!skeet.vars[iTabIndex][chName][3]) then
  212. skeet.menu.DrawOutlinedRectM(iX, iY, 20, 20, Color(25, 175, 220, 255))
  213. else
  214. skeet.menu.DrawRectM(iX, iY, 20, 20, Color(25, 175, 220, 255))
  215. end
  216.  
  217. skeet.menu.DrawStringM2(iX + 28, iY + 10, Color(255, 255, 255, 255), strText)
  218.  
  219. if (skeet.menu.Clicked(iX, iY, 20, 20)) then
  220. skeet.vars[iTabIndex][chName][3] = !skeet.vars[iTabIndex][chName][3]
  221. skeet.SaveVars()
  222. end
  223. end
  224. end
  225.  
  226. function skeet.menu.DrawSlider(strText, iTabIndex, iX, iY, iMax, chName, iDecimal)
  227. if (!iDecimal) then
  228. iDecimal = 0
  229. end
  230.  
  231. local iVar = skeet.vars[iTabIndex][chName][3]
  232. local iSliderWidth = skeet.menu.iWidth - (iX * 2)
  233.  
  234. if (skeet.menu.iTab == iTabIndex) then
  235. skeet.menu.DrawRectM(iX, iY, iVar * (iSliderWidth / (iMax)), 20, Color(25, 175, 220, 255))
  236. skeet.menu.DrawOutlinedRectM(iX, iY, iSliderWidth, 20, Color(25, 175, 220, 255))
  237.  
  238. local pChar = tostring(iVar)
  239.  
  240. skeet.menu.DrawStringM2(iX + 5, iY + 9, Color(255, 255, 255, 255), strText)
  241. skeet.menu.DrawStringM2(iX + (iSliderWidth / 2) - 3, iY + 10, Color(255, 255, 255, 255), pChar)
  242.  
  243. if (skeet.menu.Holding(iX, iY, iSliderWidth, 20)) then
  244. skeet.vars[iTabIndex][chName][3] = math.Round(skeet.menu.MouseXPos(iX, iSliderWidth) / (iSliderWidth / (iMax)), iDecimal)
  245. skeet.SaveVars()
  246. end
  247. end
  248. end
  249.  
  250. function skeet.menu.DrawDropdown(strText, iTabIndex, iX, iY, chName)
  251. if (!skeet.vars[iTabIndex][chName][5]) then
  252. skeet.vars[iTabIndex][chName][5] = false
  253. end
  254.  
  255. if (skeet.menu.iTab == iTabIndex) then
  256. skeet.menu.DrawOutlinedRectM(iX, iY, 120, 20, Color(25, 175, 220, 255))
  257. skeet.menu.DrawStringM(iX + 60, iY + 10, Color(255, 255, 255, 255), strText)
  258. if (skeet.menu.Clicked(iX, iY, 120, 20)) then
  259. skeet.vars[iTabIndex][chName][5] = !skeet.vars[iTabIndex][chName][5]
  260. end
  261.  
  262. if (skeet.vars[iTabIndex][chName][5]) then
  263. skeet.menu.DrawOutlinedRectM(iX, iY + 19, 120, (#skeet.vars[iTabIndex][chName][4] * 20) + 2, Color(25, 175, 220, 255))
  264. for index,name in next, skeet.vars[iTabIndex][chName][4] do
  265. skeet.menu.DrawStringM(iX + 60, iY + 29 + ((index - 1) * 20), Color(255, 255, 255, 255), name)
  266. if (skeet.menu.Clicked(iX, iY + 20 + ((index - 1) * 20), 120, 20)) then
  267. skeet.vars[iTabIndex][chName][3] = index
  268. skeet.SaveVars()
  269. elseif (skeet.menu.Hovering(iX, iY + 20 + ((index - 1) * 20), 120, 20)) or skeet.vars[iTabIndex][chName][3] == index then
  270. skeet.menu.DrawRectM(iX + 1, iY + 20 + ((index - 1) * 20), 118, 20, Color(255, 255, 255, 50))
  271. end
  272. end
  273. end
  274. end
  275. end
  276.  
  277. function skeet.menu.DrawTab(strText, iTabIndex)
  278. local iBaseX = (skeet.menu.iWidth / skeet.menu.iTotalTabCount) * (iTabIndex - 1)
  279. local iBaseW = skeet.menu.iWidth / skeet.menu.iTotalTabCount + 1
  280.  
  281. skeet.menu.DrawRectM(iBaseX, 24, iBaseW, 28, skeet.menu.iTab == iTabIndex && Color(5, 155, 200, 255) || Color(25, 175, 220, 255))
  282. skeet.menu.DrawStringM(iBaseX + (iBaseW / 2), 38, Color(255, 255, 255, 255), strText)
  283.  
  284. if (skeet.menu.Hovering(iBaseX, 24, iBaseW, 28)) then
  285. skeet.menu.DrawRectM(iBaseX, 24, iBaseW, 28, Color(255, 255, 255, 50))
  286. end
  287.  
  288. if (skeet.menu.Clicked(iBaseX, 24, iBaseW, 28)) then
  289. skeet.menu.iTab = iTabIndex
  290. end
  291. end
  292.  
  293. function skeet.menu.DrawBackground()
  294. skeet.menu.DrawRectM(0, 0, skeet.menu.iWidth, skeet.menu.iHeight, Color(25, 25, 50, 200))
  295. skeet.menu.DrawRectM(0, 0, skeet.menu.iWidth, 24, Color(25, 175, 220, 255))
  296. skeet.menu.DrawStringM(skeet.menu.iWidth / 2, 12, Color(255, 255, 255, 255), skeet.menu.chName)
  297. skeet.menu.DrawOutlinedRectM(0, 0, skeet.menu.iWidth, skeet.menu.iHeight, Color(25, 175, 220, 255))
  298. end
  299.  
  300. function skeet.menu.DrawCursor()
  301. skeet.menu.DrawRect(skeet.menu.iMouseX - 2, skeet.menu.iMouseY - 2, 4, 4, Color(255, 255, 255, 255))
  302. end
  303.  
  304. function skeet.menu.DrawButtons()
  305. skeet.menu.DrawTab("aimbot", 1)
  306. skeet.menu.DrawTab("visuals", 2)
  307. skeet.menu.DrawTab("misc", 3)
  308. skeet.menu.DrawTab("hvh", 4)
  309.  
  310. local tblShit = {}
  311. local tblDropdowns = {}
  312. local iCount = 0 // ghetto
  313. for k,v in next, skeet.vars do
  314. iCount = iCount + 1
  315. local y = 57
  316. local add = 24
  317. tblShit = {}
  318. for name,tab in next, v do
  319. tab[1337] = name
  320. tblShit[tab[0]] = tab
  321. end
  322.  
  323. for i = 1, #tblShit do
  324. local tab = tblShit[i]
  325. local _name = tab[1337]
  326. if (tab[1] == "bool") then
  327. skeet.menu.DrawButton(tab[2], k, 6, y, _name)
  328. elseif (tab[1] == "slider") then
  329. skeet.menu.DrawSlider(tab[2], k, 6, y, tab[4], _name, tab[5])
  330. elseif (tab[1] == "dropdown") then
  331. tblDropdowns[k] = tblDropdowns[k] or {}
  332. tblDropdowns[k][#tblDropdowns[k] + 1] = tab
  333. tblDropdowns[k][#tblDropdowns[k]][6] = _name
  334. tblDropdowns[k][#tblDropdowns[k]][7] = k
  335. end
  336.  
  337. if (tab[1] != "dropdown") then
  338. y = y + add
  339. end
  340. end
  341. end
  342.  
  343. if #tblDropdowns >= 1 then
  344. for _tab,dd in next, tblDropdowns do
  345. for i = 1, #dd do
  346. local tab = dd[i]
  347. skeet.menu.DrawDropdown(tab[2], tab[7], 524 - (#tblDropdowns[_tab] * 64) * (i - 1), 57, tab[6])
  348. end
  349. end
  350. end
  351. end
  352.  
  353. function skeet.menu.Draw(iMenuWidth, iMenuHeight, iSWidth, iSHeight)
  354. skeet.menu.iWidth = iMenuWidth
  355. skeet.menu.iHeight = iMenuHeight
  356. skeet.menu.iScreenWidth = iSWidth
  357. skeet.menu.iScreenHeight = iSHeight
  358.  
  359. skeet.menu.GetMousePos()
  360. skeet.menu.GetClicked()
  361. skeet.menu.DrawBackground()
  362. skeet.menu.DrawCursor()
  363. skeet.menu.DrawButtons()
  364. end
  365.  
  366. skeet.menu.bEnabled = false
  367. skeet.menu.bInsert = false
  368.  
  369. function skeet.menu.Menu()
  370. if skeet.menu.bEnabled then
  371. skeet.menu.Draw(650, 450, ScrW(), ScrH())
  372. end
  373.  
  374. if input.IsKeyDown(KEY_INSERT) and !skeet.menu.bEnabled and !skeet.menu.bInsert then
  375. skeet.menu.bEnabled = true
  376. gui.EnableScreenClicker(true)
  377. elseif input.IsKeyDown(KEY_INSERT) and skeet.menu.bEnabled and !skeet.menu.bInsert then
  378. skeet.menu.bEnabled = false
  379. gui.EnableScreenClicker(false)
  380. end
  381.  
  382. skeet.menu.bInsert = input.IsKeyDown(KEY_INSERT)
  383. end
  384.  
  385. -- END M3MEHOOK MENU SOURCE --
  386.  
  387. function skeet.Rotate2D(vec, f) // thanks snip
  388. local _x, _y
  389.  
  390. local rad = math.rad(f)
  391. local s = math.sin(rad)
  392. local c = math.cos(rad)
  393. _x = vec.x
  394. _y = vec.y
  395. vec.x = (_x * c) - (_y * s)
  396. vec.y = (_x * s) + (_y * c)
  397. end
  398.  
  399. function skeet.DrawPlayers()
  400. if !skeet.GetVar(2, "enabled") then return end
  401. for k,v in next, player.GetAll() do
  402. if 0 >= v:Health() or v:Team() == TEAM_SPECTATOR or !v:IsPlayer() then continue end
  403. if !skeet.GetVar(3, "thirdperson") or !skeet.GetVar(3, "enabled") then
  404. if v == me then continue end
  405. end
  406. local min, max = v:GetCollisionBounds()
  407. local pos = v:GetPos()
  408. local top, bottom = (pos + Vector(0, 0, max.z)):ToScreen(), (pos - Vector(0, 0, 8)):ToScreen()
  409. local middle = bottom.y - top.y
  410. local width = middle / 4
  411. if skeet.GetVar(2, "name") then
  412. draw.SimpleText(v:Nick(), "skeet_esp", bottom.x, top.y, Color(255, 255, 255), TEXT_ALIGN_CENTER, TEXT_ALIGN_BOTTOM)
  413. end
  414.  
  415. local hb3d = false
  416. if skeet.GetVar(2, "box") then
  417. local boxtype = skeet.GetVar(2, "boxtype")
  418. if boxtype == 1 then
  419. surface.SetDrawColor(me:Team() == v:Team() and Color(25, 175, 220) or Color(255, 75, 0))
  420. surface.DrawOutlinedRect(bottom.x - width, top.y, width * 2, middle)
  421. surface.SetDrawColor(Color(0, 0, 0))
  422. surface.DrawOutlinedRect(bottom.x - width - 1, top.y - 1, width * 2 + 2, middle + 2)
  423. surface.DrawOutlinedRect(bottom.x - width + 1, top.y + 1, width * 2 - 2, middle - 2)
  424. elseif boxtype == 2 then
  425. hb3d = true
  426. local corners = {
  427. Vector(min.x, min.y, min.z),
  428. Vector(min.x, max.y, min.z),
  429. Vector(max.x, max.y, min.z),
  430. Vector(max.x, min.y, min.z),
  431. Vector(min.x, min.y, max.z),
  432. Vector(min.x, max.y, max.z),
  433. Vector(max.x, max.y, max.z),
  434. Vector(max.x, min.y, max.z)
  435. }
  436. local y = v:EyeAngles().y
  437. for i = 1, #corners do
  438. skeet.Rotate2D(corners[i], y)
  439. end
  440. for i = 1, #corners do
  441. corners[i] = (pos + corners[i]):ToScreen()
  442. end
  443. for i = 1, 4 do
  444. surface.SetDrawColor(me:Team() == v:Team() and Color(25, 175, 220) or Color(255, 75, 0))
  445. surface.DrawLine(corners[i].x, corners[i].y, corners[i % 4 + 1].x, corners[i % 4 + 1].y)
  446. surface.DrawLine(corners[i].x, corners[i].y, corners[i + 4].x, corners[i + 4].y)
  447. surface.DrawLine(corners[i + 4].x, corners[i + 4].y, corners[i % 4 + 5].x, corners[i % 4 + 5].y)
  448. end
  449. end
  450. end
  451.  
  452. if skeet.GetVar(2, "health") then
  453. local health = math.Clamp(v:Health(), 0, 100)
  454. local green = health * 2.55
  455. local red = 255 - green
  456. if hb3d then
  457. surface.SetDrawColor(Color(0, 0, 0))
  458. surface.DrawRect(bottom.x - (width / 2) - 1, bottom.y + 2, width + 2, 3)
  459. surface.SetDrawColor(Color(red, green, 0))
  460. local _width = health * width / 100
  461. surface.DrawRect(bottom.x - (width / 2), bottom.y + 3, _width, 1)
  462. else
  463. surface.SetDrawColor(Color(0, 0, 0))
  464. surface.DrawRect(bottom.x + width + 2, top.y - 1, 4, middle + 2)
  465. surface.SetDrawColor(Color(red, green, 0))
  466. local height = health * middle / 100
  467. surface.DrawRect(bottom.x + width + 3, top.y + (middle - height), 2, height)
  468. end
  469. end
  470. end
  471. end
  472.  
  473. function skeet.Visuals()
  474. skeet.menu.Menu()
  475. skeet.DrawPlayers()
  476. end
  477.  
  478. function skeet.FixMovement(cmd, antiAim)
  479. local angs = cmd:GetViewAngles()
  480. local fa = fakeview
  481. local viewang = Angle(0, angs.y, 0)
  482. local fix = Vector(cmd:GetForwardMove(), cmd:GetSideMove(), 0)
  483. fix = (fix:Angle() + (viewang - fa)):Forward() * fix:Length()
  484.  
  485. if angs.p > 90 or angs.p < -90 then
  486. fix.x = -fix.x
  487. end
  488.  
  489. cmd:SetForwardMove(fix.x)
  490. cmd:SetSideMove(fix.y)
  491. end
  492.  
  493. function skeet.FakeMouse(cmd)
  494. if !fakeview then fakeview = cmd:GetViewAngles() end
  495. fakeview = fakeview + Angle(cmd:GetMouseY() * GetConVarNumber("m_yaw"), cmd:GetMouseX() * -GetConVarNumber("m_yaw"), 0)
  496. fakeview.p = math.Clamp(fakeview.p, -89, 89)
  497. fakeview.y = math.NormalizeAngle(fakeview.y)
  498. end
  499.  
  500. function skeet.GetPos(ent) // this is just for testing, i'll add multipoint and shit later
  501. return ent:GetPos() + ent:OBBCenter()
  502. end
  503.  
  504. function skeet.IsVisible(ent, shoot)
  505. local pos = skeet.GetPos(ent)
  506. local data = {start = shoot, endpos = pos, filter = {me, ent}, mask = MASK_SHOT}
  507. local trace = util.TraceLine(data)
  508. return trace.Fraction == 1, pos
  509. end
  510.  
  511. function skeet.FindTarget()
  512. local shoot = me:GetShootPos()
  513. local players = player.GetAll()
  514. for i = 1, #players do
  515. local ent = players[i]
  516. if 0 >= ent:Health() then continue end
  517. if ent:IsDormant() then continue end
  518. if ent:Team() == TEAM_SPECTATOR then continue end
  519. if skeet.GetVar(1, "ignoreteam") and ent:Team() == me:Team() then continue end
  520. local visible, pos = skeet.IsVisible(ent, shoot)
  521. if visible then
  522. return shoot, pos
  523. end
  524. end
  525. end
  526.  
  527. function skeet.Aimbot(cmd)
  528. local shoot, pos = skeet.FindTarget()
  529. if shoot and pos then
  530. skeet.aimbotting = true
  531. local aim = (pos - shoot):Angle()
  532. if skeet.GetVar(1, "static") then
  533. aim.p = -aim.p - 180
  534. aim.y = aim.y + 180
  535. end
  536.  
  537. cmd:SetViewAngles((pos - shoot):Angle())
  538. if skeet.GetVar(1, "autoshoot") then
  539. if skeet.attacking then
  540. cmd:SetButtons(bit.band(cmd:GetButtons(), bit.bnot(IN_ATTACK)))
  541. else
  542. cmd:SetButtons(bit.bor(cmd:GetButtons(), IN_ATTACK))
  543. end
  544.  
  545. skeet.attacking = !skeet.attacking
  546. end
  547. else
  548. skeet.aimbotting = false
  549. end
  550. end
  551.  
  552. function skeet.view(ply, pos, angle, fov, nearZ, farZ)
  553. local view = {}
  554. view.angles = skeet.GetVar(3, "thirdperson") and skeet.GetVar(4, "enabled") or skeet.GetVar(3, "enabled") and fakeview or angle
  555. view.fov = skeet.GetVar(2, "enabled") and 90 + skeet.GetVar(2, "fov") or 90
  556. view.origin = skeet.GetVar(3, "thirdperson") and skeet.GetVar(3, "enabled") and (pos - fakeview:Forward() * 100) || pos
  557. return view
  558. end
  559.  
  560. function skeet.NoSky()
  561. if skeet.GetVar(2, "nosky") and skeet.GetVar(2, "enabled") then
  562. render.Clear(0, 0, 0, 0, true, true)
  563. end
  564. end
  565.  
  566. function skeet.HandleTP(ply)
  567. if skeet.GetVar(3, "thirdperson") and skeet.GetVar(3, "enabled") then
  568. return true
  569. else
  570. return false
  571. end
  572. end
  573.  
  574. function skeet.Bunnyhop(cmd)
  575. if !skeet.GetVar(3, "enabled") then return end
  576. if !skeet.GetVar(3, "autohop") then return end
  577. if(!me:IsOnGround() && cmd:KeyDown(IN_JUMP) && !me:IsTyping()) then
  578. cmd:RemoveKey(IN_JUMP)
  579. end
  580. end
  581.  
  582. function skeet.Autostrafe(cmd) //credits to razor
  583. if !skeet.GetVar(3, "enabled") then return end
  584. if !skeet.GetVar(3, "autostrafe") then return end
  585. if !me:IsOnGround() or cmd:KeyDown(IN_JUMP) then
  586. if cmd:GetMouseX() > 1 or cmd:GetMouseX() < -1 then
  587. cmd:SetSideMove((cmd:GetMouseX() > 1) and 400 or -400)
  588. else
  589. cmd:SetForwardMove(5850 / me:GetVelocity():Length2D())
  590. cmd:SetSideMove((cmd:CommandNumber() % 2 == 0) and -400 or 400)
  591. end
  592. elseif cmd:KeyDown(IN_JUMP) then
  593. cmd:SetForwardMove(10000)
  594. end
  595. end
  596.  
  597. function skeet.NameHandler()
  598. if !skeet.GetVar(3, "enabled") then return end
  599. if skeet.GetVar(3, "namespam") then
  600. timer.Simple(5, function() GetConVar("name"):SetValue("skeetware" .. "[" .. math.random(100, 300) .. "]") end)
  601. end
  602.  
  603. if skeet.GetVar(3, "namesteal") then
  604. for k,v in next, player.GetAll() do
  605. if v != me then
  606. timer.Simple(5, function() GetConVar("name"):SetValue(v:Nick() .. " ") end)
  607. end
  608. end
  609. end
  610. end
  611.  
  612. function skeet.Antiaim(cmd)
  613. if !skeet.GetVar(4, "enabled") then return end
  614. if me:GetMoveType() == MOVETYPE_LADDER or skeet.aimbotting then return end
  615. local antiaimx = skeet.GetVar(4, "antiaimx")
  616. local antiaimy = skeet.GetVar(4, "antiaimy")
  617. local eyeyaw = me:EyeAngles().y
  618. local eyepitch = me:EyeAngles().p
  619. local pitch = 0
  620. local yaw = 0
  621. local roll = 0
  622. if antiaimx == 1 then
  623. pitch = -89
  624. elseif antiaimx == 2 then
  625. pitch = 89
  626. elseif antiaimx == 3 then
  627. if switch then
  628. pitch = 89
  629. switch = not switch
  630. elseif not switch then
  631. pitch = -89
  632. switch = not switch
  633. end
  634. elseif antiaimx == 4 then
  635. pitch = -181.23412
  636. elseif antiaimx == 5 then
  637. pitch = 181.23412
  638. end
  639. if antiaimy == 1 then
  640. if not bSendPacket then
  641. yaw = yaw - 90
  642. elseif bSendPacket then
  643. yaw = yaw + 90
  644. end
  645. elseif antiaimy == 2 then
  646. if not bSendPacket then
  647. if switch then
  648. yaw = yaw - 90
  649. switch = not switch
  650. elseif not switch then
  651. yaw = yaw + 90
  652. switch = not switch
  653. end
  654. elseif bSendPacket then
  655. yaw = 0
  656. end
  657. elseif antiaimy == 3 then
  658. if not bSendPacket then
  659. if switch then
  660. yaw = yaw - 90
  661. switch = not switch
  662. elseif not switch then
  663. yaw = yaw + 90
  664. switch = not switch
  665. end
  666. elseif bSendPacket then
  667. yaw = 180
  668. end
  669. elseif antiaimy == 4 then
  670. yaw = yaw + 90
  671. elseif antiaimy == 5 then
  672. yaw = yaw - 90
  673. elseif antiaimy == 6 then
  674. yaw = eyeyaw - 180
  675. end
  676. cmd:SetViewAngles(Angle(pitch,yaw,roll))
  677. end
  678.  
  679.  
  680. function skeet.FakeLag(cmd)
  681. if cmd:CommandNumber() == 0 then return end
  682. if !skeet.GetVar(4, "enabled") then return end
  683. if !skeet.GetVar(4, "fakelag") then return end
  684. Ticks = Ticks + 1
  685. local flagval = skeet.GetVar(4, "choke")
  686. if Ticks < flagval then
  687. bSendPacket = false;
  688. end
  689. if Ticks >= flagval then
  690. bSendPacket = true;
  691. Ticks = 0;
  692. end
  693. end
  694.  
  695. function skeet.CreateMove(cmd)
  696. skeet.FakeMouse(cmd)
  697.  
  698. if (cmd:CommandNumber() == 0 and (skeet.GetVar(4, "enabled") or skeet.GetVar(1, "static") or skeet.GetVar(1, "silent"))) and !skeet.GetVar(3, "thirdperson") then cmd:SetViewAngles(fakeview) return end
  699.  
  700. skeet.Autostrafe(cmd)
  701. skeet.Bunnyhop(cmd)
  702. skeet.NameHandler()
  703. skeet.Aimbot(cmd)
  704. skeet.FakeLag(cmd)
  705. skeet.Antiaim(cmd)
  706. if skeet.GetVar(4, "enabled") or (skeet.aimbotting and (skeet.GetVar(1, "static") or skeet.GetVar(1, "silent"))) then //check if silentaim is enabled also
  707. skeet.FixMovement(cmd, cmd:GetViewAngles().x > 89 && true || cmd:GetViewAngles().x < -89 && true || false);
  708. end
  709. end
  710.  
  711. function skeet.AddHook(type, name, func)
  712. hook.Add(type, name, func)
  713. skeet.log("hooked " .. type .. " (" .. name .. ") (" .. tostring(func) .. ")")
  714. end
  715.  
  716. skeet.AddHook("CalcView", "skeet.CalcView", skeet.view)
  717. skeet.AddHook("PostDraw2DSkyBox", "skeet.PostDraw2DSkyBox", skeet.NoSky)
  718. skeet.AddHook("ShouldDrawLocalPlayer", "skeet.ShouldDrawLocalPlayer", skeet.HandleTP)
  719. skeet.AddHook("DrawOverlay", "skeet.Visuals", skeet.Visuals)
  720. skeet.AddHook("CreateMove", "skeet.CreateMove", skeet.CreateMove)
  721. skeet.LoadVars()
  722. end
  723. end
Advertisement
Add Comment
Please, Sign In to add comment