游戏内排行榜

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

Roblox 提供了内置的 排行榜系统,允许您显示用户信息,例如分数、货币或比赛中最快的时间。

排行榜屏幕

设置排行榜

要设置排行榜并在玩家进入游戏时添加玩家:

  1. ServerScriptService 中创建一个新的 Script,并将其命名为 Leaderboard

    排行榜插入脚本
  2. 在脚本中,将一个函数连接到 PlayerAdded 事件。


    local Players = game:GetService("Players")
    local function leaderboardSetup(player)
    end
    Players.PlayerAdded:Connect(leaderboardSetup)
  3. 在连接的函数内部,创建一个新的 Folder 实例,将其命名为 leaderstats,并将其作为父级添加到玩家。


    local Players = game:GetService("Players")
    local function leaderboardSetup(player)
    local leaderstats = Instance.new("Folder")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = player
    end
    Players.PlayerAdded:Connect(leaderboardSetup)

添加统计数据

排行榜使用 值类型对象 来存储和显示玩家统计信息。此脚本将使用 IntValue 显示玩家的金币,这是一个整数的占位符。

leaderboardSetup() 函数中,添加第 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
Players.PlayerAdded:Connect(leaderboardSetup)

这些行完成以下操作:

  1. 创建一个 IntValue 实例。

  2. 将实例的 Name 设置为 "Gold"。这就是统计信息在排行榜上显示的名称。

    在排行榜上显示的统计名称 'Gold'
  3. 将统计信息的初始 Value 设置为 0。这可以设置为您希望的任何值,包括存储在 数据存储 中的值,如果您正在实现持久性的排行榜。

  4. 将实例作为子项添加到 leaderstats 文件夹,便于将其添加到排行榜。当玩家进入游戏时,他们的名字将出现在排行榜上。

    在排行榜上显示的多个玩家

更新统计数据

要更新玩家的排行榜统计数据,请修改该统计数据在其 leaderstats 文件夹中的 Value 属性。例如,您可以将以下 Script 绑定到任何拾取对象,以增加玩家收集的 Gold 统计数据。


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
-- 销毁拾取物
goldChunk:Destroy()
-- 更新玩家的排行榜统计数据
goldStat.Value += 10
end
end
goldChunk.Touched:Connect(onPartTouch)

排序统计数据

有三种方法可以控制排行榜中统计信息的顺序:

  • 按希望的顺序添加统计数据。
  • 向统计数据添加一个子 BoolValue,名为 IsPrimary,并将其值设置为 true,以将该统计显示在排行榜的第一位。
  • 向统计数据添加一个子 NumberValue,名为 Priority,并将其值设置为一个整数。较高的优先级值在排行榜中较早出现。没有优先级的统计信息默认为优先级 0

以下代码示例演示如何向统计数据添加 IsPrimary 值:


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)

隐藏排行榜

要隐藏排行榜,例如在菜单屏幕上或在过场动画期间,可以在 StarterGuiStarterPlayerScripts 中放置一个 LocalScript,其中包含对 StarterGui 的调用。


local StarterGui = game:GetService("StarterGui")
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
©2026 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。