徽章

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

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

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

创建徽章

您可以在每个您拥有的游戏中,每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:GetUserBadgesAsync() 方法批量验证徽章所有权。

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 是我们在美国及其他国家或地区的注册与未注册商标。