インエクスペリエンスリーダーボード

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

Roblox には、 リーダーボードシステム が内蔵されており、ユーザー情報をスコア、通貨、またはレースで最速タイムなどで表示できます。

Leaderboard Screen

リーダーボードの設定

リーダーボードを設定し、プレイヤーがエクスペリエンスに参加するときに追加する:

  1. 新しい ScriptServerScriptService 内に作成し、 リーダーボード と名付けます。

    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)

統計を追加する

リーダーボードは value type objects を使用してプレイヤーの統計を保存し、表示します。このスクリプトは、IntValue 、整数のプレースホルダーを使用してプレイヤーのゴールドを表示します。

In the 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. Class.IntValue インスタンスが作成されます。

  2. インスタンスの Name"Gold" に設定されています。これは、統計がリーダーボードに表示される方法です。

    Leaderboards Name Column
  3. ステータスの初期の Value0 に設定されます。これは、データストア に保存された値を含む任意の値に設定できます。これは、2> 持続的なリーダーボード2> を実装している場合、または 5>05> 以下の任意の値を設定している場合に設定できます。

  4. インスタンスは、leaderstats フォルダに親を付け、ボードに表示されます。プレイヤーがエクスペリエンスに入ると、ボードにその名前が表示されます。

    Leaderboards Multiple Players

統計を更新する

プレイヤーのリーダーボード統計を更新するには、その統計の Value フォルダ内の leaderstats プロパティを変更します。たとえば、Script を任意のピックアップオブジェクトに付けることで、プレイヤーが集める 2>ゴールド2> の統計を増加させること


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)

統計を注文する

リーダーボードの統計の順序を制御する方法は 3つあります:

  • 彼らが表示される順序で統計を追加します。
  • 子を追加して BoolValue という名前の IsPrimary をスタットに設定し、その値を true に設定して、スタットをリーダーボードの先頭に配置するようにします。
  • 子を追加して NumberValue を名前の Priority の下に、ステータスに値を設定します。優先度の高い値は、リーダーボードの先スコアボードに表示されます。優先度のない値は、デフォルトの優先度 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 内の 2>Class.LocalScript2> を配置します。


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