gpm231
(DaGpm231)
#1
Hello devforum, I have a problem with this script:
game:GetService("RunService").RenderStepped:Connect(function()
if tool.Parent ~= player.Backpack then
print("Weapon is equipped")
uis.MouseBehavior = Enum.MouseBehavior.LockCenter
camera.CameraType = Enum.CameraType.Scriptable
local startCFrame = CFrame.new((hrp.CFrame.Position)) * CFrame.Angles(0, math.rad(x), 0) * CFrame.Angles(math.rad(y), 0, 0)
local cameraCFrame = startCFrame:ToWorldSpace(CFrame.new(offset.X, offset.Y, offset.Z))
local cameraDirection = startCFrame:ToWorldSpace(CFrame.new(offset.X, offset.Y, -10000))
camera.CFrame = CFrame.new(cameraCFrame.Position, cameraDirection.Position)
else
print("Weapon is unequipped")
uis.MouseBehavior = Enum.MouseBehavior.Default
wait(0.2)
camera.CameraType = Enum.CameraType.Custom
end
end)
Thee prints work, but when the part with “Weapon is unequipped” is excuted, the camera stays scriptable and the mouse stays locked.
Thanks for reading.
Can’t see any errors but why do you need to use a RenderStepped for that? You could just bind to a Equipped and Unequipped event?
tool.Equipped:Connect(function()
print("Weapon is equipped")
uis.MouseBehavior = Enum.MouseBehavior.LockCenter
camera.CameraType = Enum.CameraType.Scriptable
local startCFrame = CFrame.new((hrp.CFrame.Position)) * CFrame.Angles(0, math.rad(x), 0) * CFrame.Angles(math.rad(y), 0, 0)
local cameraCFrame = startCFrame:ToWorldSpace(CFrame.new(offset.X, offset.Y, offset.Z))
local cameraDirection = startCFrame:ToWorldSpace(CFrame.new(offset.X, offset.Y, -10000))
camera.CFrame = CFrame.new(cameraCFrame.Position, cameraDirection.Position)
end)
tool.Unequipped:Connect(function()
print("Weapon is unequipped")
uis.MouseBehavior = Enum.MouseBehavior.Default
wait(0.2)
camera.CameraType = Enum.CameraType.Custom
end)
2 Likes
gpm231
(DaGpm231)
#3
I use renderstepped because im setting the camera offset for the shoulder camera