Im Spiel wird der Spieler wichtige Statistiken haben, die er sehen muss, wie die Gegenstände, die er gesammelt hat. Diese Zahlen werden mit einem Bestenlisteangezeigt. Leaderboards sind eingebaute Funktionen von Roblox, die ein Skript zum Aktivieren und Anpassen benötigen.
Erstellen Sie die Rangliste
Wenn ein Spieler zum Erlebnis hinzugefügt wird, muss er in die Rangliste hinzugefügt werden, um die einzelnen Statistiken zu verfolgen.
Im Explorer, unter ServerScriptService , erstellen Sie ein neues Skript namens PlayerSetup. In diesem Skript, das. PL: die Skriptslöschen Sie die Halo-Weltlinie und schreiben Sie einen beschreibenden Kommentar posten.
Nach dem Kommentar postenerstellen Sie eine benutzerdefinierte Funktion namens onPlayerJoin mit einem Parameter namens Spieler:in.
-- Erstellt eine Rangliste, die Spieler Variablen anzeigtlocal function onPlayerJoin(player)endIn onPlayerJoin erstellen Sie eine Variable namens leaderstats und haben Sie sie erstellen eine neue Ordner Instanz.
local function onPlayerJoin(player)local leaderstats = Instance.new("Folder")endNenne die neue Ordner Instanz leaderstats und übergebe sie dem Spieler:in. Nennen Sie den Ordner leaderstats, damit Roblox Studio weiß, dass eine Bestenlisteerstellt werden soll.
local function onPlayerJoin(player)local leaderstats = Instance.new("Folder")leaderstats.Name = "leaderstats"leaderstats.Parent = playerendNach dem Ende der Funktion, verbinden Sie OnPlayerJoin mit dem PlayerAdded -Ereignis. Wenn ein Spieler der Erlebnisbeitritt, wird jedem Spieler die Bestenlistebereitgestellt.
local Players = game:GetService("Players")local function onPlayerJoin(player)local leaderstats = Instance.new("Folder")leaderstats.Name = "leaderstats"leaderstats.Parent = playerendPlayers.PlayerAdded:Connect(onPlayerJoin)
Spielerstatistiken verfolgen
Jetzt, da eine Rangliste erstellt ist, muss sie dem Spieler diese Zahlen anzeigen:
- Gold - Wie viel Geld der Spieler hat.
- Gegenstände - Wie viele Gegenstände der Spieler von der Welt gesammelt hat.
- Plätze - Die meisten Gegenstände, die ein Spieler auf einmal halten kann.
Jede dieser Zahlen wird ein IntValue sein, ein Platzhaltobjekt für eine Zahl.
Codierung von Spieler-Gold
Beginnen Sie mit dem Codieren eines Statistikums für Gold.
In OnPlayerJoin , unter leaderstats.Parent = player , schreibt local gold = Instance.new("IntValue") . Dies erstellt einen neuen IntValue und speichert es in der Variable Gold.
local function onPlayerJoin(player)local leaderstats = Instance.new("Folder")leaderstats.Name = "leaderstats"leaderstats.Parent = playerlocal gold = Instance.new("IntValue")endDanach schreiben Sie gold.Name = "Gold". Dies gibt dem IntValue einen Namen, sodass Sie ihn in anderen Skripts verwenden können. Der Name wird auch den Spielern auf der Bestenliste angezeigt.
local function onPlayerJoin(player)local gold = Instance.new("IntValue")gold.Name = "Gold"endAuf einer neuen Zeile, tippe gold.Value = 0 . Dies setzt den Startwert für Spieler.
local function onPlayerJoin(player)local gold = Instance.new("IntValue")gold.Name = "Gold"gold.Value = 0endType gold.Parent = leaderstats . Dies ist die Basis für die IntValue für Gold zu leaderstats. Wenn die IntValue nicht über leaderstats übergeordnet ist, sehen die Spieler es nicht.
local function onPlayerJoin(player)local gold = Instance.new("IntValue")gold.Name = "Gold"gold.Value = 0gold.Parent = leaderstatsendSpielen Sie Ihr Projekt und beachten Sie, dass eine Rangliste in der oberen rechten erscheint.
Troubleshooting-Tipps
Wenn Sie die Bestenlistenicht sehen, versuchen Sie es mit dem gefolgte Profile:
- Stellen Sie sicher, dass .Value mit Großbuchstaben geschrieben ist.
- Stellen Sie sicher, dass die Variable für die IntValue in der Leaderboard wie gold.Parent = leaderstats übergeordnet ist.
Codierung von Gegenständen und Feldern
Denken Sie daran, dass die Stat-Namen jederzeit basieren auf dem Spiel-Design-Dokument. In anderen Worten, "Items" kann stattdessen "Crystals" sein.
Fügen Sie eine leere Zeile hinzu, um die nächste Statistik zu trennen, und erstellen Sie dann die Item-Statistik, indem Sie ein neues IntValue auf die gleiche Weise einrichten, wie Sie es für Gold getan haben.
local function onPlayerJoin(player)gold.Parent = leaderstats-- Erstellen Sie die Items-Statlocal items = Instance.new("IntValue")items.Name = "Items"items.Value = 0items.Parent = leaderstatsendErstellen Sie eine neue Statistik für die Taschen der Spieler:in. Setzen Sie spaces.Value auf 2, damit die Spieler das Erlebnis nur beginnen können, zwei Artikel gleichzeitig zu tragen, und sie ein neues Taschenkaufen, wenn sie es können.
local function onPlayerJoin(player)items.Parent = leaderstats-- Erstellen Sie die Statistik der Leerstellenlocal spaces = Instance.new("IntValue")spaces.Name = "Spaces"spaces.Value = 2spaces.Parent = leaderstatsendTesten Sie das Projekt. Spieler sollten eine Rangliste haben, die Gold, Artikel und Plätze anzeigt.
Wenn die Rangliste nicht angezeigt wird, versuchen Sie es, die folgenden Optionen zu überprüfen.
- Wenn Sie die Zahl in der Bestenlistenicht sehen können, überprüfen Sie, dass jedes IntValue in der Rangliste zu IntStats gehört.
- Stellen Sie sicher, dass jeder IntValue genau so geschrieben ist, wie in der Anzeige gezeigt
- Stellen Sie sicher, dass das Ereignis PlayerAdded am unteren Rand des Skript, das. PL: die Skriptsist
Schließe das Spieler-Setup-Skript ab
Eine fertige Version des Skripts kann unten verwendet werden.
local Players = game:GetService("Players")
-- Erstellt eine Rangliste, die Spieler Variablen anzeigt
local function onPlayerJoin(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local gold = Instance.new("IntValue")
gold.Name = "Gold"
gold.Value = 0
gold.Parent = leaderstats
local items = Instance.new("IntValue")
items.Name = "Items"
items.Value = 0
items.Parent = leaderstats
local spaces = Instance.new("IntValue")
spaces.Name = "Spaces"
spaces.Value = 2
spaces.Parent = leaderstats
end
-- Laufen Sie aufPlayerJoin aus, wenn das Ereignis PlayerAdded ausgelöst wird
Players.PlayerAdded:Connect(onPlayerJoin)