שמות המנצחים
שיעור 9 מתוך 20 בקורס משחק 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אי אפשר לחבר מחרוזת לטבלה באמצעות ..; זו שגיאה. תחילה חברו את הרשימה למחרוזת.
אתגר
בינוניהציגו את שמות המנצחים על הלוח.
- כשהסבב מסתיים, צרו
local names = {}והוסיפו אתNameשל כל שורד באמצעותtable.insert. - הציגו
"Winners: " .. table.concat(names, ", "), אוNobody survived!כאשר#namesהוא 0.
לחצו על "שחק" ושרדו סבב: הלוח יציג את שמכם כמנצחים. לאחר מכן לחצו על "בדיקה".
נסו בעצמכם
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()
-- שיעור 9: Winner Names יופיעו כאן
if next(survivors) then
setStatus("Survivors win!")
else
setStatus("Nobody survived!")
end
task.wait(3)
end
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה משחק Roblox: הישרדות באסונות
תרגלו בעצמכם: Roblox אונליין