Kazananların İsimleri
Coddy'nin Roblox Oyunu: Felaketten Sağ Kalma kursunda ders 9 / 20.
Bir kazanan adını ışıklarda görmek ister. Hayatta kalanların adlarını listelemek için onları bir listede topla ve birleştir.
Liste, anahtarları 1, 2, 3 olan bir tablodur. table.insert(list, value) sona ekler, #list uzunluğudur ve table.concat(list, ", ") öğeleri aralarına bir ayraç koyarak tek bir dizgede birleştirir:
local names = {}
table.insert(names, "Ana")
table.insert(names, "Ben")
print(#names) --> 2
print(table.concat(names, ", ")) --> Ana, BenBir dizge, .. ile bir tabloya birleştirilemez; bu bir hatadır. Önce listeyi bir dizgeye birleştir.
Görev
OrtaKazananları panoda belirt.
- Tur sona erdiğinde
local names = {}oluştur ve hayatta kalanlarınNamedeğerlerinitable.insertile ekle. #names0 iseNobody survived!, değilse"Winners: " .. table.concat(names, ", ")göster.
“Oyna” düğmesine bas ve bir tur hayatta kal: pano seni kazanan olarak gösterir. Ardından “Kontrol et” düğmesine bas.
Kendin dene
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")
-- Her oyuncuya liderlik tablosunda Wins verilir
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)
-- lobideki durum panosu
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
-- Tur döngüsü
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()
-- Ders 9: Winner Names buraya gelecek
if next(survivors) then
setStatus("Survivors win!")
else
setStatus("Nobody survived!")
end
task.wait(3)
end
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Roblox Oyunu: Felaketten Sağ Kalma bölümündeki tüm dersler
Kendi başına pratik yap: Roblox playground