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)
添加統計資料
排行榜使用 value type objects 來存儲和顯示玩家統計資料。此腳本會使用 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 實例已建立。
Class.Instance.Name|Name 是遊戲實個體、實例的設定。這正是靈巧榜上統計資排行榜的方式。
統計資料的初始值 Value 設為 0 。這可以設置任何您想要的值,包括儲存在 資料存取存取存取存取存取 中的值,如果您實現了持續排行榜。
leaderstats 會將其添加到排行榜。當玩家進入體驗時,他們的名稱會顯示在板上。
更新統計資料
要更新玩家的排行榜統計資料,請在其 Value 文件夾內的 leaderstats 屬性變更該數值的 Script 以增加玩家收集到的 2>黃金2> 統計資料。例如,您可以將下列 5>Class.Script5> 附加到任何取得對象,以增加玩家收集到的 8>��
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)
命令統計資料
有三種方法可以控制排行榜上的統計資料的順序:
- 添加統計資料的順序,以便它們顯示。
- 將 NumberValue 命名為 Priority 的子兒添加到 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 。
local StarterGui = game:GetService("StarterGui")StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)