Para Pemenang
Pelajaran 8 dari 18 dalam kursus Game Roblox: Bertahan dari Bencana di Coddy.
Bertahan dalam satu ronde bernilai satu Kemenangan. Saat ronde berakhir, setiap pemain yang masih ada di survivors mendapat satu:
for player in survivors do
player.leaderstats.Wins.Value += 1
end+= menambahkan nilai secara langsung. Untuk mengetahui apakah ada yang selamat, next(survivors) memberikan kunci pertama dari tabel tersebut, atau nil jika tabel kosong.
Pemain perlu waktu sejenak untuk membaca hasilnya sebelum hitung mundur lobi mengambil alih papan lagi, jadi ronde berakhir dengan task.wait(3).
Tantangan
SedangSaat ronde berakhir:
- Berikan +1
Winskepada setiap penyintas, alih-alih menghitung jumlahnya. - Setelah map dihancurkan, tampilkan
Survivors win!jika ada yang selamat, atauNobody survived!jika tidak ada yang selamat. - Tunggu 3 detik sebelum hitung mundur lobi berikutnya.
Tekan Mainkan, bertahanlah selama satu ronde dan lihat Wins-mu, lalu tekan Periksa.
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
local count = 0
for player in survivors do
count += 1
teleport(player, lobbySpawn)
end
map:Destroy()
print("Survivors: " .. count)
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