Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How to stop while loop by releasing key?

Asked by 5 years ago
Edited 5 years ago

It's supposed to charge the users mana, and it does, but it doesn't stop when release the key. I have to wait until the mana reaches 100, and then I have to press the key again to stop it. How can I make it so that it stops charging when I release the key? I figure it's supposed to be like the opposite of a stamina bar used for sprinting, but I still couldn't get it to work.


m = game.Players.LocalPlayer:GetMouse() -- Charging m.KeyDown:connect(function(key) if key == "f" then while Player.Character.Humanoid.Mana.Value < 100 do game.Players.LocalPlayer.Character.Humanoid.Mana.Value = game.Players.LocalPlayer.Character.Humanoid.Mana.Value + 1 wait(0.01) end end end) m.KeyUp:connect(function(key) -- Stop charging if key == "f" then game.Players.LocalPlayer.Character.Humanoid.Mana.Value = game.Players.LocalPlayer.Character.Humanoid.Mana.Value + 0 end end)
0
I recomend using one variable, that gets enabled when pressed, disabled when released, then using a while wait loop with an if statement that checks the variable User#20388 0 — 5y
0
btw, keydown is deprecated, use userinputservice User#20388 0 — 5y
0
Thanks, I watched a tutorial on UIS, and I did what you said and it's working fine. Edbotikx 99 — 5y

1 answer

Log in to vote
0
Answered by 5 years ago
uis = game:GetService("UserInputService")


uis.InputBegan:connect(function(input)
    if input.KeyCode == Enum.KeyCode.E then
        charging = true
        while charging == true do
        game.Players.LocalPlayer.Character.Humanoid.Mana.Value = game.Players.LocalPlayer.Character.Humanoid.Mana.Value  + 1 
        wait() 
        if charging == false then return end
        if game.Players.LocalPlayer.Character.Humanoid.Mana.Value == 100 then return end
        end
    end 
end)

uis.InputEnded:connect(function(input)
        if input.KeyCode == Enum.KeyCode.E then
        charging = false
    end
end)
Ad

Answer this question