Menu
CoddyTech

Kazananlar

Coddy'nin Roblox Oyunu: Felaketten Kurtulma kursunda ders 8 / 18.

Bir turu atlatmak bir Galibiyet kazandırır. Tur bittiğinde, hâlâ survivors içinde olan her oyuncu bir tane kazanır:

for player in survivors do
	player.leaderstats.Wins.Value += 1
end

+= bir değeri yerinde artırır. Hayatta kalan olup olmadığını anlamak için next(survivors) tablonun ilk anahtarını, tablo boşsa nil değerini verir.

Lobi geri sayımı panoyu geri almadan önce oyuncuların sonucu okumak için biraz zamana ihtiyacı vardır; bu nedenle tur task.wait(3) ile biter.

challenge icon

Görev

Orta

Tur bittiğinde:

  1. Hayatta kalan herkese onları saymak yerine +1 Wins ver.
  2. Harita yok edildikten sonra hayatta kalan varsa Survivors win!, hiç kimse hayatta kalmadıysa Nobody survived! göster.
  3. Bir sonraki lobi geri sayımından önce 3 saniye bekle.

Oyna'ya bas, bir tur hayatta kal ve Wins değerini izle, sonra Kontrol Et.

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 oyuncunun liderlik tablosunda Wins değeri olur
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

	local count = 0
	for player in survivors do
		count += 1
		teleport(player, lobbySpawn)
	end
	map:Destroy()
	print("Survivors: " .. count)
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 Kurtulma bölümündeki tüm dersler