Menu
CoddyTech

טעינת מפה

שיעור 5 מתוך 18 בקורס משחק Roblox: הישרדות באסונות של Coddy.

סבבים מתרחשים במפה. המפות ממתינות בתוך ServerStorage, שירות שהתוכן שלו אינו נמצא בעולם: אף אחד לא רואה אותן או נוגע בהן. פתחו את ServerStorage.Maps במבנה Explorer ותמצאו את Island.

סבב מציב עותק של מפה בסביבת העבודה באמצעות Clone, ומסיר אותו לאחר מכן באמצעות Destroy. המקור נשאר ב-ServerStorage, ללא שינוי, ומוכן לסבב הבא:

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

-- ... הסיבוב ...

map:Destroy()

עותק שומר על המיקומים של המקור, ולכן האי מופיע במקום שבו הוא נבנה, הרחק מהלובי. העברת המקור במקום שכפול שלו הייתה עובדת פעם אחת: אחרי Destroy הראשון לא היה נשאר Island לסבב השני.

challenge icon

אתגר

בינוני

טען את Island בכל סבב:

  1. בראש הקובץ, קבל את ServerStorage באמצעות game:GetService.
  2. כשהסבב מתחיל (אחרי הספירה לאחור בלובי), שכפל את ServerStorage.Maps.Island, תן לעותק את השם Map והגדר את סביבת העבודה כהורה שלו.
  3. כשהספירה לאחור של הסבב מסתיימת, השמד את המפה.

לחץ על Play: כשהסבב מתחיל, האי מופיע הרחק לפני הלובי. לאחר מכן לחץ על Check.

נסו בעצמכם

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

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

-- כל שחקן מקבל Wins בלוח המובילים
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)

-- לוח הסטטוס בלובי
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

-- לולאת הסבבים
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 iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה משחק Roblox: הישרדות באסונות