Saltar al contenido principal

Companion

Compañeros personales que siguen a cada jugador como NPC o modelos de ModelEngine, con seguir/esperar y disparadores al hacer clic.

Gratuitasv0.10Entidades y modelos
RequiereTypeWriter0.9Entity extensionQuest extensionBasic extensionRoadNetwork extensionModelEngineopcional

Descripción general​

Companion da a los jugadores un seguidor personal: una mascota, un guía, un dron o un personaje mascota que camina tras ellos allá donde vayan. El compañero es un NPC (o un modelo de ModelEngine) que solo ve su dueño, de modo que cada jugador puede tener el suyo sin añadir ninguna entidad al mundo real.

Describes el compañero con una definición de entidad que ya usas en TypeWriter y la asocias a una audiencia. Cada jugador que entra en la audiencia recibe un compañero; cuando la abandona, el compañero desaparece. Un jugador puede tener varios compañeros a la vez, uno por definición de entidad.

Características​

  • Compañeros personales — cada compañero es una entidad de paquetes que solo ve su dueño.
  • NPC o ModelEngine — la definición puede ser una definición de NPC o de modelo de ModelEngine.
  • Comportamiento de seguimiento — el compañero se mantiene entre minDistance y maxDistance bloques del jugador, sube pequeños obstáculos y permanece en el suelo.
  • Reincorporación automática — se teletransporta al jugador tras un cambio de mundo, un teletransporte o cuando se queda muy atrás.
  • Animaciones de caminar y reposo — en los modelos de ModelEngine, las animaciones de reposo y de caminar cambian según el movimiento del compañero.
  • Seguir o esperar — una acción alterna al compañero entre seguir y quedarse quieto.
  • Disparador por clic — un evento se activa cuando el jugador hace clic derecho en uno de sus compañeros.
  • Varios a la vez — un jugador puede tener un compañero por definición de entidad; invocar de nuevo la misma definición sustituye al anterior.
  • Recuento de activos — un fact indica cuántos compañeros tiene el jugador en ese momento.

Instalación​

  1. Instala las extensiones de TypeWriter Entity, Quest, Basic y RoadNetwork desde la pestaña Extensions del panel web, si aún no están instaladas (consulta la documentación de TypeWriter). Companion está compilado contra estas cuatro extensiones oficiales.
  2. Opcional: instala la extensión ModelEngine de TypeWriter y el plugin ModelEngine si quieres modelos 3D en lugar de NPC. Companion funciona sin ellos.
  3. Coloca el JAR de Companion en plugins/Typewriter/extensions/ y reinicia el servidor.

Primeros pasos​

Da a cada jugador un compañero que lo siga:

  1. En el panel web de TypeWriter, crea una definición de NPC (o una definición de ModelEngine) para el compañero: su nombre, skin o modelo.
  2. Abre una página de manifest y añade una entrada Companion Invocation.
  3. Establece definition con la definición de entidad que creaste. Deja activity vacío para usar el comportamiento de reposo por defecto, o elige una actividad de entidad si quieres una personalizada.
  4. Ajusta minDistance (donde se detiene el compañero cuando el jugador está quieto) y maxDistance (a qué distancia se queda cuando el jugador camina). Los valores por defecto son 2.0 y 4.0.
  5. Para limitar el compañero a algunos jugadores, añade criteria, por ejemplo una comprobación de fact para una mascota comprada. Déjalo vacío para dar uno a todos los de la audiencia.
  6. Publica. El compañero aparece tras el jugador.

Para que el jugador pueda detener o reanudar a su compañero, usa una acción Companion Follow Mode. Para reaccionar a los clics, añade un evento Companion Interact y enlaza las entradas que debe activar, como un diálogo o un menú.

consejo

Companion Follow Mode tiene sus propios minDistance y maxDistance. Cuando la acción se ejecuta, sobrescribe las distancias del compañero. Mantén los mismos valores que en la invocación, salvo que quieras cambiarlos.

Cómo funciona​

Cuando el jugador entra en la audiencia, el compañero aparece tras él, a maxDistance bloques. Después se mueve cada tick: mantiene minDistance cuando el jugador está quieto y maxDistance cuando se mueve, y acelera si se queda muy atrás. Se teletransporta junto al jugador cuando cambia el mundo, tras un teletransporte, cuando está a más de ocho veces maxDistance o cuando está atascado a más de cuatro veces maxDistance.

El compañero se elimina cuando el jugador abandona la audiencia o se desconecta. Tras un cambio de mundo, el compañero se elimina y se invoca de nuevo. Los compañeros no se guardan: se recrean desde la audiencia cada vez que el jugador se conecta.

Entradas​

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

Acciones1
Eventos1
Hechos1
Audiencias1

Solución de problemas​

El compañero nunca aparece. La entrada necesita una definition válida: si está vacía o eliminada, no se invoca nada. La definición debe ser de NPC o de ModelEngine (el campo solo ofrece esas). Comprueba también que el jugador cumple criteria y que pertenece a la audiencia de la invocación.

El compañero es un NPC normal en lugar de mi modelo. El soporte de ModelEngine es opcional y se detecta en tiempo de ejecución. Asegúrate de que la extensión ModelEngine está instalada y de que la definición es de ModelEngine. Las animaciones se buscan a partir de los nombres de las animaciones de reposo y de caminar de esa definición.

El compañero no se mueve. El modo de seguimiento lo alterna cada acción Companion Follow Mode. Si la acción se ejecutó una vez, el compañero espera; ejecútala de nuevo para reanudar. Sin definition en la acción, alterna todos los compañeros del jugador.

Hacer clic en el compañero no hace nada. Companion Interact solo reacciona a un clic derecho con la mano principal, sobre el compañero del propio jugador. Comprueba que sus triggers están enlazados y que sus criteria se cumplen.

El compañero va a tirones o flota en lugares extraños. Camina sobre el suelo que hay bajo su posición y solo sube uno o dos bloques. En espacios muy estrechos o irregulares puede quedarse atascado; cuando está lo bastante lejos del jugador, se teletransporta de vuelta automáticamente.

Extensiones relacionadas​

  • Dialog Menu — abre una pantalla de diálogo cuando el jugador hace clic en el compañero.