Saltar al contenido principal

InputTracker

Ejecuta acciones desde F, Q, Shift, Ctrl, ranuras de la hotbar y botones de inventario en los que se puede hacer clic.

Gratuitasv0.5Utilidades
RequiereTypeWriter0.9Paper1.21+

Descripción general​

InputTracker convierte el teclado y el inventario en disparadores para TypeWriter. Escucha un puñado de entradas del jugador (intercambiar mano, soltar, agacharse, correr, chat, comandos y selección de la barra rápida) y ejecuta las acciones que elijas. También puede fijar botones en el inventario del jugador o en la cuadrícula de fabricación de 2x2: objetos que no se pueden mover, soltar ni colocar y que ejecutan acciones al hacer clic en ellos.

Todo se configura en una única entrada de manifiesto, Input Trigger Config. Resulta útil para atajos de estilo RPG, por ejemplo abrir un menú con la tecla F o dar a cada jugador un reloj "Menu" en la última ranura de la barra rápida.

Características​

  • Siete entradas: intercambiar mano (F), soltar (Q), agacharse (Shift), correr (Ctrl), mensaje de chat, comando y selección de ranura de la barra rápida.
  • Cancelar la acción original: detén opcionalmente el comportamiento vanilla, por ejemplo para que la tecla F no intercambie objetos.
  • Criterios, retraso y cooldown: ejecuta solo cuando se cumplan las condiciones, tras un retraso en ticks y con un cooldown entre dos activaciones.
  • Botones de inventario: objetos fijados en las ranuras elegidas que no se pueden mover, soltar, colocar ni comer.
  • Tipos de clic: un conjunto distinto de acciones para clic izquierdo, derecho, Shift + izquierdo, Shift + derecho, soltar, doble clic, o cualquier clic como alternativa.
  • Botones de la barra rápida en el mundo: los clics izquierdo y derecho con un botón en la mano ejecutan sus acciones.
  • Botones en la cuadrícula de fabricación: botones en la cuadrícula de fabricación de 2x2, con la fabricación desactivada mientras haya un botón en ella.
  • Criterios por botón: cada botón, y cada asignación de clic, puede tener sus propias condiciones.

Instalación​

  1. Usa Paper 1.21 o posterior. No se necesita ninguna biblioteca de paquetes.
  2. Coloca el JAR de InputTracker en plugins/Typewriter/extensions/ y reinicia el servidor.

La extensión programa los retrasos con el planificador de Bukkit, por lo que está pensada para Paper y no para Folia.

Primeros pasos​

Abre un menú cuando el jugador pulse F y da un botón de menú a cada jugador:

  1. En el panel web de TypeWriter, abre una página de manifiesto y añade una entrada Input Trigger Config. Crea solo una: se usa la primera que se encuentre.
  2. En keybinds, añade un elemento. Establece type en SWAP_HAND, marca enabled (está desactivado por defecto) y marca cancelAction para que no se intercambien las manos.
  3. En sus actions, selecciona la entrada de acción que abre tu menú. Establece cooldown en 10 ticks para evitar activaciones dobles.
  4. En inventoryButtons, añade un elemento. Establece slot en 8 (la última ranura de la barra rápida) y elige el item que mostrar, por ejemplo un reloj llamado <gold>Menu.
  5. En sus clickActions, añade una asignación con clickType LEFT y la misma acción en actions.
  6. Publica. Los jugadores reciben el botón al entrar o al reaparecer.
aviso

Un botón sustituye cualquier objeto que haya en su slot. Elige ranuras que tus jugadores no usen para sus propios objetos.

aviso

Un jugador que lleve al menos un botón no puede morir: el daño que sería letal se cancela. Planifica el diseño de tu juego teniendo esto en cuenta, o elimina los botones en las situaciones en que los jugadores deban poder morir.

Cómo funciona​

Atajos de teclado (keybinds). Para cada type, se usa la primera definición de keybinds, por lo que no puedes tener dos definiciones para la misma entrada. Esto incluye HOTBAR_SLOT: reacciona a una única ranura, elegida con hotbarSlot.

Qué significa exactamente cada entrada:

TipoSe dispara cuando
SWAP_HANDEl jugador pulsa F.
DROPEl jugador pulsa Q para soltar un objeto (no mientras sostiene un objeto con el cursor).
SNEAKEl jugador empieza a agacharse.
SPRINTEl jugador empieza a correr.
CHATEl jugador envía un mensaje de chat. Pulsar solo T no hace nada.
COMMANDEl jugador ejecuta un comando.
HOTBAR_SLOTEl jugador selecciona la ranura hotbarSlot de la barra rápida (0 a 8).

Con cancelAction, el evento original se cancela: no se intercambian las manos y no se envía el mensaje ni el comando. Para DROP, dropCount (-1 para toda la pila, un número superior a 1 para una cantidad personalizada) solo se usa cuando cancelAction está activado.

Botones. Los botones son objetos etiquetados. Se colocan en el inventario del jugador cuando este entra, reaparece o abre el inventario de fabricación. No se pueden mover, arrastrar, soltar, intercambiar con la mano secundaria, colocar ni comer.

Cuando se hace clic en un botón, la extensión elige la primera asignación de clickActions cuyo clickType coincide con el clic y cuyos criteria se cumplen. Si ninguna lo hace, usa la primera asignación ALL cuyos criterios se cumplan. Un clic central o una tecla numérica cuentan como un clic izquierdo. En el mundo, los clics izquierdo y derecho con un botón en la mano cuentan como LEFT y RIGHT.

Configuración​

Todos los ajustes son campos de la entrada Input Trigger Config.

Campos de keybinds

CampoDescripción
typeLa entrada que se escucha.
enabledDebe estar activado para que la definición funcione. Desactivado por defecto.
cancelActionCancela el comportamiento vanilla.
actionsEntradas de acción que se ejecutan.
delayTicks que esperar antes de ejecutar las acciones (0 las ejecuta de inmediato).
cooldownTicks entre dos activaciones para el mismo jugador y la misma entrada (0 para ninguno).
dropCountPara DROP. 1 es un solo objeto y -1 toda la pila.
hotbarSlotPara HOTBAR_SLOT: la ranura, de 0 a 8.
criteriaCondiciones para que se ejecute la activación.

Campos de inventoryButtons

CampoDescripción
slotRanura del inventario, de 0 a 40 (0 a 8 barra rápida, 36 a 39 armadura, 40 mano secundaria). En la cuadrícula de fabricación, de 0 a 4.
itemEl objeto que se muestra como botón.
clickActionsLista de asignaciones con un clickType, actions y criteria.
delayTicks antes de que se ejecuten las acciones.
isCraftingGridColoca el botón en la cuadrícula de fabricación de 2x2 en lugar de en el inventario.
criteriaCondiciones para que un clic en el botón haga algo.

En la cuadrícula de fabricación, la ranura 0 es la ranura de resultado, que funciona como un botón de "enviar", y las ranuras 1 a 4 son las cuatro ranuras de la cuadrícula. Un resultado de fabricación se bloquea mientras haya un botón en una de las ranuras de la cuadrícula, de modo que nadie pueda duplicar objetos.

Entradas​

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

Manifiestos1

Resolución de problemas​

Un atajo de teclado no hace nada. enabled está desactivado por defecto. Comprueba también que la definición tiene actions, que los criteria se cumplen y que solo tienes una definición para ese type: solo se lee la primera. La entrada debe estar publicada y solo debe haber una Input Trigger Config.

La acción se ejecuta solo de vez en cuando. El cooldown se comparte para el mismo jugador y la misma entrada, en ticks (20 ticks son un segundo). cancelAction se sigue aplicando mientras el cooldown bloquea las acciones. DROP no usa el cooldown.

La tecla F o Q sigue haciendo su acción normal. Marca cancelAction. Para las entradas de chat y de comando, cancelAction impide que se envíe el mensaje o el comando.

No se puede hacer clic en un botón, o no hace nada. Un clic no hace nada cuando fallan los criteria del botón, o cuando ninguna asignación de clickActions coincide con el tipo de clic y no existe una asignación ALL. Las actions deben ser entradas de acción.

Un objeto ha desaparecido del inventario. Un botón sustituye el objeto de su slot cada vez que se colocan los botones. Elige una ranura libre.

Un botón eliminado sigue en el inventario. Los botones son objetos etiquetados por la extensión. Cuando eliminas o mueves un botón en la configuración, los objetos antiguos se borran y los botones actuales se vuelven a colocar la próxima vez que el jugador cierre su inventario, entre o reaparezca.

El jugador no muere. Es lo previsto: un jugador que lleva un botón no puede recibir daño letal.