徽章

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

徽章是您可以赠送给玩家,当玩家在您的体验中达成目标时,例如完成一个难以达成的目标或玩一定时间。 一旦玩家获得徽章,它就会显示在其库存的 徽章 类别中。

Example badges in a player's inventory
玩家的物品栏中的徽章示例

创建徽章

在 24 小时 (GMT) 期间,您可以为您拥有的每个体验创建最多 5 枚徽章。如果您想在 24 小时内创建更多徽章,每个额外的徽章都会花费 100 Robux。

要创建徽章:

  1. 导航到创建者仪表板

  2. 找到关联的体验,点击其缩略图角落中的 ,然后选择 创建徽章

    Create Badge option from Creator Dashboard
  3. 在创建页面上,单击 上传图像 按钮,然后选择/确认您想要使用的图像作为徽章的标志。当创建用于徽章的图像时,请考虑以下几点:

    • 使用 512×512 像素 的模板。

    • 上传过程会将徽章图像修剪和裁剪为圆形标志,因此请避免将重要细节放在圆形边界之外。

      Good circular trimming
      Bad circular trimming
  4. 完成以下字段:

    • 名称 — 徽章的标题。
    • 描述 — 玩家可以用什么赚取徽章的。
    • 徽章已启用 — 是否启用徽章,在它创建时是否会显示。禁用徽章不会显示在体验主页的 徽章 部分,无法由玩家赚取。
  5. 点击 创建徽章 按钮。新的徽章显示在 参与徽章 部分在创建者仪表板上。如果新的徽章已启用,它也会在体验的主页上显示在1>徽章1>部分。

    在体验主页上的徽章

脚本徽章

常见的徽章脚本工作流程包括颁发徽章、检查玩家是否在您的体验中以前获得了一个徽章,并且获取徽章信息

正在定位徽章 ID

徽章的ID是其唯一标识。你在授予徽章等工作流程时需要这个ID。

  1. 创建者仪表板上,导航到关联的体验的 徽章 部分。

    Badges button indicated for an experience on the Creator Dashboard
  2. 点击 按钮获得徽章,然后选择 复制资产ID

评分

您可以在服务器端的 BadgeService:AwardBadge() 中调用 Script 方法,为玩家授予徽章。 BadgeService:GetBadgeInfoAsync() 返回徽章

以下是奖励玩家的安全功能的例子。


local BadgeService = game:GetService("BadgeService")
local function awardBadge(player, badgeId)
-- 获取徽章信息
local success, badgeInfo = pcall(BadgeService.GetBadgeInfoAsync, BadgeService, badgeId)
if success then
-- 确认徽章可以被授予
if badgeInfo.IsEnabled then
-- 奖励徽章
local awarded, errorMessage = pcall(BadgeService.AwardBadge, BadgeService, player.UserId, badgeId)
if not awarded then
warn("Error while awarding badge:", errorMessage)
end
end
else
warn("Error while fetching badge info!")
end
end

检查已获得徽章

以下脚本检查任何玩家何时进入体验,然后使用 BadgeService:UserHasBadgeAsync() 方法验证该玩家是否拥有在变量 ADGE_ID 中设置的匹配 ID 的徽章。你还可以使用 BADGE_ID 方法来验证徽章的所


local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local BADGE_ID = 00000000 -- 将其更改为您的徽章 ID
local function onPlayerAdded(player)
-- 检查玩家是否拥有徽章
local success, hasBadge = pcall(BadgeService.UserHasBadgeAsync, BadgeService, player.UserId, BADGE_ID)
-- 如果出现错误,请发出警告并退出函数
if not success then
warn("Error while checking if player has badge")
return
end
if hasBadge then
-- 根据需要处理玩家的徽章所有权
end
end
-- 将“PlayerAdded”事件连接到“onPlayerAdded()”函数
Players.PlayerAdded:Connect(onPlayerAdded)

获取徽章信息

要获取徽章,例如其描述或图标资产 ID,请使用 BadgeService:GetBadgeInfoAsync() 方法,并使用 徽章 ID 。例如:


local BadgeService = game:GetService("BadgeService")
local BADGE_ID = 00000000 -- 将其更改为您的徽章 ID
-- 获取徽章信息
local success, result = pcall(BadgeService.GetBadgeInfoAsync, BadgeService, BADGE_ID)
-- 输出信息
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