BadgeService

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

作成できません
サービス

バッジサービスクラスは、バッジに関する情報と機能を提供します。バッジは、プラットフォーム全体でプレイヤーの達成と活アクティビティを認識するために使用されます。バッジをプレイヤーに授与すると、インベントリに追加され、プロフィールページに表示されます。

コードサンプル

Awarding a Badge

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)
Checking Earned Badges

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)
Checking Earned Badges in Batches

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)
Getting Badge Info

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

概要

方法

プロパティ

方法

AwardBadge

イールド

Class.Player にバッジを与える: UserId とバッジ ID。 50 + 35 * [ユーザー数] 毎分。1>課金される1> に成功するためにバッジを与える:

  • プレイヤーは現在ゲームに接続している必要があります。
  • プレイヤーはすでにバッジを持っていることはできません (注: プレイヤーはプロフィールから獲得したバッジを削除することがあり、バッジを再び獲得することがあります)。
  • バッジは、サーバー側の Script または ModuleScript から、および最終的に Script によって、必要になることがあります。これは 2>Class.LocalScript2> からではありません。
  • バッジは、バッジが関連するゲームの一部である場所で授与する必要があります。
  • バッジを有効にする必要があります。これは、IsEnabled から取得されたバッジのプロパティで確認できます。

参照してください:

パラメータ

userId: number

ユーザーのバッジを獲得するには、Player.UserId のユーザーがあります。

badgeId: number

授与されるバッジのID。


戻り値

バッジが成功して獲得された場合の true

コードサンプル

Awarding a Badge

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 内のスクリプトのクライアントのみが

パラメータ

userId: number

プレイヤーの所有済みバッジをチェックするための UserId

badgeIds: Array

バッジの所有者をチェックするためのID のリスト。最大 10 個。


戻り値

ユーザーが入力したバッジ ID のリスト。空の場合は、提供されたバッジ ID のリストにありません。提供されたバッジがあるユーザーの所有ではありません。入力リストと同じ順序であることは保証されません。

コードサンプル

Checking Earned Badges in Batches

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>
キータイプ説明

参照してください:

パラメータ

badgeId: number

情報を取得するバッジのID。


戻り値

指定されたバッジに関する情報の辞書。

コードサンプル

Getting Badge Info

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

任意のゲームの任意のバッジは、誰がバッジを作成したか、バッジが使用されているエクスペリエンスを問わず、クエリーできます。

参照してください:

パラメータ

userId: number

プレイヤーの所有済みバッジをチェックするための Player.UserId

badgeId: number

Check のマークドアイデントの所有者となるバッジのID。


戻り値

指定されたユーザーが指定されたバッジを持っているかどうかを示します。

コードサンプル

Checking Earned Badges

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)

イベント