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

Combo does no reset back to 0 when damaging a player?

Asked by 4 years ago

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)

Answer this question