How whould I make it so when a player holds out a certain tool, it makes their camera go over their shoulder, and and when they unequip the tool, it goes back to the player’s normal camera. How would I make this script do that?
local uis = game:GetService("UserInputService")
local rs = game:GetService("RunService")
local context = game:GetService("ContextActionService")
local plr = game:GetService("Players").LocalPlayer
local Camera = game:GetService("Workspace").CurrentCamera
local mouse = plr:GetMouse()
local cameraDB = false
local zoomDB = false
-- Values
local xAngle = 0
local yAngle = 0
local cameraPos = Vector3.new(2,0,8.5)
-- CAMERA SETTING --
wait(0.01)
Camera.CameraType = Enum.CameraType.Scriptable
-- FUNCTIONS --
context:BindAction("CameraMovement", function(_,_,input)
xAngle = xAngle - input.Delta.x*0.4
yAngle = math.clamp(yAngle - input.Delta.y*0.4,-80,80)
end, false, Enum.UserInputType.MouseMovement)
rs.RenderStepped:Connect(function()
uis.MouseBehavior = Enum.MouseBehavior.LockCenter
local c = plr.Character or plr.CharacterAdded:Wait()
local rootPart = c:FindFirstChild("HumanoidRootPart")
if c and rootPart then
local startCFrame = CFrame.new((rootPart.CFrame.p + Vector3.new(0,2,0)))*CFrame.Angles(0, math.rad(xAngle), 0)*CFrame.Angles(math.rad(yAngle), 0, 0)
local cameraCFrame = startCFrame + startCFrame:VectorToWorldSpace(Vector3.new(cameraPos.X,cameraPos.Y,cameraPos.Z))
local cameraFocus = startCFrame + startCFrame:VectorToWorldSpace(Vector3.new(cameraPos.X,cameraPos.Y,-50000))
Camera.CFrame = CFrame.new(cameraCFrame.p,cameraFocus.p)
end
end)