Is there any way to Enable third person with this cam script?

Hi, someone knows any way i can make the camera only follow the angles of the head? , because i can’t zoom out to third person

`local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")

local UserGameSettings = UserSettings():GetService("UserGameSettings")
local localPlayer = Players.LocalPlayer
local character = localPlayer.Character or localPlayer.CharacterAdded:Wait()
local camera = workspace.CurrentCamera

--localPlayer.CameraMode = Enum.CameraMode.Classic

local head = character:WaitForChild("Head")
local hrp = character:WaitForChild("HumanoidRootPart")
local humanoid = character:WaitForChild("Humanoid")
humanoid.CameraOffset = Vector3.zAxis

local lastOffset = Vector3.zero

local cameraRot = Vector2.zero
local sensitivityMultiplier = Vector2.new(0.010, 0.010)
local cameraClamp = { Y = NumberRange.new(-math.rad(80), math.rad(80)) }

local visibleParts = {
	"Torso",
	"Left Arm",
	"Left Leg",
	"Right Arm",
	"Right Leg"
}

local function UpdateCameraRotation()
	local mouseDelta = UserInputService:GetMouseDelta()
	local mouseSensitivity = UserGameSettings.MouseSensitivity
	
	cameraRot = Vector2.new(
		cameraRot.X - mouseDelta.X * mouseSensitivity * sensitivityMultiplier.X,
		math.clamp(
			cameraRot.Y - mouseDelta.Y * mouseSensitivity * sensitivityMultiplier.Y,
			cameraClamp.Y.Min,
			cameraClamp.Y.Max
		)
	)
end

RunService:BindToRenderStep("CameraUpdate", Enum.RenderPriority.Camera.Value, function(dt: number)
	if not head or not hrp or not humanoid then return end
	
	UpdateCameraRotation()
	
	local headCF = head.CFrame:: CFrame
	local hrpCF = hrp.CFrame:: CFrame
	
	local offset = lastOffset:Lerp(humanoid.CameraOffset, dt * 10)
	lastOffset = offset
	
	offset = offset.X * hrpCF.RightVector + offset.Y * hrpCF.UpVector + offset.Z * hrpCF.LookVector
	
	local hrpY, hrpX, hrpZ = hrpCF:ToOrientation()
	
	local raw = (headCF + offset) * CFrame.Angles(-hrpY, -hrpX, -hrpZ)
	
	
	local rot = CFrame.Angles(0, cameraRot.X, 0) * CFrame.Angles(cameraRot.Y, 0, 0)
	camera.CFrame = raw * rot
end)

RunService:BindToRenderStep("CharacterRotationUpdate", Enum.RenderPriority.Character.Value, function(dt: number)
	if not hrp then return end
	if not humanoid.AutoRotate then return end
	
	local hrpCF = hrp.CFrame
	hrp.CFrame = CFrame.new(hrpCF.Position) * CFrame.fromOrientation(0, cameraRot.X, 0)
end)

RunService.PreRender:Connect(function(dt: number)
	--UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
	
	for _, part: BasePart in character:GetDescendants() do
		pcall(function()
			part.LocalTransparencyModifier = table.find(visibleParts, part.Name) and 0 or 1
		end)
	end
end)

UserInputService.InputBegan:Connect(function(inputObject, event)
	if event then return end
	
	if inputObject.KeyCode == Enum.KeyCode.E then
		local animation = Instance.new("Animation")
		animation.AnimationId = `rbxassetid://{18744792611}`
		
		humanoid.Animator:LoadAnimation(animation):Play()
	end
end)`