Rankingi w grze

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

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.

Leaderboard Screen

Ustawienie tabeli liderów

Aby ustawić tabelę wyników i dodać graczy, gdy wchodzą do doświadczenia:

  1. Utwórz nowy Script w ServerScriptService i nazwij go Leaderboard .

    Leaderboard Insert Script
  2. 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)
  3. 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 = player
    end
    -- 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:

  1. Instancja IntValue jest utworzona.

  2. instancjama Name ustawiony na "Gold". To jest dokładnie tak, jak statystyka będzie wyglądać na ranking.

    Leaderboards Name Column
  3. 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.

  4. 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.

    Leaderboards Multiple Players

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)