Roblox ma wbudowany system rankingowy , który umożliwia wyświetlanie informacji o użytkownikach, takich jak wyniki, waluta lub najszybszy czas w wyścigu.
Ustawienie tabeli liderów
Aby ustawić tabelę wyników i dodać graczy, gdy wchodzą do doświadczenia:
Utwórz nowy Script w ServerScriptService i nazwij go Leaderboard .
W skrypcie połącz funkcję z wydarzeniem PlayerAdded .
local Players = game:GetService("Players")local function leaderboardSetup(player)end-- Połącz funkcję "leaderboardSetup()" z wydarzeniem "PlayerAdded"Players.PlayerAdded:Connect(leaderboardSetup)Wewnątrz połączonej funkcji utwórz nową instancjaFolder, nazwij ją leaderstats i zwiń ją z graczem.
local Players = game:GetService("Players")local function leaderboardSetup(player)local leaderstats = Instance.new("Folder")leaderstats.Name = "leaderstats"leaderstats.Parent = playerend-- Połącz funkcję "leaderboardSetup()" z wydarzeniem "PlayerAdded"Players.PlayerAdded:Connect(leaderboardSetup)
Dodawanie statystyk
Rankingi używają obiektów typu value do przechowywania i wyświetlania statystyk gracza. Ten skrypt pokaże złoto gracza używając IntValue , miejscekholder dla liczby.
W funkcji leaderboardSetup() dodaj linie 8 poprzez 11:
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
-- Połącz funkcję "leaderboardSetup()" z wydarzeniem "PlayerAdded"
Players.PlayerAdded:Connect(leaderboardSetup)
Te linijki zapewniają obserwuje:
Instancja IntValue jest utworzona.
instancjama Name ustawiony na "Gold". To jest dokładnie tak, jak statystyka będzie wyglądać na ranking.
Początkowy Value statystyki ustawiony na 0 . Można ustawić to na dowolną wartość, którą chcesz, w tym wartość przechowywana w magazynie danych, jeśli wdrożysz trwałe tabelice liderów.
Instancja jest związana z leaderstats katalogiem, który dodaje ją do ranking. Gdy gracz wchodzi do doświadczenia, jego imię widoczne jest na tablicy.
Aktualizowanie statystyk
Aby aktualizować statystykę liderboard'a gracza, zmień właściwość Value tego statystyki w ich leaderstats foldere. Na przykład możesz załączyć następujący Script do dowolnego obiektu pickup, aby zwiększyć statystykę 1>Złoto1> gracza, która go zbiera.
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
-- Zniszcz pickup
goldChunk:Destroy()
-- Aktualizuj statystykę lidera gracza
goldStat.Value += 10
end
end
goldChunk.Touched:Connect(onPartTouch)
Statystyki zamówienia
Są trzy sposoby na kontrolowanie kolejności statystyk w tabeli ranking:
- Dodaj statystyki w porządku, w którym chcesz, aby się pojawiły.
- Dodaj dziecko BoolValue z imieniem IsPrimary do statystyki i ustaw jej wartość na true, aby umieścić statystykę na pierwszej ranking.
- Dodaj dziecko NumberValue z imieniem Priority do statystyki i ustaw jej wartość na liczbę. Wyższe wartości priorytetów pojawiają się wcześniej w tabeli ranking. Statystyki bez priorytetu mają domyślną priorytet w 0.
Ten kod przykładowy pokazuje, jak dodać wartość IsPrimary do statystyki:
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)
Ukrywanie wyników w tabeli liderów
Aby ukryć tabelę ranking, taką jak na ekranie menu lub podczas kroju, umieść LocalScript w StarterGui lub StarterPlayerScripts zawierającym wezwanie do 2>Class.StarterGui:SetCoreGuiEnabled()|StarterGui2> .
local StarterGui = game:GetService("StarterGui")StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)