Advertisement
skibidisigma2555

lock on

Jan 21st, 2025
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.67 KB | None | 0 0
  1. local player = game.Players.LocalPlayer
  2. local mouse = player:GetMouse()
  3. local camera = game.Workspace.CurrentCamera
  4. local lockOn = false
  5. local targetPlayer = nil
  6.  
  7. -- UI Setup (Button Less Long)
  8. local screenGui = Instance.new("ScreenGui")
  9. screenGui.Parent = player:WaitForChild("PlayerGui")
  10.  
  11. local toggleButton = Instance.new("TextButton")
  12. toggleButton.Size = UDim2.new(0, 100, 0, 30) -- Less long, width reduced to 100
  13. toggleButton.Position = UDim2.new(0, 20, 0, 20) -- Left corner, a little padding
  14. toggleButton.Text = "Lock On"
  15. toggleButton.Parent = screenGui
  16. toggleButton.BackgroundColor3 = Color3.fromHSV(0, 1, 1)
  17.  
  18. -- Making the UI movable
  19. local dragging = false
  20. local dragStart
  21. local startPos
  22.  
  23. toggleButton.MouseButton1Down:Connect(function(input)
  24. dragging = true
  25. dragStart = input.Position
  26. startPos = toggleButton.Position
  27. end)
  28.  
  29. toggleButton.MouseMoved:Connect(function(input)
  30. if dragging then
  31. local delta = input.Position - dragStart
  32. toggleButton.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
  33. end
  34. end)
  35.  
  36. toggleButton.MouseButton1Up:Connect(function()
  37. dragging = false
  38. end)
  39.  
  40. -- Rainbow Effect for UI (optional)
  41. local function updateRainbowColor()
  42. local time = tick()
  43. toggleButton.BackgroundColor3 = Color3.fromHSV(time % 5 / 5, 1, 1)
  44. end
  45.  
  46. game:GetService("RunService").RenderStepped:Connect(updateRainbowColor)
  47.  
  48. -- Toggle Lock-On Functionality (Button Click and "E" Key)
  49. local function toggleLockOn()
  50. lockOn = not lockOn
  51. if lockOn then
  52. toggleButton.Text = "Lock Off"
  53. -- Find the nearest player to lock on to (based on looking direction)
  54. local closestDistance = math.huge
  55. for _, otherPlayer in pairs(game.Players:GetPlayers()) do
  56. if otherPlayer ~= player and otherPlayer.Character and otherPlayer.Character:FindFirstChild("HumanoidRootPart") then
  57. local direction = (otherPlayer.Character.HumanoidRootPart.Position - camera.CFrame.Position).unit
  58. local dotProduct = direction:Dot(camera.CFrame.LookVector) -- Check if the player is in front of you
  59.  
  60. -- Lock only on players you are looking at
  61. if dotProduct > 0.5 then
  62. local distance = (player.Character.HumanoidRootPart.Position - otherPlayer.Character.HumanoidRootPart.Position).magnitude
  63. if distance < closestDistance then
  64. closestDistance = distance
  65. targetPlayer = otherPlayer
  66. end
  67. end
  68. end
  69. end
  70. else
  71. toggleButton.Text = "Lock On"
  72. targetPlayer = nil
  73. end
  74. end
  75.  
  76.  
  77. game:GetService("UserInputService").InputBegan:Connect(function(input, gameProcessed)
  78. if gameProcessed then return end -- Ignore if the input is already processed (like in chat)
  79.  
  80. -- Handle E key press
  81. if input.KeyCode == Enum.KeyCode.E then
  82. toggleLockOn()
  83. end
  84. end)
  85.  
  86.  
  87. toggleButton.MouseButton1Click:Connect(function()
  88. toggleLockOn()
  89. end)
  90.  
  91.  
  92. game:GetService("RunService").Heartbeat:Connect(function()
  93. if lockOn and targetPlayer then
  94.  
  95. local targetPos = targetPlayer.Character.HumanoidRootPart.Position
  96. camera.CFrame = CFrame.new(camera.CFrame.Position, targetPos) -- Camera always looks at the target
  97. elseif not lockOn then
  98.  
  99. camera.CameraSubject = player.Character.Humanoid
  100. end
  101. end)
  102.  
  103.  
  104. player.CharacterAdded:Connect(function()
  105. -- Reset lock-on when player respawns
  106. lockOn = false
  107. targetPlayer = nil
  108. toggleButton.Text = "Lock On"
  109. end)
  110.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement