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

How do i add a debounce to this script ?

Asked by 4 years ago
local tool = script.Parent
local player = game:GetService("Players").LocalPlayer
local oGUI = script:FindFirstChild("ScreenGui")


tool.Equipped:Connect(function(mouse)
    local GUI = oGUI:Clone()
GUI.Parent = player.PlayerGui
    wait(1)
    GUI.Equiping.Visible = false

    mouse.Button1Down:connect(function()


        local ray = Ray.new(tool.Glowstone.CFrame.p, (mouse.Hit.p - tool.Glowstone.CFrame.p).unit * 400)
        local part, position = workspace:FindPartOnRay(ray, player.Character, false, true)
        local beam = Instance.new("Part",workspace)
        beam.FormFactor = "Custom"
        beam.Material = "Ice"
        beam.BrickColor = BrickColor.new("Cyan")
        beam.CanCollide = false
        beam.Anchored = true
        beam.Transparency = 0.15
        beam.Locked = true
        local distance = (tool.Glowstone.CFrame.p - position).magnitude
        beam.Size = Vector3.new(0.3 , 0.3 , distance)
        beam.CFrame = CFrame.new(tool.Glowstone.CFrame.p, position) * CFrame.new(0,0, -distance /2)
        game:GetService("Debris"):AddItem(beam, 0.1)
        if part then

            local human = part.Parent:FindFirstChild("Humanoid")
            if not human then
                human = part.Parent.Parent:FindFirstChild("Humanoid")
                end
            if human then

               human:TakeDamage(3)
               human.WalkSpeed = 1
               wait(1)
               GUI.Time.Visible = true
               GUI.Time.Text = "4"
               wait(1)
               GUI.Time.Text = "3"
               wait(1)
               GUI.Time.Text = "2"
               wait(1)
               GUI.Time.Text = "1"
               wait(1)
               GUI.Time.Visible = false
            end
        end
    end)
end)

This is a local script by the way

1 answer

Log in to vote
0
Answered by
0_2k 496 Moderation Voter
4 years ago
local tool = script.Parent
local player = game:GetService("Players").LocalPlayer
local oGUI = script:FindFirstChild("ScreenGui")
local db = false


tool.Equipped:Connect(function(mouse)
    local GUI = oGUI:Clone()
GUI.Parent = player.PlayerGui
    wait(1)
    GUI.Equiping.Visible = false

    mouse.Button1Down:connect(function()
    if not db then
        db = true

        local ray = Ray.new(tool.Glowstone.CFrame.p, (mouse.Hit.p - tool.Glowstone.CFrame.p).unit * 400)
        local part, position = workspace:FindPartOnRay(ray, player.Character, false, true)
        local beam = Instance.new("Part",workspace)
        beam.FormFactor = "Custom"
        beam.Material = "Ice"
        beam.BrickColor = BrickColor.new("Cyan")
        beam.CanCollide = false
        beam.Anchored = true
        beam.Transparency = 0.15
        beam.Locked = true
        local distance = (tool.Glowstone.CFrame.p - position).magnitude
        beam.Size = Vector3.new(0.3 , 0.3 , distance)
        beam.CFrame = CFrame.new(tool.Glowstone.CFrame.p, position) * CFrame.new(0,0, -distance /2)
        game:GetService("Debris"):AddItem(beam, 0.1)
        if part then

            local human = part.Parent:FindFirstChild("Humanoid")
            if not human then
                human = part.Parent.Parent:FindFirstChild("Humanoid")
                end
            if human then

               human:TakeDamage(3)
               human.WalkSpeed = 1
               wait(1)
               GUI.Time.Visible = true
               GUI.Time.Text = "4"
               wait(1)
               GUI.Time.Text = "3"
               wait(1)
               GUI.Time.Text = "2"
               wait(1)
               GUI.Time.Text = "1"
               wait(1)
               GUI.Time.Visible = false
        wait(5) -- // TIME you want for the cooldown
        db = false
        end
            end
        end
    end)
end)

Ad

Answer this question