徽章

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

一个 徽章 是你可以赠送给玩家的特殊奖励,当他们在你的体验中达成目标时,例如完成一个困难的目标或游玩一定时间。一旦玩家收到徽章,它将显示在其库存的 徽章 类别中。

Example badges in a player's inventory
玩家库存中的示例徽章

创建徽章

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

要创建一个徽章:

  1. 导航到 创建者仪表板

  2. 将鼠标悬停在体验缩略图上,单击 按钮,然后选择 创建徽章

  3. 在创建页面上,单击 上传图像 按钮,然后选择/确认要用作徽章图标的图像。当创建一个图像用于徽章时,请考虑以关注中/正在关注因素:

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

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

      Good circular trimming

      >

      Bad circular trimming

      >

  4. 完成以下字段:

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

    经体验主页上的徽章

重新排序徽章

当徽章首次创建时,它被放置在徽章列表的最后。你可以使用拖放界面重新排列最多 50 个徽章。

要重新排序徽章:

  1. 导航到相关体验。

  2. 参与 标题下的侧面板中,导航到 徽章 页面。

  3. 选择 重新排序 以导航到重新排序页面。

    Badge reorder button
  4. 在重排页面上,拖放徽章到他们喜欢的顺序。

    Badge drag-and-drop to reorder
  5. 选择 保存 以保存此顺序。指定的顺序现在应该出现在体验详情页面上。

脚本徽章

常见的徽章脚本工作流程包括授予徽章、检查玩家是否以前在你的体验中赢得了徽章,以及获取徽章信息。

找到徽章 ID

徽章的ID是其唯一标识。当你在实现工作流程时,如授予玩家徽章奖励徽章,你需要这个ID。

  1. 创建者仪表板上,导航到相关体验的 徽章 部分下的 参与

  2. 将鼠标悬停在徽章的缩略图上,单击 按钮,然后从上下文菜单中选择 复制资产ID

奖励徽章

您可以在服务器端 BadgeService:AwardBadge() 中调用 Script 方法来授予玩家在整个体验过程中的徽章。返回徽章的属性,包括确认徽章是否可以授予玩家。你可以在 配置徽章 形式中启用或禁用徽章,从而在 创建者仪表板 上显示徽章。

以下是授予玩家徽章的安全函数的示例。


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

检查获得的徽章

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


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
-- 将“玩家添加”事件连接到“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