BadgeService
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
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
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)
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)
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)
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
Özellikler
Yöntemler
Her oyuncuya, her birinin kimliğine sahip olan oyuncuya bir rozet verin.
Bir list of badge ID'leri against a UserId and returns a list of badge ID'leri that the player owns.
Bir badağın ID'sini al.
Bir oyuncunun Player.UserId ve badge ID'siyle verilen rozetini kontrol eder.
Özellikler
Yöntemler
AwardBadge
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
Badge'in verileceği kullanıcının Player.UserId sınıfıdır.
Ödül edilecek olan rozetin ID'si.
Dönüşler
Badge başarıyla ödülendiysa true ifadesi.
Kod Örnekleri
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
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
Oyuncunun belirli rozetlerin sahibi olup olmadığını kontrol etmek için oyuncunun UserId 'id'si.
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
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
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>
Anahtar | Tür | Açıklama |
---|
Ayrıca bakınız:
Parametreler
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
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
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
Oyuncunun belirli bir rozetin sahibi olup olmadığını kontrol etmek için oyuncunun Player.UserId kaydını içerir.
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
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)