Nama Pemenang
Pelajaran 9 dari 18 dalam kursus Game Roblox: Bertahan dari Bencana di Coddy.
Seorang pemenang ingin melihat namanya terpampang. Untuk mencantumkan nama para penyintas, kumpulkan nama mereka dalam list lalu gabungkan.
List adalah tabel dengan kunci 1, 2, 3. table.insert(list, value) menambahkan item di akhir, #list adalah panjangnya, dan table.concat(list, ", ") menggabungkan item menjadi satu string dengan pemisah di antaranya:
local names = {}
table.insert(names, "Ana")
table.insert(names, "Ben")
print(#names) --> 2
print(table.concat(names, ", ")) --> Ana, BenString tidak bisa digabungkan dengan tabel menggunakan ..; itu adalah error. Gabungkan list menjadi string terlebih dahulu.
Tantangan
SedangTampilkan nama para pemenang di papan:
- Saat ronde berakhir, buat list kosong
namesdan tambahkanNamesetiap penyintas ke dalamnya. - Tampilkan
Winners:diikuti nama-nama yang digabungkan dengan,, sepertiWinners: Player1, atauNobody survived!jika list kosong.
Tekan Play dan bertahanlah selama satu ronde, lalu tekan Check.
Coba sendiri
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")
-- Setiap pemain mendapat Wins di papan peringkat
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)
-- Papan status di lobi
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
-- Perulangan ronde
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
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Game Roblox: Bertahan dari Bencana
Latihan sendiri: Playground Roblox