Advertisement
Benben2453564657

Da hood aim viewer

May 20th, 2024
500
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.90 KB | None | 0 0
  1. -- made by CG
  2.  
  3. shared.CG_AIM_VIEWER_ENABLED = not shared.CG_AIM_VIEWER_ENABLED
  4.  
  5. local runService = game:GetService("RunService")
  6. local Players = game:GetService("Players")
  7. local MyPlayer = Players.LocalPlayer
  8.  
  9. shared.CG_AIM_VIEWER_CONNECTIONS = shared.CG_AIM_VIEWER_CONNECTIONS or {}
  10. shared.CG_AIM_VIEWER_CachedParts = shared.CG_AIM_VIEWER_CachedParts or {}
  11.  
  12. for _, Connection in ipairs(shared.CG_AIM_VIEWER_CONNECTIONS) do
  13.     pcall(Connection.Disconnect, Connection)
  14. end
  15.  
  16. for _, Part in pairs(shared.CG_AIM_VIEWER_CachedParts) do
  17.     pcall(Part.Destroy, Part)
  18. end
  19.  
  20. table.clear(shared.CG_AIM_VIEWER_CONNECTIONS)
  21. table.clear(shared.CG_AIM_VIEWER_CachedParts)
  22.  
  23. if not shared.CG_AIM_VIEWER_ENABLED then return end
  24.  
  25. local function makeSignal(event, func)
  26.     shared.CG_AIM_VIEWER_CONNECTIONS[#shared.CG_AIM_VIEWER_CONNECTIONS + 1] = event:Connect(func)
  27. end
  28.  
  29. makeSignal(runService.RenderStepped, function()
  30.     for _, Player in ipairs(Players:GetChildren()) do
  31.         if Player ~= MyPlayer then
  32.             local Character = Player.Character
  33.             local currentTool = Character and Character:FindFirstChildWhichIsA("Tool")
  34.             local currentToolHandle = currentTool and currentTool:FindFirstChild("Handle")
  35.             local hasAmmo = currentTool and currentTool:FindFirstChild("Ammo")
  36.             local playerMousePos = Character and Character:FindFirstChild("MousePos", true)
  37.  
  38.             if hasAmmo and playerMousePos and playerMousePos:IsA("Vector3Value") and currentToolHandle and currentToolHandle:IsA("BasePart") then
  39.                 local mousePos = playerMousePos.Value
  40.                
  41.                 local distance = (currentToolHandle.Position - mousePos).Magnitude
  42.                 local cylinder = shared.CG_AIM_VIEWER_CachedParts[Player] or Instance.new("Part")
  43.                 cylinder.Anchored = true
  44.                 cylinder.CanCollide = false
  45.                 cylinder.CastShadow = false
  46.                 cylinder.Size = Vector3.new(0.1, 0.1, distance)
  47.                 cylinder.CFrame = CFrame.new(currentToolHandle.Position, mousePos) * CFrame.new(0, 0, -distance / 2)
  48.                 cylinder.Parent = workspace.CurrentCamera
  49.                 cylinder.Transparency = 0.5
  50.                 cylinder.Color = Color3.fromRGB(255, 0, 0)
  51.                 cylinder.Material = Enum.Material.SmoothPlastic
  52.  
  53.                 shared.CG_AIM_VIEWER_CachedParts[Player] = cylinder
  54.             else
  55.                 if shared.CG_AIM_VIEWER_CachedParts[Player] then
  56.                     shared.CG_AIM_VIEWER_CachedParts[Player]:Destroy()
  57.                     shared.CG_AIM_VIEWER_CachedParts[Player] = nil
  58.                 end
  59.             end
  60.         end
  61.     end
  62. end)
  63.  
  64. makeSignal(Players.PlayerRemoving, function(Player)
  65.     if shared.CG_AIM_VIEWER_CachedParts[Player] then
  66.         shared.CG_AIM_VIEWER_CachedParts[Player]:Destroy()
  67.         shared.CG_AIM_VIEWER_CachedParts[Player] = nil
  68.     end
  69. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement