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

Why doesn't the last player alive return to the lobby and not getting credits?

Asked by 6 years ago

When the game starts there are two players. If there is one player alive the player should get credits and return to the lobby. But instead of that the timer continues and the player won't get any credits. Any solutions?

Here is the script

local mapsinserverstorage = game:GetService('ServerStorage'):GetChildren()  -- Make sure that your maps are in serverstorage. If you have more than just maps in serverstorage, the script might actually choose that.
local chosenmap = mapsinserverstorage[math.random(1, #mapsinserverstorage)]
chosenmap:Clone().Parent = mapstorage
status.Value = "Loading Map.."
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('HumanoidRootPart')
        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 primary = game.ReplicatedStorage.Handgun -- CHANGE THIS TO WHATEVER ITEM YOU WANT TO GIVE THEM WHEN THEY ARE TELEPORTED. MAKE SURE IT IS IN REPLICATED STORAGE.
            local newprimary = primary:Clone()
            newprimary.Parent = player.Backpack

        end
    end
end
status.Value = "Be The Last Standing!"
if status.Value then
    game.Workspace.Sound:Stop()
end
wait(4)
for i = 196,0,-1 do -- You can adjust the #196 to how long you want the round to last.
    if i == 0 then
        status.Value = "Time is up!"
        wait(3)
        break
    end
    wait(1)
    if #_G.gameplayers == 1 then
        for i, v in pairs(_G.gameplayers) do
            if v ~= nil then
                status.Value = v.." Won The Game!"
                game.Players[v].leaderstats.Cash.Value = game.Players[v].leaderstats.Cash.Value + 15 -- The #15 will be how much credit or cash is awarded to the player if there was only one player teleported.
                break
            end

        end
        break
    else
        status.Value = i.."..Seconds Remaining!"
    end
end
    for i, player in ipairs(game.Players:GetPlayers()) do
    if player.Character then
        local hum = player.Character:FindFirstChild('Humanoid')
        if hum then
            hum.Health = 0
        end
    end
end
mapstorage:ClearAllChildren()

wait(5)
end

I think the problem is somewhere here but im not sure

   if #_G.gameplayers == 1 then
36          for i, v in pairs(_G.gameplayers) do
37              if v ~= nil then
38                  status.Value = v.." Won The Game!"
39                  game.Players[v].leaderstats.Cash.Value = game.Players[v].leaderstats.Cash.Value + 15 -- The #15 will be how much credit or cash is awarded to the player if there was only one player teleported.
40                  break
41              end
42   
43          end
44          break
45      else
46          status.Value = i.."..Seconds Remaining!"
47      end
48  end
49      for i, player in ipairs(game.Players:GetPlayers()) do
50      if player.Character then
51          local hum = player.Character:FindFirstChild('Humanoid')
52          if hum then
53              hum.Health = 0
54          end
55      end
56  end

Answer this question