BadgeService

Hiển Thị Bản Đã Lỗi Thời

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Không Thể Tạo
Dịch Vụ

Lớp Dịch vụ huy hiệu cung cấp thông tin và chức năng liên quan đến huy hiệu.Huy hiệu được sử dụng trên toàn bộ nền tảng để nhận ra thành tích và hoạt động của một người chơi.Sau khi trao một huy hiệu cho một người chơi, nó được thêm vào kho hàng của họ và hiển thị trên trang hồ sơ của họ.

Mẫu mã

The following example creates an awardBadge() function that handles potential errors that may occur when awarding a badge. Using properties of the badge fetched via BadgeService:GetBadgeInfoAsync(), it confirms that the badge can be awarded and does so using BadgeService:AwardBadge().

Awarding a Badge

local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local BADGE_ID = 0
local function awardBadge(player, badgeId)
-- Fetch badge information
local success, badgeInfo = pcall(function()
return BadgeService:GetBadgeInfoAsync(badgeId)
end)
if success then
-- Confirm that badge can be awarded
if badgeInfo.IsEnabled then
-- Award badge
local awardSuccess, result = pcall(function()
return BadgeService:AwardBadge(player.UserId, badgeId)
end)
if not awardSuccess then
-- the AwardBadge function threw an error
warn("Error while awarding badge:", result)
elseif not result then
-- the AwardBadge function did not award a badge
warn("Failed to award badge.")
end
end
else
warn("Error while fetching badge info: " .. badgeInfo)
end
end
local function onPlayerAdded(player)
awardBadge(player, BADGE_ID)
end
Players.PlayerAdded:Connect(onPlayerAdded)

The following script waits for any player to enter the game and checks if they own a specific badge. This is useful for creating a restricted area with collision filtering or teleportation that only works if a player owns a special badge.

Checking Earned Badges

local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeId = 00000000 -- Change this to your badge ID
local function onPlayerAdded(player)
-- Check if the player has the badge
local success, hasBadge = pcall(function()
return BadgeService:UserHasBadgeAsync(player.UserId, badgeId)
end)
-- If there's an error, issue a warning and exit the function
if not success then
warn("Error while checking if player has badge!")
return
end
if hasBadge then
-- Handle player's badge ownership as needed
print(player.Name, "has badge", badgeId)
end
end
-- Connect "PlayerAdded" events to the "onPlayerAdded()" function
Players.PlayerAdded:Connect(onPlayerAdded)

This script checks which badges a user owns when they join the experience.

Checking Earned Badges in Batches

local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeIds = { 0000000000, 1111111111, 2222222222 } -- Change this to a list of your badge IDs
local function onPlayerAdded(player)
-- Check if the player has any of the badges
local success, result = pcall(function()
return BadgeService:CheckUserBadgesAsync(player.UserId, badgeIds)
end)
-- If there's an error, issue a warning and exit the function
if not success then
warn("Error while checking if player", player.Name, "has badges:", result)
return
end
local ownedBadgeIds = result
if #ownedBadgeIds == 0 then
print(player.Name, "does not have any of the badges")
else
print(player.Name, "has the following badges:", table.concat(ownedBadgeIds, ", "))
end
end
Players.PlayerAdded:Connect(onPlayerAdded)

This sample prints badge information fetched via BadgeService:GetBadgeInfoAsync().

Getting Badge Info

local BadgeService = game:GetService("BadgeService")
-- Fetch badge information
local success, result = pcall(function()
return BadgeService:GetBadgeInfoAsync(00000000) -- Change this to desired badge ID
end)
-- Output the information
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

Tóm Tắt

Phương Pháp

Thuộc Tính

Phương Pháp

AwardBadge

Sinh Lợi

Tặng một huy hiệu Player với ID huy hiệu UserId và huy hiệu ID.Giới hạn tỷ lệ: 50 + 35 * [số người dùng] mỗi phút .Để trao thành công một huy hiệu:

  • Người chơi phải hiện đang kết nối với trò chơi.
  • Người chơi không được có huy hiệu (lưu ý rằng một người chơi có thể xóa huy hiệu đã được trao từ hồ sơ của họ và được trao lại huy hiệu).
  • Huy hiệu phải được trao từ phía máy chủ Script hoặc một ModuleScript cuối cùng cần thiết bởi một Script , không phải từ một LocalScript .
  • Huy hiệu phải được trao ở một nơi thuộc về trò chơi liên quan đến huy hiệu.
  • Huy hiệu phải được bật; kiểm tra điều này bằng cách sử dụng thuộc tính IsEnabled của huy hiệu được lấy qua BadgeService:GetBadgeInfoAsync() .

Xem thêm:

Tham Số

userId: number

The Player.UserId của người dùng mà huy hiệu sẽ được trao cho.

Giá Trị Mặc Định: ""
badgeId: number

ID của huy hiệu được trao.

Giá Trị Mặc Định: ""

Lợi Nhuận

Boolean của true nếu huy hiệu được trao thành công.

Mẫu mã

The following example creates an awardBadge() function that handles potential errors that may occur when awarding a badge. Using properties of the badge fetched via BadgeService:GetBadgeInfoAsync(), it confirms that the badge can be awarded and does so using BadgeService:AwardBadge().

Awarding a Badge

local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local BADGE_ID = 0
local function awardBadge(player, badgeId)
-- Fetch badge information
local success, badgeInfo = pcall(function()
return BadgeService:GetBadgeInfoAsync(badgeId)
end)
if success then
-- Confirm that badge can be awarded
if badgeInfo.IsEnabled then
-- Award badge
local awardSuccess, result = pcall(function()
return BadgeService:AwardBadge(player.UserId, badgeId)
end)
if not awardSuccess then
-- the AwardBadge function threw an error
warn("Error while awarding badge:", result)
elseif not result then
-- the AwardBadge function did not award a badge
warn("Failed to award badge.")
end
end
else
warn("Error while fetching badge info: " .. badgeInfo)
end
end
local function onPlayerAdded(player)
awardBadge(player, BADGE_ID)
end
Players.PlayerAdded:Connect(onPlayerAdded)

CheckUserBadgesAsync

Sinh Lợi

Kiểm tra danh sách các ID nhãn chống lại UserId và trả về danh sách các ID nhãn mà người chơi sở hữu.

Phương pháp này hỗ trợ tối đa 10 huy hiệu cho mỗi lô. Sử dụng BadgeService:UserHasBadgeAsync() để tìm kiếm huy hiệu đơn.

Giới hạn tỷ lệ: 10 + 5 * [số người chơi] mỗi phút trong mỗi máy chủ.

Bất kỳ bộ nhãn cho bất kỳ trải nghiệm nào cũng có thể được truy vấn, bất kể ai tạo ra nhãn hay trải nghiệm nào.Bất kỳ UserId có thể được sử dụng trong một Script , nhưng trong một LocalScript , chỉ có UserId của người dùng địa phương mà khách hàng của họ đang chạy kịch bản có thể được sử dụng.

Tham Số

userId: number

The UserId của người chơi để kiểm tra quyền sở hữu của các huy hiệu được chỉ định.

Giá Trị Mặc Định: ""
badgeIds: Array

Danh sách ID của các huy hiệu để kiểm tra quyền sở hữu. Chiều dài tối đa là 10.

Giá Trị Mặc Định: ""

Lợi Nhuận

Danh sách các ID huy hiệu mà người dùng được cấp có ngoài các ID huy hiệu được cung cấp.Trống nếu không có bất kỳ huy hiệu nào được cung cấp được sở hữu bởi người dùng được cho.Không được đảm bảo ở cùng một thứ tự với danh sách nhập.

Mẫu mã

This script checks which badges a user owns when they join the experience.

Checking Earned Badges in Batches

local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeIds = { 0000000000, 1111111111, 2222222222 } -- Change this to a list of your badge IDs
local function onPlayerAdded(player)
-- Check if the player has any of the badges
local success, result = pcall(function()
return BadgeService:CheckUserBadgesAsync(player.UserId, badgeIds)
end)
-- If there's an error, issue a warning and exit the function
if not success then
warn("Error while checking if player", player.Name, "has badges:", result)
return
end
local ownedBadgeIds = result
if #ownedBadgeIds == 0 then
print(player.Name, "does not have any of the badges")
else
print(player.Name, "has the following badges:", table.concat(ownedBadgeIds, ", "))
end
end
Players.PlayerAdded:Connect(onPlayerAdded)

GetBadgeInfoAsync

Sinh Lợi

Chức năng này truy cập thông tin về một huy hiệu dựa trên ID của nó.Phải mất một lúc ngắn để tải thông tin từ trang web Roblox; các cuộc gọi lặp lại sẽ lưu trữ trong một thời gian ngắn.Nó trả về một từ điển với các trường sau:


<th>Loại</th>
<th>Mô tả</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>Tên</b></td>
<td>chuỗi</td>
<td>Tên của huy hiệu.</td>
</tr>
<tr>
<td><b>Mô tả</b></td>
<td>chuỗi</td>
<td>Mô tả của huy hiệu.</td>
</tr>
<tr>
<td><b>ID hình ảnh biểu tượng</b></td>
<td>những int64</td>
<td>ID tài sản của hình ảnh cho huy hiệu.</td>
</tr>
<tr>
<td><b>Đã bật</b></td>
<td>bool</td>
<td>Chỉ ra xem có bảng hiệu có thể được trao hay không.</td>
</tr>
</tbody>
Nhân vật chính

Xem thêm:

Tham Số

badgeId: number

ID nhãn của nhãn mà thông tin cần được lấy.

Giá Trị Mặc Định: ""

Lợi Nhuận

Một từ điển thông tin về huy hiệu được chỉ định.

Mẫu mã

This sample prints badge information fetched via BadgeService:GetBadgeInfoAsync().

Getting Badge Info

local BadgeService = game:GetService("BadgeService")
-- Fetch badge information
local success, result = pcall(function()
return BadgeService:GetBadgeInfoAsync(00000000) -- Change this to desired badge ID
end)
-- Output the information
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

UserHasBadgeAsync

Sinh Lợi

Kiểm tra và trả lại xem liệu một Player có sở hữu một huy hiệu hay không dựa trên huy hiệu của họ UserId và ID huy hiệu.Giới hạn tỷ lệ: 50 + 35 * [số người chơi] mỗi phút .Bạn có thể gọi chức năng từ máy chủ trong một Script hoặc ModuleScript cuối cùng được yêu cầu bởi một Script , và người dùng trong câu hỏi phải có mặt trong máy chủ để truy vấn chạy.Khi gọi phương thức từ khách hàng trong một LocalScript , nó chỉ hoạt động cho người dùng địa phương mà khách hàng của họ đang chạy kịch bản.

Bất kỳ huy hiệu cho bất kỳ trò chơi nào cũng có thể được truy vấn, bất kể ai tạo ra huy hiệu hay sử dụng cho trải nghiệm nào.

Xem thêm:

Tham Số

userId: number

The Player.UserId của người chơi để kiểm tra quyền sở hữu của huy hiệu được chỉ định.

Giá Trị Mặc Định: ""
badgeId: number

ID nhãn của nhãn mà quyền sở hữu sẽ được kiểm tra.

Giá Trị Mặc Định: ""

Lợi Nhuận

Chỉ ra nếu người dùng được chỉ định có huy hiệu được chỉ định.

Mẫu mã

The following script waits for any player to enter the game and checks if they own a specific badge. This is useful for creating a restricted area with collision filtering or teleportation that only works if a player owns a special badge.

Checking Earned Badges

local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeId = 00000000 -- Change this to your badge ID
local function onPlayerAdded(player)
-- Check if the player has the badge
local success, hasBadge = pcall(function()
return BadgeService:UserHasBadgeAsync(player.UserId, badgeId)
end)
-- If there's an error, issue a warning and exit the function
if not success then
warn("Error while checking if player has badge!")
return
end
if hasBadge then
-- Handle player's badge ownership as needed
print(player.Name, "has badge", badgeId)
end
end
-- Connect "PlayerAdded" events to the "onPlayerAdded()" function
Players.PlayerAdded:Connect(onPlayerAdded)

Sự Kiện