🙆
【Roblox】右上のユーザー一覧にスコアを表示しランキングにする方法
はじめに
今回はロブロックスのゲームでよく見るユーザーリストをランキングボードにする方法になります!
順序
-
ServerScriptService
にluaファイル配置 - プレイヤー入室のイベント書く
- playerの階層下に
leaderstats
というフォルダを作成する - Scoreを保持させる
IntValue
型のインスタンスを作成する - このインスタンスの親を
leaderstats
フォルダに指定する
完了!
実践
コードはこちらになります!
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
--playerの階層下に`leaderstats`というフォルダを作成
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
--Scoreを保持させる`IntValue`型のインスタンスを作成
local score = Instance.new("IntValue")
score.Name = "Score"
score.Value = 0
score.Parent = leaderstats
end)
たったこれだけです!
Scoreの値の変更方法はこちら
以下のようなRemoteFunction
オブジェクトを配置!
このコードを配置します。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local functions = ReplicatedStorage:WaitForChild("ScoreAddFunction")
scoreAddFunction.OnServerInvoke = function(player)
--playerオブジェクトが取得できれば簡単にアクセスできる!
player.leaderstats.Score.Value += 1
end
SterterGui内にローカルスクリプトを配置しボタンのイベントを起点にRemoteFunction
を実行してScoreを増やしていく感じになります。
ローカルスクリプトはこのあたりを参考にしてください。
まとめ
思った以上に簡単に実装できましたね!
データをデータストアに保存していくことになると案外ここに入れた値を保存し忘れることがあるので気を付けていきましょう!!
Discussion