BadgeService
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Die BadgeService -Klasse bietet Informationen und Funktionen, die sich auf die Abzeichen beziehen. Abzeichen werden auf der ganzen Plattform verwendet, um die Erfolge und Aktivitäten eines Spieler:inzu erkennen. Wenn ein Abzeichen einem Spieler:invergeben wird, wird es in sein Inventar hinzugefügt und auf seiner Profilseite angezeigt.
Code-Beispiele
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
Zusammenfassung
Methoden
Gewähren Sie einem Spieler ein Abzeichen, das die ID jedes enthält.
Überprüft eine Liste von Abzeichen-IDs gegen eine UserId und gibt eine Liste von Abzeichen-IDs zurück, die der Spieler besitzt.
Besorgen Sie sich Informationen über ein Abzeichen, das seine ID anzeigt.
Überprüft, ob ein Spieler das Abzeichen erhalten hat, das Player.UserId und die Abzeichen-ID.
Eigenschaften
Methoden
AwardBadge
Gewährt einem Player ein Abzeichen mit der UserId und der Abzeichen-ID. Preislimit: 50 + 35 * [Anzahl der Benutzer] pro Minute. Um ein Abzeichen erfolgreich zu vergeben:
- Der Spieler muss derzeit mit dem Spiel verbunden sein.
- Der Spieler muss das Abzeichen noch nicht haben (Beachten Sie, dass ein Spieler das abgegebene Abzeichen aus seinem Profil löschen und das Abzeichen erneut erhalten kann).
- Das Abzeichen muss von einem Server-seitigen Script oder einem ModuleScript vergeben werden, das schließlich von einem Script erforderlich ist, nicht von einem 2>Class.LocalScript2>.
- Das Abzeichen muss in einem Ort vergeben werden, der Teil des Spiels ist, mit dem das Abzeichen verbunden ist.
- Das Abzeichen muss aktiviert sein; überprüfen Sie dies mit der IsEnabled Eigenschaft des Abzeichens, die über BadgeService:GetBadgeInfoAsync() ermittelt wurde.
Siehe auch:
Parameter
Der Player.UserId des Benutzers, dem das Abzeichen zugewiesen werden soll.
Die ID des Abzeichens, das vergeben werden soll.
Rückgaben
Boolean von true, wenn das Abzeichen erfolgreich vergeben wurde.
Code-Beispiele
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
Überprüft eine Liste von Abzeichen-IDs gegen eine UserId und gibt eine Liste von Abzeichen-IDs zurück, die der Spieler besitzt.
Diese Methode unterstützt bis zu 10 Abzeichen. Verwende BadgeService:UserHasBadgeAsync() für einzelne Abzeichen-Anfragen.
Rate-Limit: 10 + 5 * [Anzahl der Spieler] pro Minute auf jedem Server.
Jedes Set von Abzeichen für jeden Erlebnisbereich kann abgerufen werden, unabhängig davon, wer die Abzeichen erstellt hat oder für welche Erlebnisse sie gedacht sind. Jedes UserId kann in einem Script verwendet werden, aber in einem LocalScript nur der 2>Class.Player.UserId|userId
Parameter
Die Liste der IDs der Abzeichen, die Besitz überprüft werden sollen. Maximale Länge von 10.
Rückgaben
Die Liste der Badge-IDs, die der Benutzer aus den angegebenen Badge-IDs besitzt. Leer, wenn keines der angegebenen Badge besitzt wird. Keine Garantie, dass die Liste in der gleichen Reihenfolge wie die Eingabeliste ist.
Code-Beispiele
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
Diese Funktion ruft Informationen über ein Badge ab, das seine ID gibt. Es dauert einen Moment, um die Informationen von der Roblox-Website zu laden; wiederholte Anrufe werden für eine kurze Zeit gespeichert. Es gibt ein Wörterbuch mit den folgenden Feldern zurück:
<tbody><tr><td><b>Name</b></td><td>string</td><td>Der Name des Abzeichens.</td></tr><tr><td><b>Beschreibung</b></td><td>string</td><td>Die Beschreibung des Abzeichens.</td></tr><tr><td><b>IconImageId</b></td><td>int64</td><td>Die Asset-ID des Bildes für das Abzeichen.</td></tr><tr><td><b>aktiviert</b></td><td>boolean</td><td>Zeigt an, ob das Abzeichen vergeben werden kann.</td></tr></tbody>
Schlüssel | Typ | Beschreibung |
---|
Siehe auch:
Parameter
Die Abzeichen-ID des Abzeichens, dessen Informationen abgerufen werden sollen.
Rückgaben
Ein Wörterbuch über das spezifische Abzeichen.
Code-Beispiele
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
Überprüft und gibt zurück, ob ein Player ein Abzeichen besitzt, das seinem Class.Player.UserId|UserId
Jedes Abzeichen für ein beliebiges Spiel kann abgerufen werden, egal, wer das Abzeichen erstellt hat oder für welche Erfahrung es verwendet wird.
Siehe auch:
Parameter
Der Player.UserId des Spielers, um nach Besitz des angegebenen Abzeichens zu überprüfen.
Die Badge-ID des Badges, whose Ownership überprüft wird.
Rückgaben
Zeigt an, ob der angegebene Benutzer das angegebene Abzeichen hat.
Code-Beispiele
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)