Namen der Gewinner
Lektion 9 von 18 im Kurs Roblox-Spiel: Katastrophen überleben von Coddy.
Ein Gewinner möchte seinen Namen in leuchtenden Buchstaben sehen. Um die Namen der Überlebenden aufzulisten, sammelst du sie in einer Liste und verbindest sie.
Eine Liste ist eine Tabelle mit den Schlüsseln 1, 2, 3. table.insert(list, value) fügt am Ende ein Element hinzu, #list ist ihre Länge und table.concat(list, ", ") verbindet die Elemente zu einer Zeichenkette mit einem Trennzeichen dazwischen:
local names = {}
table.insert(names, "Ana")
table.insert(names, "Ben")
print(#names) --> 2
print(table.concat(names, ", ")) --> Ana, BenEine Zeichenkette kann nicht mit .. an eine Tabelle angehängt werden; das ist ein Fehler. Verbinde die Liste zuerst zu einer Zeichenkette.
Aufgabe
MittelNenne die Gewinner auf der Anzeigetafel:
- Wenn die Runde endet, erstelle eine leere Liste
namesund füge jeder Person, die überlebt hat, ihrenNamehinzu. - Zeige
Winners:gefolgt von den Namen, die mit,verbunden sind, zum BeispielWinners: Player1, oderNobody survived!, wenn die Liste leer ist.
Klicke auf Spielen und überlebe eine Runde, dann klicke auf Prüfen.
Probier es selbst
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")
-- Jeder Spieler erhält Wins auf der Bestenliste
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)
-- Die Statustafel in der Lobby
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
-- Die Rundenschleife
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()
if next(survivors) then
setStatus("Survivors win!")
else
setStatus("Nobody survived!")
end
task.wait(3)
end
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.