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

When there is a tie, the game continues. How do I fix this? [SOLVED]

Asked by
awfulszn 394 Moderation Voter
6 years ago
Edited 6 years ago

I am making a sword fighting game, I have the main script set up which handles mostly everything, except data saving, which is in a separate script. The game works perfectly, except for one thing; when there is a tie, meaning when the last people both die at the same time, the game just continues, without saying a winner, removing the map, giving winners points etc.

I have no idea where to start on trying to fix this unfortunately, so any help would be appreciated.

Code;

local replicatedstorage = game:GetService('ReplicatedStorage')
local status = replicatedstorage:WaitForChild('InfoValue')
local mapstorage = game.Workspace:WaitForChild('MapStorage')
while true do 

while game.Players.NumPlayers < 2 do
    status.Value = 'There needs to be 2 or more players to begin!'
    repeat wait(2) until game.Players.NumPlayers == 2
end

for i = 30,0,-1 do
    status.Value = 'Intermission: '..i
    wait(1)
end
_G.gameplayers = {}
for i,v in pairs(game.Players:GetPlayers()) do

if v then
    table.insert(_G.gameplayers, v.Name)
end 

end 

local mapsinserverstorage = game:GetService('ServerStorage'):GetChildren()
local chosenmap = mapsinserverstorage[math.random(1, #mapsinserverstorage)]
chosenmap:Clone().Parent = mapstorage
status.Value = 'Loading assets...'
wait(3)
local spawns = chosenmap:WaitForChild('Spawns'):GetChildren()
for _, player in pairs(game.Players:GetPlayers()) do
    if player and #spawns > 0 then
        local torso = player.Character:WaitForChild('Torso')
        local allspawns = math.random(1, #spawns)
        local randomspawn = spawns[allspawns]
        if randomspawn and torso then
            table.remove(spawns, allspawns)
            torso.CFrame = CFrame.new(randomspawn.Position + Vector3.new(0,2,0))

            local sword = game.ReplicatedStorage.Sword
            local newsword = sword:Clone()
            newsword.Parent = player.Backpack
        end
    end
end


for i = 180,0,-1 do
    if i == 0 then
        status.Value = 'Time up!'
        break
    end
    wait(1)
    if #_G.gameplayers == 1 then
        for i,v in pairs(_G.gameplayers) do
            if v ~= nil then
                status.Value = v..' is the winner!'
                game.Players[v].leaderstats.Gems.Value = game.Players[v].leaderstats.Gems.Value + 10
                break           
            end

        end
        break
    else 
        status.Value = 'Time remaining: '..i    
    end
end

mapstorage:ClearAllChildren()
wait(5)
end

Answer this question