BadgeService
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
バッジサービスクラスは、バッジに関する情報と機能を提供します。バッジは、プラットフォーム全体でプレイヤーの達成と活アクティビティを認識するために使用されます。バッジをプレイヤーに授与すると、インベントリに追加され、プロフィールページに表示されます。
コードサンプル
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local BADGE_ID = 0
local function awardBadge(player, badgeId)
-- Fetch badge information
local success, badgeInfo = pcall(function()
return BadgeService:GetBadgeInfoAsync(badgeId)
end)
if success then
-- Confirm that badge can be awarded
if badgeInfo.IsEnabled then
-- Award badge
local awardSuccess, result = pcall(function()
return BadgeService:AwardBadge(player.UserId, badgeId)
end)
if not awardSuccess then
-- the AwardBadge function threw an error
warn("Error while awarding badge:", result)
elseif not result then
-- the AwardBadge function did not award a badge
warn("Failed to award badge.")
end
end
else
warn("Error while fetching badge info: " .. badgeInfo)
end
end
local function onPlayerAdded(player)
awardBadge(player, BADGE_ID)
end
Players.PlayerAdded:Connect(onPlayerAdded)
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeId = 00000000 -- Change this to your badge ID
local function onPlayerAdded(player)
-- Check if the player has the badge
local success, hasBadge = pcall(function()
return BadgeService:UserHasBadgeAsync(player.UserId, badgeId)
end)
-- If there's an error, issue a warning and exit the function
if not success then
warn("Error while checking if player has badge!")
return
end
if hasBadge then
-- Handle player's badge ownership as needed
print(player.Name, "has badge", badgeId)
end
end
-- Connect "PlayerAdded" events to the "onPlayerAdded()" function
Players.PlayerAdded:Connect(onPlayerAdded)
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeIds = { 0000000000, 1111111111, 2222222222 } -- Change this to a list of your badge IDs
local function onPlayerAdded(player)
-- Check if the player has any of the badges
local success, result = pcall(function()
return BadgeService:CheckUserBadgesAsync(player.UserId, badgeIds)
end)
-- If there's an error, issue a warning and exit the function
if not success then
warn("Error while checking if player", player.Name, "has badges:", result)
return
end
local ownedBadgeIds = result
if #ownedBadgeIds == 0 then
print(player.Name, "does not have any of the badges")
else
print(player.Name, "has the following badges:", table.concat(ownedBadgeIds, ", "))
end
end
Players.PlayerAdded:Connect(onPlayerAdded)
local BadgeService = game:GetService("BadgeService")
-- Fetch badge information
local success, result = pcall(function()
return BadgeService:GetBadgeInfoAsync(00000000) -- Change this to desired badge ID
end)
-- Output the information
if success then
print("Badge:", result.Name)
print("Enabled:", result.IsEnabled)
print("Description:", result.Description)
print("Icon:", "rbxassetid://" .. result.IconImageId)
else
warn("Error while fetching badge info:", result)
end
概要
方法
各人のID を持つプレイヤーにバッジを授与する。
Checks a list of badge IDs against a UserId and returns a list of badge IDs that the player owns.
ID が与えられたバッジの情報を取得します。
プレイヤーが Player.UserId とバッジ ID を持っているかどうかをチェックします。
プロパティ
方法
AwardBadge
Class.Player にバッジを与える: UserId とバッジ ID。 50 + 35 * [ユーザー数] 毎分。1>課金される1> に成功するためにバッジを与える:
- プレイヤーは現在ゲームに接続している必要があります。
- プレイヤーはすでにバッジを持っていることはできません (注: プレイヤーはプロフィールから獲得したバッジを削除することがあり、バッジを再び獲得することがあります)。
- バッジは、サーバー側の Script または ModuleScript から、および最終的に Script によって、必要になることがあります。これは 2>Class.LocalScript2> からではありません。
- バッジは、バッジが関連するゲームの一部である場所で授与する必要があります。
- バッジを有効にする必要があります。これは、IsEnabled から取得されたバッジのプロパティで確認できます。
参照してください:
パラメータ
ユーザーのバッジを獲得するには、Player.UserId のユーザーがあります。
授与されるバッジのID。
戻り値
バッジが成功して獲得された場合の true 。
コードサンプル
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local BADGE_ID = 0
local function awardBadge(player, badgeId)
-- Fetch badge information
local success, badgeInfo = pcall(function()
return BadgeService:GetBadgeInfoAsync(badgeId)
end)
if success then
-- Confirm that badge can be awarded
if badgeInfo.IsEnabled then
-- Award badge
local awardSuccess, result = pcall(function()
return BadgeService:AwardBadge(player.UserId, badgeId)
end)
if not awardSuccess then
-- the AwardBadge function threw an error
warn("Error while awarding badge:", result)
elseif not result then
-- the AwardBadge function did not award a badge
warn("Failed to award badge.")
end
end
else
warn("Error while fetching badge info: " .. badgeInfo)
end
end
local function onPlayerAdded(player)
awardBadge(player, BADGE_ID)
end
Players.PlayerAdded:Connect(onPlayerAdded)
CheckUserBadgesAsync
Checks a list of badge IDs against a UserId and returns a list of badge IDs that the player owns.
このメソッドは、最大 10 個のバッジのバッチをサポートします。単一のバッジ検索には BadgeService:UserHasBadgeAsync() を使用してください。
レート制限: 各サーバーで 10 + 5 * [プレイヤーの数] の制限。
任意のエクスペリエンスのバッジセットは、誰がバッジを作成したか、バッジがどのエクスペリエンスにあるかに関わらず、クエリーできます。任意の UserId は、Script 内のスクリプトのクライアントのみが
パラメータ
戻り値
ユーザーが入力したバッジ ID のリスト。空の場合は、提供されたバッジ ID のリストにありません。提供されたバッジがあるユーザーの所有ではありません。入力リストと同じ順序であることは保証されません。
コードサンプル
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeIds = { 0000000000, 1111111111, 2222222222 } -- Change this to a list of your badge IDs
local function onPlayerAdded(player)
-- Check if the player has any of the badges
local success, result = pcall(function()
return BadgeService:CheckUserBadgesAsync(player.UserId, badgeIds)
end)
-- If there's an error, issue a warning and exit the function
if not success then
warn("Error while checking if player", player.Name, "has badges:", result)
return
end
local ownedBadgeIds = result
if #ownedBadgeIds == 0 then
print(player.Name, "does not have any of the badges")
else
print(player.Name, "has the following badges:", table.concat(ownedBadgeIds, ", "))
end
end
Players.PlayerAdded:Connect(onPlayerAdded)
GetBadgeInfoAsync
この関数は、ID が与えられたバッジの情報を取得します。Roblox ウェブサイトから情報を読み込むのには、少し時間がかかります。ID が重複すると、短時間のキャッシュが保存されます。以下のフィールドが含まれるディクティオンを返します:
<tbody><tr><td><b>名前</b></td><td>文字列</td><td>バッジの名前。</td></tr><tr><td><b>説明</b></td><td>文字列</td><td>バッジの説明。</td></tr><tr><td><b>IconImageId</b></td><td>int64</td><td>バッジのための画像のアセット ID。</td></tr><tr><td><b>有効化済み</b></td><td>ブール</td><td>バッジが与えられるかどうかを示します。</td></tr></tbody>
キー | タイプ | 説明 |
---|
参照してください:
パラメータ
情報を取得するバッジのID。
戻り値
指定されたバッジに関する情報の辞書。
コードサンプル
local BadgeService = game:GetService("BadgeService")
-- Fetch badge information
local success, result = pcall(function()
return BadgeService:GetBadgeInfoAsync(00000000) -- Change this to desired badge ID
end)
-- Output the information
if success then
print("Badge:", result.Name)
print("Enabled:", result.IsEnabled)
print("Description:", result.Description)
print("Icon:", "rbxassetid://" .. result.IconImageId)
else
warn("Error while fetching badge info:", result)
end
UserHasBadgeAsync
Checks and returns whether a Player が所有するバッジの Class.Player.UserId|UserId
任意のゲームの任意のバッジは、誰がバッジを作成したか、バッジが使用されているエクスペリエンスを問わず、クエリーできます。
参照してください:
パラメータ
プレイヤーの所有済みバッジをチェックするための Player.UserId。
Check のマークドアイデントの所有者となるバッジのID。
戻り値
指定されたユーザーが指定されたバッジを持っているかどうかを示します。
コードサンプル
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeId = 00000000 -- Change this to your badge ID
local function onPlayerAdded(player)
-- Check if the player has the badge
local success, hasBadge = pcall(function()
return BadgeService:UserHasBadgeAsync(player.UserId, badgeId)
end)
-- If there's an error, issue a warning and exit the function
if not success then
warn("Error while checking if player has badge!")
return
end
if hasBadge then
-- Handle player's badge ownership as needed
print(player.Name, "has badge", badgeId)
end
end
-- Connect "PlayerAdded" events to the "onPlayerAdded()" function
Players.PlayerAdded:Connect(onPlayerAdded)