Paquete de misiones

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

El paquete de funciones Misiones ofrece funcionalidad de la caja para crear misiones que los jugadores puedan completar para lograr recompensas y progreso en tu experiencia.Todas las misiones deben tener un ID, categoría y una lista de tareas que los jugadores deben completar para terminar la misión.Sin embargo, la lista de tareas puede estar vacía, permitiendo que las recompensas de la misión se reclamen inmediatamente.

Al usar las opciones de personalización del paquete, puedes personalizar todas las misiones para cumplir con tus requisitos únicos de juego, como:

  • Crear misiones que a bordo de nuevos jugadores en tu experiencia y mejora la retención de D1.
  • Apuntar a la retención de D7 y D30 agregando objetivos a medio y largo plazo y un sentido de progreso.
  • Aumentar el compromiso al hacer visible los diversos sistemas en tu juego y recompensar a los jugadores por interactuar con ellos.

Obtener paquete

La tienda de creadores es una pestaña de la caja de herramientas que puedes usar para encontrar todos los recursos que se crean por Roblox y la comunidad de Roblox para su uso dentro de tus proyectos, incluidos aplicación de modelado, imágenes, mallas, sonido, audio, complemento, vídeo y fuentes.Puedes usar la Tienda de creadores para agregar uno o más recursos directamente a una experiencia abierta, incluidos paquetes de funciones!

Cada paquete de características requiere que el paquete de características Núcleo funcione correctamente.Una vez que los recursos del paquete de características Núcleo y Misiones estén dentro de tu inventario, puedes volver a utilizarlos en cualquier proyecto en la plataforma.

Para obtener los paquetes de su inventario en su experiencia:

  1. En la barra de herramientas, seleccione la pestaña Ver.

  2. Haga clic en Caja de herramientas . Se muestra la ventana Caja de herramientas .

    Studio's View tab with the Toolbox tool highlighted.
  3. En la ventana Caja de herramientas , haga clic en la pestaña Inventario . Se muestran los ordenados Mis modelos .

    Studio's Toolbox window with the Inventory tab highlighted.
  4. Haga clic en el azulejo Núcleo del mosaicode características , luego en el azulejo mosaicode características de misiones .Ambas carpetas de paquete se muestran en la ventana Explorador .

  5. Arrastra las carpetas del paquete a ReplicatedStorage .

Define misiones

Cada misión completable incluye un conjunto de tareas que deben terminar para completar la misión, opciones de configuración y metadatos de visualización opcionales, todos los cuales se pueden definir dentro de ReplicatedStorage.Missions.Configs.Missions , con tipos exportados del script Types en la misma carpeta.

Campos requeridos

Los siguientes campos son requeridos para cada misión.

NombreTipoDescripción
missionIdstringLa clave principal de la tabla de misiones. Todas las misiones se identifican por su propia cadena única.
categoryIdstringLas misiones deben pertenecer a una categoría y se agrupan por categoría en la interfaz de usuario.
taskstableUna lista de tareas que el jugador debe completar para completar la misión.

Desbloquear condiciones

Por defecto, las misiones se desbloquean automáticamente para los jugadores y se pueden completar exactamente una vez.Sin embargo, puedes usar las siguientes opciones de configuración opcionales para alterar este comportamiento.

NombreTipoDescripción
prerequisitestableUna lista de otros ID de misión que deben completarse antes de que se pueda desbloquear la misión.
manualOnlyboolDesactiva el desbloqueo automático de la misión.En cambio, se debe llamar una función para desbloquear la misión.Todas las otras condiciones de desbloqueo deben seguir siendo cumplidas también.
availableAfterUtcboolLa misión no se puede desbloquear antes del tiempo especificado en UTC.
availableBeforeUtcboolLa misión no se puede desbloquear después del tiempo especificado en UTC. Si se desbloquea pero no se completa antes de este tiempo, la misión fallará.
repeatableboolLa misión se desbloquea nuevamente después de que se complete.
repeatLimitnumberSi la misión es repetible, no se puede repetir más de este número de veces.
repeatCooldownSecondsnumberSi la misión es repetible, hay un retraso antes de que se desbloquee.
expireSecondsnumberSi la misión se desbloquea y no se completa dentro del número especificado de segundos, entonces fallará en su lugar.
expireCountOfflineboolSi la misión tiene expireSeconds y expireCountOffline está configurada como verdadera, el tiempo mientras el jugador no está realmente en la experiencia contará para la expiración de la misión.

Metadatos

Las misiones tienen metadatos que especifican cómo se mostrarán en la interfaz de usuario de misiones.Puedes usar los siguientes campos opcionales opcionales para personalizar su metadato.

NombreTipoDescripción
displayNamestringUn nombre para mostrar para la misión en la interfaz de usuario en lugar del missionId.
descriptionstringUn bloque de texto más largo que proporciona información adicional o contexto sobre la misión.
visibleAfterCompleteboolSi se establece en verdadero, la misión aparecerá en la lista de misiones incluso después de que se complete pero se marque como completada.
visibleAfterFailedboolSi se establece en verdadero, la misión aparecerá en la lista de misiones incluso después de que falló pero se marcó como fallida.
visibleBeforeUnlockedboolSi se establece en verdadero, la misión será visible pero se bloqueará en la lista de misiones antes de estar disponible para completarse.
invisibleWhileActiveboolSi se establece en verdadero, la misión será invisible incluso mientras esté activamente en curso.
rewardstableUna lista de información de visualización de recompensa.
  • assetID ( number ) - El ID de imagen que se muestra en la interfaz de usuario de misiones bajo las recompensas por una búsqueda. Esto es requerido si hay una recompensa presente.
  • displayName ( string ) - El nombre que se muestra en la interfaz de usuario de misiones debajo del ícono.

Definir tareas

Cada misión puede tener cero o más tareas.Si una misión tiene cero tareas, se puede reclamar inmediatamente después de que se desbloquee; si una misión tiene una o más tareas, una vez que las tareas estén completas, el jugador puede recoger cualquier recompensa asociada a la misión.Cada tarea tiene un taskId, que es la clave asociada con la tarea para una misión determinada.

Las tareas vienen en dos tipos:

  • Tareas programadas - Te permite iniciar y detener la tarea en diferentes puntos en el tiempo.Debe pasar una cierta cantidad de tiempo mientras el temporizador de la tarea está en marcha, luego la tarea está completa.
  • Contar tareas - Le permite agregar o establecer el progreso de la tarea. Cuando el progreso llega a un valor establecido, la tarea está completa.

Ambos tipos de tarea comparten los siguientes campos:

NombreTipoDescripción
taskTypestringSpecifica si el tipo de tarea es contar o cronometrar.
counterobject(Opcional) El contador que rastrea esta tarea.Los contadores son almacenamiento persistente específico del jugador para un número o un temporizador.Múltiples tareas pueden rastrear un contraofertaúnico; por ejemplo, si más de una tarea rastrea cuántas monedas ha recogido un jugador, entonces todas pueden compartir el mismo contraofertade "monedas".Estas tareas pueden rastrear de forma independiente las nuevas monedas recolectadas, comenzando por cero, o continuar contando desde el valor del contador (todas las monedas ya recolectadas).
  • counterId ( string ) - El ID del contador para rastrear. Use este ID para obtener o establecer el valor del contraoferta.
  • continueFromCounter (Opcional bool ) - Si se establece en verdad, el progreso de la tarea coincidirá directamente con el valor del contador en lugar de la cantidad que ha aumentado.
metadataobject(Opcional) Información sobre cómo se muestra la tarea en la interfaz de usuario.
  • displayName ( string ) - Nombre de la tarea, usado cuando se muestra en la interfaz de usuario.
  • numericType (Opcional string ) - cómo debe mostrarse el número de progreso en la tarea.
    • Fracción, ejemplo.5/10 o 5k/50k
    • Porcentaje, por ejemplo50% o 10%
    • Fracción larga, por ejemplo5/10 o 5000/50000
    • Boolean, por ejemplo.Incompleto
callToActionobject(Opcional) Un botón que activa una función de llamada de devolución.
  • callback ( function ) - Función desencadenada por el botón callToAction .
  • buttonText ( string ) - El texto que se muestra en la interfaz de usuario de botón.

Contar campos de tareas

Los contadores de tareas tienen un valor requerido. Cuando el progreso de la tarea llega a esta cantidad, la tarea se completa.

NombreTipoDescripción
goalCountnumber(Opcional) El progreso requerido para completar la tarea.

Campos de tareas de tiempo

Las tareas de tiempo tienen una cantidad objetivo de tiempo gastado, y se inician y se detienen. Cuando se cumple la cantidad objetivo de tiempo, la tarea se completa.

NombreTipoDescripción
goalSecondsnumberEl número de segundos que deben pasar para completar la tarea.
startImmediatelyboolSi la tarea debe comenzar a contar el tiempo tan pronto como se desbloquee, en lugar de solo después de que se inicie.
includesOfflineTimeboolSi la tarea debe incluir el tiempo que se pasa mientras el jugador no está activamente en la experiencia.

Configurar categorías

Las categorías no tienen que ser definidas explícitamente para ser utilizadas, ya que la categoría para una misión tiene valores predeterminados que se utilizarán.Sin embargo, puedes configurar estos valores en ReplicatedStorage.Missions.Configs.Categories para agregar efectos adicionales a la categoría.Las categorías se identifican por únicas CategoryIds, las mismas que se mencionan en la configuración de misiones.

NombreTipoDescripción
repeatDelaySecondsnumber(Opcional) Si se establecer, todas las misiones en la categoría se reinician cada vez que pasa la cantidad de tiempo especificada, y pueden desbloquearse, completarse y reclamar sus recompensas nuevamente.Esto se separa de las misiones repetibles, que se pueden repetir dentro de una categoría dada.

Integrar lógica del servidor

Echa un vistazo a ReplicatedStorage.Missions.Server.Examples.MissionsExample, que muestra cómo interactuará tu servidor con el paquete de características Misiones .

Necesitas principalmente conectar cuatro cosas una vez que arrastres el paquete de características Misiones a tu experiencia:

  1. Define misiones en tu configuración de misiones.

  2. Añade lógica a tu experiencia para actualizar el progreso de la tarea o los contadores a los que está vinculado el progreso.

    LEERME

    -- Aumenta el progreso en una misión de salto con una tarea de saltos
    Missions.addProgressToTask(player, "Jumping", "Jumps", 1)
    -- Inicia el temporizador en una misión de tiempo de batalla con una tarea de TimeInBattle
    Missions.startTimedTask(player, "BattlingTime", "TimeInBattle")
    -- Detiene el temporizador en una misión de tiempo de batalla con una tarea de TimeInBattle
    Missions.stopTimedTask(player, "BattlingTime", "TimeInBattle")
    -- Aumenta el progreso en todas las tareas vinculadas al contador de saltos
    CounterSystem.addCounter(player, "Jumps", 1)
    -- Inicia el temporizador en todas las tareas programadas vinculadas al contador de tiempo en contraoferta
    CounterSystem.startTimer(player, "TimeInBattle")
    -- Detiene el temporizador en todas las tareas programadas vinculadas al contador de tiempo en contraoferta
    CounterSystem.stopTimer(player, "TimeInBattle")
  3. Establecer los gestores de finalización de misiones y, opcionalmente, desbloquear o fallar los gestores.Usa el handler de finalización para otorgar las recompensas de la misión en tu experiencia.

    LEERME

    local function completeHandler(player: Player, missionId: Types.MissionId)
    print(`{player} completed mission {missionId}`)
    -- Recompensa al jugador sus recompensas.
    end
    Missions.setCompletionHandler(missionId, completeHandler)
  4. Desbloquea misiones que no se desbloquean automáticamente.La lógica del paquete de funciones Misiones garantiza que se cumplan todos los requisitos de misiones antes de que la misión esté completa y sus recompensas sean coleccionable.

    LEERME

    Missions.unlockMission(player, "Manual")

Configurar constantes

Las constantes para el paquete de características Núcleo viven en dos lugares:

  • Las constantes compartidas viven en ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants .

  • Las constantes específicas del paquete, en este caso el paquete de características Misiones , viven en ReplicatedStorage.Missions.Configs.Constants .

Además, puedes encontrar cadenas para la traducción separadas en una ubicación: ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings .

Personalizar componentes de UI

Al modificar los objetos del paquete, como colores, fuente y transparencia, puedes ajustar la presentación visual de la interfaz de usuario de tus misiones.Por ejemplo, en ReplicatedStorage.Missions.Configs.Constants , puedes habilitar SingleTaskMode para mostrar una barra de progreso para una tarea directamente en la misión para misiones que solo tienen una sola tarea.

Además, si tu experiencia ya tiene una interfaz de usuario existente con la que te gustaría integrarte con el paquete de características Misiones, el cliente contiene todas las funciones necesarias para obtener la información sobre las misiones de un jugador enviada desde el servidor.