Leaderstats
CoddyのLuaジャーニー「Robloxゲームのスクリプティング」セクションの一部。レッスン 13/24。
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でなければなりません。そうでないと、スコアボードに無視されます。
チャレンジ
中級プレイヤーが参加したときに、スコアボードを与えます:
- プレイヤー内にある、
leaderstatsという名前のFolder - 値が
0の、Coinsという名前のIntValue - 値が
1の、Levelという名前のIntValue
Playを押してスコアボードを確認し、その後Checkを押します。
自分で試してみよう
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オンラインコンパイラ