Roblox tiene un sistema de tabla de clasificación integrado que te permite mostrar información de usuarios, como puntuaciones, moneda o el tiempo más rápido en una carrera.
Configurando la Tabla de Clasificación
Para configurar la tabla de clasificación y agregar jugadores cuando ingresen a la experiencia:
Crea un nuevo Script dentro de ServerScriptService y llévalo por nombre Tabla de clasificación .
En el script, conecta una función al evento PlayerAdded .
local Players = game:GetService("Players")local function leaderboardSetup(player)end-- Conecta la función "leaderboardSetup()" al evento "PlayerAdded"Players.PlayerAdded:Connect(leaderboardSetup)Dentro de la función conectada, crea una nueva instancia de Folder, llévela y llévela a leaderstats, y hazla padre de la jugador.
local Players = game:GetService("Players")local function leaderboardSetup(player)local leaderstats = Instance.new("Folder")leaderstats.Name = "leaderstats"leaderstats.Parent = playerend-- Conecta la función "leaderboardSetup()" al evento "PlayerAdded"Players.PlayerAdded:Connect(leaderboardSetup)
Agregar estadísticas
Las tablas de clasificación usan objetos de tipo de valor para almacenar y mostrar las estadísticas del jugador. Este script mostrará el oro de un jugador usando un IntValue , un marcador de un entero.
En la función leaderboardSetup(), agrega líneas 8 a través de 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
-- Conecta la función "leaderboardSetup()" al evento "PlayerAdded"
Players.PlayerAdded:Connect(leaderboardSetup)
Estas líneas cumplen lo siguiendo:
Se crea una instancia de IntValue
El Name de la instancia está configurado como "Gold" . Esto es exactamente cómo la estadística aparecerá en la tabla de clasificación.
El inicial de la estadística Value está establecido en 0 . Esto se puede establecer para cualquier valor que desee, incluido un valor almacenado en un almacén de datos si está implementando tablas de clasificación persistentes.
La instancia está asociada a la carpeta leaderstats que la agrega a la tabla de clasificación. Cuando un jugador ingresa a la experiencia, su nombre aparece en el tablero.
Actualizar estadísticas
Para actualizar la estadística de la tabla de clasificación de un jugador, cambia la propiedad Value de esa tabla dentro de su carpeta leaderstats. Por ejemplo, puede agregar el siguiente Script a cualquier objeto de recolección para aumentar la estadística de 2> Oro2> del jugador que lo recoge.
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
-- Destruye el código
goldChunk:Destroy()
-- Actualizar la estadística de la tabla de clasificación del jugador
goldStat.Value += 10
end
end
goldChunk.Touched:Connect(onPartTouch)
Ordenar Estadísticas
Hay tres formas de controlar el orden de las estadísticas en una tabla de clasificación:
- Añade las estadísticas en el orden que quieres que aparezcan.
- Agrega un hijo BoolValue nombrado IsPrimary a la estadística y establece su valor en true para colocar la estadística primero en la tabla de clasificación.
- Agregue un hijo NumberValue nombrado Priority a la estadística y establezca su valor en un número entero. Los valores sin prioridad aparecen más temprano en la tabla de clasificación. Las estadísticas sin una prioridad tienen un valor predeterminado de 0.
Este código de ejemplo muestra cómo agregar un valor de IsPrimary a una estadí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)
Ocultar la Tabla de Clasificación
Para ocultar la tabla de clasificación, como en una pantalla de menú o durante una escena de corte, coloca un LocalScript dentro de StarterGui o StarterPlayerScripts que contenga una llamada a 2>Class.StarterGui:SetCoreGuiEnabled()|StarterGui2> .
local StarterGui = game:GetService("StarterGui")StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)