BadgeService
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
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.
Amostras de código
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
Resumo
Métodos
Otorga un emblema a un jugador dado el ID de cada uno.
Revisa una lista de ID de insignia contra un UserId y devuelve una lista de ID de insignia que el jugador posee.
Obtener información sobre una insignia por su ID.
Revisa si un jugador tiene el emblema dado el Player.UserId y el ID del emblema.
Propriedades
Métodos
AwardBadge
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
El Player.UserId del usuario al que se le otorga el logro.
El ID de la insignia que se va a otorgar.
Devolução
Booleano de true si el logro se otorgó con éxito.
Amostras de código
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
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
La lista de ID de las insignias para verificar la propiedad. La máxima longitud es de 10.
Devolução
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.
Amostras de código
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
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>
Clave | Tipo | Descripción |
---|
Véase también:
Parâmetros
El ID de la insignia del emblema cuyas información se debe obtener.
Devolução
Un diccionario de información sobre el emblema especificado.
Amostras de código
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
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
El Player.UserId del jugador para verificar la propiedad del emblema especificado.
La ID de la insignia del emblema cuya propiedad se comprueba.
Devolução
Indica si el usuario especificado tiene el emblema especificado.
Amostras de código
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)