リーダーボードでスコア表示する

NDPバナナ
NDPバナナ

リーダーボードって何ですか?

もっけ
もっけ

プレイヤーのスコアをランキング形式で表示する機能だよ。
スコアは、コインの枚数だったり、勝利数だったりゲームに合わせて用途は色々あるよ。

出来るようになること

  • リーダーボードにプレイヤーのスコアを表示することが出来る。
  • プレイヤーのデータをセーブ、ロードすることが出来る。(説明の最後に別記事へリンクします。)

リーダーボードを作る

リーダーボードは、ゲーム内での競争や協力、プレイヤー同士でのコミニュケーションを促します。

スクリプトをServerScriptService に置きしました。ServerScriptService に置かれたスクリプトは、プレイヤーがログインすると読み込まれます。スクリプトの内容を記載して解説していきます。

①参加したプレイヤーにリーダーボードを表示するように、プレイヤーが参加したイベントPlayerAdded を呼びます。

local Players = game:GetService("Players") -- Playersサービスを取ります

-- プレイヤーの設定
local function onPlayerJoin(player)

end

Players.PlayerAdded:Connect(onPlayerJoin)  --プレイヤーがゲームに参加した時にPlayerAddedイベントが呼ばれます

②リーダボードを追加します。

-- プレイヤーの設定
local function onPlayerJoin(player)
	local leaderstats = Instance.new("Folder") -- フォルダを追加します
	leaderstats.Name = "leaderstats"  -- フォルダの名前を leaderstats にします 
	leaderstats.Parent = player -- フォルダをplayer の親にして紐づけます
end

フォルダの名前は、必ず leaderstats(ぜんぶ小文字)にしてください。

③リーダーボードで表示したい項目を設定します。ここでは、勝利数にします。

-- プレイヤーの設定
local function onPlayerJoin(player)
	local leaderstats = Instance.new("Folder") -- フォルダを追加します
	leaderstats.Name = "leaderstats"  -- フォルダの名前を leaderstats にします 
	leaderstats.Parent = player -- フォルダをplayer の親にして紐づけます

	local winCnt = Instance.new('IntValue')
	winCnt.Name = "勝利数"
	winCnt.Value = winValue
	winCnt.Parent = leaderstats
end

ここまでで、リーダーボードへ勝利数という項目を追加することが出来ます。

スクリプトの全体は、こちら。

local Players = game:GetService("Players")

-- プレイヤーの設定
local function onPlayerJoin(player)
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player

	local winCnt = Instance.new('IntValue')
	winCnt.Name = "勝利数"
	winCnt.Value = winValue
	winCnt.Parent = leaderstats
end

Players.PlayerAdded:Connect(onPlayerJoin)
NDPバナナ
NDPバナナ

でも、これだけだと、表示してるだけじゃん

もっけ
もっけ

ギクッ!!気がついちゃいましたか。
ここまでの説明ではリーダーボードでの表示だけなので、次の記事で勝利数の上げ方、データのセーブとロードについて説明するよ。

コメント

タイトルとURLをコピーしました