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

It does not teleport the players back to the lobby and it says time up on the GUI what do i do?

Asked by 5 years ago

It does not teleport me back to the lobby and says Time up in the GUI. After every match, I am making a sword fighting sim here is the script...

-- Define variables

local ReplicatedStorage = game:GetService("ReplicatedStorage")

local ServerStorage = game:GetService("ServerStorage")

local MapsFolder = ServerStorage:WaitForChild("Maps")

local Status = ReplicatedStorage:WaitForChild("Status")

local GameLength = 50

local reward = 25

-- Game loop

while true do

Status.Value = "Waiting for enough players..."

repeat wait(1) until game.Players.NumPlayers >= 2 

Status.Value = "Intermission"

wait(10)

local plrs = {}

for i,player in pairs(game.Players:GetPlayers()) do
    if player then
        table.insert(plrs,player) -- Add each player into plrs table
    end
end

wait(2)

local AvailableMaps = MapsFolder:GetChildren()

local ChosenMap = AvailableMaps[math.random(1,#AvailableMaps)]

Status.Value = ChosenMap.Name.." Chosen"

local ClonedMap = ChosenMap:Clone()
ClonedMap.Parent = workspace

-- Teleport players to the map 

local SpawnPoints = ClonedMap:FindFirstChild("SpawnPoints")

if not SpawnPoints then
    print("SpawnPoints not found!")
end

local AvailableSpawnPoints = SpawnPoints:GetChildren()

for i,player in pairs(game.Players:GetPlayers()) do
    if player then
        table.insert(plrs,player)
        character = player.Character

        if character then
            -- Teleport them

            character:FindFirstChild("HumanoidRootPart").CFrame = AvailableSpawnPoints[1].CFrame
        table.remove(AvailableSpawnPoints,1)


            -- Give them a sword 

            local sword = ServerStorage.Sword:Clone()
            sword.Parent = player.Backpack

            local GameTag = Instance.new("BoolValue")
            GameTag.Name = "GameTag"
            GameTag.Parent = player.Character

        else
            -- There is no character
            if not player then 
                table.remove(plrs,i)
            end
        end
    end
end

Status.Value = "Get ready to play!"

wait(2)

for i = GameLength,0,-1 do

for x, player in pairs(plrs) do
    if player then

        character = player.Character

        if not character then 
            -- Left the game
        else
            if character:FindFirstChild("GameTag") then
                -- They are still alive
                print(player.Name.." is still in the game!")
            else
                -- They are dead
                table.remove(plrs,x)
                print(player.Name.."has been removed!")
            end
        end

    else
        table.remove(plrs,x)
        print(player.Name.."has been removed!")
    end
end

Status.Value = "There are "..i.." seconds reamaining, and "..#plrs.." left"

if #plrs == 1 then
    -- Last person standing
    Status.Value = "The winner is "..plrs[1].Name
    plrs[1].leaderstats.Bucks.Value = plrs[1].leaderstats.Bucks.Value + reward
    break
elseif #plrs == 0 then
    Status.Value = "Nobody won!"
    break
elseif i == 0 then
    Status.Value = "Time up!"
    break
end

wait(1)

end

print("End of game")

for i, player in pairs(game.Player:GetPlayer()) do character = player.Character

if not character then
    -- Ignore them
else
    if character:FindFirstChild("GameTag") then
        character.GameTag:Destroy()
    end

    if player.Backpack:FindFirstChild("Sword") then
    player.Backpack.Sword:Destroy() 
    end

    if character:FindFirstChild("Sword") then
     character.Sword:Destroy()
    end

end

player:LoadCharacter()

end

ClonedMap:Destroy()

Status.Value = "Game ended"

wait(2)

end

0
I think `game.Player:GetPlayer()` should be `game.Players:GetPlayers()`, no? Regardless, please (A) provide the error message (B) format questions in a slightly less hideous way fredfishy 833 — 5y

Answer this question