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

My script stopped looping and I've been stuck trying to fix it?

Asked by 2 years ago

While I was scripting my script stopped looping and I've been stuck trying to fix it.

wait(3.4)
local Elimineted = require(script.Eliminated)
local number
local Round1 = workspace.Ost.Round1
local Round2 = workspace.Ost.Round2
local Round3 = workspace.Ost.Round3
local Load = workspace.Ost.Selecting

script.SubtractNumbers.Disabled = true

while wait(.1) do
    local players = game.Players:GetPlayers()
    if #players > 1 then

        print("Round Match Started")

        wait(.1)

        game.ReplicatedStorage.PlrsInGame.Value = 0

        local roundOneMaps = game.ServerStorage.RoundOne:GetChildren()
        number = math.random(1,#roundOneMaps)
        local clonedMap = roundOneMaps[number]:Clone()
        clonedMap.Name = "Map"
        clonedMap.Parent = workspace

        game.ReplicatedStorage.ChangeText:FireAllClients("Qualified")

        game.ReplicatedStorage.Qualified.Value = 0
        wait(8)

        Load.Playing = true
        wait(7.4)

        players = game.Players:GetPlayers()

        if #players <= 4 then
            game.ReplicatedStorage.Limit.Value = #players - 0
        else
            game.ReplicatedStorage.Limit.Value = #players - 1

        end
        for i,v in pairs(players)do
            if v.Character:FindFirstChild("HumanoidRootPart")then
                v.Character.HumanoidRootPart.Position = clonedMap.SpawnPart.Position 
                local tag= Instance.new("BoolValue")
                tag.Name = "InGame"
                tag.Parent = v
            end
        end

        wait(1)

        Load.Playing = false

        print("Round 1 Started")

        wait(3.7)

        Round1.Playing = true
        Round1.Looped = true

        script.SubtractNumbers.Disabled = false
        local Time = game.ReplicatedStorage.Timer.Value
        game.ReplicatedStorage.Timer.Value = 195
        while Time > 0 do
            game.ReplicatedStorage.TimeEvent:FireAllClients(Time)
            wait(1)
        end


        while game.ReplicatedStorage.Qualified.Value ~= game.ReplicatedStorage.Limit.Value and  #players ~= 1 do
            players = game.Players:GetPlayers()
            if game.ReplicatedStorage.Qualified.Value == game.ReplicatedStorage.Limit.Value then
                game.ReplicatedStorage.Timer.Value = 0
            end
            if game.ReplicatedStorage.Timer.Value == 0 then
                wait(.1)
                break
            elseif #players == 0 then

                wait(1)
                break
            else
                wait(.1)
            end     
        end

        print("Round 1 Over")

        Round1.Playing = false
        game.Lighting.ClockTime = 12
        Round1.TimePosition = 0
        script.SubtractNumbers.Disabled = true

        players = game.Players:GetPlayers()

        for i,v in pairs(players) do
            if v.Character:FindFirstChild("HumanoidRootPart")then
                v.Character.HumanoidRootPart.CFrame = CFrame.new(-212.673, 9.792, 1640.907)                                          
            end
        end

        game.Workspace.Map:Destroy()

        for i,v in pairs(players)  do
            if not v:FindFirstChild("Qualified") then
                if v:FindFirstChild("InGame") then
                    local elimTag = Instance.new("BoolValue")
                    elimTag.Parent = v
                    elimTag.Name = "elimTag"
                end 
            end
        end

        wait(5)
        Elimineted.Qualified()

        players = game.Players:GetPlayers() 

        wait(5)
        for i,v in pairs(players) do
            if v.Character:FindFirstChild("HumanoidRootPart")then
                v.Character.HumanoidRootPart.CFrame = CFrame.new(-212.673, 9.792, 1640.907)                                          
            end
        end

        wait(5)

        --Round 2

        players = game.Players:GetPlayers()

        local roundtwoMaps = game.ServerStorage.RoundTwo:GetChildren()
        number = math.random(1,#roundtwoMaps)
        local clonedMap = roundtwoMaps[number]:Clone()
        clonedMap.Name = "Map"
        clonedMap.Parent = workspace

        game.ReplicatedStorage.ChangeText:FireAllClients("Qualified")
        game.ReplicatedStorage.Qualified.Value = 0

        wait(8)

        Load.Playing = true
        wait(7.4)

        game.ReplicatedStorage.Limit.Value = 2

        for i,v in pairs(players)do
            if v:FindFirstChild("InGame")then
                v.Character.HumanoidRootPart.Position = clonedMap.SpawnPart.Position 
            end
        end

        wait(1)
        Load.Playing = false

        print("Round 2 Started")

        wait(3.7)

        Round2.Playing = true
        Round2.Looped = true

        script.SubtractNumbers.Disabled = false
        local Time = game.ReplicatedStorage.Timer.Value
        game.ReplicatedStorage.Timer.Value = 195
        while Time > 0 do
            game.ReplicatedStorage.TimeEvent:FireAllClients(Time)
            wait(1)


        while game.ReplicatedStorage.Qualified.Value ~= game.ReplicatedStorage.Limit.Value and  #players ~= 1 do
            players = game.Players:GetPlayers()
            if game.ReplicatedStorage.Qualified.Value == game.ReplicatedStorage.Limit.Value then
                game.ReplicatedStorage.Timer.Value = 0
            end
            if game.ReplicatedStorage.Timer.Value == 0 then
                wait(.1)
                break
            elseif #players == 0 then

                wait(1)
                break
            else
                wait(.1)
            end     
        end

        print("Round 2 Over")

        Round2.Playing = false
        game.Lighting.ClockTime = 12
            Round2.TimePosition = 0
            script.SubtractNumbers.Disabled = true

        players = game.Players:GetPlayers()

        for i,v in pairs(players) do
            if v.Character:FindFirstChild("HumanoidRootPart")then
                v.Character.HumanoidRootPart.CFrame = CFrame.new(-212.673, 9.792, 1640.907)                                          
            end
        end

        game.Workspace.Map:Destroy()

        for i,v in pairs(players)  do
            if not v:FindFirstChild("Qualified") then
                if v:FindFirstChild("InGame") then
                    local elimTag = Instance.new("BoolValue")
                    elimTag.Parent = v
                    elimTag.Name = "elimTag"
                end 
            end
    end

        wait(5)
        Elimineted.Qualified()

        players = game.Players:GetPlayers() 

        wait(5)
        for i,v in pairs(players) do
            if v.Character:FindFirstChild("HumanoidRootPart")then
                v.Character.HumanoidRootPart.CFrame = CFrame.new(-212.673, 9.792, 1640.907)                                          
            end
    end

        wait(5)

        --round 3

        local roundtreeMaps = game.ServerStorage.RoundThree:GetChildren()
        number = math.random(1,#roundtreeMaps)
        local clonedMap = roundtreeMaps[number]:Clone()
        clonedMap.Name = "Map"
        clonedMap.Parent = workspace

        game.ReplicatedStorage.ChangeText:FireAllClients("Eliminated")
        game.ReplicatedStorage.Qualified.Value = 0
        wait(8)

        Load.Playing = true
        wait(7.4)

        players = game.Players:GetPlayers()

        for i,v in pairs(players)do
                if v.Character:FindFirstChild("HumanoidRootPart")then
                if v:FindFirstChild("InGame") then  
                    v.Character.HumanoidRootPart.Position = clonedMap.SpawnPart.Position
                    game.ReplicatedStorage.PlrsInGame.Value = game.ReplicatedStorage.PlrsInGame.Value + 1
                end 
            end
            end

        game.ReplicatedStorage.EliminatedInRound.Value = 0

        if game.ReplicatedStorage.PlrsInGame.Value % 2 == 0 then
            --even ammount of players
            game.ReplicatedStorage.ElimLimit.Value = game.ReplicatedStorage.PlrsInGame.Value/2
        else
            --odd ammount of players
            game.ReplicatedStorage.ElimLimit.Value = (game.ReplicatedStorage.PlrsInGame.Value/2) - .5
        end

        wait(1)
        Load.Playing = false

        print("Round 3 Started")

        wait(3.7)

        Round3.Playing = true
        Round3.Looped = true

        while game.ReplicatedStorage.EliminatedInRound.Value ~= game.ReplicatedStorage.ElimLimit.Value and  #players ~= 1 do
            players = game.Players:GetPlayers()
            if game.ReplicatedStorage.EliminatedInRound.Value == game.ReplicatedStorage.ElimLimit.Value then
                wait(.1)
                break
            elseif #players == 1 then
                local Winner = game.ServerStorage.WinBlock:Clone()
                Winner.Parent = game.Workspace
                break
            else
                wait(1)
            end     
            end

        print("Round 3 Over")

        wait(.1)

        Round3.Playing = false
        game.Lighting.ClockTime = 12
            Round3.TimePosition = 0
            script.SubtractNumbers.Disabled = true

        players = game.Players:GetPlayers()

        for i,v in pairs(players) do
            if v.Character:FindFirstChild("HumanoidRootPart")then
                v.Character.HumanoidRootPart.CFrame = CFrame.new(-212.673, 9.792, 1640.907)                                          
            end
        end

        game.Workspace.Map:Destroy()

        wait(.1)

        players = game.Players:GetPlayers()
        for i,v in pairs(players) do
            if v:FindFirstChild("Qualified") then
                v.Character.HumanoidRootPart.CFrame = CFrame.new(4623.37, 14.208, -49.677)
            end
            end

        game.ReplicatedStorage.WinnerCam:FireAllClients()

        wait(11)

        print("Winner!")

        for i,v in pairs(players) do
            if v.Character:FindFirstChild("HumanoidRootPart")then
                v.Character.HumanoidRootPart.CFrame = CFrame.new(-212.673, 9.792, 1640.907) 

            if v:FindFirstChild("elimTag") then
                    v.elimTag:Destroy()

                    end

            if v:FindFirstChild("InGame") then
                        v.InGame:Destroy()

                end

                if v:FindFirstChild("Qualified") then
                    v.Qualified:Destroy()

                    end
                    wait(.1)

                    --Reset All for preventing invis players
                    for i, player in ipairs(game.Players:GetPlayers()) do
                        if player.Character then
                            local hum = player.Character:FindFirstChild('Humanoid')
                        if hum then

                        end
                            hum.Health = 0
                            print("Round Match Ended")
                            wait(5)
                            end
                        end
                    end 
                end
            end
end
end
0
First of all you need to get rid of those wait() it can be really bad for your game MarkedTomato 810 — 2y
0
K then what? SquareSmellie 0 — 2y

1 answer

Log in to vote
0
Answered by 2 years ago

This script already been fixed so Ill be inactive for now.

Ad

Answer this question