💬
【Roblox】入室時にゲームパスを購入していたか確認する方法
はじめに
前回ゲームパスの購入機能の実装をしましたがゲームを退出すると付与されたものがリセットされてしまう感じでした。
今回は購入していたら次回の入室時に確認して購入時の状態を付与する方法を共有します。
ゲームパスの実装方法についてはこちら(今回はこちらのコードの続きを書いていきます。)
公式Reference
実装
ServerScriptService
に置いたScriptを編集していきます。
Players.PlayerAdded:Connect(function(player)
local info = Instance.new("Folder")
info.Name = "Info"
info.Parent = player
local isActiveFirstPass = Instance.new("BoolValue")
isActiveFirstPass.Name = "IsActiveFirstPass"
isActiveFirstPass.Parent = info
isActiveFirstPass.Value = false
local hasFirstPass = false
-- FirstPassの所有権を確認
local success, message = pcall(function()
hasFirstPass = MarketplaceService:UserOwnsGamePassAsync(player.UserId, 862267773)
end)
-- 確認処理が失敗したとき
if success == false then
print("FirstPass error: ", tostring(message))
end
if hasFirstPass then
--FirstPassを持っていた場合
print(player.Name .. " owns " .. 862267773)
isActiveFirstPass.Value = true
else
--FirstPassを持っていない場合
print(player.Name .. " doesn't own " .. 862267773)
isActiveFirstPass.Value = false
end
end)
MarketplaceService:UserOwnsGamePassAsync(player.UserId, 862267773)
は
ユーザーIDと購入済みか確認したいPassのIDを引数に入れて実行すると購入済みかがBoolean値で返ってきます。
実行結果
持っている場合は以下のようにしっかりとログを返してくれます。
Discussion