BadgeService

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

No creable
Servicio

La clase BadgeService proporciona información y funcionalidad relacionada con los insignias . Las insignias se utilizan en toda la plataforma para reconocer los logros y la actividad de un jugador. Al otorgar una insignia a un jugador, se agrega a su inventario y se muestra en su página de perfil.

Muestras de código

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

Resumen

Métodos

Propiedades

Métodos

AwardBadge

Proporciona

Otorga a Player una insignia con el UserId y el ID de la insignia. Límite de tasa: 50 + 35* [número de usuarios] por minuto . Para otorgar con éxito una emblema:

  • El jugador debe estar conectado al juego.
  • El jugador no debe tener el emblema (nota que un jugador puede eliminar un emblema otorgado de su perfil y otorgarle el emblema de nuevo).
  • El emblema debe ser otorgado desde un lado del servidor Script o un ModuleScript eventualmente requerido por un Script , no desde un 1> Class.LocalScript1> .
  • El emblema debe otorgarse en un lugar que sea parte del juego asociado con el emblema.
  • El emblema debe estar habilitado; verifíquelo usando la propiedad IsEnabled del emblema obtenida a través de BadgeService:GetBadgeInfoAsync() .

Véase también:

Parámetros

userId: number

El Player.UserId del usuario al que se le otorga el logro.

badgeId: number

El ID de la insignia que se va a otorgar.


Devuelve

Booleano de true si el logro se otorgó con éxito.

Muestras de código

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

Proporciona

Revisa una lista de ID de insignia contra un UserId y devuelve una lista de ID de insignia que el jugador posee.

Este método soporta lotes de hasta 10 insignias. Usa BadgeService:UserHasBadgeAsync() para obtener una sola búsqueda de insignias.

Límite de tasa: 10 + 5 * [número de jugadores] por minuto en cada servidor.

Cualquier conjunto de insignias para cualquier experiencia se puede buscar, sin importar quién creó las insignias o para qué experiencias están. Cualquier UserId se puede usar en un Script, pero en un LocalScript, solo el 2>Class.Player.UserId|UserId2> del usuario local cuyo cliente está ejecutando el script se puede

Parámetros

userId: number

El UserId del jugador para verificar la propiedad de las insignias especificadas.

badgeIds: Array

La lista de ID de las insignias para verificar la propiedad. La máxima longitud es de 10.


Devuelve

La lista de ID de la insignia que el usuario ha obtenido de los ID de la insignia proporcionados. Vacío si ninguna de las insignias proporcionadas pertenece al usuario. No está garantizado de estar en el mismo orden que la lista de entrada.

Muestras de código

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

Proporciona

Esta función obtiene información sobre un emblema dado su ID. Toma un breve momento para cargar la información del sitio web de Roblox; llamadas repetidas se almacenarán por un corto período de tiempo. Regresa un diccionario con los siguientes campos:


<tbody>
<tr>
<td><b>Nombre</b></td>
<td>cadena</td>
<td>El nombre de la emblema.</td>
</tr>
<tr>
<td><b>Descripción</b></td>
<td>cadena</td>
<td>La descripción de la emblema.</td>
</tr>
<tr>
<td><b>IconImageId</b></td>
<td>int64</td>
<td>El ID de la imagen para el emblema.</td>
</tr>
<tr>
<td><b>Está Habilitado</b></td>
<td>booleano</td>
<td>Indica si el emblema está disponible para ser otorgado.</td>
</tr>
</tbody>
ClaveTipoDescripción

Véase también:

Parámetros

badgeId: number

El ID de la insignia del emblema cuyas información se debe obtener.


Devuelve

Un diccionario de información sobre el emblema especificado.

Muestras de código

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

Proporciona

Revisa y devuelve si un Player posee un emblema dado su UserId

Cualquier insignia para cualquier juego se puede buscar, no importa quién creó la insignia o para qué experiencia se usa.

Véase también:

Parámetros

userId: number

El Player.UserId del jugador para verificar la propiedad del emblema especificado.

badgeId: number

La ID de la insignia del emblema cuya propiedad se comprueba.


Devuelve

Indica si el usuario especificado tiene el emblema especificado.

Muestras de código

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)

Eventos