Menu
CoddyTech

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, Ben

Bir dizge, .. ile bir tabloya birleştirilemez; bu bir hatadır. Önce listeyi bir dizgeye birleştir.

challenge icon

Görev

Orta

Kazananları panoda belirt.

  1. Tur sona erdiğinde local names = {} oluştur ve hayatta kalanların Name değerlerini table.insert ile ekle.
  2. #names 0 ise Nobody 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
quiz iconKendini test et

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