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

Help me please, this script wont work nothing in the output?..

Asked by
Irvene 5
9 years ago

There's nothing wrong with the output, what's wrong!?

repeat wait(0)until game:FindFirstChild("Teams")
local NumPlayers = 2 --Change this to the number of players needed
local GameTime = 250 --5 minutes
local A = game.Players
local A1 = "This service is unavailable, please wait until 1 more player joins..."
local A2 = "Welcome to the official meadows sfing game"
local A4 = "5"
local A3 = "The amount of players is successful, and the game will be starting in" .. A4 .. "Seconds.."
local A5 = "Teaming players..."
local A6 = "Blue team has won"
local A7 = "Red team has won"
local BlueTeam = game.Teams:WaitForChild("BlueTeam"):Clone()
local RedTeam = game.Teams:WaitForChild("RedTeam"):Clone()
local redplayers = 0
local blueplayers = 0
local M = Instance.new("Message",game.Workspace)
local H = Instance.new("Hint",game.Workspace)
local TimeForLoop = .5 --This will loop the script every .5 seconds
local players = 0
local GameRun = false
local GameOver = false
local RegenTeams = false

function fixTeams()
local Blue = BlueTeam:Clone()
Blue.Parent = game.Teams
local Red = RedTeam:Clone()
Red.Parent = game.Teams 
end

function checkSpectators()
spectators = 0
for _, player in pairs(game.Players:GetChildren()) do
if player.TeamColor == game.Teams.Spectators.TeamColor then
spectators = spectators + 1
if(spectators >= NumPlayers) then
BlueTeam:remove()
RedTeam:remove()
wait(3)
end
end
end
end

function findwinner()
if GameOver then
for _, player in pairs(game.Players:GetPlayers()) do
if player.TeamColor == BlueTeam.TeamColor then
players = blueplayers + 1
wait(5)
if blueplayers == 0 then
print("Blue team has lost")
M.Text = A7
elseif player.TeamColor == RedTeam.TeamColor then
players = redplayers + 1
if redplayers == 0 then
print("Red team has lost")
M.Text = A6
end
end
end
end
end
end

function RegenPlrs()
for i,v in pairs(game.Players:GetPlayers())do
if v and v.Character then
v.Character:BreakJoints()
end
end
end

function StartGame()
if GameRun then
fixteams()
RegenPlrs()
checkspectators()
findwinner()
end
end

coroutine.resume(coroutine.create(function()
while wait(TimeForLoop)do
if not #A:GetPlayers() >= NumPlayers then
M.Text = A1
else
StartGame()
M.Text = ""
wait(1)
M.Text = A2
wait(5)
M.Text = A3
for z = 5, 0, -1 do
M.Text = ""..z
wait(1)
end
for i = GameTime, 0, -1 do
H.Text = "Time left: "..i
wait(1)
end
wait(2)
M.Text = "Times up!"
wait(2)
M.Text = "Starting new round..."
wait(2.5)
end
end
end))

1 answer

Log in to vote
1
Answered by
noliCAIKS 210 Moderation Voter
9 years ago

I think there are two problems with your code. Firstly, the reason it doesn't do or output anything may be this part:

local BlueTeam = game.Teams:WaitForChild("BlueTeam"):Clone()
local RedTeam = game.Teams:WaitForChild("RedTeam"):Clone()

Please make sure that there is a team called BlueTeam and a team called RedTeam in your Teams service. This means that not just their colors red and blue, but that their names are also BlueTeam and RedTeam respectively. The name is case sensitive so be careful about that.

The second problem is this part:

if not #A:GetPlayers() >= NumPlayers then

In this line, the problem is the order in which the operations are executed. Basically, what it actually does, is the following:

if (not #A:GetPlayers()) >= NumPlayers then

While what you're trying to do is in fact the following:

if not (#A:GetPlayers() >= NumPlayers) then

Try replacing it by this, which does the same:

if #A:GetPlayers() < NumPlayers then

Try seeing if it works if you fix these two problems.

Ad

Answer this question