Leaderstats
CoddyのLuaジャーニー「Robloxゲームのスクリプティング」セクションの一部。レッスン 13/25。
Robloxゲームの右上にあるスコアボードは、各プレイヤーの中にあるleaderstatsという名前のフォルダーで作られています。そのフォルダー内の数値はそれぞれ列になります。
プレイヤーはゲーム開始後に参加するため、PlayersサービスがPlayerAddedを発生させたときにフォルダーを作成します。
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local gems = Instance.new("IntValue")
gems.Name = "Gems"
gems.Value = 5
gems.Parent = leaderstats
end)game:GetService("Players")はPlayersサービスを取得します。IntValueはValueプロパティに整数を保持し、Nameが列のタイトルになります。フォルダー名は小文字で正確にleaderstatsでなければ、スコアボードに無視されます。
チャレンジ
中級参加したすべてのプレイヤーにスコアボードを付与します。
PlayerAddedで、プレイヤーの中にleaderstatsという名前のFolderを作成します。- フォルダーに、値が
0のCoinsという名前のIntValueを追加します。 - 値が
1のLevelという名前のIntValueをもう1つ追加します。
「プレイ」を押すと、スコアボードにCoins 0とLevel 1が表示されます。その後、「確認」を押します。
自分で試してみよう
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
print(player.Name .. " joined")
-- 1. player 内にある leaderstats という名前の Folder
-- 2. 初期値が 0 の、Coins という名前の IntValue
-- 3. 初期値が 1 の、Level という名前の IntValue
end)
Robloxゲームのスクリプティングのすべてのレッスン
自分で練習してみよう: Luaオンラインコンパイラ