BadgeService
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
La clase BadgeService proporciona información y funcionalidad relacionada con 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
El siguiente ejemplo crea una función awardBadge() que maneja errores potenciales que pueden ocurrir al otorgar una insignia.Al usar las propiedades de la insignia obtenida a través de BadgeService:GetBadgeInfoAsync(), confirma que la insignia se puede otorgar y lo hace usando BadgeService:AwardBadge() .
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local BADGE_ID = 0
local function awardBadge(player, badgeId)
-- Obtener información de la insignia
local success, badgeInfo = pcall(function()
return BadgeService:GetBadgeInfoAsync(badgeId)
end)
if success then
-- Confirma que se puede otorgar la insignia
if badgeInfo.IsEnabled then
-- Insignia de premio
local awardSuccess, result = pcall(function()
return BadgeService:AwardBadge(player.UserId, badgeId)
end)
if not awardSuccess then
-- la función de insignia de premio lanzó un error
warn("Error while awarding badge:", result)
elseif not result then
-- la función de medalla de premio no otorgó una medalla
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)
El siguiente script espera a que cualquier jugador entre al juego y verifica si posee una insignia específica.Esto es útil para crear una zona restringida con filtrado de colisiones o teletransportación que solo funciona si un jugador posee una insignia especial.
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeId = 00000000 -- Cambia esto a tu ID de insignia
local function onPlayerAdded(player)
-- Compruebe si el jugador tiene la insignia
local success, hasBadge = pcall(function()
return BadgeService:UserHasBadgeAsync(player.UserId, badgeId)
end)
-- Si hay un error, emite una advertencia y sal de la función
if not success then
warn("Error while checking if player has badge!")
return
end
if hasBadge then
-- Manipule la propiedad de la insignia del jugador según sea necesario
print(player.Name, "has badge", badgeId)
end
end
-- Conecta eventos "PlayerAdded" a la función "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)
Este script comprueba qué insignias posee un usuario cuando se une a la experiencia.
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeIds = { 0000000000, 1111111111, 2222222222 } -- Cambia esto a una lista de tus ID de insignia
local function onPlayerAdded(player)
-- Compruebe si el jugador tiene alguna de las insignias
local success, result = pcall(function()
return BadgeService:CheckUserBadgesAsync(player.UserId, badgeIds)
end)
-- Si hay un error, emite una advertencia y sal de la funció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().
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
Otorga una insignia a un jugador dado el ID de cada uno.
Comprueba 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 dada su ID.
Comprueba si un jugador tiene la insignia dada la Player.UserId y la ID de la insignia.
Propiedades
Métodos
AwardBadge
Parámetros
Devuelve
Muestras de código
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local BADGE_ID = 0
local function awardBadge(player, badgeId)
-- Obtener información de la insignia
local success, badgeInfo = pcall(function()
return BadgeService:GetBadgeInfoAsync(badgeId)
end)
if success then
-- Confirma que se puede otorgar la insignia
if badgeInfo.IsEnabled then
-- Insignia de premio
local awardSuccess, result = pcall(function()
return BadgeService:AwardBadge(player.UserId, badgeId)
end)
if not awardSuccess then
-- la función de insignia de premio lanzó un error
warn("Error while awarding badge:", result)
elseif not result then
-- la función de medalla de premio no otorgó una medalla
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
Parámetros
Devuelve
Muestras de código
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeIds = { 0000000000, 1111111111, 2222222222 } -- Cambia esto a una lista de tus ID de insignia
local function onPlayerAdded(player)
-- Compruebe si el jugador tiene alguna de las insignias
local success, result = pcall(function()
return BadgeService:CheckUserBadgesAsync(player.UserId, badgeIds)
end)
-- Si hay un error, emite una advertencia y sal de la funció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
Parámetros
Devuelve
Muestras 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
Parámetros
Devuelve
Muestras de código
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local badgeId = 00000000 -- Cambia esto a tu ID de insignia
local function onPlayerAdded(player)
-- Compruebe si el jugador tiene la insignia
local success, hasBadge = pcall(function()
return BadgeService:UserHasBadgeAsync(player.UserId, badgeId)
end)
-- Si hay un error, emite una advertencia y sal de la función
if not success then
warn("Error while checking if player has badge!")
return
end
if hasBadge then
-- Manipule la propiedad de la insignia del jugador según sea necesario
print(player.Name, "has badge", badgeId)
end
end
-- Conecta eventos "PlayerAdded" a la función "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)