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

How to add a cooldown to the animation code?

Asked by 4 years ago

Hello (again)! I have attempted to implement a wait time into every line of the code shown down below, and nothing has managed to delay the animation. I'm sorry about taking up so much room on the question board, but I really want to get this animation over with so I can get back to modeling.

local plr = game.Players.LocalPlayer
local char = plr.Character or plr.CharacterAdded:wait()
local tool = script.Parent
local swingsound = tool:WaitForChild("Swing")
local canattack = tool:WaitForChild("CanAttack")
local Punch1 = Instance.new("Animation")
Punch1.AnimationId = "rbxassetid://4921775472"
local Punch2 = Instance.new("Animation")
Punch2.AnimationId = "rbxassetid://4921778051"
local cooldown = 1

tool.Activated:connect(function()
    local choose = math.random(1,2)
    canattack.Value = true
    if choose == 1 then
        local swing1animation = script.Parent.Parent.Humanoid:LoadAnimation(Punch1)
        swingsound:Play()
        swing1animation:Play()
    elseif choose == 2 then
        local swing2animation = script.Parent.Parent.Humanoid:LoadAnimation(Punch2)
        swingsound:Play()
        swing2animation:Play()
    end
end)

tool.Deactivated:connect(function()
    canattack.Value = true
end)

tool.Unequipped:connect(function()
    local hum = char:WaitForChild("Humanoid")
    for _,anim in pairs(hum:GetPlayingAnimationTracks()) do
        anim:Stop()
    end
end)

Thanks again!

0
Try to put a Delay at the line 15. Delay(time, function) NiniBlackJackQc 1562 — 4y
0
Just attempted integrating that, there still is no cooldown and I am able to spam the animation. JarringJar 0 — 4y

1 answer

Log in to vote
0
Answered by 4 years ago
Edited 4 years ago

fix (i think):

local plr = game.Players.LocalPlayer
local char = plr.Character or plr.CharacterAdded:wait()
local tool = script.Parent
local swingsound = tool:WaitForChild("Swing")
local canattack = tool:WaitForChild("CanAttack")
local Punch1 = Instance.new("Animation")
Punch1.AnimationId = "rbxassetid://4921775472"
local Punch2 = Instance.new("Animation")
Punch2.AnimationId = "rbxassetid://4921778051"
local cooldown = 1

tool.Activated:connect(function()
    local choose = math.random(1,2)
    canattack.Value = true
    if choose == 1 then
    wait(cooldown)
        local swing1animation = script.Parent.Parent.Humanoid:LoadAnimation(Punch1)
        swingsound:Play()
        swing1animation:Play()
    elseif choose == 2 then
    wait(cooldown)
        local swing2animation = script.Parent.Parent.Humanoid:LoadAnimation(Punch2)
        swingsound:Play()
        swing2animation:Play()
    end
end)

tool.Deactivated:connect(function()
    canattack.Value = true
end)

tool.Unequipped:connect(function()
    local hum = char:WaitForChild("Humanoid")
    for _,anim in pairs(hum:GetPlayingAnimationTracks()) do
        anim:Stop()
    end
end)
0
I tried this as well to no prevail. JarringJar 0 — 4y
Ad

Answer this question