經驗內的排行榜

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

Roblox 具有內置的 排行榜系統 ,可讓您顯示使用者資訊,例如分數、貨幣或競賽中最快的時間。

Leaderboard Screen

設置排行榜

若要設置排行榜並在玩家進入體驗時新增玩家:

  1. Script 內創建一個新的 ServerScriptService 並命名為 排行榜

    Leaderboard Insert Script
  2. 在腳指令碼中,連接一個功能到 PlayerAdded 事件。


    local Players = game:GetService("Players")
    local function leaderboardSetup(player)
    end
    -- 將「leaderboardSetup()」功能連接到「PlayerAdded」事件
    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
    -- 將「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)

這些線完成以追蹤中任務:

  1. 一個 IntValue 實例被創建。

  2. 實個體、實例的 Name 設為 "Gold" 。這是統計資料在排行榜上出現的正確方式。

    Leaderboards Name Column
  3. 狀態的初始 Value 設為 0。這可以設為你想要的任何值,包括儲存在 資料儲存庫 中的值,如果你正在實現持久排行榜。

  4. 實例被指派到 leaderstats 文件夾,將其添加到排行榜。當玩家進入體驗時,他們的名字會出現在板上。

    Leaderboards Multiple Players

更新統計資料

要更新玩家的排行榜狀態,變更其排行榜狀態的 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)

隱藏排行榜

要隱藏排行榜,例如在菜單畫面上或在切換場景期間,請在 LocalScriptStarterGuiStarterPlayerScripts 內放置一個呼叫 StarterGui 的呼叫。


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