I’m making a sword in my game and I want it to have a combo system. I’ve figured out a way to make combos work but I cant find a way to make it resets when the player did not do the 2nd hit on time. This is the script that im using.
Local Script:
local player = game.Players.LocalPlayer
local mouse = player:GetMouse()
local sword = player.Character:WaitForChild("Handle")
local event = game.ReplicatedStorage.Clicks
local loadanim = player.Character.Humanoid:LoadAnimation(sword.Anims.click1)
local loadanim2 = player.Character.Humanoid:LoadAnimation(sword.Anims.click2)
local function combo()
for i, v in pairs(sword.Blade:GetChildren()) do
if v:IsA("ParticleEmitter") then
for a, e in pairs(sword.Blade:GetChildren()) do
if e:IsA("Trail") then
event:FireServer(v, e, loadanim, sword)
loadanim:Play()
end
end
end
end
end
local function combo2()
for i, v in pairs(sword.Blade:GetChildren()) do
if v:IsA("ParticleEmitter") then
for a, e in pairs(sword.Blade:GetChildren()) do
if e:IsA("Trail") then
event:FireServer(v, e, loadanim, sword)
loadanim2:Play()
end
end
end
end
end
local debounce = false
comboamount = 0
mouse.Button1Down:Connect(function()
if debounce == false and comboamount == 0 then
debounce = true
combo()
comboamount = 1
wait(.6)
debounce = false
elseif debounce == false and comboamount == 1 then
debounce = true
combo2()
wait(.6)
debounce = false
end
end)
Server Script:
local event = game.ReplicatedStorage.Clicks
event.OnServerEvent:Connect(function(player, v, e, loadanim, sword)
local sound = sword.Slash
v.Enabled = true
e.Enabled = true
sound:Play()
player.Character.Humanoid.WalkSpeed = 5
wait(.7)
v.Enabled = false
e.Enabled = false
player.Character.Humanoid.WalkSpeed = 16
end)