Hello all!
I’m currently working on a small project. I am trying to make a script that works with a sword fighting game. I have tried to watch a few videos to help me along the way, I tried to make up the code, but it really has not helped.
I am trying to fix the GUI at the top, it currently says “Waiting for players” and then “Intermission”. I set the code to
wait (10)
After 10 Seconds go by, you are still stuck in the game, and you are not teleported to the map.
This is my main script.
– Define variables
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerStorage = game:GetService("ServerStorage")
local MapsFolder = ServerStorage:WaitForChild("Maps")
local Status = ReplicatedStorage:WaitForChild("Status")
local reward = 25
local plrs = "Players"
local Players = "plrs"
local GameLength = 70
--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 map.
local SpawnPoints = ClonedMap:FindFirstChild("SpawnPoints")
if not ("SpawnPoint")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
end
end
end
-- Teleport them
character:FindFirstChild("HumanoidRootPart").CFrame = AvailableSpawnPoints[1].CFrame
table.remove(AvailabeSpawnPoints)
--give them sword
local Sword = ServerStorage.SwordClone()
Sword.Parent = player.Backpack
local GameTag = Instance.new ("BoostValue")
GameTag.Name = ("GameTag")
GameTag.Parent = player.character
--There is no character
if not player then
table.remove(plrs,i)
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 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)
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.Money.Value = plrs [1].leaderstats.Money.Value + reward
break
elseif #plrs == 0 then
Status.Value= "Nobody won!"
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.Backpack:FindFirstChild("Sword") then
character.Backpack.Sword:Destroy()
end
player:Loadcharacter()
end
ClonedMap:Destroy()
wait (2)
Status.Value = "Game Ended!"
end