Menu
CoddyTech

Tải bản đồ

Bài học 5 trên 20 trong khóa học Trò chơi Roblox: sinh tồn trước thảm họa của Coddy.

Các vòng diễn ra trên một bản đồ. Các bản đồ nằm trong ServerStorage, một dịch vụ có nội dung không nằm trong thế giới: không ai nhìn thấy hay chạm vào chúng. Mở ServerStorage.Maps trong sơ đồ Explorer, bạn sẽ tìm thấy Island.

Mỗi vòng tạo một bản sao của bản đồ trong không gian làm việc bằng Clone, rồi xóa bản đồ đó sau vòng chơi bằng Destroy. Bản gốc vẫn ở ServerStorage, nguyên vẹn và sẵn sàng cho vòng tiếp theo:

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

-- ... vòng chơi ...

map:Destroy()

Bản sao giữ nguyên vị trí của bản gốc, nên hòn đảo xuất hiện ở nơi nó được xây dựng, cách xa sảnh chờ. Nếu di chuyển bản gốc thay vì sao chép, cách đó chỉ hiệu quả một lần: sau lần Destroy đầu tiên, sẽ không còn Island cho vòng hai.

challenge icon

Thử thách

Trung bình

Tải Island cho mỗi vòng chơi.

  1. Ở đầu chương trình, lấy ServerStorage bằng game:GetService.
  2. Sau khi bộ đếm ngược ở sảnh kết thúc, sao chép ServerStorage.Maps.Island vào local map, đặt tên cho nó là Map rồi đặt nó vào workspace.
  3. Khi bộ đếm ngược của vòng chơi kết thúc, gọi map:Destroy().

Nhấn Chơi: khi vòng chơi bắt đầu, hòn đảo xuất hiện ở phía xa sảnh, và biến mất khi vòng chơi kết thúc. Sau đó nhấn Kiểm tra.

Tự làm thử

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

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

-- Mỗi người chơi có Wins trên bảng xếp hạng
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)

-- Bảng trạng thái ở sảnh chờ
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

-- Vòng lặp của các vòng chơi
while true do
	for seconds = Settings.Intermission, 1, -1 do
		setStatus("Intermission: " .. seconds)
		task.wait(1)
	end

	-- Bài học 5: thêm Load a Map vào đây
	for seconds = Settings.RoundLength, 1, -1 do
		setStatus("Time left: " .. seconds)
		task.wait(1)
	end
end

Tất cả bài học trong Trò chơi Roblox: sinh tồn trước thảm họa

Tự luyện tập: Playground Roblox