Ok so, I have the script and everything works amazingly, but theres one big problem. When the stamina bar gets to 0 and you're still holding shift instead of it going back up and the FOV reverting back it stays down and you stay in the runnning fov but walking. I want the FOV to go back to normal and the players Stamina to go up even if they're holding shift. Here's the code
--//Varaiables\\--
local camera = game.Workspace.CurrentCamera
local TweeningService = game:GetService("TweenService")
local UIS = game:GetService("UserInputService")
local Bar = script.Parent:WaitForChild('Border'):WaitForChild("Bar")
local player = game.Players.LocalPlayer
local walk = 14
local run = 18
local power = 10
local sprinting = false
repeat wait() until game.Players.LocalPlayer.Character
local character = player.Character
local runService = game:GetService('RunService')
--//Tweens\\--
local FOVChanges = {
FieldOfView = 90
}
local TweenInformation = TweenInfo.new(
1,
Enum.EasingStyle.Quint,
Enum.EasingDirection.Out,
0,
false,
0
)
local tween = TweeningService:Create(camera, TweenInformation, FOVChanges)
local FOVChanges2 = {
FieldOfView = 70
}
local TweenInformation2 = TweenInfo.new(
1,
Enum.EasingStyle.Quint,
Enum.EasingDirection.Out,
0,
false,
0
)
local tween2 = TweeningService:Create(camera, TweenInformation2, FOVChanges2)
--//Shift Pressed and Let Go\\--
UIS.InputBegan:Connect(function(key, gameProcessed)
if key.KeyCode == Enum.KeyCode.LeftShift and gameProcessed == false and character.Humanoid:GetState() == Enum.HumanoidStateType.RunningNoPhysics and character.Humanoid.MoveDirection.Magnitude > 0 then
character.Humanoid.WalkSpeed = run
sprinting = true
while power > 0 and sprinting do
power = power - .03
Bar.Size = UDim2.new(power / 10, 0, 1, 0)
tween:Play()
wait()
if power <= 0 then
character.Humanoid.WalkSpeed = walk
tween2:Play()
end
end
end
end)
UIS.InputEnded:Connect(function(key, gameProcessed)
if key.KeyCode == Enum.KeyCode.LeftShift and gameProcessed == false then
character.Humanoid.WalkSpeed = walk
sprinting = false
while power < 10 and not sprinting do
power = power + .03
Bar.Size = UDim2.new(power / 10, 0, 1, 0)
tween2:Play()
wait()
if power <= 0 then
character.Humanoid.WalkSpeed = walk
end
end
end
end)
