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

Debounce not working for key inputs?

Asked by 4 years ago

I tried to set up a debounce for whenever the mouse button is pressed, but for some reason it just keeps repeating the code, completely ignoring the debounce. Is there anything I did wrong here?

--Variables
local folder = script.Parent
local player = game.Players.LocalPlayer
local rf = script.Parent:WaitForChild("RemoteEvent")
local chargeRemote = script.Parent:WaitForChild("Charging")
local fireRemote = script.Parent:WaitForChild("Fire")
local shooting = false
local uis = game:GetService("UserInputService")
local mouse = player:GetMouse()
local character = player.Character or player.CharacterAdded:Wait()
local hum = character:WaitForChild("Humanoid")
local holdingMouse = false
local debounce = false

--Anims
local charge = folder:WaitForChild("Charge")
local fire = folder:WaitForChild("Fire")
local chargeTrack = hum:LoadAnimation(charge)
local fireTrack = hum:LoadAnimation(fire)


--Functions
if not debounce then
    uis.InputBegan:Connect(function(input, gameProccessedEvent)
        if input.UserInputType == Enum.UserInputType.MouseButton1 then
            debounce = true
            print("working")
            wait(.2)
            local rh = character:WaitForChild("RightHand")
            holdingMouse = true 
            chargeTrack:Play()  
            rf:FireServer(rh, character)

            --Charge the ki
            rf.OnClientEvent:Connect(function(cb)       

            --[[chargeTrack.KeyframeReached:Connect(function(pose)
                if pose == "Pause" and holdingMouse then
                    chargeTrack:AdjustSpeed(0)
                end
            end)]]  

                if holdingMouse then
                    while holdingMouse do
                        wait()
                        --chargeRemote:FireServer(character)
                    end
                end
            end)    

            --When the mouse is released, fire
            mouse.Button1Up:Connect(function()
                --[[if chargeTrack.Speed == 0 then
                    chargeTrack:AdjustSpeed(1)
                else
                    return false
                end]]

                while chargeTrack.IsPlaying do
                    wait()
                end
                holdingMouse = false
                fireTrack:Play()
            end)
        end
    end)
end
0
"if not debounce then" should be right before "debounce = true" Arctanh 1 — 4y
0
i dont think it matter wherever its put, as long as its there supercoolboy8804 114 — 4y
0
No the debounce check needs to be inside the event, not outside of it. it does matter Arctanh 1 — 4y
0
Yeah, Arctanh is correct. Right now the debounce bool does nothing, since it is only gating setup of the connection, which only happens once anyways. EmilyBendsSpace 1025 — 4y

Answer this question