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.
Desafio
MédioFaça cada rodada carregar a Ilha:
- No início, obtenha
ServerStoragecomgame:GetService. - Quando a rodada começar (após a contagem regressiva do lobby), clone
ServerStorage.Maps.Island, dê o nomeMapà cópia e defina o workspace como pai dela. - 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
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
2Mapas e Jogadores
Carregar um Mapa