徽章

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

A 徽章 是您可以在玩家在您的游戏中达到目标时赠送的特殊奖励,例如完成一个困难的目标或玩一定的时间。玩家一旦获得徽章,它会显示在他们的库存的 徽章 分类中。

玩家库存中的示例徽章
玩家库存中的示例徽章

创建徽章

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

要创建徽章:

  1. 导航到 创作者仪表板

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

  3. 在创建页面上,单击 上传图片 按钮,然后选择/确认您想用作徽章图标的图片。在创建用于徽章的图片时,请考虑以下事项:

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

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

      好的圆形裁剪
      坏的圆形裁剪
  4. 完成以下字段:

    • 名称 — 徽章的标题。
    • 描述 — 玩家可以采取什么措施来获得该徽章的描述。
    • 徽章已启用 — 创建时徽章是否会被启用。禁用的徽章不会显示在游戏主页的 徽章 部分,玩家无法获得。
  5. 单击 创建徽章 按钮。新徽章将显示在 创作者仪表板参与度徽章 部分。如果新徽章已启用,它也会显示在游戏主页的 徽章 部分。

    游戏主页上的徽章

重新排序徽章

当徽章首次创建时,它会被放置在徽章列表的末尾。您可以使用拖放界面一次性重新排序最多50个徽章。

要重新排序徽章:

  1. 导航到相关的游戏。

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

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

    徽章重新排序按钮
  4. 在重新排序页面上,将徽章拖放到您希望的顺序。

    徽章拖放以重新排序
  5. 选择 保存 以保存此顺序。指定的顺序现在应该出现在游戏详情页面上。

脚本徽章

常见的徽章脚本工作流程包括 授予徽章、检查玩家是否之前 获得 过游戏中的徽章,以及 获取徽章信息

定位徽章 ID

徽章的 ID 是其唯一标识符。在实现诸如 授予徽章 等工作流程时,您将需要此 ID。

  1. 创作者仪表板 上,导航到相关游戏的 徽章 部分,在 参与度 下找。

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

授予徽章

您可以通过在服务器端的 Script 中调用 BadgeService:AwardBadgeAsync() 方法来在游戏中授予玩家徽章。BadgeService:GetBadgeInfoAsync() 返回徽章的属性,包括 IsEnabled,它确认徽章是否可以授予玩家。您可以从 创作者仪表板配置徽章 表单中启用或禁用徽章。

以下是一个安全的函数示例,用于授予玩家徽章。


local BadgeService = game:GetService("BadgeService")
local function awardBadge(player, badgeId)
-- 获取徽章信息
local success, badgeInfo = pcall(function()
return BadgeService:GetBadgeInfoAsync(badgeId)
end)
if success then
-- 确认徽章可以被授予
if badgeInfo.IsEnabled then
-- 授予徽章
local awarded, errorMessage = pcall(BadgeService.AwardBadgeAsync, BadgeService, player.UserId, badgeId)
if not awarded then
warn("授予徽章时出错:", errorMessage)
end
end
else
warn("获取徽章信息时出错: " .. badgeInfo)
end
end

检查获得的徽章

以下脚本在任何玩家进入游戏时检查,然后使用 BadgeService:UserHasBadgeAsync() 方法验证该玩家是否拥有变量 BADGE_ID 中设置的 匹配 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("检查玩家是否拥有徽章时出错")
return
end
if hasBadge then
-- 根据需要处理玩家的徽章拥有情况
end
end
-- 将 "PlayerAdded" 事件连接到 "onPlayerAdded()" 函数
Players.PlayerAdded:Connect(onPlayerAdded)

获取徽章信息

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


local BadgeService = game:GetService("BadgeService")
local BADGE_ID = 00000000 -- 将此更改为您的徽章 ID
-- 获取徽章信息
local success, result = pcall(BadgeService.GetBadgeInfoAsync, BadgeService, BADGE_ID)
-- 输出信息
if success then
print("徽章:", result.Name)
print("已启用:", result.IsEnabled)
print("描述:", result.Description)
print("图标:", "rbxassetid://" .. result.IconImageId)
else
warn("获取徽章信息时出错:", result)
end
©2026 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。