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

How can I make a good stun system?

Asked by 3 years ago
Edited 3 years ago

I have made a combat system but the stun is super bad right now when you fire a remote event it fires with the number of seconds you want the target to be stunned but if im doing a combo it puts the stunned value to false and then they can attack again DURING the combo How can I make this more efficient and better??

local script fires the event

Damage:FireServer(hitbox,damage,knockback,stunseconds, punchsfx)

serverscript aka stun/damage script

local gothit = false
game.ReplicatedStorage.Damage1.OnServerEvent:Connect(function(plr, part, damage, knockback, stun, sound)
        local chr = plr.Character
        local hitbox = game:GetService("ReplicatedStorage"):WaitForChild("Hitbox"):Clone()
        local weld = Instance.new("WeldConstraint")
        hitbox.Parent = workspace.Effects
        hitbox.CFrame = part.CFrame
        weld.Parent = hitbox
        weld.Part0 = hitbox
        weld.Part1 = part
        hitbox.Touched:Connect(function(hit)
        if hit.Parent:FindFirstChild("Humanoid") and hit.Parent.Name ~= plr.Name and hit.Parent:FindFirstChild("Stand") and hit.Parent:FindFirstChild("Hit") and hit.Parent:FindFirstChild("Stand") then
            gothit = true
                local bv = Instance.new("BodyVelocity")
                bv.MaxForce = Vector3.new(1e8,1e8,1e8)
                bv.P = math.huge
                bv.Velocity = chr.HumanoidRootPart.CFrame.lookVector * knockback
                bv.Parent = hit.Parent.HumanoidRootPart
    game.Debris:AddItem(bv,.3)
            hit.Parent.Humanoid:TakeDamage(damage)
            hit.Parent.Hit.Value = true
            hitbox:Destroy()
            wait(stun)
            hit.Parent.Hit.Value = false
            gothit = false
        end
    end)
    wait(0.5)
    if gothit == false then
        if gothit == false then
            hitbox:Destroy()
        end
    end
end)

Answer this question