Una Insignia es un premio especial que puedes regalar a los jugadores cuando cumplan un objetivo dentro de tu experiencia, como completar un objetivo difícil o jugar durante una cierta cantidad de tiempo. Tan pronto como un jugador recibe una Insignia, se muestra dentro de la categoría Insignias de su inventario.
Crear insignias
Cuando crees una imagen para usar en tu Insignia, considera los siguientes requisitos:
- Usa una plantilla de 512 x 512 píxeles.
- Guarda la imagen en formato .jpg, .png, .tga o .bmp.
- No incluyas detalles importantes fuera de los límites circulares, ya que el proceso de carga recorta la insignia final en una imagen circular.
Puedes crear hasta 5 Insignias de forma gratuita en un período de 24 horas (GMT) por cada experiencia que poseas. Si deseas crear más Insignias en el período de 24 horas, habrá un costo adicional de 100 Robux por cada Insignia adicional.
Para crear una Insignia:
Dirígete a la Interfaz de creación.
Haz clic en la experiencia para la que quieres crear una Insignia. Se muestra la página Descripción general de la experiencia.
En la navegación de la izquierda, selecciona Artículos asociados. La página Artículos asociados se muestra para esa experiencia específica con la sección Insignias abierta de forma predeterminada.
Haz clic en el botón CREAR INSIGNIA. Se muestra la página Crear una Insignia.
Haz clic en el botón CARGAR IMAGEN. Se muestra un explorador de archivos.
Selecciona la imagen que deseas mostrar como icono y, a continuación, haz clic en el botón Abrir.
Rellena los siguientes campos:
- Nombre: un título para tu Insignia
- Descripción: una descripción de lo que el jugador puede hacer para ganar la Insignia
Haz clic en el botón CREAR Insignia o Comprar por 100 Robux si ya has creado 5 Insignias en un período de 24 horas. La Insignia se muestra en la sección Insignias de la página Artículos asociados, así como en la sección Insignias de la página principal de la experiencia.
Localizar las identificaciones de las insignias
La identificación (ID) de la insignia es el identificador único de una Insignia. Necesitarás esta identificación cuando hagas scripting de Insignias.
Para localizar una identificación de Insignia:
Ve a la sección Insignias de la página Artículos asociados de una experiencia.
Pon el cursor sobre la miniatura de Insignia y haz clic en el botón
⋯ . Se muestra un menú contextual. Selecciona Copiar la ID del activo. La identificación de la Insignia se copia en tu portapapeles.
Scripting de Insignias
Usa scripting para hacer el seguimiento de las Insignias en tus experiencias. Los casos de uso comunes de scripting de Insignias incluyen otorgar Insignias, verificar si un jugador ha ganado previamente una Insignia en tu experiencia y obtener información de Insignias.
Conceder Insignias
Puedes premiar a los jugadores con Insignias a lo largo de tu experiencia llamando a la función BadgeService:AwardBadge() en un servidor Script. BadgeService:GetBadgeInfoAsync() devuelve propiedades de la Insignia, con inclusión de IsEnabled, que confirma si la Insignia se puede otorgar a un jugador o no. Debes llamar a esto para comprobarlo antes de otorgar una Insignia.
El siguiente script contiene un ejemplo de una función segura para otorgar Insignias a los jugadores.
local BadgeService = game: GetService("BadgeService")
local function awardBadge(player, badgeId)
-- Fetch Badge information
local success, badgeInfo = pcall(BadgeService.GetBadgeInfoAsync, BadgeService, badgeId)
if success then
-- Confirm that badge can be awarded
if badgeInfo. IsEnabled then
-- Award badge
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
end
end
Revisar las insignias ganadas
El siguiente script comprueba cuando cualquier jugador ingresa a la experiencia y, a continuación, verifica si ese jugador posee la Insignia con la ID que coincide según se establece en la variable badgeID.
local BadgeService = game: GetService("BadgeService")
local Players = game: GetService("Players")
local BADGE_ID = 00000000 -- Change this to your Badge ID
local function onPlayerAdded(player)
-- Check if the player has the Badge
local success, hasBadge = pcall(BadgeService.UserHasBadgeAsync, BadgeService, player.UserId, badgeID)
-- 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
end
end
-- Connect "PlayerAdded" events to the "onPlayerAdded()" function
Players.
return
end
if hasBadge then
-- Handle player's Badge ownership as needed
end
end
-- Connect "PlayerAdded" events to the "onPlayerAdded()" function
Players.PlayerAdded:Connect(onPlayerAdded)
Obtener información de la Insignia
Para obtener información sobre una Insignia, como su descripción o su identificación de objeto de icono, usa la función BadgeService:GetBadgeInfoAsync() con badge ID. Por ejemplo:
local BadgeService = game: GetService("BadgeService")local BADGE_ID = 00000000 -- Change this to your Badge ID-- Fetch Badge informationlocal success, result = pcall(BadgeService.GetBadgeInfoAsync, BadgeService, BADGE_ID)print(success, result)-- Output the informationif 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