Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local player = game.Players.LocalPlayer
- local character = player.Character
- local localroot = character:WaitForChild("HumanoidRootPart")
- local HeadCam = character:WaitForChild("Head")
- local function closest()
- local range = math.huge
- local target = nil
- for _, v in pairs(game.Players:GetPlayers()) do
- if v ~= player and v.Character then
- local JN = v.Character:FindFirstChild("HumanoidRootPart")
- local JNR = v.Character:FindFirstChildOfClass("Humanoid")
- if JN and JNR and JNR.Health > 0 then
- local dist = (localroot.Position - JN.Position).magnitude
- if dist < range then
- range = dist
- target = v
- end
- end
- end
- end
- return target
- end
- local function Non_Behind_Wall_Target()
- local t = closest()
- if t and t.Character then
- local vroot = t.Character:FindFirstChild("HumanoidRootPart")
- local vhumanoid = t.Character:FindFirstChildOfClass("Humanoid")
- if vroot and vhumanoid and vhumanoid.Health > 0 then
- local Direction = (vroot.Position - HeadCam.Position).unit * 1000
- local Ray_setting = RaycastParams.new()
- Ray_setting.FilterDescendantsInstances = {character}
- Ray_setting.FilterType = Enum.RaycastFilterType.Blacklist
- local result = workspace:Raycast(HeadCam.Position, Direction, Ray_setting)
- if result and result.Instance:IsDescendantOf(t.Character) then
- return vroot
- end
- end
- end
- return nil
- end
- local Cam = workspace.CurrentCamera
- local function Update()
- local TARGET = Non_Behind_Wall_Target()
- if TARGET then
- Cam.CFrame = CFrame.new(Cam.CFrame.Position, TARGET.Position)
- end
- end
- game:GetService("RunService").RenderStepped:Connect(Update)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement