見出し画像

ゲームの訪問回数を更新しながらゲーム内に表示する【RobloxStudio】

(2023年11月26日追記:サムネイルの画像には「リアルタイムで更新」と書いてありますが、記事のやり方でやるとそこまでリアルタイムに更新されないことに今気づきました。リアルタイムで更新することを期待していた人には申し訳ないです!!)

こんにちは!月一投稿を心がけているけつべつです。

上の作品では、ロブロックスにあるいろんなゲームの中からランダムに選ばれたゲームを訪問することができます。おもしろいですよ!


スーパープレースルーレットのスクリーンショット。画面の左側に注目。

作品の詳細が表示されるのですが、そこに訪問回数も一緒に表示されます。ロブロックススタジオには訪問回数を読み込む仕組みがないからどうやっているのか不思議。

よく調べたところ、APIという外部のサービスを使うことで訪問回数を表示できることがわかりました!

今日は訪問回数を表示する方法を書いていこうと思います。


参考にしたサイト:



準備

まずは、後でやらなきゃいけない設定をするために、ゲームを「Robloxに保存」か「Robloxに公開」しよう。


次にゲーム設定を開いて

ゲーム設定を押す


セキュリティの「HTTP要求を許可」「APIサービスのアクセスを有効化」をオンにして保存。(ゲームがRobloxに保存か公開されていないと設定できないので注意)


次にworkspaceに数字を表示する物体を用意。

画像ではPartの中にSurfaceGUI、さらにその中にTextLabelを入れています。
訪問回数を表示するためのScriptもSurfaceGUIに入れています。



スクリプト

下に書いてあるスクリプトは、上のサイトに書かれているスクリプトを少し変えて書き足したものです。Partの中のScriptにコピペします。


local HttpService = game:GetService("HttpService")
local GameId = 7991339063 -- 訪問回数を読み込みたいゲームのID

local UniverseUrl = "https://apis.roproxy.com/universes/v1/places/"..GameId.."/universe"
local UniverseResponse = HttpService:RequestAsync({
	Url = UniverseUrl,
	Method = "GET"
});
local data = HttpService:JSONDecode(UniverseResponse.Body);
local UniverseId = data["universeId"]
local Url = "https://games.roproxy.com/v1/games?universeIds="..UniverseId


while true do -- 繰り返し
	
	local IsSuccess, Result = pcall(function()
		return HttpService:GetAsync(Url)
	end)

	
if IsSuccess then
	local data = HttpService:JSONDecode(Result)["data"][1]
	local visits = data["visits"] --訪問回数
	script.Parent.TextLabel.Text = visits --訪問回数を表示

else
	warn("Something went wrong!")
	end
	wait(30) -- 三十秒経ったら更新
end

TextLabelのTextに読み込んだ訪問回数を表示して、三十秒ごとに更新するように書きました。

2行目のGameIdのところにはゲームのIDを書きます。
IDはURLの数字の部分のことです。
レインボーフレンズだったらURLが「https://www.roblox.com/games/7991339063/Rainbow-Friends」なので7991339063がIDです。

waitの中の数字を変えることで更新するまでの時間が変わります。

更新を繰り返したくない場合はwhile true doと一番最後のendを消してください。



実行してみると…

訪問者数が表示され、時間が経つと更新されて数字が増えました。
成功です!


更新までの時間が短い場合、アクティブ数が多い作品だとなぜか一瞬数字が減ることがあります。それが嫌な人は最低三十秒ぐらいにしたほうがいいです。

もちろんGameIdを変えれば自分の作品の訪問回数も表示できます。
訪問回数が一万以上になった瞬間にお祝いイベントが始まる、みたいなこともできそうですね!


どんな感じに更新されるのか確認したい人はここをみてください。人気作品の訪問回数が増えていく様子が見れる場所を作りました。

この記事がだれかの役に立てたらうれしいです。



〜おしまい〜