scriptss

universal silent aim for games with raycasting

Aug 7th, 2020
4,172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.71 KB | None | 0 0
  1. local Players = game:GetService("Players")
  2. local LocalPlayer = Players.LocalPlayer
  3. local mouse = LocalPlayer:GetMouse()
  4. local Camera = workspace.CurrentCamera
  5. local Debris = game:GetService("Debris")
  6. local UserInputService = game:GetService("UserInputService")
  7. local target = false
  8. local RunService = game:GetService("RunService")
  9.  
  10.  
  11. getfenv().lock = "Random" -- Head or Hitbox or Random
  12.  
  13. fov = 500;
  14.  
  15. function createcircle()
  16. local a=Drawing.new('Circle');a.Transparency=1;a.Thickness=1.5;a.Visible=true;a.Color=Color3.fromRGB(0,255,149);a.Filled=false;a.Radius=fov;
  17. return a;
  18. end;
  19. local fovc = createcircle();
  20. spawn(function()
  21. RunService:BindToRenderStep("FovCircle",1,function()
  22. fovc.Position = Vector2.new(mouse.X,mouse.Y)
  23. end);
  24. end);
  25. function getnearest()
  26. local nearestmagnitude = math.huge
  27. local nearestenemy = nil
  28. local vector = nil
  29. for i,v in next, Players:GetChildren() do
  30. if v ~= Players.LocalPlayer then
  31. if v.Character and v.Character:FindFirstChild("HumanoidRootPart") and v.Character:FindFirstChild("Humanoid") and v.Character.Humanoid.Health > 0 then
  32. local vector, onScreen = Camera:WorldToScreenPoint(v.Character["HumanoidRootPart"].Position)
  33. if onScreen then
  34. local ray = Ray.new(
  35. Camera.CFrame.p,
  36. (v.Character["Head"].Position-Camera.CFrame.p).unit*500
  37. )
  38. local ignore = {
  39. LocalPlayer.Character,
  40. }
  41. local hit,position,normal=workspace:FindPartOnRayWithIgnoreList(ray,ignore)
  42. if hit and hit:FindFirstAncestorOfClass("Model") and Players:FindFirstChild(hit:FindFirstAncestorOfClass("Model").Name)then
  43. local magnitude = (Vector2.new(mouse.X, mouse.Y) - Vector2.new(vector.X, vector.Y)).magnitude
  44. if magnitude < nearestmagnitude and magnitude <= fov then
  45. nearestenemy = v
  46. nearestmagnitude = magnitude
  47. end
  48. end
  49. end
  50. end
  51. end
  52. end
  53. return nearestenemy
  54. end
  55.  
  56.  
  57. local meta = getrawmetatable(game)
  58. setreadonly(meta, false)
  59. local oldNamecall = meta.__namecall
  60. meta.__namecall = newcclosure(function(...)
  61.  
  62. local method = getnamecallmethod()
  63. local args = {...}
  64. if string.find(method,'Ray') then
  65. if target then
  66. if args[1].Name ~= "Workspace" then
  67. print(args[1])
  68. end;
  69. args[2] = Ray.new(workspace.CurrentCamera.CFrame.Position, (target.Position + Vector3.new(0,(workspace.CurrentCamera.CFrame.Position-target.Position).Magnitude/500,0) - workspace.CurrentCamera.CFrame.Position).unit * 5000)
  70. end
  71. end
  72. return oldNamecall(unpack(args))
  73. end)
  74.  
  75.  
  76. RunService:BindToRenderStep("SilentAim",1,function()
  77. if UserInputService:IsMouseButtonPressed(0) and Players.LocalPlayer.Character and Players.LocalPlayer.Character:FindFirstChild("Humanoid") and Players.LocalPlayer.Character.Humanoid.Health > 0 then
  78. local enemy = getnearest()
  79. if enemy and enemy.Character and enemy.Character:FindFirstChild("Humanoid") and enemy.Character.Humanoid.Health > 0 then
  80. local vector, onScreen = Camera:WorldToScreenPoint(enemy.Character["Head"].Position)
  81. local head = (Vector2.new(mouse.X, mouse.Y) - Vector2.new(vector.X, vector.Y)).magnitude
  82. local vector, onScreen = Camera:WorldToScreenPoint(enemy.Character["HumanoidRootPart"].Position)
  83. local hitbox = (Vector2.new(mouse.X, mouse.Y) - Vector2.new(vector.X, vector.Y)).magnitude
  84. if head <= hitbox then
  85. magnitude = head
  86. else
  87. magnitude = hitbox;
  88. end;
  89. if getfenv().lock == "Head" then
  90. target = workspace[enemy.Name]["Head"]
  91. else
  92. if getfenv().lock == "Random" then
  93. if magnitude == hitbox then
  94. target = workspace[enemy.Name]["HumanoidRootPart"];
  95. else
  96. target = workspace[enemy.Name]["Head"]
  97. end;
  98. else
  99. target = workspace[enemy.Name]["HumanoidRootPart"];
  100. end;
  101.  
  102. end;
  103. else
  104. target = nil
  105. end
  106. end
  107. end)
Advertisement
Add Comment
Please, Sign In to add comment