Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local TS = game:GetService("TeleportService")
- local TweenService = game:GetService("TweenService")
- local placeId = (0)
- local leaveGuiEvent = game.ReplicatedStorage.LeaveGuiEvent
- local TransitionEvent = game.ReplicatedStorage.TransitionEvent
- local list = {}
- local billboard = script.Parent.billboardPart.billboardGui
- local timer
- local teleporting = false
- local spawnTeleport = script.Parent.spawn
- local MinPlayers = 1
- local MaxPlayers = 12
- local GuiPart = script.Parent.GuiPart
- local Debounce = false
- local Seats = script.Parent.Parent.Bus.Seats:GetChildren()
- local function updateGui()
- billboard.Frame.players.Text = "Players: " ..#list.. "/12"
- GuiPart.SurfaceGui.Frame.players.Text = "Players: "..#list.."/12"
- end
- local function removeFromList(character)
- for i=1,#list do
- if list[i] == character.Name then
- table.remove(list,i)
- updateGui()
- end
- end
- end
- local function teleportPlayers()
- if #list >= MinPlayers then
- billboard.Frame.Status.Text = "TELEPORTING"
- billboard.Frame.Status.TextColor3 = Color3.fromRGB(255, 0, 0)
- GuiPart.SurfaceGui.Frame.Status.Text = "TELEPORTING"
- GuiPart.SurfaceGui.Frame.Status.TextColor3 = Color3.fromRGB(255, 0, 0)
- local playersToTeleport = {}
- local teleportTime = 0
- for i=1,#list do
- if game.Players:findFirstChild(list[i]) then
- table.insert(playersToTeleport,game.Players:findFirstChild(list[i]))
- TransitionEvent:FireClient(game.Players:findFirstChild(list[i]))
- else
- table.remove(list,i)
- end
- end
- local code = TS:ReserveServer(placeId)
- teleporting = true
- TS:TeleportToPrivateServer(placeId,code,playersToTeleport)
- repeat wait() until #list <= 0
- billboard.Frame.Status.Text = "START"
- billboard.Frame.Status.TextColor3 = Color3.fromRGB(85, 255, 0)
- GuiPart.SurfaceGui.Frame.Status.Text = "START"
- GuiPart.SurfaceGui.Frame.Status.TextColor3 = Color3.fromRGB(85, 255, 0)
- teleporting = false
- elseif #list < MinPlayers then
- GuiPart.SurfaceGui.Frame.players.Text = MinPlayers.." Players Needed!"
- billboard.Frame.players.Text = MinPlayers.." Players Needed!"
- wait(1)
- billboard.Frame.players.Text = "Players: "..#list.."/12"
- GuiPart.SurfaceGui.Frame.players.Text = "Players: "..#list.."/12"
- end
- end
- script.Parent.BusEnter.Touched:Connect(function(hit)
- if hit.Parent:findFirstChild("Humanoid") then
- if teleporting == false then
- local char = hit.Parent
- local player = game.Players:FindFirstChild(char.Name)
- local alreadyExists = false
- for i=1,#list do
- if list[i] == char.Name then
- alreadyExists = true
- end
- end
- if alreadyExists == false then
- if #list < MaxPlayers then -- Many Players have been teleported.
- table.insert(list,char.Name)
- char.PrimaryPart.CFrame = spawnTeleport.CFrame
- if Debounce then return end
- local player = game.Players:GetPlayerFromCharacter(hit.Parent)
- for i, v in pairs(Seats) do
- if Seats.Occupant == nil then
- local Check = Instance.new("Weld")
- Check.Name = "Check"
- Check.Parent = player.Character
- Check.Parent.Humanoid.JumpPower = 0
- Check.Parent.Humanoid.WalkSpeed = 0
- end
- end
- Seats[math.random(1, #Seats)]:Sit(player.Character.Humanoid)
- updateGui()
- game.ServerStorage.ExitGui:Clone().Parent = player.PlayerGui
- end
- player.CharacterRemoving:connect(function(character)
- removeFromList(character)
- end)
- end
- end
- end
- end)
- leaveGuiEvent.OnServerEvent:Connect(function(player)
- player:LoadCharacter()
- end)
- while wait() do
- timer = 41
- for i=1,timer do
- timer = timer - 1
- billboard.Frame.time.Text = timer
- GuiPart.SurfaceGui.Frame.time.Text = timer
- wait(1)
- end
- teleportPlayers()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement