Saltar al contenido principal

MMOItems

Entrega, cuenta y sigue objetos de MMOItems en misiones, con descripciones de objetos dinámicas y paginadas.

De pagov2.4RPG y progresión

Descripción general​

MMOItems conecta el plugin MMOItems con TypeWriter. Eliges un objeto por su tipo de MMOItems (por ejemplo SWORD) y su id, y TypeWriter puede darlo, quitarlo, contarlo o reaccionar cuando un jugador fabrica, usa, equipa o engasta una gema en él.

La extensión incluye además un Advanced Tooltip System. Reescribe al vuelo el lore de los objetos de MMOItems, como paquetes enviados al jugador, de modo que un mismo objeto puede mostrar varias páginas, una marca en vivo de "requisitos cumplidos" y una comparación de estadísticas con otro objeto. El objeto almacenado nunca se modifica.

Todo se configura en el panel web: los tipos e ids de objetos se sugieren a partir de tu configuración de MMOItems.

Características​

  • Dar y quitar objetos — entrega o quita objetos de MMOItems, a un jugador o a un grupo entero, desde una lista o desde un fact.
  • Recuento de objetos — un fact cuenta los objetos coincidentes en el inventario (armadura, mano secundaria y cursor incluidos) y/o en la mano principal.
  • Evento y objetivo de uso — reacciona al clic derecho o al consumo de un objeto de MMOItems.
  • Evento y objetivo de fabricación — reacciona a los objetos fabricados en una estación de crafteo de MMOItems, con un filtro de estación opcional.
  • Evento y objetivo de gema — reacciona a una gema aplicada a un objeto, filtrada por objeto de destino y gema.
  • Objetivo de equipar — cuenta las piezas de MMOItems puestas en una ranura de armadura.
  • Objetivo de lanzar habilidad — cuenta los lanzamientos de una habilidad de MMOItems.
  • Objetivo de posesión de objetos — se completa cuando el jugador tiene suficientes objetos seleccionados, con modificadores de finalización.
  • Variable de objeto — usa un objeto de MMOItems en cualquier lugar donde se espere un objeto.
  • Tooltips avanzados — lore de varias páginas, marcas de requisitos, comparación de estadísticas e iconos de categoría.

Instalación​

  1. Instala MMOItems y su librería MythicLib. Instala también MMOCore si quieres que las marcas de requisitos del sistema de tooltips comprueben clase, nivel y profesiones.
  2. Instala la extensión oficial Quest de TypeWriter (los objetivos la necesitan).
  3. Obtén la extensión en las tiendas (consulta los botones del panel de resumen de arriba) y coloca el JAR en plugins/Typewriter/extensions/.
  4. Reinicia el servidor. TypeWriter 0.9 se apoya en PacketEvents, que el sistema de tooltips usa para reescribir el lore de los objetos.

Primeros pasos​

Recompensa a los jugadores con una espada cuando fabriquen una poción en una estación de alquimia:

  1. En el panel web de TypeWriter, abre una página de sequence y añade una acción Give MMOItem.
  2. Deja items vacío. Establece item con un type (por ejemplo SWORD) y un id (por ejemplo STEEL_BLADE), y amount en 1.
  3. Abre una página static y añade un Craft Objective. Rellena quest, display, amount y un fact persistente en fact para guardar el progreso.
  4. En items, añade el objeto de MMOItems fabricado (vacío significa cualquier objeto) y, si hace falta, stationIds con el id de la estación de MMOItems.
  5. Establece onComplete con la acción Give MMOItem y publica.

Para reaccionar solo una vez sin seguir el progreso, usa en su lugar el Craft Event y enlaza la acción Give en sus triggers.

Modo creativo

Los eventos y los tooltips ignoran a los jugadores en modo Creativo. Prueba con un jugador en Supervivencia o Aventura.

Cómo funciona​

La coincidencia de objetos compara el tipo y el id de MMOItems, ignorando mayúsculas y minúsculas. Un tipo y un id vacíos coinciden con cualquier objeto de MMOItems. Los objetos que no son de MMOItems nunca coinciden.

Los objetivos basados en el campo fact (fabricar, usar, equipar, gema, lanzar habilidad, abrir mesa de crafteo) escriben su progreso en un fact persistente (con caché) y activan onComplete una vez cuando se alcanza amount.

Tooltips avanzados​

Añade una entrada Advanced Tooltip System en una página de manifest y publica. Se aplica a todos los objetos de MMOItems en el inventario, la barra rápida y los contenedores, para todos los jugadores fuera del modo Creativo.

Solo supervivencia y aventura

La paginación y el lore avanzado solo se aplican en supervivencia y aventura. En creativo se muestra el lore original de MMOItems tal cual, etiquetas incluidas, porque el cliente creativo devuelve los objetos tal como los muestra y reescribir el lore alteraría el objeto real de forma permanente.

Si el sistema está desactivado, overrideDefaultLore está desactivado o no hay ninguna entrada publicada, las etiquetas se eliminan y todo el lore queda en una sola página.

Edita el lore de tus objetos de MMOItems (en el editor de objetos de MMOItems o en su configuración) y añade estas etiquetas:

EtiquetaEfecto
<page_break>Empieza una página nueva. Las páginas vacías se descartan.
<category_image>Se sustituye por el icono establecido en categoryImages para el tipo de objeto.
<pagination_indicator>Se sustituye por paginationIndicator.
<comparison_indicator>Se sustituye por comparisonIndicator.
<requirement_met> y <requirement_not_met>Solo se muestra una de las dos, usando requirementMetSymbol o requirementNotMetSymbol.
<comparison_value> y <comparison_sign>La diferencia de estadística respecto al objeto base de comparación, y un + cuando es positiva.

Las páginas y la comparación se controlan con teclas, establecidas con paginationKeybind (por defecto SWAP_OFFHAND, la tecla F) y comparisonKeybind (por defecto SNEAK). Los valores aceptados son SWAP_OFFHAND, DROP, SNEAK, SHIFT_LEFT, SHIFT_RIGHT, LEFT_CLICK, RIGHT_CLICK y MIDDLE_CLICK.

  • Pulsar la tecla de paginación sobre un objeto de MMOItems siempre cancela la acción de vanilla (intercambiar, soltar, clic) para evitar accidentes, incluso en objetos de una sola página. Las páginas vuelven a la página 1, con un breve enfriamiento entre pulsaciones.
  • Pulsar la tecla de comparación sobre un objeto lo establece como base de comparación. Volver a pulsarla sobre el mismo objeto lo borra. Solo se comparan objetos del mismo tipo de MMOItems, y la base se borra cuando se cierra el inventario.
  • Los requisitos se comprueban contra los datos de MMOCore: nivel, clase, nivel de profesión y permiso. Si algún requisito falla, se muestran todos los <requirement_not_met>.

Formato de visualización de objetivos​

La línea de un objetivo en el rastreador de misiones no está fijada en el código. Se lee de snippets de TypeWriter, que se editan en plugins/Typewriter/snippets.yml. Placeholders: <display> (el campo display del objetivo), <current> y <required>; los placeholders de PlaceholderAPI también se procesan.

SnippetUsado porPor defecto
advancedQuest.displayObjetivos Craft, Use, Equip, Gem Stone, Ability Cast y Open Crafting Table, mientras están en curso<display> (<current>/<required>), en tonos grises
advancedQuest.completedLos mismos objetivos, una vez alcanzado amount✔, luego el <display> tachado y el progreso
mmoitems.countObjective.displayMmoitems Count Objective, mientras está en curso<display> (<current>/<required>), en tonos grises
mmoitems.countObjective.completedEl mismo objetivo, una vez alcanzado amount<display> tachado en verde, luego el progreso

Las dos claves advancedQuest.* se comparten con las demás extensiones de objetivos de BTC: una sola edición cambia el estilo de todas.

Entradas​

16 entradas, generadas a partir del código fuente de la extensión.

Acciones3
Eventos3
Objetivos7
Hechos1
Variables1
Manifiestos1

Solución de problemas​

La lista de tipos o ids de objetos está vacía en el panel. Las listas provienen de la configuración de MMOItems del servidor en ejecución. Asegúrate de que MMOItems está cargado y tiene al menos una plantilla de ese tipo, y vuelve a abrir la página en el panel.

Give MMOItem no hace nada. La acción ejecuta mmoitems give <type> <id> <player> <amount> desde la consola. Un type desconocido omite el objeto en silencio, así que revisa la ortografía del tipo. Si fact está establecido, solo se dan los objetos proporcionados por ese fact (y que coincidan con item / items cuando están rellenados), con el amount de la acción.

Remove MMOItem no quita nada. Por defecto solo se analiza el inventario (checkInventory está activado, checkHand desactivado). El análisis del inventario incluye armadura, mano secundaria y cursor. Activa checkHand para quitar primero de la mano principal.

Un objetivo de fabricación nunca avanza. Por defecto solo se cuentan las recetas instantáneas y la cola de crafteo. detectUpgradeRecipe existe, pero el código actual nunca cuenta los resultados de mejora. Comprueba también el id de la estación (stationIds, combinado con el antiguo stationId) y que hay un fact persistente enlazado en fact.

Los eventos y objetivos no se activan en Creativo. Los eventos de uso, fabricación y gema retornan pronto para los jugadores en Creativo, y el sistema de tooltips está desactivado para ellos. Prueba en Supervivencia.

Las etiquetas del tooltip aparecen como texto, o las páginas no cambian. Comprueba primero que el jugador no esté en creativo, donde el lore se deja tal cual. Las páginas solo cambian si hay una entrada Advanced Tooltip System publicada con isEnabled y overrideDefaultLore activados; si no, las etiquetas se eliminan y el lore queda en una sola página. Si la tecla F por defecto entra en conflicto con otro plugin, elige otra tecla en paginationKeybind.

Las marcas de requisitos siempre aparecen como cumplidas. La comprobación lee los datos del jugador de MMOCore. Sin MMOCore (o para un jugador sin perfil), la comprobación recurre a "cumplido".

Extensiones relacionadas​

  • MMOCore — clases, profesiones y habilidades de la misma suite RPG de Phoenix Development.
  • MMO Inventory — integración con MMOInventory, utilizable como fact proveedor de objetos para las acciones Give y Remove.