在遊戲中,玩家會擁有他們需要查看的重要統計數據,例如他們收集的物品。這些數字將使用排行榜顯示。 排行榜 是Roblox的內置功能,需要啟用並自定制腳本。

設置排行榜
每當玩家被添加到體驗時,他們都需要被添加到排行榜中,以及跟蹤個人統計數據的代碼。
在 Explorer 中,在 伺服器脚本服務 下,創建一個名為 PlayerSetup 的新腳本。在那個指令碼中,刪除「你好,世界」行並寫一個說明性評留言。
在評留言之後,創建一個名為 onPlayerJoin 的自訂函數,並將其參數命名為玩家。
-- 創建一個顯示玩家變量的排行榜local function onPlayerJoin(player)end在 onPlayerJoin 中,創建一個名為 leaderstats 的變量,並讓它創建一個新的 文件夾 實例。
local function onPlayerJoin(player)local leaderstats = Instance.new("Folder")end命名新的 文件夾 實例 leaderstats,並將其作為玩家的父級。命名文件夾 leaderstats 讓 Roblox Studio 知道創建排行榜。
local function onPlayerJoin(player)local leaderstats = Instance.new("Folder")leaderstats.Name = "leaderstats"leaderstats.Parent = playerend在函數結束後,連接 OnPlayerJoin 到 PlayerAdded 事件。每當玩家加入體驗時,每位玩家都會收到排行榜。
local Players = game:GetService("Players")local function onPlayerJoin(player)local leaderstats = Instance.new("Folder")leaderstats.Name = "leaderstats"leaderstats.Parent = playerendPlayers.PlayerAdded:Connect(onPlayerJoin)
追蹤玩家統計資料
現在創建了排行榜,需要向玩家顯示這些數字:
- 黃金 - 玩家擁有多少錢。
- 物品 - 玩家從世界收集了多少物品。
- 空間 - 玩家能一次持有的最多物品。
這些數字每個都會是 IntValue,一個數字的暫時物件。
代碼玩家黃金
開始編寫一個金幣指標。
在 OnPlayerJoin 下,在 leaderstats.Parent = player 下,輸入 local gold = Instance.new("IntValue") 。這會創建一個新的 IntValue 並將其存儲在變量 gold 中。
local function onPlayerJoin(player)local leaderstats = Instance.new("Folder")leaderstats.Name = "leaderstats"leaderstats.Parent = playerlocal gold = Instance.new("IntValue")end接下來,輸入 gold.Name = "Gold" 。這會給 IntValue 一個名稱,因此您可以在其他腳本中使用它。名稱也會顯示給排行榜上的玩家。
local function onPlayerJoin(player)local gold = Instance.new("IntValue")gold.Name = "Gold"end在新行上,輸入 gold.Value = 0 。這會設置玩家的初始值。
local function onPlayerJoin(player)local gold = Instance.new("IntValue")gold.Name = "Gold"gold.Value = 0end類型 gold.Parent = leaderstats 。這會將黃金的 IntValue 傳給 leaderstats。如果 IntValue 未傳給 leaderstats,玩家將無法看到它。
local function onPlayerJoin(player)local gold = Instance.new("IntValue")gold.Name = "Gold"gold.Value = 0gold.Parent = leaderstatsend播放您的項目,注意右上方出現了排行榜。
排除故障提示
如果您未看到排行榜,請嘗試以追蹤中步驟:
- 確保 .Value 是大寫。
- 請確保IntValue變量與排行榜一樣被父級化,如gold.Parent = leaderstats。
代碼項目和空格
請記住,狀態名稱可以是基於遊戲設計文件的任何內容。換言之,"Items"取代"Crystals"。
添加空白行來分開下一個狀態,然後以與黃金相同的方式設置新的物品狀態,即可創建物品狀態。
local function onPlayerJoin(player)gold.Parent = leaderstats-- 創建物品狀態local items = Instance.new("IntValue")items.Name = "Items"items.Value = 0items.Parent = leaderstatsend為玩家的背包空間創建新的狀態。將 spaces.Value 設為 2 以便玩家開始體驗時只能同時持有兩件物品,鼓勵他們盡快購買新的背包。
local function onPlayerJoin(player)items.Parent = leaderstats-- 創建空間狀態local spaces = Instance.new("IntValue")spaces.Name = "Spaces"spaces.Value = 2spaces.Parent = leaderstatsend測試項目。玩家應該有一個顯示金幣、物品和空間的排行榜。
如果排行榜不出現,請嘗試檢查以下內容。
- 如果您無法在排行榜上看到數字,請檢查每個 IntValue 是否與 leaderstats 相關。
- 確保每個 IntValue 正確地拼寫,如同所示
- 檢查玩家新增事件是否位於指令碼本底部
完成玩家設定腳指令碼
完成的腳本版本可以在下面參考。
local Players = game:GetService("Players")
-- 創建一個顯示玩家變量的排行榜
local function onPlayerJoin(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 items = Instance.new("IntValue")
items.Name = "Items"
items.Value = 0
items.Parent = leaderstats
local spaces = Instance.new("IntValue")
spaces.Name = "Spaces"
spaces.Value = 2
spaces.Parent = leaderstats
end
-- 在玩家添加事件發生時運行在PlayerJoin上
Players.PlayerAdded:Connect(onPlayerJoin)