Classements en expérience

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Roblox a un système de classement intégré qui vous permet d'afficher les informations utilisateur telles que les scores, la monnaieou le temps le plus rapide dans une course .

Leaderboard Screen

Configurer le classements

Pour configurer le classement et ajouter des joueurs lorsqu'ils entrent dans l'expérience :

  1. Créez une nouvelle Script dans ServerScriptService et nommez-la Classement .

    Leaderboard Insert Script
  2. 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)
  3. À l'intérieur de la fonction connectée, créez une nouvelle instance Folder, nommez-la leaderstats et parentez-la au joueur.


    local Players = game:GetService("Players")
    local function leaderboardSetup(player)
    local leaderstats = Instance.new("Folder")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = player
    end
    -- Connectez la fonction "leaderboardSetup()" à l'événement "PlayerAdded"
    Players.PlayerAdded:Connect(leaderboardSetup)

Ajouter des statistiques

Les classements utilisent objets de type valeur pour stocker et afficher les statistiques des joueurs.Ce script montrera l'or d'un joueur en utilisant un IntValue , un espace réservé pour un 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 ce qui suivre:

  1. Une instance IntValue est créée.

  2. L'instance de Name est définie sur "Gold". C'est exactement la façon dont le stat apparaîtra dans le classements.

    Leaderboards Name Column
  3. Le statut initial de Value est défini sur 0.Cela peut être défini à n'importe quelle valeur que vous souhaitez, y compris une valeur stockée dans un magasin de données si vous implémentez des classements permanents.

  4. L'instance est associée au dossier leaderstats qui l'ajoute au classements.Lorsqu'un joueur entre dans l'expérience, son nom apparaît sur le tableau.

    Leaderboards Multiple Players

Mise à jour des statistiques

Pour mettre à jour la statistique du classement d'un joueur, modifiez la propriété Value de cette statistique dans leur dossier leaderstats.Par exemple, vous pouvez joindre le suivant Script à tout objet de récupération pour augmenter le statut Or du joueur 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 récupération
goldChunk:Destroy()
-- Mise à jour du statut du classement du joueur
goldStat.Value += 10
end
end
goldChunk.Touched:Connect(onPartTouch)

Statistiques de commande

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 à true pour placer la statistique en premier dans le classements.
  • Ajoutez un enfant NumberValue nommé Priority à la statistique et définissez sa valeur à un entier.Les valeurs de priorité plus élevées apparaissent plus tôt dans le classements.Les statistiques sans priorité ont une priorité par défaut de 0.

Cet exemple de code montre comment ajouter une valeur IsPrimary à un stat :


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)

Masquer le classements

Pour masquer le classements, comme sur un écran de menu ou pendant une scène de coupe, placez un LocalScript dans StarterGui ou StarterPlayerScripts contenant un appel à StarterGui .


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