MMOItems
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
- 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.
- Instala la extensión oficial Quest de TypeWriter (los objetivos la necesitan).
- 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/. - 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:
- En el panel web de TypeWriter, abre una página de sequence y añade una acción Give MMOItem.
- Deja
itemsvacío. Estableceitemcon untype(por ejemploSWORD) y unid(por ejemploSTEEL_BLADE), yamounten1. - Abre una página static y añade un Craft Objective. Rellena
quest,display,amounty un fact persistente enfactpara guardar el progreso. - En
items, añade el objeto de MMOItems fabricado (vacío significa cualquier objeto) y, si hace falta,stationIdscon el id de la estación de MMOItems. - Establece
onCompletecon 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.
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.
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:
| Etiqueta | Efecto |
|---|---|
<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.
| Snippet | Usado por | Por defecto |
|---|---|---|
advancedQuest.display | Objetivos Craft, Use, Equip, Gem Stone, Ability Cast y Open Crafting Table, mientras están en curso | <display> (<current>/<required>), en tonos grises |
advancedQuest.completed | Los mismos objetivos, una vez alcanzado amount | ✔, luego el <display> tachado y el progreso |
mmoitems.countObjective.display | Mmoitems Count Objective, mientras está en curso | <display> (<current>/<required>), en tonos grises |
mmoitems.countObjective.completed | El 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
- Give Mmoitem ActionGive MMOItem
- Open Crafting Table ActionOpen Crafting Table
- Remove Mmoitem ActionRemove MMOItem
Eventos3
- Mmoitems Gem Stone Apply EventMMOItems Gem Stone Apply Event
- Mmoitems Item Craft EventMMOItems Item Craft Event
- Use Mmoitem EventUse MMOItem Event
Objetivos7
- Mmoitems Ability Cast ObjectiveCast MMOItems abilities
- Mmoitems Count ObjectiveIdentify and count specific MMOItems from a fact
- Mmoitems Gem Stone Apply ObjectiveMMOItems Gem Stone Apply Objective
- Mmoitems Item Craft ObjectiveMMOItems Item Craft Objective
- Mmoitems Item Equip ObjectiveEquip MMOItems
- Open Crafting Table ObjectiveOpen Crafting Table Objective
- Use Mmoitem ObjectiveUse MMOItem Objective
Hechos1
- Mmoitems Count FactCount MMOItems in player's inventory or hand
Variables1
- Mmoitem VariableMMOItem Identifier
Manifiestos1
- Advanced Tooltip ConfigAdvanced Tooltip System
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.