Roblox ha un sistema leaderboard incorporato che ti consente di visualizzare informazioni utente come punteggi, Monetao il tempo più veloce in una gara.
Configurazione della classifica
Per configurare la classifica e aggiungere giocatori quando entrano nell'esperienza:
Crea un nuovo Script dentro ServerScriptService e chiamalo Leaderboard .
Nel script, connect a function to the PlayerAdded event.
local Players = game:GetService("Players")local function leaderboardSetup(player)end-- Connetti la funzione "leaderboardSetup()" all'evento "PlayerAdded"Players.PlayerAdded:Connect(leaderboardSetup)All'interno della funzione connessa, crea una nuova esempioFolder , impostandola come leaderstats e ponendola come padre del Giocatore.
local Players = game:GetService("Players")local function leaderboardSetup(player)local leaderstats = Instance.new("Folder")leaderstats.Name = "leaderstats"leaderstats.Parent = playerend-- Connetti la funzione "leaderboardSetup()" all'evento "PlayerAdded"Players.PlayerAdded:Connect(leaderboardSetup)
Aggiungere statistiche
Le classifiche utilizzano oggetti di tipo value per memorizzare e visualizzare le statistiche del giocatore. Questo script mostrerà l'oro di un Giocatoreutilizzando un IntValue , un placeholder per un Integro.
Nella funzione leaderboardSetup(), aggiungi le righe 8 attraverso 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
-- Connetti la funzione "leaderboardSetup()" all'evento "PlayerAdded"
Players.PlayerAdded:Connect(leaderboardSetup)
Queste righe compiono i Seguendocompiti:
Un'istanza IntValue viene creata.
Il suo Name è impostato su "Gold" . Questo è esattamente il modo in cui la statistica apparirà sulla Classifica.
L'iniziale stat Value è impostato su 0 . Questo può essere impostato su qualsiasi valore che desideri, incluso un valore memorizzato in un data store se stai implementando leaderboard persistenti.
L'istanza è parented alla cartella leaderstats che la aggiunge alla Classifica. Quando un giocatore entra nell'esperienza, il loro nome appare sul board.
Aggiornamento delle statistiche
Per aggiornare la statistica della classifica di un Giocatore, cambia la proprietà Value di quella statistica all'interno della loro cartella leaderstats. Ad esempio, puoi attaccare il seguente Script a qualsiasi oggetto di pickup per aumentare la statistica 2>Oro2> del giocatore che la raccoglie.
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
-- Distruggi il pickup
goldChunk:Destroy()
-- Aggiorna la statistica della classifica del Giocatore
goldStat.Value += 10
end
end
goldChunk.Touched:Connect(onPartTouch)
Ordinamento delle statistiche
Ci sono tre modi per controllare l'ordine delle statistiche in una Classifica:
- Aggiungi le statistiche nell'ordine in cui vuoi che appaiono.
- Aggiungi un figlio BoolValue con il nome IsPrimary alla statistica e imposta il suo valore su true per posizionare la statistica prima nella classifica.
- Aggiungi un figlio NumberValue con il nome Priority alla statistica e imposta il suo valore su un Integro. I valori senza una priorità hanno un valore predefinito di 0.
Questo esempio di codice mostra come aggiungere un valore IsPrimary a una statistica:
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)
Nascondere la classifica
Per nascondere la Classifica, come su una schermata del menu o durante una scena, posiziona un LocalScript all'interno di StarterGui o StarterPlayerScripts contenente un call a 2>Class.StarterGui:SetCoreGuiEnabled()|StarterGui2> .
local StarterGui = game:GetService("StarterGui")StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)