編寫排行榜

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

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

設置排行榜

每當玩家被添加到體驗時,他們都需要被添加到排行榜中,以及跟蹤個人統計數據的代碼。

  1. 在 Explorer 中,在 伺服器脚本服務 下,創建一個名為 PlayerSetup 的新腳本。在那個指令碼中,刪除「你好,世界」行並寫一個說明性評留言。

  2. 在評留言之後,創建一個名為 onPlayerJoin 的自訂函數,並將其參數命名為玩家。


    -- 創建一個顯示玩家變量的排行榜
    local function onPlayerJoin(player)
    end
  3. onPlayerJoin 中,創建一個名為 leaderstats 的變量,並讓它創建一個新的 文件夾 實例。


    local function onPlayerJoin(player)
    local leaderstats = Instance.new("Folder")
    end
  4. 命名新的 文件夾 實例 leaderstats,並將其作為玩家的父級。命名文件夾 leaderstats 讓 Roblox Studio 知道創建排行榜。


    local function onPlayerJoin(player)
    local leaderstats = Instance.new("Folder")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = player
    end
  5. 在函數結束後,連接 OnPlayerJoinPlayerAdded 事件。每當玩家加入體驗時,每位玩家都會收到排行榜。


    local Players = game:GetService("Players")
    local function onPlayerJoin(player)
    local leaderstats = Instance.new("Folder")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = player
    end
    Players.PlayerAdded:Connect(onPlayerJoin)

追蹤玩家統計資料

現在創建了排行榜,需要向玩家顯示這些數字:

  • 黃金 - 玩家擁有多少錢。
  • 物品 - 玩家從世界收集了多少物品。
  • 空間 - 玩家能一次持有的最多物品。

這些數字每個都會是 IntValue,一個數字的暫時物件。

代碼玩家黃金

開始編寫一個金幣指標。

  1. 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 = player
    local gold = Instance.new("IntValue")
    end
  2. 接下來,輸入 gold.Name = "Gold" 。這會給 IntValue 一個名稱,因此您可以在其他腳本中使用它。名稱也會顯示給排行榜上的玩家。


    local function onPlayerJoin(player)
    local gold = Instance.new("IntValue")
    gold.Name = "Gold"
    end
  3. 在新行上,輸入 gold.Value = 0 。這會設置玩家的初始值。


    local function onPlayerJoin(player)
    local gold = Instance.new("IntValue")
    gold.Name = "Gold"
    gold.Value = 0
    end
  4. 類型 gold.Parent = leaderstats 。這會將黃金的 IntValue 傳給 leaderstats。如果 IntValue 未傳給 leaderstats,玩家將無法看到它。


    local function onPlayerJoin(player)
    local gold = Instance.new("IntValue")
    gold.Name = "Gold"
    gold.Value = 0
    gold.Parent = leaderstats
    end
  5. 播放您的項目,注意右上方出現了排行榜。

排除故障提示

如果您未看到排行榜,請嘗試以追蹤中步驟:

  • 確保 .Value 是大寫。
  • 請確保IntValue變量與排行榜一樣被父級化,如gold.Parent = leaderstats

代碼項目和空格

請記住,狀態名稱可以是基於遊戲設計文件的任何內容。換言之,"Items"取代"Crystals"

  1. 添加空白行來分開下一個狀態,然後以與黃金相同的方式設置新的物品狀態,即可創建物品狀態。


    local function onPlayerJoin(player)
    gold.Parent = leaderstats
    -- 創建物品狀態
    local items = Instance.new("IntValue")
    items.Name = "Items"
    items.Value = 0
    items.Parent = leaderstats
    end
  2. 為玩家的背包空間創建新的狀態。將 spaces.Value 設為 2 以便玩家開始體驗時只能同時持有兩件物品,鼓勵他們盡快購買新的背包。


    local function onPlayerJoin(player)
    items.Parent = leaderstats
    -- 創建空間狀態
    local spaces = Instance.new("IntValue")
    spaces.Name = "Spaces"
    spaces.Value = 2
    spaces.Parent = leaderstats
    end
  3. 測試項目。玩家應該有一個顯示金幣、物品和空間的排行榜。

如果排行榜不出現,請嘗試檢查以下內容。

  • 如果您無法在排行榜上看到數字,請檢查每個 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)