Saltar al contenido principal

EliteScript

webapp_banner.jpg

EliteScript es un sistema de scripting completo para los plugins de MagmaGuy, que proporciona opciones de personalización avanzadas para crear comportamientos dinámicos para jefes y otras entidades en Minecraft.

EliteScript or Lua?

EliteMobs tiene dos sistemas de scripting y ambos son totalmente compatibles. EliteScript no está obsoleto.

  • EliteScript (esta página y sus hermanas): YAML declarativo. Es lo mejor cuando tu poder es «ante este evento, haz estas acciones sobre estos objetivos». Nada de aquí se ha eliminado ni sustituido.
  • Poderes Lua: archivos .lua en la misma carpeta powers. Es lo mejor cuando necesitas variables, bucles, ramificación aleatoria, estado por jefe o seguimientos programados. Los poderes que EliteMobs incluye de serie están ahora escritos en Lua.

No son rivales: la API context.script de Lua es una envoltura fina sobre el motor de EliteScript. Cuando escribes context.script:target({...}) o context.script:zone({...}) en Lua, la tabla que pasas se entrega exactamente al mismo código de objetivos/zonas/vectores relativos/partículas documentado en estas páginas, así que todos los nombres de campo de abajo se aplican literalmente. Aprender EliteScript no es esfuerzo perdido si más adelante te pasas a Lua.

Una consecuencia práctica: si un poder .lua y un poder .yml comparten nombre base, una entrada de la lista powers: de un jefe que apunte al .yml se resuelve al archivo .lua. Así es como se migraron los poderes incluidos sin romper las configuraciones de jefe existentes.

Descripción general

EliteScript permite a los administradores de servidores crear comportamientos complejos basados en eventos para jefes y mobs personalizados. El sistema de scripting se basa en cinco componentes principales:

  • Events: Disparadores que inician la ejecución del script (daño, aparición, muerte, etc.)
  • Conditions: Requisitos que deben cumplirse para que se ejecuten las acciones
  • Actions: Los comportamientos a realizar (daño, teletransporte, generar partículas, etc.)
  • Targets: Qué entidades o ubicaciones afectan las acciones
  • Zones: Áreas definidas en el mundo para selección de objetivos y detección
  • Cooldowns: Restricciones de tiempo para prevenir spam de scripts

Los Elite Scripts se pueden añadir como archivos de poder independientes o directamente en los archivos de configuración de jefes personalizados.

Ejemplo de inicio rápido

Aquí hay un EliteScript simple que hace que un jefe lance rayos a los jugadores cuando es dañado:

eliteScript:
LightningStrike:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: STRIKE_LIGHTNING
Target:
targetType: DIRECT_TARGET
repeatEvery: 20
times: 3
Cooldowns:
local: 60
global: 20

Este script se activa cuando un jugador daña al jefe, luego lanza rayos al jugador 3 veces (una vez por segundo), con un tiempo de reutilización de 60 ticks antes de que pueda activarse de nuevo.

Componentes del script

EliteScript proporciona una amplia personalización a través de su sistema de componentes. Para información detallada sobre cada componente, consulte las siguientes páginas:

Componentes principales

  • Events - 13 tipos de eventos incluyendo daño, muerte, aparición, combate y disparadores basados en zonas
  • Actions - 35 tipos de acciones para crear comportamientos complejos
  • Targets - 17 tipos de objetivos para seleccionar entidades y ubicaciones
  • Conditions - Condiciones de filtrado y bloqueo con múltiples tipos de verificación
  • Zones - 8 formas de zona (esferas, cilindros, cuboides, rayos, conos, etc.)
  • Cooldowns - Sistemas de tiempo de reutilización local y global
  • Vectores relativos - Posicionamiento y movimiento avanzado

Casos de uso comunes

EliteScript se usa comúnmente para:

  • Peleas de jefe por fases: Diferentes patrones de ataque en diferentes porcentajes de salud
  • Mecánicas de arena: Daño basado en zonas, mejoras o apariciones en áreas específicas
  • Ataques personalizados: Efectos de partículas únicos, proyectiles y ataques de área
  • Peligros ambientales: Rayos periódicos, bloques cayendo o fuego
  • Mecánicas interactivas: Teletransportación, generación de mobs y modificación del mundo
  • Comunicación con jugadores: Mensajes, títulos, barras de acción y barras de jefe
  • Comportamientos condicionales: Diferentes acciones basadas en cantidad de jugadores, ubicación o estado del jefe

Implementación

Los scripts se pueden implementar de dos maneras:

  1. Archivos de poder: Cree archivos .yml independientes en ~/plugins/EliteMobs/powers/
  2. Archivos de jefe personalizado: Añada secciones eliteScript: directamente a las configuraciones de jefes personalizados

Para instrucciones detalladas sobre la creación de poderes y jefes personalizados, consulte:

Consideraciones de rendimiento

Al crear scripts, tenga en cuenta estas mejores prácticas:

  • Use tiempos de reutilización para prevenir problemas de rendimiento por scripts de activación rápida
  • Los eventos basados en zonas (ZoneEnterEvent, ZoneLeaveEvent) son computacionalmente costosos - use zonas pequeñas y tiempos de reutilización apropiados
  • Use condiciones de filtrado para reducir verificaciones innecesarias
  • Pruebe los scripts exhaustivamente antes de implementarlos en servidores de producción

Próximos pasos

Para comenzar a crear sus propios EliteScripts:

  1. Revise la página de Events para entender qué puede activar scripts
  2. Explore la página de Actions para ver qué comportamientos puede crear
  3. Aprenda sobre Targets para controlar qué afectan sus acciones
  4. Estudie los ejemplos en cada página de componentes
  5. Comience con scripts simples y aumente gradualmente la complejidad