Roblox 有一个内置的 排行榜系统 ,可以让你显示用户信息,例如分数、货币或比赛中最快的时间。

设置排行榜
要设置排行榜并在玩家进入体验时添加玩家:
在 Script 内创建一个新的 ServerScriptService 并命名为 排行榜 。
在脚本中,连接一个函数到 PlayerAdded 事件。
local Players = game:GetService("Players")local function leaderboardSetup(player)end-- 将“leaderboardSetup()”函数连接到“PlayerAdded”事件Players.PlayerAdded:Connect(leaderboardSetup)在连接的函数内,创建一个新的 Folder 实例,命名为 leaderstats ,并将其作为玩家的父级。
local Players = game:GetService("Players")local function leaderboardSetup(player)local leaderstats = Instance.new("Folder")leaderstats.Name = "leaderstats"leaderstats.Parent = playerend-- 将“leaderboardSetup()”函数连接到“PlayerAdded”事件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
-- 将“leaderboardSetup()”函数连接到“PlayerAdded”事件
Players.PlayerAdded:Connect(leaderboardSetup)
这些线完成以关注中/正在关注操作:
一个 IntValue 实例被创建。
实例的 Name 设置为 "Gold" 。这是统计数据在排行榜上出现的正确方式。
实例被父辈到 leaderstats 文件夹,将其添加到排行榜。当玩家进入体验时,他们的名字会出现在板上。
更新统计数据
要更新玩家的排行榜统计数据,改变其 Value 文件夹中该统计数据的 leaderstats 属性。例如,您可以将以下 Script 附加到任何拾取对象,以增加玩家收集到的 黄金 属性。
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)
订单统计
有三种方法可以控制排行榜中统计数据的顺序:
- 按照您希望显示的顺序添加统计数据。
- 添加一个名为 的孩子到统计并将其值设置为 以将统计排在排行榜首先。
- 添加一个名为 的孩子到统计并将其值设置为整数。优先级更高的值出现在排行榜的更早位置。没有优先级的统计数据的默认优先级为 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)
隐藏排行榜
要隐藏排行榜,例如在菜单屏幕上或在切场中,请在 或 或 中放置一个包含调用 的 。
local StarterGui = game:GetService("StarterGui")StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)