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

Why does the debounce fail sometimes?

Asked by 8 years ago

The debounce on line 8 stops me from firing the attack more the once and allows me to fire it again in 5 on line 116. The debounce fails sometimes and allows me to fire the attack by repeatedly pressing Z. I have no idea why this happens please help.

Sorry about the script being so long, I felt that it would be best for you to see everything to be able to help me properly.

repeat wait() until game.Players.LocalPlayer.Character

local Player = game.Players.LocalPlayer

local weapon = Player.Character.weapon

local Mouse = Player:GetMouse()
local enabled = true

Mouse.KeyDown:connect(function(key)
if not enabled then
        return
    end

if key == "x" then
enabled = false

local AttackPart1 = Instance.new("Animation")
AttackPart1.AnimationId = "http://www.roblox.com/Asset?ID=382733312"
local animTrack1 = Player.Character.Humanoid:LoadAnimation(AttackPart1)
animTrack1:Play()

local Swing = game.ReplicatedStorage.SOUND.Swing:Clone()
Swing.Parent = Player.Character.Torso

wait()
Swing:Play()

local AttackPart2 = Instance.new("Animation")
AttackPart2.AnimationId = "http://www.roblox.com/Asset?ID=385127283"
local animTrack2 = Player.Character.Humanoid:LoadAnimation(AttackPart2)
animTrack2:Play()

local Swing2 = game.ReplicatedStorage.SOUND.Swing:Clone()
Swing2.Parent = Player.Character.Torso
Swing2.Pitch = 0.7

wait(0.25)
Swing2:Play()

debounce = false

for _, weaponSeg in pairs (weapon:GetChildren()) do

    if weaponSeg.ClassName == "Part" then 

    weaponSeg.Touched:connect(function(part)

    local Human = part.Parent:FindFirstChild("Humanoid")
    local Blocked = part.Parent:FindFirstChild("Blocking")

    if Human and not debounce and part.Parent ~= Player.Character and part.Parent.Name ~= "sword" and Blocked == nil then

        debounce = true
        Human:TakeDamage(math.random(20, 25))

        local Slice = game.ReplicatedStorage.SOUND.Slice:Clone()
        Slice.Parent = Player.Character.Torso

        wait()
        Slice:Play()

        local Blood = game.ReplicatedStorage.PARTICLES.Blood:Clone()
        Blood.Parent = part
        Blood.Enabled = true

        wait(0.4)
        Slice:Destroy() 
        Blood.Enabled = false

        wait(0.15)
        Blood:Destroy()


        elseif Human and not debounce and part.Parent ~= Player.Character and Blocked then

        debounce = true
        Human:TakeDamage(math.random(2, 5))

        local Clash = game.ReplicatedStorage.SOUND.Clash:Clone()
        Clash.Parent = Player.Character.Torso

        wait()
        Clash:Play()

        local Sparks1 = game.ReplicatedStorage.PARTICLES.Sparks1:Clone()
        Sparks1.Parent = part
        Sparks1.Enabled = true

        local Sparks2 = game.ReplicatedStorage.PARTICLES.Sparks2:Clone()
        Sparks2.Parent = part
        Sparks2.Enabled = true

        wait(0.6)
        Clash:Destroy()
        Sparks1.Enabled = false
        Sparks2.Enabled = false

        wait(0.15)
        Sparks1:Destroy()
        Sparks2:Destroy()

end
    end)
        end


Swing:Destroy()
end
wait(2)
debounce = true

end

wait(5)
enabled = true
    end)
0
It likely has to do with where you placed your debounce, which is why correct tabbing is SO important. Perci1 4988 — 8y
0
Any idea where it went wrong then? SHDrivingMeNuts 299 — 8y
0
No because you didn't tab your code correctly and I don't wanna read through everything to figure it out Perci1 4988 — 8y
0
So how is it tabbed incorrectly? SHDrivingMeNuts 299 — 8y

Answer this question