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

BaşarımServisi sınıfı, başarımlarla ilgili bilgi ve işlevsellik sağlar.Rozetler, bir oyuncunun başarılarını ve etkinliktanıtmak için platform genelinde kullanılır.Bir oyuncuya bir rozet verildiğinde, envanterlerine eklenir ve profil sayfasında gösterilir.

Kod Örnekleri

Aşağıdaki örnek, bir rozet verirken meydana gelebilecek potansiyel hataları ele alan bir awardBadge() fonksiyonu oluşturur.Etiketin BadgeService:GetBadgeInfoAsync() aracılığıyla alınan özelliklerini kullanarak, etiketin verilebileceğini ve bunu BadgeService:AwardBadge() kullanarak yaptığını onaylar.

Bir Başarım Verilmesi

local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local BADGE_ID = 0
local function awardBadge(player, badgeId)
-- Rozet bilgilerini alma
local success, badgeInfo = pcall(function()
return BadgeService:GetBadgeInfoAsync(badgeId)
end)
if success then
-- Rozetin verilebileceğini onayla
if badgeInfo.IsEnabled then
-- Ödül rozeti
local awardSuccess, result = pcall(function()
return BadgeService:AwardBadge(player.UserId, badgeId)
end)
if not awardSuccess then
-- Ödül Rozeti işlevi bir hata attı
warn("Error while awarding badge:", result)
elseif not result then
-- Ödül Rozeti işlevi bir rozet vermedi
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)

Aşağıdaki kod, herhangi bir oyuncunun oyuna girmesini bekler ve belirli bir rozete sahip olup olmadıklarını kontrol eder.Bu, sadece bir oyuncunun özel bir rozete sahip olduğu durumda çalışan çarpışma filtreleme veya ışınlanma ile sınırlı bir alan oluşturmak için yararlıdır.

Kazanılan Başarımlar Kontrol Ediliyor

local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeId = 00000000 -- Bunu rozet kimliğinize değiştirin
local function onPlayerAdded(player)
-- Oyuncunun rozetine sahip olup olmadığını kontrol et
local success, hasBadge = pcall(function()
return BadgeService:UserHasBadgeAsync(player.UserId, badgeId)
end)
-- Bir hata varsa, uyarı yayınlayın ve işlevi kapatın
if not success then
warn("Error while checking if player has badge!")
return
end
if hasBadge then
-- Oyuncunun rozet sahipliğini ihtiyaca göre ele alın
print(player.Name, "has badge", badgeId)
end
end
-- ""OyuncuEklendi" olaylarını "onPlayerAdded()" işlevine bağla
Players.PlayerAdded:Connect(onPlayerAdded)

Bu senaryo, bir kullanıcının deneyime katıldığında sahip olduğu rozetleri kontrol eder.

Toplu Olarak Kazanılan Başarımları Kontrol Etme

local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeIds = { 0000000000, 1111111111, 2222222222 } -- Bunu rozet kimliklerinizin bir listesine dönüştürün
local function onPlayerAdded(player)
-- Oyuncunun rozetlerden herhangi birine sahip olup olmadığını kontrol et
local success, result = pcall(function()
return BadgeService:CheckUserBadgesAsync(player.UserId, badgeIds)
end)
-- Bir hata varsa, uyarı yayınlayın ve işlevi kapatın
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

Özet

Yöntemler

Özellikler

Yöntemler

AwardBadge

Bekletir

Parametreler

userId: number
Varsayılan değer: ""
badgeId: number
Varsayılan değer: ""

Dönüşler

Kod Örnekleri

Bir Başarım Verilmesi

local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local BADGE_ID = 0
local function awardBadge(player, badgeId)
-- Rozet bilgilerini alma
local success, badgeInfo = pcall(function()
return BadgeService:GetBadgeInfoAsync(badgeId)
end)
if success then
-- Rozetin verilebileceğini onayla
if badgeInfo.IsEnabled then
-- Ödül rozeti
local awardSuccess, result = pcall(function()
return BadgeService:AwardBadge(player.UserId, badgeId)
end)
if not awardSuccess then
-- Ödül Rozeti işlevi bir hata attı
warn("Error while awarding badge:", result)
elseif not result then
-- Ödül Rozeti işlevi bir rozet vermedi
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

Parametreler

userId: number
Varsayılan değer: ""
badgeIds: Array
Varsayılan değer: ""

Dönüşler

Kod Örnekleri

Toplu Olarak Kazanılan Başarımları Kontrol Etme

local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeIds = { 0000000000, 1111111111, 2222222222 } -- Bunu rozet kimliklerinizin bir listesine dönüştürün
local function onPlayerAdded(player)
-- Oyuncunun rozetlerden herhangi birine sahip olup olmadığını kontrol et
local success, result = pcall(function()
return BadgeService:CheckUserBadgesAsync(player.UserId, badgeIds)
end)
-- Bir hata varsa, uyarı yayınlayın ve işlevi kapatın
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

Parametreler

badgeId: number
Varsayılan değer: ""

Dönüşler

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

Parametreler

userId: number
Varsayılan değer: ""
badgeId: number
Varsayılan değer: ""

Dönüşler

Kod Örnekleri

Kazanılan Başarımlar Kontrol Ediliyor

local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeId = 00000000 -- Bunu rozet kimliğinize değiştirin
local function onPlayerAdded(player)
-- Oyuncunun rozetine sahip olup olmadığını kontrol et
local success, hasBadge = pcall(function()
return BadgeService:UserHasBadgeAsync(player.UserId, badgeId)
end)
-- Bir hata varsa, uyarı yayınlayın ve işlevi kapatın
if not success then
warn("Error while checking if player has badge!")
return
end
if hasBadge then
-- Oyuncunun rozet sahipliğini ihtiyaca göre ele alın
print(player.Name, "has badge", badgeId)
end
end
-- ""OyuncuEklendi" olaylarını "onPlayerAdded()" işlevine bağla
Players.PlayerAdded:Connect(onPlayerAdded)

Olaylar