BadgeService

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tidak Dapat Dibuat
Layanan

Kelas BadgeService menyediakan informasi dan fungsionalitas terkait badge . Badge digunakan di seluruh platform untuk mengenali pencapaian dan aktivitas seorang pemain. Setelah memberikan badge kepada seorang pemain, itu ditambahkan ke inventaris mereka dan ditampilkan di halaman profil mereka.

Contoh Kode

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)
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)
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)
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

Rangkuman

Metode

Properti

Metode

AwardBadge

Hasil

Memberikan seorang Class.Player badge dengan Player dan ID badge. Batas tingkat: UserId Untuk menghadiahkan lencanadengan sukses:

  • Pemain harus saat ini terhubung ke game.
  • Pemain tidak boleh sudah memiliki badge (catat bahwa seorang pemain dapat menghapus badge yang diberikan dari profil mereka dan mendapatkan badge lagi).
  • Lencana harus diberikan dari server-side Script atau ModuleScript akhirnya diperlukan oleh Script , bukan dari 1> Class.LocalScript1> .
  • Lencana harus diberikan di tempat yang merupakan bagian dari game yang terkait dengan lencana.
  • Lencana harus diaktifkan; periksa ini menggunakan property IsEnabled dari lencana yang diambil melalui BadgeService:GetBadgeInfoAsync() .

Lihat juga:

Parameter

userId: number

Class.Player.UserId dari pengguna bahwa lencana akan diberikan kepada.

badgeId: number

ID dari lencana yang akan diberikan.


Memberikan nilai

Boolean dari true jika badge diberikan dengan sukses.

Contoh Kode

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

Hasil

Memeriksa daftar ID badge melawan UserId dan menghasilkan daftar ID badge yang dimiliki pemain.

Metode ini mendukung gatal untuk hingga 10 lencana. Gunakan BadgeService:UserHasBadgeAsync() untuk mencari tampilan tunggal lencana.

Batas tingkat: 10 + 5 * [jumlah pemain] per menit di setiap server.

Setiap set lencana untuk setiap pengalaman dapat diakses, tidak peduli siapa yang membuat lencana atau pengalaman untuknya. Setiap UserId dapat digunakan dalam Script, tetapi di LocalScript, hanya lencana lokal pengguna yang clientnya

Parameter

userId: number

Class.Player.UserId|UserId dari pemain untuk memeriksa kepemilikan dari lencana yang ditentukan.

badgeIds: Array

Daftar ID dari lencana yang dapat diperiksa kepemilikan. Panjang maksimum 10.


Memberikan nilai

Daftar ID badge yang diberikan pengguna dimiliki dari daftar ID badge yang diberikan. Kosong jika tidak ada dari badge yang diberikan pengguna. Tidak dijamin untuk berada dalam urutan yang sama dengan daftar masuk.

Contoh Kode

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

Hasil

Fungsi ini mengambil informasi tentang lencana yang diberikan ID-nya. Butuh waktu singkat untuk memuat informasi dari situs Roblox; panggilan berulang akan disimpan untuk durasi yang singkat. Ini mengembalikan kamus dengan lapangan berikut:


<tbody>
<tr>
<td><b>Nama</b></td>
<td>string</td>
<td>Nama dari lencana.</td>
</tr>
<tr>
<td><b>Deskripsi</b></td>
<td>string</td>
<td>Deskripsi dari lencana.</td>
</tr>
<tr>
<td><b>IconImageId</b></td>
<td>int64</td>
<td>ID aset gambar untuk lencana.</td>
</tr>
<tr>
<td><b>Diaktifkan</b></td>
<td>boolean</td>
<td>Menunjukkan apakah lencana tersedia untuk diberikan.</td>
</tr>
</tbody>
KunciJenisDeskripsi

Lihat juga:

Parameter

badgeId: number

ID badge dari badge whose informasi harus diambil.


Memberikan nilai

Sebuah kamus informasi tentang lencana yang ditentukan.

Contoh Kode

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

Hasil

Memeriksa dan mengembalikan apakah Player memiliki badge yang diberikan oleh <

Setiap lencana untuk setiap permainan dapat dipertanyakan, tidak peduli siapa yang membuat lencana itu atau pengalaman apa yang digunakannya.

Lihat juga:

Parameter

userId: number

Class.Player.UserId dari pemain untuk memeriksa kepemilikan dari lencana yang ditentukan.

badgeId: number

ID badge dari badge whose kepemilikan akan diperiksa.


Memberikan nilai

Menunjukkan apakah pengguna yang ditentukan memiliki lencana yang ditentukan.

Contoh Kode

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)

Acara