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

my game is stuck on desert map chosen can u fix this pls ? [closed]

Asked by
Sartaz110 -17
5 years ago
Edited by M39a9am3R 5 years ago
-- Define variables
local ReplicatedStorge = game:GetService("ReplicatedStorage")
local serverstorage =game:GetService("ServerStorage")
local MapFolder = serverstorage:WaitForChild("Maps")
local Status = ReplicatedStorge:WaitForChild("Status")
local GameLength = 120
local reward = 100
-- 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 = MapFolder: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 (plrs) do
if player then
character = player.Character
if character then
--Teleport them
character:FindFirstChild("HumanoidRootPart").CFrame = AvailableSpawnPoints[1].CFrme
table.remove(AvailableSpawnPoints,1)
-- Give them a sword
local sword = serverstorage.Sword:Clone()
sword.Parent = player.Character
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 remaining, and "..plrs.." players left"
if #plrs == 1 then
-- Last person standing
Status.Value = "The winner is"..plrs[1].Name
plrs[1].leaderstats.Gold.Value = plrs[1].leaderstats.Gold.Value + reward
break
elseif i == 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.Players:GetPlayers()) 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
Edited for code block. M39a9am3R 3210 — 5y

Closed as Not Constructive by User#24403

This question has been closed because it is not constructive to others or the asker. Most commonly, questions that are requests with no attempt from the asker to solve their problem will fall into this category.

Why was this question closed?

1 answer

Log in to vote
0
Answered by 5 years ago

When you are choosing a map, you have done local chosenMap = math.random(1,#availableMaps) and that defines chosenMap as a number, not as an object. So to fix this problem, you should make another variable that gets a randomMap and defines chosenMap as availableMaps[randomMap] which should change your map. Here is the code:

```lua local AvailableMaps = MapFolder:GetChildren() --[[ Use this local RandomMap = AvailableMaps[math.random(1,#AvailableMaps)]

local ChosenMap = AvailableMaps[RandomMap] ]]

--[[ OR use this local ChosenMap = AvailableMaps[AvailableMaps[math.random(1,#AvailableMaps)]] ]]

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

local ClonedMap = ChosenMap:Clone()

ClonedMap.Parent = workspace

0
I noticed that it the bottom comment of my script actually goes up to the ]] part on line 9. Remove the 10 one, otherwise it will break the code. RBLX_Nat 18 — 5y
Ad