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

How can i add a cool down to this key bind magic script?

Asked by 3 years ago
Edited 3 years ago
Player = game.Players.LocalPlayer
repeat wait() until Player.Character
c = Player.Character
mouse = Player:GetMouse()

mouse.TargetFilter = workspace.AntiMouse
UIS = game:GetService("UserInputService")

UIS.InputBegan:connect(function(input, isTyping)
    if isTyping then return end
    if input.KeyCode == Enum.KeyCode.Q then
        script.Function:FireServer("Projectile", c.HumanoidRootPart.CFrame, mouse.hit.p)
        local debounce = false
    end
end)

I need help adding a cooldown to this because its spammable, and the character can spam magic projectiles which is what i dont want.The first script is for the key bind and the second script is for the projectile and when it hits a object or character an explosion would happen. Can someone help me with a cooldown and where would i put it? At the end? I've tried looking into debounce but it wont work. I hope someone can help me, thanks.

script.Parent.OnServerEvent:connect(function(Player, Action, V1, V2)
    local c = Player.Character
    if Action == "Projectile" then
        local P = Instance.new("Part")
        P.Name = Player.Name.."Projectile"
        P.Transparency = 1
        P.Size = Vector3.new(2,2,2)
        P.CFrame = V1*CFrame.new(0,0,-2)
        P.CFrame = CFrame.new(P.Position, V2)
        P.Parent = workspace.AntiMouse.Projectiles
        P.CanCollide = false
        game.Debris:AddItem(P,10)
        local PFX = script.ProjectileFX:clone()
        PFX.Parent = P
        PFX.Enabled = true
        local BV = Instance.new("BodyVelocity")
        BV.maxForce = Vector3.new(25000,25000,25000)
        BV.Velocity = P.CFrame.lookVector*25
        BV.Parent = P
        local Trigger = false
        P.Touched:connect(function(Hit)
            if Trigger == false and Hit.Parent.ClassName ~= "Accessory" and Hit.Parent ~= c and Hit.Name ~= Player.Name.."Projectile" and Hit.Parent ~= workspace.AntiMouse.FX then
                Trigger = true
                P.Anchored = true
                PFX.Enabled = false
                game.Debris:AddItem(P,1)
                for i=1,3 do
                    local FX = game.ServerStorage.FX.CustomMeshFX:clone()
                    FX.Color = Color3.fromRGB(255,255,255)
                    FX.CFrame = P.CFrame
                    FX.Parent = workspace.AntiMouse.FX
                    game.Debris:AddItem(FX,2)
                end
                local Reg = Region3.new(P.Position-Vector3.new(6,6,6),P.Position+Vector3.new(6,6,6))
                local RTable = workspace:FindPartsInRegion3(Reg, c)
                for i,v in pairs(RTable) do
                    if v.Name == "HumanoidRootPart" and v.Parent:findFirstChild("Humanoid") and v.Parent:findFirstChild("ProjectileDeb") == nil then
                        local Deb = Instance.new("BoolValue")
                        Deb.Name = "ProjectileDeb"
                        game.Debris:AddItem(Deb,0.2)
                        v.Parent.Humanoid:TakeDamage(5)
                        local debounce = false
                        end
                end
            end
        end)

    end
end)

2 answers

Log in to vote
1
Answered by 3 years ago
Edited 3 years ago

Check it with a variable

Player = game.Players.LocalPlayer
repeat wait() until Player.Character
c = Player.Character
mouse = Player:GetMouse()

mouse.TargetFilter = workspace.AntiMouse
UIS = game:GetService("UserInputService")
Cooldown = false --Setting up a variable for cooldown.

UIS.InputBegan:connect(function(input, isTyping)
    if isTyping then return end
    if input.KeyCode == Enum.KeyCode.Q then
    if Cooldown == false then --Checking if there is no cooldown active.
    Cooldown = true --Setting it up so the cooldown is active
         script.Function:FireServer("Projectile", c.HumanoidRootPart.CFrame, mouse.hit.p)
    wait(2) --Waiting until setting cooldown to false change 2 to how ever many seconds.
    Cooldown = false --Setting Cooldown to false so user can use spell again.
        end
    end
end)
0
Where would i put this? Funnyskyswagway3 30 — 3y
0
replace script #1 with it Gooncreeper 98 — 3y
Ad
Log in to vote
0
Answered by 3 years ago

Change the wait time.

Answer this question