Roblox a un système de classement intégré qui vous permet d'afficher les informations sur l'utilisateur, comme les scores, la monnaie ou le temps le plus rapide dans une course.
Configurer le classement
Pour configurer le classement et ajouter des joueurs lorsqu'ils entrent dans l'expérience :
Créer un nouveau Script dans ServerScriptService et le nommer Leaderboard .
Dans le script, connectez une fonction à l'événement PlayerAdded.
local Players = game:GetService("Players")local function leaderboardSetup(player)end-- Connectez la fonction "leaderboardSetup()" à l'événement "PlayerAdded"Players.PlayerAdded:Connect(leaderboardSetup)Dans la fonction connectée, créez une nouvelle instance Folder, nommez-la leaderstats et enregistrez-la en tant que parent du joueur.
local Players = game:GetService("Players")local function leaderboardSetup(player)local leaderstats = Instance.new("Folder")leaderstats.Name = "leaderstats"leaderstats.Parent = playerend-- Connectez la fonction "leaderboardSetup()" à l'événement "PlayerAdded"Players.PlayerAdded:Connect(leaderboardSetup)
Ajouter des statistiques
Les classements utilisent objets de type de valeur pour stocker et afficher les statistiques des joueurs. Ce script montrera un joueur d'or en utilisant un IntValue, un paramètre de placeholder pour un nombre entier.
Dans la fonction leaderboardSetup(), ajoutez les lignes 8 à 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
-- Connectez la fonction "leaderboardSetup()" à l'événement "PlayerAdded"
Players.PlayerAdded:Connect(leaderboardSetup)
Ces lignes accomplissent les actions suivre:
Une instance IntValue est créée.
La valeur Name de l'instance est réglée sur "Gold". C'est exactement comme le stat apparaîtra sur le classements.
La valeur initiale de statut Value est réglée sur 0 . Cela peut être réglé sur n'importe quelle valeur que vous souhaitez, y compris une valeur stockée dans un stockage de données si vous implémentez des classeurs persistants.
L'instance est associée au leaderstats dossier qui l'ajoute au classements. Lorsqu'un joueur entre dans l'expérience, son nom apparaît sur le tableau.
Mise à jour des statistiques
Pour mettre à jour le stat de leader d'un joueur, changez la propriété Value de ce stat dans leur dossier leaderstats. Par exemple, vous pouvez attacher le suivant Script à n'importe quel objet de prédilection pour augmenter la stat de 1>Or1> du joueur qui le collecte.
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
-- Détruire la capture
goldChunk:Destroy()
-- Mettre à jour la statistique du leader du joueur
goldStat.Value += 10
end
end
goldChunk.Touched:Connect(onPartTouch)
Commande des statistiques
Il y a trois façons de contrôler l'ordre des statistiques dans un classements:
- Ajoutez les statistiques dans l'ordre dans lequel vous souhaitez qu'elles apparaissent.
- Ajoutez un enfant BoolValue nommé IsPrimary à la statistique et définissez sa valeur sur true pour placer la statistique en premier dans le classements.
- Ajoutez un enfant NumberValue nommé Priority à la statistique et définissez sa valeur sur un nombre entier. Les statistiques sans priorité apparaissent plus tôt dans le classements. Les statistiques sans priorité ont une valeur par défaut de 0.
Ce code de例 montre comment ajouter une valeur IsPrimary à une statistique :
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)
Cacher le classement
Pour cacher le classements, comme sur une page de menu ou pendant une scène coupée, placez un LocalScript à l'intérieur de StarterGui ou StarterPlayerScripts contenant un appel à 2>Class.StarterGui:SetCoreGuiEnabled()|StarterGui2> .
local StarterGui = game:GetService("StarterGui")StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)