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)
訂單統計
有三種方法可以控制排行榜中統計數據的順序:
- 按照您想要顯示的順序添加統計數據。
- 添加一個名為 的兒子到狀態並設置其值為 以將狀態首先放置在排行榜上。
- 添加一個名為 的兒子到 stat 並將其值設為整數。優先級更高的值出現在排行榜的更早時間。沒有優先級的統計資料的預設優先級為 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)
隱藏排行榜
要隱藏排行榜,例如在菜單畫面上或在切換場景期間,請在 LocalScript 或 StarterGui 或 StarterPlayerScripts 內放置一個呼叫 StarterGui 的呼叫。
local StarterGui = game:GetService("StarterGui")StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)