Scripting Lua: Enums y valores
Esta página enlaza a los tipos de valores de Spigot usados por los métodos Lua de EliteMobs. Pasa sus nombres de constante, como "FLAME", "ZOMBIE" y "STONE", como cadenas en tu código Lua. Usa valores disponibles en la versión de la API de tu servidor.
- La ortografía debe coincidir exactamente con el nombre de la constante enum
- Las mayúsculas y minúsculas suelen normalizarse internamente, pero utiliza la escritura de los Javadocs para evitar problemas
- El tratamiento de valores no válidos depende del método: algunos registran una advertencia, otros devuelven
nilo no hacen nada, y las API con validación pueden generar un error de Lua
Referencia de enumeraciones
| Enum | Se usa para | Javadoc |
|---|---|---|
BarColor | Color de la barra de jefe | BarColor |
BarStyle | Estilo de la barra de jefe | BarStyle |
DamageCause | Filtrado por causa de daño | EntityDamageEvent.DamageCause |
EnderDragon.Phase | Control de fase del dragón del End | EnderDragon.Phase |
EntityEffect | Efectos visuales de entidad | EntityEffect |
EntityType | Aparición de entidades | EntityType |
EquipmentSlot | Ranuras de equipamiento de entidad; damage_equipment solo acepta HAND, OFF_HAND, HEAD, CHEST, LEGS, FEET | EquipmentSlot |
FireworkEffect.Type | Forma del fuego artificial | FireworkEffect.Type |
Material | Bloques e ítems | Material |
Particle | Efectos de partículas | Particle. Las conversiones de nombres antiguos se aplican a las acciones de partículas de EliteScript; las funciones nativas de partículas de Lua requieren los nombres actuales de la API. |
PotionEffectType | Efectos de poción | PotionEffectType |
Sound | Reproducción de sonidos | Sound |
Todos los helpers de sonido de Lua (boss:play_sound_at_self, entity:play_sound_at_entity, world:play_sound_at_location) resuelven la cadena en dos pasos: primero prueban el nombre del enum Sound de Spigot (en mayúsculas, así que "entity_blaze_shoot" funciona), y si eso falla tratan la cadena como una clave de sonido con namespace (en minúsculas, así que tanto "entity.blaze.shoot" como tu propia clave de paquete de recursos "mypack:boss.roar" funcionan).
Ambas rutas eliminan los espacios al principio y al final. Una clave sin namespace usa minecraft. Las claves mal formadas se ignoran; las claves con sintaxis válida se envían al cliente sin comprobar si el sonido existe. Por eso, una clave mal escrita o un sonido ausente del paquete de recursos puede no producir ningún sonido.
Valores ajenos a Spigot
Estos valores son específicos de EliteMobs y no están en los Javadocs de Spigot:
Formas de zona
Los usan las definiciones de zona nativas (campo kind) y las especificaciones de zona de las utilidades de script (campo shape). Estos valores distinguen mayúsculas de minúsculas. Usa minúsculas para las formas nativas y mayúsculas para las formas de las utilidades de script.
Nativa (kind) | Utilidad de script (shape) |
|---|---|
sphere | SPHERE |
dome | DOME |
cylinder | CYLINDER |
cuboid | CUBOID |
cone | CONE |
static_ray | STATIC_RAY |
rotating_ray | ROTATING_RAY |
translating_ray | TRANSLATING_RAY |
Filtros de entidades
Los usan las opciones de consulta de context.zones y context.entities. No distinguen mayúsculas de minúsculas; los alias aceptados figuran a continuación.
| Filtro | Coincide con |
|---|---|
player / players | Solo jugadores |
elite / elites | Solo mobs elite |
mob / mobs | Entidades vivas que no son jugadores (esto incluye a los elites) |
living | Todas las entidades vivas, jugadores incluidos (predeterminado) |
all / entities | Todas las entidades, incluidas las no vivas. Solo lo reconoce context.entities:get_nearby_entities |
Los filtros desconocidos usan living, así que un error como "playr" incluye todos los tipos de entidades vivas dentro del área consultada. Estas consultas nativas excluyen al propio jefe. Las consultas de entidades en zonas buscan en el mundo del jefe; las consultas de cajas buscan en el mundo del centro proporcionado.
get_nearby_entities(radius, filter) comprueba la distancia esférica para los filtros de entidades vivas. Con all o entities, busca en una caja alineada con los ejes que se extiende radius en cada eje y devuelve tablas de referencia a entidades, incluidas las no vivas. Las demás consultas nativas tratan esos dos filtros como living.
context.script:zone({...}) usa un conjunto de filtros distinto y en mayúsculas (PLAYER, ELITE, LIVING) porque se ejecuta sobre el motor de EliteScript.
Valores del clima
Lo usa context.world:set_world_weather(weather). Los valores se convierten a mayúsculas sin eliminar espacios. Un valor desconocido registra una advertencia y deja el clima sin cambios.
| Valor | Efecto |
|---|---|
CLEAR | Cielo despejado |
PRECIPITATION / RAIN | Lluvia |
THUNDER | Tormenta |
Tipos de objetivo
Estos son los valores de objetivo de EliteScript. context.script:target() comparte el resolvedor, pero no proporciona datos de acciones heredadas ni de aterrizaje. Los objetivos de zona deben obtenerse mediante full_target() o border_target() de un identificador de zona.
| Valor | Se resuelve como |
|---|---|
SELF | La entidad del jefe |
SELF_SPAWN | La ubicación de aparición del jefe al resolver ubicaciones; el propio jefe al resolver entidades |
DIRECT_TARGET | El objetivo directo del evento actual; no selecciona nada si el evento no lo proporciona |
NEARBY_PLAYERS | Jugadores en una caja que se extiende range en cada eje desde el jefe |
NEARBY_MOBS | Entidades vivas que no son jugadores en esa caja, excluido el jefe |
NEARBY_ELITES | Mobs elite en esa caja, excluido el jefe |
ALL_PLAYERS | Todos los jugadores conectados |
WORLD_PLAYERS | Todos los jugadores en el mundo del jefe |
ZONE_FULL | Entidades/ubicaciones dentro del volumen de una zona |
ZONE_BORDER | Entidades/ubicaciones en el borde de una zona |
LOCATION | Una ubicación concreta del campo location de la especificación |
LOCATIONS | Varias ubicaciones concretas de la lista locations de la especificación |
LANDING_LOCATION | Donde aterrizó un bloque que cae o una entidad invocada |
ACTION_TARGET | Hereda los objetivos de la acción de EliteScript que la envuelve |
INHERIT_SCRIPT_TARGET | Hereda el objetivo del EliteScript que la llama |
INHERIT_SCRIPT_ZONE_FULL | Hereda la zona del EliteScript que lo llama; la selección actual de entidades utiliza su borde. Consulta las limitaciones de las zonas heredadas. |
INHERIT_SCRIPT_ZONE_BORDER | En el borde de la zona del EliteScript que lo llama; consulta las limitaciones de las zonas heredadas para la resolución de ubicaciones. |
No uses LANDING_LOCATION, ACTION_TARGET ni los tres valores INHERIT_SCRIPT_* con context.script:target(). El identificador Lua carece del estado de acción, herencia o aterrizaje correspondiente; la resolución puede no devolver objetivos o fallar. Una especificación aislada ZONE_FULL o ZONE_BORDER también carece de zona. Consulta Objetivos de EliteScript para la semántica de las acciones YAML.
