Un emblema es un premio especial que puedes regalar a los jugadores cuando completan un objetivo dentro de tu experiencia, como completar un objetivo difícil o jugar por un cierto tiempo. Tan pronto como un jugador recibe un emblema, se muestra dentro de la emblemas categoría de su inventario.
Creando Insignias
Puedes crear hasta 5 insignias gratis en un período de 24 horas (GMT) para cada experiencia que en posesión. Si quieres crear más dentro del período de 24 horas, cada insignia adicional cuesta 100 Robux.
Para crear un emblema:
Navegar al Panel del Creador .
Ubique la experiencia asociada, haga clic en el ⋯ en la esquina de su miniatura y seleccione Crear un emblema .
En la página de creación, haz clic en el botón Subir imagen y luego selecciona/confirma la imagen que quieres usar como íconodel emblema. Cuando crees una imagen para usar para un emblema, considera lo siguiendo:
Usa un modelo de 512×512 píxeles .
El proceso de subida recorta y ajusta el icono de la insignia a un ícono circular, por lo que evita poner detalles importantes fuera de los límites circulares.
Completa los siguientes campos:
- Nombre — Un título para la emblema.
- Descripción — Una descripción de lo que el jugador puede hacer para ganar el emblema.
- El emblema está habilitado — Si el emblema se habilitará cuando se cree. Los emblemas desactivados no se mostrarán en la sección emblemas de la página principal de la experiencia y no se pueden ganar por los jugadores.
Haga clic en el botón Crear una insignia . La nueva insignia se muestra dentro de la sección Comportamiento → Insignias en la página principal del 1>Creador1>. Si la nueva insignia está habilitada, también se mostrará debajo de la sección 4>Insignias4> de la página principal del experiencia.
Insignias de Script
Los flujos de trabajo comunes de la industria incluyen otorgar insignias , verificar si un jugador ha obtenido previamente una insignia en tu experiencia y obtener información de la insignia .
Localizando ID de insignia
La ID de una emblemaes su identificador único. Necesitarás esta ID al implementar flujos de trabajo como otorgar el premio a un jugador.
En la Crear página de inicio, navega a la sección Insignias de la experiencia asociada bajo Compromiso.
Haga clic en el botón ⋯ para obtener una insignia y seleccione Copiar ID de activo .
Otorgando Insignias
Puedes otorgar insignias a los jugadores en toda tu experiencia al llamar el método BadgeService:AwardBadge() en un servidor-side Script . Class.BadgeService:GetBadgeInfoAsync()</
A continuación, se muestra un ejemplo de una función segura para otorgar insignias a los jugadores.
local BadgeService = game:GetService("BadgeService")
local function awardBadge(player, badgeId)
-- Obtener información de la insignia
local success, badgeInfo = pcall(BadgeService.GetBadgeInfoAsync, BadgeService, badgeId)
if success then
-- Confirmar que el emblema se puede otorgar
if badgeInfo.IsEnabled then
-- Otorgar emblema
local awarded, errorMessage = pcall(BadgeService.AwardBadge, BadgeService, player.UserId, badgeId)
if not awarded then
warn("Error while awarding badge:", errorMessage)
end
end
else
warn("Error while fetching badge info!")
end
end
Revisando las insignias ganadas
El siguiente script comprueba cuando cualquier jugador ingresa a la experiencia, luego usa el método BadgeService:UserHasBadgeAsync() para verificar si ese jugador posee el emblema con el ID de correspondencia establecido en la variable ADGE_ID . También puedes verificar la propiedad del emblema en lotes usando el método Class.BadgeService:CheckUserBadgesAsync()
local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local BADGE_ID = 00000000 -- Cambia esto a tu ID de insignia
local function onPlayerAdded(player)
-- Compruebe si el jugador tiene la emblema
local success, hasBadge = pcall(BadgeService.UserHasBadgeAsync, BadgeService, player.UserId, BADGE_ID)
-- Si hay un error, emita un aviso y salga de la función
if not success then
warn("Error while checking if player has badge")
return
end
if hasBadge then
-- Manipula la propiedad de la insignia del jugador cuando sea necesario
end
end
-- Conecta los eventos "PlayerAdded" a la función "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)
Obteniendo información de la insignia
Para obtener información sobre una emblema, como su descripción o el ID de su icono, llame el método BadgeService:GetBadgeInfoAsync() con un ID de insignia . Por ejemplo:
local BadgeService = game:GetService("BadgeService")local BADGE_ID = 00000000 -- Cambia esto a tu ID de insignia-- Obtener información de la insignialocal success, result = pcall(BadgeService.GetBadgeInfoAsync, BadgeService, BADGE_ID)-- Extrae la informaciónif success thenprint("Badge:", result.Name)print("Enabled:", result.IsEnabled)print("Description:", result.Description)print("Icon:", "rbxassetid://" .. result.IconImageId)elsewarn("Error while fetching badge info:", result)end