徽章

*此內容是使用 AI(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>上。如果徽章啟用,它也會在體驗的主頁面上顯示在4>徽章4>區域。

    在主頁上的徽章

錯誤的徽章

常見的徽章指示工作流程包括 給予徽章、檢查玩家是否在您的體驗中以前獲得了一個徽章,並且 獲取徽章信息

正在定位徽章 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 的徽章。你也可以在發行中使用 Class.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
-- 連接 "PlayerAdded" 事件到 "onPlayerAdded()" 函數
Players.PlayerAdded:Connect(onPlayerAdded)

獲得徽章資訊

要取得有關徽章,例如徽章說明或圖示資產 ID,請使用 Class.BadgeService:GetBadgeInfoAsync() 方法,並使用 badge 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