Tabelas de classificação na experiência

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

O Roblox tem um sistema de classificação integrado que permite que você exiba informações de usuários, como pontuações, moedas ou o tempo mais rápido em uma corrida.

Leaderboard Screen

Configurando o Leaderboard

Para configurar a tabela de classificação e adicionar jogadores quando eles entrarem na experiência:

  1. Crie um novo Script dentro de ServerScriptService e nomeie-o Leaderboard .

    Leaderboard Insert Script
  2. No script, conecte uma função ao evento PlayerAdded.


    local Players = game:GetService("Players")
    local function leaderboardSetup(player)
    end
    -- Conecte a função "leaderboardSetup()" ao evento "PlayerAdded"
    Players.PlayerAdded:Connect(leaderboardSetup)
  3. Dentro da função conectada, crie uma nova instância Folder, nomeie-a leaderstats e adicione-a ao jogador.


    local Players = game:GetService("Players")
    local function leaderboardSetup(player)
    local leaderstats = Instance.new("Folder")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = player
    end
    -- Conecte a função "leaderboardSetup()" ao evento "PlayerAdded"
    Players.PlayerAdded:Connect(leaderboardSetup)

Adicionando Estatísticas

Leaderboards use objetos de tipo de valor para armazenar e exibir estatísticas de jogadores. Este script mostrará um jogador's gold usando um IntValue , um placeholder para um número integral.

Na função leaderboardSetup(), adicione linhas 8 até 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
-- Conecte a função "leaderboardSetup()" ao evento "PlayerAdded"
Players.PlayerAdded:Connect(leaderboardSetup)

Essas linhas fazem o seguindo:

  1. Uma instância IntValue é criada.

  2. O instância's Name está definido como "Gold". Isso é exatamente como o estatística aparecerá na tabela de classificação.

    Leaderboards Name Column
  3. O inicial do stat's Value é definido como 0 . Isso pode ser definido para qualquer valor que você deseje, incluindo um valor armazenado em um armazenamento de dados se você estiver implementando placares persistentes.

  4. A instância está ligada ao leaderstats pasta que o adiciona à classificação. Quando um jogador entra na experiência, seu nome aparece no board.

    Leaderboards Multiple Players

Atualizando Estatísticas

Para atualizar a estatística de classificação de um jogador, altere a propriedade Value da estatística dentro de sua pasta leaderstats. Por exemplo, você pode anexar o seguinte Script a qualquer objeto de coleta para aumentar a estatística de 2>Ouro2> do jogador que o coleta.


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
-- Destruir o pickup
goldChunk:Destroy()
-- Atualize o status da tabela de classificação do jogador
goldStat.Value += 10
end
end
goldChunk.Touched:Connect(onPartTouch)

Encomendar Estatísticas

Existem três maneiras de controlar a ordem das estatísticas em uma tabela de classificação:

  • Adicione as estatísticas na ordem que você deseja que elas apareçam.
  • Adicione uma criança BoolValue chamada IsPrimary à estatística e configure seu valor para true para colocar a estatística primeiro na tabela de classificação.
  • Adicione uma criança NumberValue chamada Priority à estatística e configure seu valor para um número integral. Valores sem prioridade aparecem mais cedo na tabela de classificação. Estatísticas sem uma prioridade têm uma prioridade padrão de 0.

Este código de exemplo mostra como adicionar um valor IsPrimary a uma estatística:


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)

Ocultando o Leaderboard

Para ocultar a tabela de classificação, como em uma tela de menu ou durante uma cena, coloque um LocalScript dentro de StarterGui ou StarterPlayerScripts contendo uma chamada para 2>Class.StarterGui:SetCoreGuiEnabled()|StarterGui2> .


local StarterGui = game:GetService("StarterGui")
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)