self = script.Parent
c = workspace.CurrentCamera
rs = game:GetService("RunService")

player = game.Players.LocalPlayer
char = player.Character or player.CharacterAdded:wait()
humanoid = char:WaitForChild("Humanoid")

player.CameraMaxZoomDistance = 0.5
humanoid.CameraOffset = Vector3.new(0,0,-0.5)

function updateCam()
	if humanoid then
		local y = c.CoordinateFrame.lookVector.Y
		humanoid.CameraOffset = Vector3.new(math.max(3,1.5-y),math.abs(y/2)-y*3.8642337322235,7-math.abs(y))
	end
end

function lock(part)
	if part and part:IsA("Hat") and part:WaitForChild("Handle") then 
		part = part.Handle
	end
	if part and part:IsA("BasePart") then
		part.LocalTransparencyModifier = 0
		part.Changed:connect(function ()
			part.LocalTransparencyModifier = 0
		end)
	end
end

for _,v in pairs(char:GetChildren()) do
	lock(v)
end

char.ChildAdded:connect(lock)
rs.RenderStepped:connect(updateCam)

i've been struggling with this for a while. :(

1 comment

0

What exactly are you asking?