リーダーボードをコード化する

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

ゲーム内で、プレイヤーは収集したアイテムのような重要な統計を持つことができます。これらの数は、リーダーボードを使用して表示されます。 リーダーボード は、Roblox のスクリプトを有効にしてカスタマイズするために必要な機能です。

リーダーボードの設定

プレイヤーがエクスペリエンスに追加されるたびに、コードで個々の統計を追跡するためにランキングに追加する必要があります。

  1. In the Explorer, under ServerScriptService , create a new script named PlayerSetup. In that script, delete the hello world line and write a descriptive commenコメントする.

  2. コメントするメントの後、player という名前のカスタム関数を作成し、player という名前のパラメープレイヤーを持つ。


    -- プレイヤーの変数を表示するリーダーボードを作成します
    local function onPlayerJoin(player)
    end
  3. In onPlayerJoinleaderstats という名前の変数を作成し、新しい フォルダ インスタンスを作成します。


    local function onPlayerJoin(player)
    local leaderstats = Instance.new("Folder")
    end
  4. 新しい フォルダ インスタンスを名前して、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)

プレイヤーの統計を追跡する

リーダーボードが作成されたので、これらの数字をプレイヤーに表示する必要があります:

  • ゴールド - プレイヤーの持っているお金。
  • アイテム - プレイヤーが世界から集めたアイテムの数。
  • スペース - プレイヤーが持つことのできる最も多くのアイテム。

これらの数のうちの 1 つは、数のプレースホルダーオブジェクトである IntValue になります。

プレイヤーのコードゴールド

まずは、金のステータスをコード化して開始します。

  1. In OnPlayerJoin , under leaderstats.Parent = player , type local gold = Instance.new("IntValue") . This creates a new IntValue and stores it in the variable 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. Type gold.Parent = leaderstats を入力します。これは、金の IntValue をレーダー統計に親化します。IntValue がレーダー統計に親化されていない場合、プレイヤーはそれを見ることはできません。


    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. 次の統計を区別するために空の行を追加し、新しい IntValue を設定して、同じ方法でゴールドに設定したようにアイテム統計を作成します。


    local function onPlayerJoin(player)
    gold.Parent = leaderstats
    -- アイテムステータスを作成
    local items = Instance.new("IntValue")
    items.Name = "Items"
    items.Value = 0
    items.Parent = leaderstats
    end
  2. プレイヤーのバッグスペースの新しい統計を作成します。spaces.Value2 に設定して、プレイヤーがバッグを 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 がリーダーボードに親切されているかどうかを確認してください。
  • IntValue のスペルを確認してください
  • PlayerAdded イベントがスクリプトの下部にあることを確認します

PlayerSetup スクリプトを完了

スクリプトの完成したバージョンは、以下に参照できます。


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
-- PlayerAdded イベントが発動したときに実行する
Players.PlayerAdded:Connect(onPlayerJoin)