Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Players = game:GetService("Players")
- local UserInputService = game:GetService("UserInputService")
- local RunService = game:GetService("RunService")
- local localPlayer = Players.LocalPlayer
- local mouse = localPlayer:GetMouse()
- local camera = workspace.CurrentCamera
- local target = nil
- local function findNearestEnemy()
- local nearestDistance = math.huge
- local nearestEnemy = nil
- for _, player in ipairs(Players:GetPlayers()) do
- if player ~= localPlayer and player.Team ~= localPlayer.Team then
- local character = player.Character
- if character and character:FindFirstChild("HumanoidRootPart") then
- local distance = (character.HumanoidRootPart.Position - localPlayer.Character.HumanoidRootPart.Position).magnitude
- if distance < nearestDistance then
- nearestDistance = distance
- nearestEnemy = player
- end
- end
- end
- end
- return nearestEnemy
- end
- local function lockOntoTarget(targetPlayer)
- if targetPlayer and targetPlayer.Character and targetPlayer.Character:FindFirstChild("HumanoidRootPart") then
- local targetHRP = targetPlayer.Character.HumanoidRootPart
- localPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(localPlayer.Character.HumanoidRootPart.Position, targetHRP.Position)
- local function updateCamera()
- if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") then
- local targetPosition = targetHRP.Position
- camera.CFrame =
- CFrame.new(camera.CFrame.Position, targetPosition)
- else
- RunService:UnbindFromRenderStep("LockOnUpdate")
- end
- end
- RunService:BindToRenderStep("LockOnUpdate", Enum.RenderPriority.Camera.Value + 1, updateCamera)
- end
- end
- UserInputService.InputBegan:Connect(function(input, gameProcessed)
- if input.UserInputType == Enum.UserInputType.MouseButton1 and not gameProcessed then
- target = findNearestEnemy()
- lockOntoTarget(target)
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement