Menu
CoddyTech

שמות המנצחים

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

מנצח רוצה לראות את שמו באורות. כדי לרשום את שמות השורדים, אספו אותם ברשימה וחברו אותה.

רשימה היא טבלה עם המפתחות 1, 2, 3. ‏table.insert(list, value) מוסיפה לסוף, ‏#list הוא האורך שלה, ו־table.concat(list, ", ") מחברת את הפריטים למחרוזת אחת עם מפריד ביניהם:

local names = {}
table.insert(names, "Ana")
table.insert(names, "Ben")
print(#names) --> 2
print(table.concat(names, ", ")) --> Ana, Ben

אי אפשר לחבר מחרוזת לטבלה באמצעות ..; זו שגיאה. תחילה חברו את הרשימה למחרוזת.

challenge icon

אתגר

בינוני

ציין את שמות המנצחים בלוח:

  1. כשהסיבוב מסתיים, צור רשימה ריקה names והוסף אליה את ה-Name של כל שורד.
  2. הצג Winners: ואחריו את השמות כשהם מחוברים באמצעות , , למשל Winners: Player1, או Nobody survived! כשהרשימה ריקה.

לחץ על הפעל ושרוד סיבוב, ואז לחץ על בדוק.

נסו בעצמכם

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

local lobbySpawn = workspace.LobbySpawn

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

local function teleport(player, target)
	local character = player.Character
	if character then
		character:PivotTo(target.CFrame + Vector3.new(0, 4, 0))
	end
end

-- הלולאה של הסיבובים
while true do
	for seconds = Settings.Intermission, 1, -1 do
		setStatus("Intermission: " .. seconds)
		task.wait(1)
	end

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

	local survivors = {}
	for _, player in Players:GetPlayers() do
		local character = player.Character
		if character and character.Humanoid.Health > 0 then
			teleport(player, map.Spawn)
			survivors[player] = true
			character.Humanoid.Died:Connect(function()
				survivors[player] = nil
			end)
		end
	end

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

	for player in survivors do
		player.leaderstats.Wins.Value += 1
		teleport(player, lobbySpawn)
	end
	map:Destroy()
	if next(survivors) then
		setStatus("Survivors win!")
	else
		setStatus("Nobody survived!")
	end
	task.wait(3)
end
quiz iconבחנו את עצמכם

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

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