-- LocalScript (dentro de StarterPlayer.StarterPlayerScripts) local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Player = Players.LocalPlayer local Character = Player.Character or Player.CharacterAdded:Wait() local Humanoid = Character:WaitForChild("Humanoid") local Camera = workspace.CurrentCamera -- Configurações local MAX_STAMINA = 100 local RUN_SPEED = 20 local WALK_SPEED = 16 -- Velocidade padrão do Roblox local RUN_FOV = 85 local NORMAL_FOV = 70 -- FOV padrão do Roblox local STAMINA_DECREASE_AMOUNT = 8 local STAMINA_DECREASE_INTERVAL = 2 -- segundos local STAMINA_REGEN_AMOUNT = 5 local STAMINA_REGEN_INTERVAL = 1 -- segundo -- Variáveis de estado local currentStamina = MAX_STAMINA local isRunning = false local lastStaminaDecreaseTime = 0 local lastStaminaRegenTime = 0 -- Criar a UI local playerGui = Player:WaitForChild("PlayerGui") -- ScreenGui local screenGui = Instance.new("ScreenGui") screenGui.Name = "StaminaUI" screenGui.Parent = playerGui -- Frame da barra de stamina (fundo) local staminaFrame = Instance.new("Frame") staminaFrame.Name = "StaminaFrame" staminaFrame.Size = UDim2.new(0.3, 0, 0.03, 0) -- 30% da largura da tela, 3% da altura staminaFrame.Position = UDim2.new(0.35, 0, 0.05, 0) -- Centralizado na parte superior staminaFrame.BackgroundColor3 = Color3.fromRGB(50, 50, 50) staminaFrame.BorderSizePixel = 0 staminaFrame.Parent = screenGui -- Barra de stamina (preenchimento) local staminaBar = Instance.new("Frame") staminaBar.Name = "StaminaBar" staminaBar.Size = UDim2.new(1, 0, 1, 0) -- Começa cheia dentro do Frame staminaBar.Position = UDim2.new(0, 0, 0, 0) staminaBar.BackgroundColor3 = Color3.fromRGB(0, 255, 0) -- Cor verde staminaBar.BorderSizePixel = 0 staminaBar.Parent = staminaFrame -- Botão de correr local runButton = Instance.new("TextButton") runButton.Name = "RunButton" runButton.Size = UDim2.new(0.08, 0, 0.08, 0) -- Pequeno quadrado runButton.Position = UDim2.new(0.85, 0, 0.8, 0) -- Canto inferior direito runButton.BackgroundColor3 = Color3.fromRGB(0, 0, 0) -- Preto runButton.TextColor3 = Color3.fromRGB(255, 255, 255) -- Texto branco runButton.Text = "Correr" runButton.Font = Enum.Font.SourceSansBold runButton.TextSize = 18 runButton.BorderSizePixel = 0 runButton.Parent = screenGui -- Função para atualizar a barra de stamina local function updateStaminaBar() local percentage = currentStamina / MAX_STAMINA staminaBar:TweenSize(UDim2.new(percentage, 0, 1, 0), "Out", "Quad", 0.1, true) -- Mudar a cor da barra dependendo da stamina if currentStamina > MAX_STAMINA / 2 then staminaBar.BackgroundColor3 = Color3.fromRGB(0, 255, 0) -- Verde elseif currentStamina > MAX_STAMINA / 4 then staminaBar.BackgroundColor3 = Color3.fromRGB(255, 255, 0) -- Amarelo else staminaBar.BackgroundColor3 = Color3.fromRGB(255, 0, 0) -- Vermelho end end -- Função para iniciar a corrida local function startRunning() if currentStamina > 0 then isRunning = true Humanoid.WalkSpeed = RUN_SPEED Camera.FieldOfView = RUN_FOV runButton.Text = "Walk" -- Mudar texto do botão lastStaminaDecreaseTime = os.time() -- Resetar tempo para começar a diminuir end end -- Função para parar de correr local function stopRunning() isRunning = false Humanoid.WalkSpeed = WALK_SPEED Camera.FieldOfView = NORMAL_FOV runButton.Text = "Run" -- Mudar texto do botão lastStaminaRegenTime = os.time() -- Resetar tempo para começar a regenerar end -- Conectar o botão de correr runButton.MouseButton1Click:Connect(function() if isRunning then stopRunning() else startRunning() end end) -- Loop principal do jogo (rodando a cada frame) RunService.RenderStepped:Connect(function() if Humanoid.Health > 0 then -- Apenas se o personagem estiver vivo if isRunning then -- Diminuir stamina se o personagem estiver andando e correndo if Humanoid.MoveDirection.Magnitude > 0 then -- Verifica se o personagem está se movendo local currentTime = os.time() if currentTime - lastStaminaDecreaseTime >= STAMINA_DECREASE_INTERVAL then currentStamina = math.max(0, currentStamina - STAMINA_DECREASE_AMOUNT) updateStaminaBar() lastStaminaDecreaseTime = currentTime if currentStamina == 0 then stopRunning() -- Parar de correr se a stamina acabar end end else -- Se estiver parado enquanto correndo, não diminui stamina, mas também não regenera automaticamente aqui -- A regeneração só acontece quando isRunning é falso end else -- Regenerar stamina local currentTime = os.time() if currentTime - lastStaminaRegenTime >= STAMINA_REGEN_INTERVAL then currentStamina = math.min(MAX_STAMINA, currentStamina + STAMINA_REGEN_AMOUNT) updateStaminaBar() lastStaminaRegenTime = currentTime end end end end) -- Inicializar a barra de stamina updateStaminaBar() print("Funcionou")