🙆

【Roblox】右上のユーザー一覧にスコアを表示しランキングにする方法

2024/07/08に公開

はじめに

今回はロブロックスのゲームでよく見るユーザーリストをランキングボードにする方法になります!

順序

  1. ServerScriptServiceにluaファイル配置
  2. プレイヤー入室のイベント書く
  3. playerの階層下にleaderstatsというフォルダを作成する
  4. Scoreを保持させるIntValue型のインスタンスを作成する
  5. このインスタンスの親を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を増やしていく感じになります。

ローカルスクリプトはこのあたりを参考にしてください。
https://zenn.dev/landel_tech/articles/715df023adb4bc#ローカルスクリプト

まとめ

思った以上に簡単に実装できましたね!

データをデータストアに保存していくことになると案外ここに入れた値を保存し忘れることがあるので気を付けていきましょう!!

Landelテックブログ

Discussion