徽章

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

A 徽章 是一種特殊獎勵,當玩家在體驗中達成目標時,您可以贈送給他們,例如完成困難目標或玩一定時間。一旦玩家收到徽章,它就會顯示在其庫存的 徽章 類別中。

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