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.
Görev
OrtaTur bittiğinde:
- Hayatta kalan herkese onları saymak yerine +1
Winsver. - Harita yok edildikten sonra hayatta kalan varsa
Survivors win!, hiç kimse hayatta kalmadıysaNobody survived!göster. - 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
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.