BadgeService
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Die Abzeichenservice -Klasse bietet Informationen und Funktionen, die sich auf Abzeichen beziehen.Abzeichen werden auf der gesamten Plattform verwendet, um die Errungenschaften und Aktivitäten eines Spieler:inzu erkennen.Wenn ein Abzeichen einem Spieler:inverliehen wird, wird es seinem Inventar hinzugefügt und auf seiner Profilseite angezeigt.
Code-Beispiele
Das folgende Beispiel erstellt eine awardBadge()-Funktion, die mögliche Fehler behandelt, die beim Verleihen eines Abzeichens auftreten können.Mit den Eigenschaften des Abzeichens, die über BadgeService:GetBadgeInfoAsync() abgerufen wurden, bestätigt es, dass das Abzeichen verliehen werden kann und dies mit BadgeService:AwardBadge() geschieht.
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local BADGE_ID = 0
local function awardBadge(player, badgeId)
-- Abrufen von Abzeicheninformationen
local success, badgeInfo = pcall(function()
return BadgeService:GetBadgeInfoAsync(badgeId)
end)
if success then
-- Bestätigen, dass das Abzeichen verliehen werden kann
if badgeInfo.IsEnabled then
-- Auszeichnungsschild
local awardSuccess, result = pcall(function()
return BadgeService:AwardBadge(player.UserId, badgeId)
end)
if not awardSuccess then
-- die Funktion AwardBadge hat einen Fehler geworfen
warn("Error while awarding badge:", result)
elseif not result then
-- die Funktion AwardBadge hat kein Abzeichen verliehen
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)
Das folgende Skript wartet auf den Einstieg eines Spielers und prüft, ob er ein bestimmtes Abzeichen besitzt.Dies ist nützlich, um einen eingeschränkten Bereich mit Kollisionsfilterung oder Teleportation zu erstellen, der nur funktioniert, wenn ein Spieler ein spezielles Abzeichen besitzt.
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeId = 00000000 -- Ändere dies zu deiner Abzeichen-ID
local function onPlayerAdded(player)
-- Überprüfe, ob der Spieler das Abzeichen hat
local success, hasBadge = pcall(function()
return BadgeService:UserHasBadgeAsync(player.UserId, badgeId)
end)
-- Wenn es einen Fehler gibt, geben Sie eine Warnung aus und beenden Sie die Funktion
if not success then
warn("Error while checking if player has badge!")
return
end
if hasBadge then
-- Kümmere dich um die Abzeichenbesitz des Spielers, wie nötig
print(player.Name, "has badge", badgeId)
end
end
-- Verbinde "Spieler hinzugefügt"-Ereignisse mit der Funktion "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)
Dieses Skript prüft, welche Abzeichen ein Benutzer besitzt, wenn er sich der Erfahrung anschließt.
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeIds = { 0000000000, 1111111111, 2222222222 } -- Ändere dies zu einer Liste deiner Abzeichen-IDs
local function onPlayerAdded(player)
-- Überprüfe, ob der Spieler eines der Abzeichen hat
local success, result = pcall(function()
return BadgeService:CheckUserBadgesAsync(player.UserId, badgeIds)
end)
-- Wenn es einen Fehler gibt, geben Sie eine Warnung aus und beenden Sie die Funktion
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().
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
Verleihe einem Spieler ein Abzeichen, basierend auf der ID jedes.
Überprüft eine Liste von Abzeichen-IDs gegen eine UserId und gibt eine Liste von Abzeichen-IDs zurück, die der Spieler besitzt.
Rufe Informationen über ein Abzeichen ab, das seine ID hat.
Überprüft, ob ein Spieler das Abzeichen hat, angesichts der Player.UserId und der Abzeichen-ID.
Eigenschaften
Methoden
AwardBadge
Verleiht ein Player ein Abzeichen mit der UserId und der Abzeichen-ID.Grenze für die Rate: 50 + 35 * [Anzahl der Benutzer] pro Minute .Um ein Abzeichen erfolgreich zu vergeben:
- Der Spieler muss derzeit mit dem Spiel verbunden sein.
- Der Spieler darf das Abzeichen noch nicht haben (beachte, dass ein Spieler ein verliehenes Abzeichen aus seinem Profil löschen und wieder mit dem Abzeichen ausgezeichnet werden kann).
- Das Abzeichen muss von einer serverseitigen Script oder einer ModuleScript schließlich von einem Script verliehen werden, nicht von einer LocalScript.
- Das Abzeichen muss an einem Ort verliehen werden, der Teil des Spiels ist, das mit dem Abzeichen verbunden ist.
- Das Abzeichen muss aktiviert sein; überprüfe dies mit der Eigenschaft IsEnabled des abgerufenen Abzeichens durch BadgeService:GetBadgeInfoAsync().
Siehe auch:
Parameter
Das Player.UserId des Benutzers, dem das Abzeichen verliehen werden soll.
Die ID des zu vergebenden Abzeichens.
Rückgaben
Boolean von true, wenn das Abzeichen erfolgreich verliehen wurde.
Code-Beispiele
Das folgende Beispiel erstellt eine awardBadge()-Funktion, die mögliche Fehler behandelt, die beim Verleihen eines Abzeichens auftreten können.Mit den Eigenschaften des Abzeichens, die über BadgeService:GetBadgeInfoAsync() abgerufen wurden, bestätigt es, dass das Abzeichen verliehen werden kann und dies mit BadgeService:AwardBadge() geschieht.
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local BADGE_ID = 0
local function awardBadge(player, badgeId)
-- Abrufen von Abzeicheninformationen
local success, badgeInfo = pcall(function()
return BadgeService:GetBadgeInfoAsync(badgeId)
end)
if success then
-- Bestätigen, dass das Abzeichen verliehen werden kann
if badgeInfo.IsEnabled then
-- Auszeichnungsschild
local awardSuccess, result = pcall(function()
return BadgeService:AwardBadge(player.UserId, badgeId)
end)
if not awardSuccess then
-- die Funktion AwardBadge hat einen Fehler geworfen
warn("Error while awarding badge:", result)
elseif not result then
-- die Funktion AwardBadge hat kein Abzeichen verliehen
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 Serien mit bis zu 10 Abzeichen. Verwende BadgeService:UserHasBadgeAsync() für einzelne Abzeichen-Abfragen.
Grenze für die Rate: 10 + 5* [Anzahl der Spieler] pro Minute auf jedem Server.
Jede Reihe von Abzeichen für jede Erfahrung kann abgefragt werden, egal, wer die Abzeichen erstellt hat oder für welche Erfahrungen sie sind.Jede UserId kann in einem Script verwendet werden, aber in einem LocalScript kann nur die UserId des lokalen Benutzers verwendet werden, dessen Client das Skript ausführt.
Parameter
Das UserId des Spielers, um nach Eigentum der angegebenen Abzeichen zu suchen.
Die Liste der IDs der Abzeichen, um die Eigentümerschaft zu überprüfen. Maximale Länge von 10.
Rückgaben
Die Liste der Abzeichen-IDs, die der angegebene Benutzer aus den bereitgestellten Abzeichen-IDs besitzt.Leer, wenn keiner der bereitgestellten Abzeichen vom angegebenen Benutzer besessen wird.Nicht garantiert, in derselben Reihenfolge wie die Eingabeliste zu sein.
Code-Beispiele
Dieses Skript prüft, welche Abzeichen ein Benutzer besitzt, wenn er sich der Erfahrung anschließt.
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeIds = { 0000000000, 1111111111, 2222222222 } -- Ändere dies zu einer Liste deiner Abzeichen-IDs
local function onPlayerAdded(player)
-- Überprüfe, ob der Spieler eines der Abzeichen hat
local success, result = pcall(function()
return BadgeService:CheckUserBadgesAsync(player.UserId, badgeIds)
end)
-- Wenn es einen Fehler gibt, geben Sie eine Warnung aus und beenden Sie die Funktion
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 beschafft Informationen über ein Abzeichen, basierend auf seiner ID.Es dauert einen kurzen 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:
<th>Typ</th><th>Beschreibung</th></tr></thead><tbody><tr><td><b>Namen</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>SymbolbildID</b></td><td>zahl64</td><td>Die Asset-ID des Bildes für das Abzeichen.</td></tr><tr><td><b>Ist aktiviert</b></td><td>bool</td><td>Weist an, ob das Abzeichen verfügbar ist, um verliehen zu werden.</td></tr></tbody>
Schlave |
---|
Siehe auch:
Parameter
Die Abzeichen-ID des Abzeichens, dessen Informationen abgerufen werden sollen.
Rückgaben
Ein Wörterbuch mit Informationen über das angegebene Abzeichen.
Code-Beispiele
This sample prints badge information fetched via BadgeService:GetBadgeInfoAsync().
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, angesichts seiner UserId und der Abzeichen-ID.Grenze für die Rate: 50 + 35 * [Anzahl der Spieler] pro Minute .Du kannst die Funktion vom Server aus in einem Script oder ModuleScript aufrufen, die schließlich von einem Script erforderlich ist, und der Benutzer in Frage muss auf dem Server vorhanden sein, damit die Abfrage ausführenwerden kann.Wenn die Methode vom Client in einem LocalScript aufgerufen wird, funktioniert sie nur für den lokalen Benutzer, dessen Client das Skript, das. PL: die Skriptsausführt.
Jedes Abzeichen für ein Spiel kann abgefragt werden, egal, wer das Abzeichen erstellt oder für welche Erfahrung es verwendet wird.
Siehe auch:
Parameter
Das Player.UserId des Spielers, um nach Eigentum des angegebenen Abzeichens zu suchen.
Die Abzeichen-ID des Abzeichens, dessen Eigentum überprüft wird.
Rückgaben
Zeigt an, ob der angegebene Benutzer das angegebene Abzeichen hat.
Code-Beispiele
Das folgende Skript wartet auf den Einstieg eines Spielers und prüft, ob er ein bestimmtes Abzeichen besitzt.Dies ist nützlich, um einen eingeschränkten Bereich mit Kollisionsfilterung oder Teleportation zu erstellen, der nur funktioniert, wenn ein Spieler ein spezielles Abzeichen besitzt.
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeId = 00000000 -- Ändere dies zu deiner Abzeichen-ID
local function onPlayerAdded(player)
-- Überprüfe, ob der Spieler das Abzeichen hat
local success, hasBadge = pcall(function()
return BadgeService:UserHasBadgeAsync(player.UserId, badgeId)
end)
-- Wenn es einen Fehler gibt, geben Sie eine Warnung aus und beenden Sie die Funktion
if not success then
warn("Error while checking if player has badge!")
return
end
if hasBadge then
-- Kümmere dich um die Abzeichenbesitz des Spielers, wie nötig
print(player.Name, "has badge", badgeId)
end
end
-- Verbinde "Spieler hinzugefügt"-Ereignisse mit der Funktion "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)