リーダーボードをコードすスコアボード

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

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

リーダーボードを設定する

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

  1. エクスプローラーで、 ServerScriptService の下で、PlayerSetup という名前の新しいスクリプトを作成します。そのスクリプトでは、hello world 行を削除し、説明的なコメントをコメントするきます。

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


    -- プレイヤー変数を表示するリーダーボードを作成
    local function onPlayerJoin(player)
    end
  3. In onPlayerJoin , create a variable named leaderstats , and have it create a new フォルダー instance.


    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. In OnPlayerJoin , under leaderstats.Parent = player , type 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. プロジェクトを再生し、右上にリーダーボードが表示されることに気づきます。

トラブルシュートのヒント

リーダーボードが表示されない場合は、フォロー中のことを試してください:

  • Make sure that .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. プレイヤーのバッグスペース用の新しいステータスを作成する。 を に設定して、プレイヤーがエクスペリエンスを開始するときに 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 が示されたように正確にスペルされていることを確認する
  • PlayerAdded イベントがスクリプトの最下部にあるかどうかをチェック

プレイヤー設定スクリプトを完了する

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


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
-- プレイヤー追加イベントが発動したときに onPlayerJoin を実行
Players.PlayerAdded:Connect(onPlayerJoin)