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

4 corners script wont let player choose a color when game is in progress any help?

Asked by
LuaDLL 253 Moderation Voter
5 years ago

Script: (Line 50 for player choosing)

local IntTime = 20
local GameTime = 120
local ChooseTime = 15
local WallTime = 15

local Walls = workspace.Walls
local Colors = workspace.Colors

local ColorsChose = {
    Red = {},
    Blue = {},
    Green = {},
    Yellow = {},
}

function Chose(plr)
    local Red = ColorsChose.Red
    local Blue = ColorsChose.Blue
    local Green = ColorsChose.Green
    local Yellow = ColorsChose.Yellow
    if Red[plr] or Blue[plr] or Green[plr] or Yellow[plr] then
        return true
    else
        return false
    end
end

while wait() do
    -- Wait For Intermission
    for i = 0,IntTime,1 do
        wait(1)
    end
    print("Opening Walls")
    -- Open Walls
    for i,v in pairs(Walls:GetChildren()) do
        v.Transparency = 1
        v.CanCollide = false
    end
    warn("Opened Walls")
    for i = 0,WallTime,1 do
        wait(1)
    end
    for i,v in pairs(Walls:GetChildren()) do
        v.Transparency = 0.5
        v.CanCollide = true
    end
    print("Closed Walls")
    -- Game Time
    warn("Starting Game")
    for i = 0,GameTime,1 do
        for i,v in pairs(Colors:GetChildren()) do
            v.Touched:Connect(function(hit)
                local Par = hit.Parent
                local Player = game.Players:GetPlayerFromCharacter(Par)
                if Player and not Chose(Player) then
                    print("Player Chose")
                    if v.Name == "Green" then
                        table.insert(ColorsChose.Green,Player)
                    elseif v.Name == "Red" then
                        table.insert(ColorsChose.Red,Player)
                    elseif v.Name == "Blue" then
                        table.insert(ColorsChose.Blue,Player)
                    elseif v.Name == "Yellow" then
                        table.insert(ColorsChose.Yellow,Player)
                    end
                else
                    warn(Player.Name.." Already Chose A Color") 
                end
            end)
        end
        wait(1)
    end
    warn("Game Over")
    -- End game
    local Red = ColorsChose.Red
    local Blue = ColorsChose.Blue
    local Green = ColorsChose.Green
    local Yellow = ColorsChose.Yellow
    for i,v in pairs(Red) do
        table.remove(Red,i)
    end
    for i,v in pairs(Blue) do
        table.remove(Blue,i)
    end
    for i,v in pairs(Green) do
        table.remove(Green,i)
    end
    for i,v in pairs(Yellow) do
        table.remove(Yellow,i)
    end
    print("Starting Over")
    for i,v in pairs(game.Players:GetChildren()) do
        local Char = v.Character
        local Hum = Char.Humanoid
        Hum.Health = 0
    end
end
0
Don't have time to read through, but a tip: The way your script is setup is that a player can only pick a color every second on the script's count, instead of whenever the player wants to. Not sure if this is what you wanted, but a heads up Shawnyg 4330 — 5y

Answer this question