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

How do I prevent a race from starting if no players are ready?

Asked by
Dalamix 26
3 years ago

I have two functions intended to stop players from joining a race if they're not ready. One of them are to check if anyone is ready, but if no one is, how do I prevent the race from starting until someone is ready? I'm not experiencing any errors. I have a GUI called PlayGui. When you join my game, you get to press "Play" to get into the lobby box. When you do, "PlayGui.Enabled = false" happens. That's what I consider being ready. But how do I pause my race loop, if no one is ready yet? Here's my attempt(it's bad)

Function 1(the one I want to fix) :

function checkPlayers()
    for _, player in pairs(game.Players:GetChildren()) do
        if player.PlayerGui.PlayGui.Enabled == false then
            break
        else
            repeat wait() print("waiting") until player.PlayerGui.PlayGui.Enabled == false
            break
        end

    end
end

Function 2(the script that teleports players to race track, happens after Function 1) :

function teleportPlayers(target)
    for _, player in pairs(game.Players:GetChildren()) do
        if player.PlayerGui.PlayGui.Enabled == false then
        while player.Character == nil do
            wait()
        end
        local character = player.Character
        local torso = character:WaitForChild("Torso")
        local rootpart = character:WaitForChild("HumanoidRootPart")
        torso.CFrame = target.CFrame
        rootpart.Anchored = true
        else
            print("press play maybe?")
        end
    end
end

Sorry if I'm being unclear, I'm tired and bad at english.

0
Is this a round system? Ascarson4 138 — 3y
0
Well I have a game loop which basically starts a new race after the last one finished. Dalamix 26 — 3y

Answer this question