It works fine when you don't hit a player but when you do, the combo does not reset to 0.
local Cooldown = false
local Combo = 0
local Delay = .35
local BasicAttack = 10
local FinalCombo = 15
local TimeToAttack = .8
local WSDBF = 0
local Delayersp = .1
script.Parent.OnServerEvent:Connect(function(Player, Stunned)
if Stunned.Value == true then return end
Combo = Combo + 1
local SwingFist = script.Swing
if Combo == 1 then
local rightPunch = Player.Character.Humanoid:LoadAnimation(script.rightPunch)
rightPunch:Play()
SwingFist:Play()
for i,v in pairs(game.Workspace:GetChildren()) do
local m = (v:IsA("Model") and v) or nil
if m and m:FindFirstChild("Humanoid") and m:FindFirstChild("HumanoidRootPart") and m ~= Player.Character then
if (Player.Character.HumanoidRootPart.Position - m.HumanoidRootPart.Position).magnitude <= 20 then
m.Humanoid:TakeDamage(BasicAttack)
local Punched1 = script.Punched1:Clone()
Punched1.Parent = m.HumanoidRootPart
Punched1:Play()
game.Debris:AddItem(Punched1,.5)
local track = m.Humanoid:LoadAnimation(script.PunchedLeft)
track:Play()
local BodyVelocity = Instance.new("BodyVelocity",Player.Character.HumanoidRootPart)
BodyVelocity.Velocity = Player.Character.HumanoidRootPart.CFrame.lookVector * 10
BodyVelocity.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
game.Debris:AddItem(BodyVelocity,.1)
local NormalHit = game.ReplicatedStorage.NormalHit:Clone()
NormalHit.Parent = workspace
local Weld = Instance.new("Weld",NormalHit)
Weld.Part0 = NormalHit
Weld.Part1 = m.Head
Weld.C1 = CFrame.new(0,0,-1)
game.Debris:AddItem(NormalHit,.3)
m.Humanoid.WalkSpeed = m.HumanoidWalkspeed + WSDBF
spawn(function()
wait(Delay+Delayersp)
m.Humanoid.WalkSpeed = m.HumanoidWalkspeed + WSDBF
end)
end
end
end
spawn(function()
wait(TimeToAttack)
if Combo == 2 then
else
Combo = 0
end
end)
else if Combo == 2 then
spawn(function()
wait(TimeToAttack)
if Combo == 3 then
else
Combo = 0
end
end)
local leftPunch = Player.Character.Humanoid:LoadAnimation(script.leftPunch)
leftPunch:Play()
SwingFist:Play()
for i,v in pairs(game.Workspace:GetChildren()) do
local m = (v:IsA("Model") and v) or nil
if m and m:FindFirstChild("Humanoid") and m:FindFirstChild("HumanoidRootPart") and m ~= Player.Character then
if (Player.Character.HumanoidRootPart.Position - m.HumanoidRootPart.Position).magnitude <= 20 then
m.Humanoid:TakeDamage(BasicAttack)
local Punched1 = script.Punched1:Clone()
Punched1.Parent = m.HumanoidRootPart
Punched1:Play()
game.Debris:AddItem(Punched1,.5)
local track = m.Humanoid:LoadAnimation(script.PunchedRight)
track:Play()
local BodyVelocity = Instance.new("BodyVelocity",Player.Character.HumanoidRootPart)
BodyVelocity.Velocity = Player.Character.HumanoidRootPart.CFrame.lookVector * 10
BodyVelocity.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
game.Debris:AddItem(BodyVelocity,.1)
local NormalHit = game.ReplicatedStorage.NormalHit:Clone()
NormalHit.Parent = workspace
local Weld = Instance.new("Weld",NormalHit)
Weld.Part0 = NormalHit
Weld.Part1 = m.Head
Weld.C1 = CFrame.new(0,0,-1)
game.Debris:AddItem(NormalHit,.3)
m.Humanoid.WalkSpeed = m.HumanoidWalkspeed + WSDBF
spawn(function()
wait(Delay+Delayersp)
m.Humanoid.WalkSpeed = m.HumanoidWalkspeed + WSDBF
end)
end
end
end
else if Combo == 3 then
local rightUpperCut = Player.Character.Humanoid:LoadAnimation(script.rightUpperCut)
rightUpperCut:Play()
SwingFist:Play()
spawn(function()
wait(TimeToAttack)
if Combo == 4 then
else
Combo = 0
end
local RightArm = false
end)
for i,v in pairs(game.Workspace:GetChildren()) do
local m = (v:IsA("Model") and v) or nil
if m and m:FindFirstChild("Humanoid") and m:FindFirstChild("HumanoidRootPart") and m ~= Player.Character then
if (Player.Character.HumanoidRootPart.Position - m.HumanoidRootPart.Position).magnitude <= 20 then
m.Humanoid:TakeDamage(BasicAttack)
local Punched1 = script.Punched1:Clone()
Punched1.Parent = m.HumanoidRootPart
Punched1:Play()
game.Debris:AddItem(Punched1,.5)
local track = m.Humanoid:LoadAnimation(script.leftUpperCutPunch)
track:Play()
local BodyVelocity = Instance.new("BodyVelocity",Player.Character.HumanoidRootPart)
BodyVelocity.Velocity = Player.Character.HumanoidRootPart.CFrame.lookVector * 10
BodyVelocity.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
game.Debris:AddItem(BodyVelocity,.1)
local NormalHit = game.ReplicatedStorage.NormalHit:Clone()
NormalHit.Parent = workspace
local Weld = Instance.new("Weld",NormalHit)
Weld.Part0 = NormalHit
Weld.Part1 = m.Head
Weld.C1 = CFrame.new(0,0,-1)
game.Debris:AddItem(NormalHit,.3)
m.Humanoid.WalkSpeed = m.HumanoidWalkspeed + WSDBF
spawn(function()
wait(Delay+Delayersp)
m.Humanoid.WalkSpeed = m.HumanoidWalkspeed + WSDBF
end)
end
end
end
else if Combo == 4 then
local leftUpperCut = Player.Character.Humanoid:LoadAnimation(script.leftUpperCut)
leftUpperCut:Play()
SwingFist:Play()
spawn(function()
wait(TimeToAttack)
if Combo == 5 then
else
Combo = 0
end
local RightArm = false
end)
for i,v in pairs(game.Workspace:GetChildren()) do
local m = (v:IsA("Model") and v) or nil
if m and m:FindFirstChild("Humanoid") and m:FindFirstChild("HumanoidRootPart") and m ~= Player.Character then
if (Player.Character.HumanoidRootPart.Position - m.HumanoidRootPart.Position).magnitude <= 20 then
m.Humanoid:TakeDamage(BasicAttack)
local Punched1 = script.Punched1:Clone()
Punched1.Parent = m.HumanoidRootPart
Punched1:Play()
game.Debris:AddItem(Punched1,.5)
local track = m.Humanoid:LoadAnimation(script.rightUpperCutFace)
track:Play()
local BodyVelocity = Instance.new("BodyVelocity",Player.Character.HumanoidRootPart)
BodyVelocity.Velocity = Player.Character.HumanoidRootPart.CFrame.lookVector * 10
BodyVelocity.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
game.Debris:AddItem(BodyVelocity,.1)
local NormalHit = game.ReplicatedStorage.NormalHit:Clone()
NormalHit.Parent = workspace
local Weld = Instance.new("Weld",NormalHit)
Weld.Part0 = NormalHit
Weld.Part1 = m.Head
Weld.C1 = CFrame.new(0,0,-1)
game.Debris:AddItem(NormalHit,.3)
m.Humanoid.WalkSpeed = m.HumanoidWalkspeed + WSDBF
spawn(function()
wait(Delay+Delayersp)
m.Humanoid.WalkSpeed = m.HumanoidWalkspeed + WSDBF
end)
end
end
end
else if Combo == 5 then
local Kick = Player.Character.Humanoid:LoadAnimation(script.Kick)
Kick:Play()
SwingFist:Play()
for i,v in pairs(game.Workspace:GetChildren()) do
local m = (v:IsA("Model") and v) or nil
if m and m:FindFirstChild("Humanoid") and m:FindFirstChild("HumanoidRootPart") and m ~= Player.Character then
if (Player.Character.HumanoidRootPart.Position - m.HumanoidRootPart.Position).magnitude <= 20 then
m.Humanoid:TakeDamage(BasicAttack)
local Punched1 = script.Punched1:Clone()
Punched1.Parent = m.HumanoidRootPart
Punched1:Play()
game.Debris:AddItem(Punched1,.5)
local track = m.Humanoid:LoadAnimation(script.kicakFace)
track:Play()
local BodyVelocity = Instance.new("BodyVelocity",Player.Character.HumanoidRootPart)
BodyVelocity.Velocity = Player.Character.HumanoidRootPart.CFrame.lookVector * 10
BodyVelocity.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
game.Debris:AddItem(BodyVelocity,.1)
local NormalHit = game.ReplicatedStorage.NormalHit:Clone()
NormalHit.Parent = workspace
local Weld = Instance.new("Weld",NormalHit)
Weld.Part0 = NormalHit
Weld.Part1 = m.Head
Weld.C1 = CFrame.new(0,0,-1)
game.Debris:AddItem(NormalHit,.3)
m.Humanoid.WalkSpeed = m.HumanoidWalkspeed + WSDBF
spawn(function()
wait(Delay+Delayersp)
m.Humanoid.WalkSpeed = m.HumanoidWalkspeed + WSDBF
end)
end
end
end
Combo = 0
end
end
end
end
end
end)
wait(2)
local Cooldown = false
local Player = game.Players.LocalPlayer
local Character = Player.Character
local Stunned = Character.Stunned
local Mouse = Player:GetMouse()
local Delay = .35
Mouse.Button1Down:Connect(function()
if Stunned.Value == true then return end
if Cooldown then return end
spawn(function()
Cooldown = true
wait(Delay)
Cooldown = false
end)
script.RemoteEvent:FireServer(Stunned)
for i,v in pairs(game.Workspace:GetChildren()) do
local m = (v:IsA("Model") and v) or nil
if m and m:FindFirstChild("Humanoid") and m:FindFirstChild("HumanoidRootPart") and m ~= Player.Character then
if (Player.Character.HumanoidRootPart.Position - m.HumanoidRootPart.Position).magnitude <= 20 then
m.Stunned.Value = true
spawn(function()
wait(Delay+6)
m.Stunned.Value = false
end)
end
end
end
end)
