BadgeService

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Oluşturulamaz
Hizmet

BadgeService sınıfı, başarılar ile ilgili bilgi ve işlev sağlar. Başarılar, platformun her yönünde bir oyuncunun başarılarını ve etkinliktanımak için kullanılır. Bir oyuncuya bir ödül verildiğinde, ödül onların envanterine eklenir ve profil sayfasında görüntülenir.

Kod Örnekleri

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

Özet

Yöntemler

Özellikler

Yöntemler

AwardBadge

Bekletir

Bir Class.Player bir rozet verir: Player ve bir rozet ID'siyle. Ödül sınırı: UserId dakika başına. Başarıyla bir rozet vermek için:

  • Oyuncu şu anda oyuna bağlı olmalıdır.
  • Oyuncu zaten bir rozete sahip değil (bir oyuncunun profilinden bir ödül rozeti silmesi ve ödül rozete tekrar verilmesi).
  • Rozet bir sunucu-taraflı Script veya bir ModuleScript sonunda bir Script tarafından verilmelidir, bir 1> Class.LocalScript1> değil.
  • rozet, bir ödül olarak oyunun bir parçası olan bir yere verilmelidir.
  • Badge aktifleştirilmelidir; bunu Class.BadgeService:GetBadgeInfoAsync() vasıflı badağın alındığında IsEnabled özelliğini kullanarak kontrol edin.

Ayrıca bakınız:

Parametreler

userId: number

Badge'in verileceği kullanıcının Player.UserId sınıfıdır.

badgeId: number

Ödül edilecek olan rozetin ID'si.


Dönüşler

Badge başarıyla ödülendiysa true ifadesi.

Kod Örnekleri

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

Bekletir

Bir list of badge ID'leri against a UserId and returns a list of badge ID'leri that the player owns.

Bu yöntem 10 rozet kadar toplu destekleyen yöntemleri destekler. Tek bir rozet görüntüsü için BadgeService:UserHasBadgeAsync() kullanın.

Oran sınırı: dakikada bir * 10 + 5 * katılımcı sayısı her sunucuda.

Herhangi bir deneyim için herhangi bir rozet grubu sorgulanabilir, kim oluşturduğu veya hangi deneyimler için olduğu fark etmez. Herhangi bir UserId kullanılabilir bir Script içinde, ancak bir Class.LocalScript</

Parametreler

userId: number

Oyuncunun belirli rozetlerin sahibi olup olmadığını kontrol etmek için oyuncunun UserId 'id'si.

badgeIds: Array

Badge'lerin sahibi olduğunu test etmek için kimlik listesinin. Maksimum uzunluğu 10.


Dönüşler

Verilen kullanıcının sahip olduğu rozet kimlikleri listenin kullanıcının sahip olduğu rozet kimliklerinden oluşur. Hiçbiri kullanıcının sahip olduğu rozetlerden oluşmuyor. Giriş listesindeki gibi olması garanti edilmiyor.

Kod Örnekleri

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

Bekletir

Bu işlev, bir ID'yi sağlayan bir rozetin bilgilerini alır. Roblox web sitesinden bilgi yüklemek birkaç saniye sürer; tekrar çağrılar kısa bir süre için kaydedilir. Aşağıdaki alanlarla bir sözlük döndürür:


<tbody>
<tr>
<td><b>İsim</b></td>
<td>dizi</td>
<td>rozetadı.</td>
</tr>
<tr>
<td><b>Açıklama</b></td>
<td>dizi</td>
<td>rozet.</td>
</tr>
<tr>
<td><b>Resim dosyası adı</b></td>
<td>int64</td>
<td>rozetiçin görüntünün ID'si.</td>
</tr>
<tr>
<td><b>Etkinleştirildi</b></td>
<td>boolean</td>
<td>Badge'nin ödüllendirilebilir olup olmadığını gösterir.</td>
</tr>
</tbody>
AnahtarTürAçıklama

Ayrıca bakınız:

Parametreler

badgeId: number

Etiketin bilgileri alınacak olan badağın ID'si.


Dönüşler

Belirlenen rozet hakkında bilgi içeren bir sözlük.

Kod Örnekleri

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

Bekletir

Checks and returns whether a Player bir badge given their Class.Player.UserId|UserId</

Herhangi bir oyun için herhangi bir rozet sorgulanabilir, kimin oluşturduğu veya rozetin kullanıldığı konusunda kimseye sorulmaz.

Ayrıca bakınız:

Parametreler

userId: number

Oyuncunun belirli bir rozetin sahibi olup olmadığını kontrol etmek için oyuncunun Player.UserId kaydını içerir.

badgeId: number

Kişinin sahibi olacağı oyunun rozet kimliği.


Dönüşler

Belirlenen kullanıcının belirlenen rozetini alıp almadığını gösterir.

Kod Örnekleri

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)

Etkinlikler