Roblox hat ein integriertes Bestenlisten-System , das es Ihnen ermöglicht, Benutzer Informationen wie Scores, Währungen oder die schnellste Zeit in einem Rennen anzuzeigen.
Erstellen der Rangliste
Um die Rangliste einzurichten und Spieler hinzuzufügen, wenn sie die Erlebnisbetreten:
Erstellen Sie ein neues Script innerhalb von ServerScriptService und benennen Sie es Leaderboard .
Im Skript, das. PL: die Skriptsverbinden Sie eine Funktion mit dem Ereignis PlayerAdded.
local Players = game:GetService("Players")local function leaderboardSetup(player)end-- Verbinden Sie die Funktion "leaderboardSetup()" mit dem Ereignis "PlayerAdded"Players.PlayerAdded:Connect(leaderboardSetup)In der verbundenen Funktion erstellen Sie eine neue Folder Instanz, benennen Sie sie leaderstats und überlassen Sie sie dem Spieler:in.
local Players = game:GetService("Players")local function leaderboardSetup(player)local leaderstats = Instance.new("Folder")leaderstats.Name = "leaderstats"leaderstats.Parent = playerend-- Verbinden Sie die Funktion "leaderboardSetup()" mit dem Ereignis "PlayerAdded"Players.PlayerAdded:Connect(leaderboardSetup)
Statistiken hinzufügen
Bestenlisten verwenden Werte тип Objekte , um Spielerstatistiken zu speichern und anzuzeigen. Dieses Skript wird einen Spieler:inmit Gold anzeigen, verwenden Sie einen Platzhalter für eine ganzzahlig.
In der leaderboardSetup() Funktion fügen Sie Zeilen 8 durch 11 hinzu:
local Players = game:GetService("Players")
local function leaderboardSetup(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
end
-- Verbinden Sie die Funktion "leaderboardSetup()" mit dem Ereignis "PlayerAdded"
Players.PlayerAdded:Connect(leaderboardSetup)
Diese Zeilen erledigen die gefolgte Profile:
Eine IntValue Instanz wird erstellt.
Die Instanz von Name ist auf "Gold" eingestellt. So sieht der Statistik auf der Bestenliste genau so aus.
Die Statistik 's ursprüngliche Class.IntValue.Value|Value ' ist auf 0 eingestellt. Dies kann auf jeden Wert gesetzt werden, den Sie wünschen, einschließlich eines Wertes, der in einem Datenspeicher gespeichert ist, wenn Sie eine dauerhafte Bestenlisten implementieren.
Die Instanz ist der leaderstats-Ordner, der sie zur Bestenliste hinzufügt. Wenn ein Spieler die Erlebnisbetritt, wird sein Name auf der Tafel angezeigt.
Statistiken aktualisieren
Um die Rangliste eines Spieler:inzu aktualisieren, ändern Sie die Eigenschaft Value innerhalb der Statistik innerhalb ihres leaderstats-Ordners. Zum Beispiel können Sie das folgende Script an jedes Pickup-Objekt anhängen, um die Gold-Stat des Spielers zu erhöhen, die es sammelt.
local Players = game:GetService("Players")
local goldChunk = script.Parent
local function onPartTouch(otherPart)
local partParent = otherPart.Parent
local player = Players:GetPlayerFromCharacter(partParent)
local leaderstats = player and player:FindFirstChild("leaderstats")
local goldStat = leaderstats and leaderstats:FindFirstChild("Gold")
if goldStat then
-- Zerstöre das Pickup
goldChunk:Destroy()
-- Aktualisieren Sie die Statistik der Spieler:in
goldStat.Value += 10
end
end
goldChunk.Touched:Connect(onPartTouch)
Statistiken bestellen
Es gibt drei Möglichkeiten, die Reihenfolge der Statistiken in einer Bestenlistezu steuern:
- Fügen Sie die Statistiken in der Reihenfolge hinzu, in der Sie sie angezeigt haben möchten.
- Fügen Sie einem Kind BoolValue mit dem Namen IsPrimary zu dem Statistik und setzen Sie seinen Wert auf true, um den Statistik zuerst in die Bestenlistezu platzieren.
- Fügen Sie einem Kind NumberValue mit dem Namen Priority zu der Statistik hinzu und setzen Sie seinen Wert auf einen ganzzahlig. Höhere Prioritätswerte erscheinen früher in der Bestenliste. Statistiken ohne eine Priorität haben eine Standard priorität von 0.
Dieser Codebeispiel zeigt, wie man einen IsPrimary-Wert zu einer Statistik hinzufügt:
local Players = game:GetService("Players")
local function leaderboardSetup(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 isPrimary = Instance.new("BoolValue")
isPrimary.Name = "IsPrimary"
isPrimary.Value = true
isPrimary.Parent = gold
end
Players.PlayerAdded:Connect(leaderboardSetup)
Die Rangliste ausblenden
Um die Bestenlistezu verbergen, wie auf einem Menü-Bildschirm oder während einer Cutscene, platzieren Sie einen LocalScript innerhalb von StarterGui oder StarterPlayerScripts, der einen Aufruf zu 2>Class.StarterGui:SetCoreGuiEnabled()|StarterGui2> enthält.
local StarterGui = game:GetService("StarterGui")StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)