Menu
CoddyTech

Carregar um Mapa

Lição 5 de 18 do curso Jogo no Roblox: Sobrevivência a Desastres da Coddy.

As rodadas acontecem em um mapa. Os mapas ficam em ServerStorage, um serviço cujo conteúdo não está no mundo: ninguém pode vê-lo nem tocá-lo. Abra ServerStorage.Maps na hierarquia do Explorer e você encontrará a Island.

Uma rodada coloca uma cópia de um mapa no espaço de trabalho com Clone e a remove depois com Destroy. O original permanece em ServerStorage, intacto e pronto para a próxima rodada:

local map = ServerStorage.Maps.Island:Clone()
map.Name = "Map"
map.Parent = workspace

-- ... a rodada ...

map:Destroy()

Uma cópia mantém as posições do original, então a ilha aparece onde foi construída, longe do lobby. Mover o original em vez de cloná-lo funcionaria uma vez: depois do primeiro Destroy, não haveria mais nenhuma Island para a segunda rodada.

challenge icon

Desafio

Médio

Faça cada rodada carregar a Ilha:

  1. No início, obtenha ServerStorage com game:GetService.
  2. Quando a rodada começar (após a contagem regressiva do lobby), clone ServerStorage.Maps.Island, dê o nome Map à cópia e defina o workspace como pai dela.
  3. Quando a contagem regressiva da rodada terminar, destrua o mapa.

Pressione Play: quando a rodada começar, a ilha aparecerá bem à frente do lobby. Depois, Check.

Experimente você mesmo

local Players = game:GetService("Players")
local Settings = require(game.ReplicatedStorage.Settings)

print("Rounds last " .. Settings.RoundLength .. " seconds")

-- Todos os jogadores recebem Wins no placar de líderes
Players.PlayerAdded:Connect(function(player)
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player

	local wins = Instance.new("IntValue")
	wins.Name = "Wins"
	wins.Parent = leaderstats
end)

-- O painel de status no lobby
local gui = Instance.new("SurfaceGui")
gui.Parent = workspace.StatusBoard

local status = Instance.new("TextLabel")
status.Name = "Status"
status.Size = UDim2.fromScale(1, 1)
status.BackgroundColor3 = Color3.fromRGB(25, 25, 35)
status.TextColor3 = Color3.fromRGB(255, 255, 255)
status.TextScaled = true
status.Text = "Welcome to Disaster Survival!"
status.Parent = gui

local function setStatus(text)
	status.Text = text
end

-- O loop das rodadas
while true do
	for seconds = Settings.Intermission, 1, -1 do
		setStatus("Intermission: " .. seconds)
		task.wait(1)
	end

	for seconds = Settings.RoundLength, 1, -1 do
		setStatus("Time left: " .. seconds)
		task.wait(1)
	end
end
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Jogo no Roblox: Sobrevivência a Desastres