Saltar al contenido principal

Referencia de la API de Lua

Esta referencia describe los constructores de tablas y los contextos Lua de MagmaCore, FreeMinecraftModels y EliteMobs. Las tablas compartidas y las de poderes de jefe de EliteMobs tienen contratos distintos; utiliza la sección correspondiente al script que escribes.

La mayoría de los métodos admiten tanto table.method(...) como table:method(...). Las funciones globales em.create_*, em.zone.create_* y em.location.* requieren punto, igual que los métodos de modificación de daño del evento de jefe indicados más adelante. Los campos compartidos que reflejan el estado actual se consultan de forma diferida: vuelve a leerlos para actualizar su valor y no les asignes valores, pues eso oculta la consulta. Una ubicación u otra instantánea ya guardada en una variable Lua no se actualiza sola.

Los métodos que procesan colores usan la sintaxis compartida de códigos de color, incluidos chat, títulos, barras, nombres personalizados y títulos de inventario de props.

Tabla de entidad​

La tabla de entidad de MagmaCore es la base para los valores genéricos de entidad; las tablas de entidad viviente, de jugador y de prop de FreeMinecraftModels la heredan.

Propiedades​

CampoTipoDescripción
uuidstringUUID de la entidad.
entity_typestringTipo de entidad de Bukkit en minúsculas.
is_validboolValor de validez en vivo.
is_deadboolEstado de muerte en vivo.
current_locationtable/nilUbicación {x, y, z, yaw, pitch, world} en vivo.
worldstring/nilNombre del mundo en vivo.
is_playerboolSi la entidad es un jugador.
is_hostileboolSi la entidad implementa Monster de Bukkit.
is_passiveboolSi la entidad implementa Animals de Bukkit.
is_on_groundboolEstado actual de contacto con el suelo.
is_flyingboolEstado actual de vuelo del jugador; false para otros tipos de entidad.
in_blockboolEstado actual de incrustación, exclusivo de flechas.
attachment_locationtable/nilCentro del bloque que contiene la ubicación actual de una flecha incrustada; nil cuando la flecha no está dentro de un bloque.
attachment_blocktable/nilCentro del bloque que realmente golpeó una flecha perteneciente a una acción de encantamiento activa. Devuelve nil si no hay un impacto incrustado válido registrado, o después de que la flecha se aleje, cambie de mundo o termine su acción. Identifica el bloque golpeado; no proporciona un destino de movimiento sin colisiones.

Métodos​

MétodoArgsDevuelveDescripción
teleport(location)tablenilTeletransporta a una tabla de ubicación.
remove()—nilElimina la entidad si sigue siendo válida.
set_silent(enabled)boolnilEstablece el estado silencioso.
set_invulnerable(enabled)boolnilEstablece el estado invulnerable.
set_gravity(enabled)boolnilEstablece el estado de gravedad.
set_glowing(enabled)boolnilEstablece el estado de brillo.
set_velocity(x, y, z)number, number, numbernilSustituye la velocidad; los componentes deben ser finitos.
set_fall_distance(distance)numbernilEstablece una distancia de caída finita y no negativa.
set_shooter(uuid)stringboolMétodo exclusivo de proyectiles; asigna una entidad resuelta que implemente ProjectileSource de Bukkit.
set_direction(x, y, z)number, number, numbernilMétodo exclusivo de bolas de fuego; establece una dirección de vuelo finita y no nula.
set_pickup(status)stringnilMétodo exclusivo de flechas; ALLOWED, DISALLOWED o CREATIVE_ONLY.
can_receive_hostile_effect(actor_uuid)stringboolComprueba si el objetivo puede recibir un efecto hostil del jugador conectado. Los proveedores pueden aplicar sus propias restricciones de combate.
has_clear_movement_path(location)tableboolComprueba de antemano un arrastre dentro del mismo mundo frente a colisiones, límites del mundo y chunks cargados. Las entidades que no son jugadores también rechazan regiones protegidas. No mueve la entidad.
movement_path_status(location)tablestringDevuelve clear, blocked, protected o unavailable; protected se aplica a entidades que no son jugadores. Las comprobaciones de colisión barren de forma conservadora la caja delimitadora de la entidad.

Un trayecto libre para un jugador no autoriza la entrada ni el combate. El movimiento real sigue sujeto a los listeners de movimiento, incluidas las restricciones de entrada a regiones; la protección de construcción por sí sola no impide desplazarse a los jugadores.

Los argumentos de ubicación compartidos requieren x, y y z. Si se omite el mundo, se usa el de la entidad; un nombre de mundo que no se resuelve también conserva ese valor por defecto. Las consultas independientes em.location.* requieren un mundo cargado y usan cero para las coordenadas omitidas. Ni la comprobación de movimiento ni can_receive_hostile_effect se aplican automáticamente a las llamadas directas de teletransporte, velocidad o daño.

can_receive_hostile_effect requiere un jugador actor válido y conectado, y un objetivo válido, vivo, del mismo mundo y que no sea jugador. Rechaza soportes para armaduras, entidades invulnerables, entidades marcadas como NPC y animales domesticados. EliteMobs puede añadir restricciones de autorización de combate. Los UUID inválidos pueden provocar errores en set_shooter y set_owner; los nombres inválidos del enum de recogida también provocan errores.

Tabla de entidad: enriquecimiento de EliteMobs​

El componente de EliteMobs añade estos valores a las tablas de entidad de MagmaCore. Los indicadores de seguimiento y la presencia de elite se determinan al construir la tabla; solo los campos indicados como actuales se actualizan al consultarlos. El adaptador opcional de EliteMobs de FreeMinecraftModels añade información de élites, pero no elite_player.

Propiedades​

CampoTipoDescripción
is_eliteboolSi EliteMobs rastreaba la entidad al construir la tabla.
is_custom_bossboolSi el elite rastreado es un jefe personalizado.
is_significant_bossboolSi es un jefe personalizado con un multiplicador de salud superior a 1.
elitetable/nilDatos anidados de EliteMobs, presentes solo para un élite resuelto.
elite.levelintInstantánea del nivel del elite.
elite.namestring/nilInstantánea del nombre mostrado del elite.
elite.healthnumberSalud en vivo.
elite.max_healthnumberSalud máxima en vivo.
elite.is_custom_bossboolSi el elite es un jefe personalizado.
elite.health_multipliernumberInstantánea del multiplicador de salud configurado.
elite.damage_multipliernumberInstantánea del multiplicador de daño configurado.
elite_playertable/nilTabla exclusiva de jugadores, resuelta de forma diferida cuando existen datos de jugador de EliteMobs.
elite_player.tiernumberCategoría de combate del jugador calculada a partir de la XP de habilidades sin actualizar las consultas de encantamientos.

Métodos​

MétodoArgsDevuelveDescripción
elite.remove()—nilElimina el elite a través del pipeline de eliminación de EliteMobs.

Tabla de entidad: enriquecimiento de FreeMinecraftModels​

El componente de FreeMinecraftModels añade estas instantáneas; model existe solo cuando is_modeled es verdadero al construir la tabla. Los valores exclusivos de jugadores aparecen solo en sus tablas. Los métodos de modelo y permisos consultan los objetos subyacentes al llamarlos. En los scripts de EliteMobs, el adaptador opcional de FreeMinecraftModels de EliteMobs añade is_modeled, is_prop y model, pero no is_op ni has_permission.

Propiedades​

CampoTipoDescripción
is_modeledboolSi FreeMinecraftModels resuelve una entidad modelada.
is_propboolSi la entidad es un prop de FreeMinecraftModels respaldado por un soporte para armaduras.
modeltable/nilDatos de modelo anidados, presentes solo para una entidad modelada.
model.model_idstring/nilIdentificador del blueprint del modelo.
model.is_dynamicboolSi la entidad modelada es dinámica.
is_opboolInstantánea del estado de operador del servidor, solo para jugadores.

Métodos​

MétodoArgsDevuelveDescripción
model.play_animation(name, blend?=false, loop?=false)string, bool?=false, bool?=falseboolDevuelve si se aceptó la reproducción, incluidas las solicitudes de ataque en cola o suprimidas; la muerte terminal rechaza la reproducción.
model.stop_animations()—nilVacía la cola de reproducción y vuelve a idle cuando está disponible; no afecta a la muerte terminal.
model.remove()—nilElimina la entidad modelada.
has_permission(node)stringboolComprobación de permiso, solo para jugadores.

Tabla de entidad viviente​

La tabla de entidad viviente de MagmaCore hereda todas las propiedades y métodos de la tabla de entidad.

Propiedades​

CampoTipoDescripción
healthnumberSalud en vivo.
maximum_healthnumberSalud máxima en vivo.
namestring/nilNombre de entidad de Bukkit en vivo.
is_aliveboolInverso en vivo del estado de muerte de Bukkit.

Métodos​

MétodoArgsDevuelveDescripción
damage(amount)numbernilInflige daño de Bukkit.
push(x, y, z)number, number, numbernilAñade inmediatamente un vector a la velocidad actual.
set_facing(x, y, z)number, number, numbernilTeletransporta sin cambiar de posición, con la orientación indicada.
add_potion_effect(type, duration, amplifier)string (PotionEffectType), int, intnilAñade un efecto de poción cuando el tipo se resuelve.
remove_potion_effect(type)string (PotionEffectType)nilElimina un efecto de poción cuando el tipo se resuelve.
get_scale()—numberDevuelve el valor efectivo del atributo de escala, incluidos los modificadores, o 1.0 cuando no está disponible.
set_scale(value)numbernilEstablece el valor base del atributo de escala cuando el servidor lo admite.
set_ai(enabled)boolnilActiva o desactiva la IA de la entidad viva.
set_owner(player_uuid)stringboolDomestica una entidad domesticable para un jugador conectado; también elimina la ira de los lobos. False para entidades no compatibles o jugadores no disponibles.
has_potion_effect(type)stringboolComprueba un nombre de efecto de poción de Bukkit; false cuando el nombre no se resuelve.

Tabla de jugador​

La tabla de jugador de MagmaCore hereda todas las propiedades y métodos de la tabla de entidad viviente.

En los scripts de FMM, la tabla de jugador también expone is_holding_elitemobs_item(filename). Comprueba la etiqueta de nombre de archivo de EliteMobs del objeto de la mano principal, independientemente de su nombre visible o traducción, y devuelve false si la mano está vacía, es otro objeto o la integración de EliteMobs no está disponible. Incluye .yml en el nombre, por ejemplo player:is_holding_elitemobs_item("shroomwhispers_shears.yml").

Propiedades​

CampoTipoDescripción
game_modestringInstantánea del modo de juego de Bukkit en minúsculas.

Métodos​

MétodoArgsDevuelveDescripción
send_message(text)stringnilEnvía texto procesado por el analizador de color de MagmaCore.
chat(text)stringnilHace que el jugador escriba en el chat mediante Bukkit, incluida la ejecución de comandos con prefijo de barra como ese jugador. El texto pasa por el analizador de color.
get_held_item()—table/nilDevuelve una instantánea {type, amount, display_name} del objeto de la mano principal, o nil si está vacía. type está en mayúsculas; sin nombre personalizado, display_name usa el nombre del material.
consume_held_item(amount?=1)int?=1nilEncola la reducción de la pila que esté en la mano principal al ejecutarse la tarea; no devuelve un resultado de pago ni conserva el objeto comprobado. Usa una cantidad positiva; los valores negativos no se rechazan.
has_item(material, amount?=1)string (Material), int?=1boolComprueba si el inventario contiene la cantidad solicitada.
get_target_entity(range?=50)number?=50table/nilTraza desde los ojos contra bloques y entidades, excluyendo al jugador, con tamaño de rayo de entidad 0.5; ignora fluidos y bloques transitables.
get_eye_location()—tableDevuelve la ubicación de los ojos.
get_look_direction()—tableDevuelve una dirección unitaria {x, y, z}.
send_block_change(x, y, z, material, ticks?=-1)int, int, int, string (Material), int?=-1boolEncola un bloque visible solo para el cliente y su restauración opcional tras ticks positivos; los materiales inválidos o que no son bloques devuelven false. True significa encolado.
reset_block(x, y, z)int, int, intboolEncola la restauración del bloque real para este jugador.
sleep(x, y, z)number, number, numbernilEncola la colocación de una cama blanca real e intenta dormir; al despertar o desconectarse, restaura el BlockData original. No restaura el contenido de las entidades de bloque.
wake_up()—nilEncola el despertar del jugador cuando está durmiendo.
show_boss_bar(text, color?=WHITE, progress, ticks?=-1)string, string (BarColor)?=WHITE, number, int?=-1nilReemplaza la barra sólida activa del jugador; limita progress a 0..1, usa blanco para un color inválido y puede ocultarla tras ticks positivos. Pasa nil como color para mantener progress en su tercera posición obligatoria.
hide_boss_bar()—nilElimina la barra de jefe de Lua activa del jugador.
show_action_bar(text, ticks?=-1)string, int?=-1nilEnvía una vez, o repite cada 40 ticks hasta que termine una duración positiva.
show_title(title, subtitle?="", fade_in, stay, fade_out)string, string?="", int, int, intnilMuestra un título con el texto de título y subtítulo procesados por color.

Las barras compartidas pertenecen al jugador dentro de la copia de MagmaCore del plugin anfitrión. No están aisladas por script: un nuevo show_boss_bar sustituye la barra actual del jugador, y un nuevo show_action_bar cancela la barra de acción repetitiva actual. Un temporizador de caducidad solo elimina la barra o la barra de acción que lo inició, así que una caducidad anterior ya no borra una más reciente. Estos temporizadores y los cambios de bloques encolados no pertenecen a context.scheduler. Los cambios y restauraciones de bloques leen el mundo del jugador al ejecutarse; no dependas de que restauren el bloque deseado tras un cambio de mundo. La limpieza del sueño comprueba por primera vez tras 20 ticks y después cada 10.

Tabla de mundo​

La tabla de mundo de MagmaCore se expone como context.world y captura su mundo al construirse. Los poderes de jefe de EliteMobs la heredan y aplican las sustituciones documentadas más adelante. Las consultas cercanas devuelven arrays que empiezan en uno y usan cajas alineadas con los ejes, con radius como cada semiextensión; no excluyen al propietario del script ni filtran los modos de juego.

Propiedades​

CampoTipoDescripción
namestringInstantánea del nombre del mundo.

Métodos​

MétodoArgsDevuelveDescripción
get_block_at(x, y, z)int, int, intstringDevuelve un nombre de Material en minúsculas, o air sin cargar un chunk descargado.
set_block_at(x, y, z, material)int, int, int, string (Material)boolEncola la colocación del bloque; los materiales inválidos devuelven false y la tarea encolada omite los chunks descargados.
get_highest_block_y(x, z)int, intintDevuelve la Y del bloque más alto.
spawn_particle(particle, x, y, z, count?=1, dx?=0, dy?=0, dz?=0, speed?=0)string (Particle), number, number, number, int?=1, number?=0, number?=0, number?=0, number?=0nilGenera una partícula; los nombres inválidos no hacen nada.
play_sound(sound, x, y, z, volume?=1, pitch?=1)string (Sound), number, number, number, number?=1, number?=1nilReproduce un sonido registrado o una clave de sonido de paquete de recursos con espacio de nombres en minúsculas.
strike_lightning(x, y, z)number, number, numbernilLanza un rayo.
get_time()—intDevuelve la hora del mundo en ticks.
set_time(ticks)intnilEstablece la hora del mundo.
get_nearby_entities(x, y, z, radius)number, number, number, numbertableDevuelve tablas de entidad o de entidad viviente cercanas.
get_nearby_players(x, y, z, radius)number, number, number, numbertableDevuelve tablas de jugador cercanas.
spawn_entity(type, x, y, z)string (EntityType), number, number, numbertable/nilGenera una entidad vanilla; los nombres de enum desconocidos devuelven nil, pero un tipo válido que no pueda generarse puede provocar un error.
raycast(from_x, from_y, from_z, dir_x, dir_y, dir_z, max_distance?=50, fluid_mode?=NEVER, blocks_only?=false, loaded_only?=false)seis números, number?, string?, bool?, bool?table/nilDevuelve hit_entity, hit_location y hit_block; los modos de fluidos son NEVER, SOURCE_ONLY, ALWAYS. Con loaded_only, rechaza los chunks descargados dentro del rectángulo delimitador del rayo y devuelve nil.
place_temporary_block(x, y, z, material, ticks?=0, require_air?=false)int, int, int, string (Material), int?=0, bool?=falseboolColoca un bloque temporal; los materiales inválidos o los chunks descargados devuelven false.
drop_item(x, y, z, material, amount?=1)number, number, number, string (Material), int?=1table/nilSuelta un objeto de forma natural y devuelve su tabla de entidad; los materiales inválidos devuelven nil.
spawn_firework(x, y, z, colors, type?=BALL, power?=1)number, number, number, table, string (FireworkEffect.Type)?=BALL, int?=1nilEncola un fuego artificial usando nombres de constantes Color de Bukkit, con blanco por defecto cuando ninguno se resuelve.
strike_lightning_at_location(location)tablenilLanza un rayo en el mundo de la tabla de ubicación.
play_sound_at_location(location, sound, volume?=1, pitch?=1)table, string (Sound), number?=1, number?=1nilReproduce un sonido registrado o una clave de sonido de paquete de recursos con espacio de nombres en minúsculas.
spawn_particle_at_location(location, particle, count?=1, dx?=0, dy?=0, dz?=0, speed?=0)table, string (Particle), int?=1, number?=0, number?=0, number?=0, number?=0nilGenera mediante esta tabla de mundo. Proporciona una ubicación del mismo mundo.
get_block_at_location(location)tablestringDevuelve un nombre de material en minúsculas, o air para una ubicación inválida o un chunk descargado.
set_block_at_location(location, material)table, string (Material)boolEncola la colocación del bloque en el mundo de la tabla de ubicación.
place_temporary_block_at_location(location, material, ticks?=0, require_air?=false)table, string (Material), int?=0, bool?=falseboolColoca un bloque temporal en el mundo de la tabla de ubicación.
get_highest_block_y_at_location(location)tableint/nilDevuelve la Y del bloque más alto, o nil para una ubicación inválida.
terrain_impact_at_location(location, options?)table, table?table/nilMuestra un impacto visual temporal en el terreno; opciones: radius=4.5 (0.5–6), intensity=1 (0–1), duration_ticks=35 (1–200), view_range=48 (1–96), seed; devuelve un identificador de control o nil.
terrain_impact(x, y, z, options?)number, number, number, table?table/nilMuestra el mismo impacto visual en unas coordenadas de este mundo.
impact.is_active()—boolComprueba si el impacto está activo; impact.id es su identificador de texto.
impact.remove()—boolElimina un impacto activo; false si ya está inactivo o falla la eliminación.
get_entity(uuid)stringtable/nilResuelve una entidad válida en el registro de entidades cargadas de este mundo. Usa una cadena UUID válida.
block_is_passable(x, y, z)int, int, intbool/nilDevuelve la transitabilidad del bloque, o nil para chunks descargados o coordenadas fuera de los límites de altura.
location_is_protected(location)tableboolConsulta los proveedores de protección registrados; si se omite el mundo, usa este.
spawn_dust(location, count, red, green, blue)table, int, int, int, intnilGenera DUST de tamaño fijo con componentes RGB de 0 a 255 y dispersión de 0.1 por eje; omite los chunks descargados. Usa una ubicación de este mundo.

Un raycast sin impacto devuelve una tabla vacía con campos de impacto nil. Un impacto en bloque incluye hit_block = {x, y, z, material}, con material en minúsculas. El trazado combinado usa tamaño de rayo de entidad 0.5 y no filtra entidades. loaded_only=true comprueba todo el rectángulo delimitador y puede rechazar un rayo aunque el chunk descargado no esté en su trayectoria exacta. Los nombres de fluido inválidos provocan errores.

Los nombres de partículas compartidas se convierten a mayúsculas antes de buscarlos. Estos métodos posicionales no tienen argumento de datos, por lo que las partículas que los requieren pueden provocar errores; usa spawn_dust para polvo RGB compartido. Las consultas del bloque más alto y los métodos de aparición no tienen una comprobación general de chunks cargados. La colocación de bloques no comprueba automáticamente la protección de regiones. Un resultado true no demuestra que una edición encolada o una comprobación require_air hayan tenido éxito.

Los bloques temporales con ticks positivos guardan el BlockData original y lo restauran cuando termina el temporizador, cuando se descarga el chunk o el mundo, o cuando se apaga el plugin. La restauración solo ocurre mientras el bloque siga conteniendo el bloque temporal, así que no se sobrescribe una edición posterior. Volver a colocar un bloque temporal sobre un bloque que todavía contiene uno reinicia su temporizador y conserva el primer original guardado. Se omiten los bloques con entidades de bloque, como cofres y carteles, los chunks descargados y los bloques que ya mantiene otro propietario de bloques temporales. Romper un bloque temporal no suelta nada y termina el rastreo sin restaurarlo; colocar un bloque en esa posición también termina el rastreo. Los ticks no positivos colocan el bloque de forma permanente y sin rastrearlo. Estas operaciones no son un sistema de reversión limitado al script.

Adiciones de mundo compartidas de EliteMobs​

EliteMobs registra estas utilidades en sus tablas de mundo compartidas, incluidos los scripts de NPC. Requieren que el chunk de destino esté cargado. La firma compartida de spawn_boss_at_location exige ubicación y nivel; los poderes de jefe la sustituyen por la forma de argumentos opcionales indicada más adelante.

MétodoArgumentosDevuelveDescripción
lightning_effect_at_location(location)tablenilMuestra un rayo sin su daño normal, usando el bypass de aparición de rayos de EliteMobs.
spawn_npc_at_location(file, location)string, tabletable/nilGenera un NPC configurado y devuelve un manejador con remove(), o nil si la aparición no es válida.
spawn_boss_at_location(file, location, level)string, table, inttable/nilGenera un jefe personalizado configurado y devuelve una tabla compartida de entidad viva, o nil si no está disponible.

context.world: adiciones de FreeMinecraftModels​

FreeMinecraftModels registra estos métodos en su propia tabla de mundo de MagmaCore, por lo que aparecen en context.world en sus scripts de props. Todos los métodos devuelven false cuando EliteMobs no está habilitado o no se resuelve el jugador. Las utilidades de botín recurren a la ubicación del jugador cuando falta su argumento de ubicación o no es utilizable.

Métodos​

MétodoArgsDevuelveDescripción
start_elitemobs_transport(player, route_id)player, stringboolInicia una ruta guardada de transporte de EliteMobs para un jugador del mismo mundo; false si el jugador o la integración no están disponibles.
drop_elitemobs_procedural_loot(player, level, location?)table/string, int, table?boolSuelta un objeto de EliteMobs generado proceduralmente para el jugador; devuelve false cuando las caídas de objetos procedurales están deshabilitadas.
drop_elitemobs_random_loot(player, level, location?)table/string, int, table?boolTira las tablas de botín de EliteMobs para el jugador en el nivel indicado.
drop_elitemobs_custom_loot(player, file, level, location?)table/string, string, int, table?boolSuelta un archivo de objeto personalizado concreto de EliteMobs para el jugador; devuelve false cuando el archivo no se resuelve.

El argumento player acepta una tabla de jugador, una cadena UUID o un nombre exacto de jugador. El argumento location acepta una tabla de ubicación o una tabla de entidad que contenga current_location. El botín procedural sigue el ajuste de entrega directa al inventario de EliteMobs, incluido dejar el excedente junto al jugador; no siempre cae en la ubicación solicitada.

Tabla auxiliar em​

MagmaCore expone esta tabla globalmente antes de ejecutar cualquier hook. Sus constructores solo crean datos; no registran vigilancias, cargan mundos ni validan formas completas. Usa punto para las funciones globales. Los métodos de las ubicaciones y zonas devueltas también admiten dos puntos, modifican su tabla y devuelven esa misma tabla. Los setters de zona conservan por referencia la tabla de ubicación proporcionada.

Propiedades​

Los constructores auxiliares devuelven las tablas de datos compactas que se muestran a continuación.

CampoTipoDescripción
location.xnumberCoordenada X devuelta por em.create_location.
location.ynumberCoordenada Y devuelta por em.create_location.
location.znumberCoordenada Z devuelta por em.create_location.
location.worldstring/nilNombre del mundo cuando se proporciona a em.create_location.
location.yawnumber/nilYaw cuando se proporciona a em.create_location.
location.pitchnumber/nilPitch cuando se proporciona a em.create_location.
vector.xnumberComponente X devuelto por em.create_vector.
vector.ynumberComponente Y devuelto por em.create_vector.
vector.znumberComponente Z devuelto por em.create_vector.
zone.kindstringsphere, dome, cylinder, cuboid, cone, static_ray, rotating_ray o translating_ray.
zone.radiusnumber/nilRadio de la esfera, cúpula, cilindro o cono.
zone.heightnumber/nilAltura del cilindro.
zone.xnumber/nilTamaño X del cuboide.
zone.ynumber/nilTamaño Y del cuboide.
zone.znumber/nilTamaño Z del cuboide.
zone.lengthnumber/nilLongitud del cono o del rayo.
zone.thicknessnumber/nilGrosor del rayo estático.
zone.point_radiusnumber/nilRadio de punto del rayo rotatorio o de traslación.
zone.animation_durationnumber/nilDuración de la animación del rayo rotatorio o de traslación.
zone.origintable/nilUbicación establecida por set_center o set_origin.
zone.destinationtable/nilUbicación establecida por set_destination.

Métodos​

MétodoArgsDevuelveDescripción
em.create_location(x, y, z, world?, yaw?, pitch?)number, number, number, string?, number?, number?tableDevuelve una tabla de ubicación.
em.create_vector(x, y, z)number, number, numbertableDevuelve una tabla de vector {x, y, z}.
location.add(dx?=0, dy?=0, dz?=0)number?=0, number?=0, number?=0tableSuma en el sitio y devuelve la misma tabla de ubicación.
em.zone.create_sphere_zone(radius)numbertableDevuelve una definición de esfera con set_center(location).
em.zone.create_dome_zone(radius)numbertableDevuelve una definición de cúpula con set_center(location).
em.zone.create_cylinder_zone(radius, height)number, numbertableDevuelve una definición de cilindro con set_center(location).
em.zone.create_cuboid_zone(x, y, z)number, number, numbertableDevuelve una definición de cuboide con set_center(location).
em.zone.create_cone_zone(length, radius)number, numbertableDevuelve una definición de cono con set_origin(location) y set_destination(location).
em.zone.create_static_ray_zone(length, thickness)number, numbertableDevuelve una definición de rayo estático con setters de origen y destino.
em.zone.create_rotating_ray_zone(length, point_radius, animation_duration)number, number, numbertableDevuelve una definición de rayo rotatorio con setters de origen y destino.
em.zone.create_translating_ray_zone(length, point_radius, animation_duration)number, number, numbertableDevuelve una definición de rayo de traslación con setters de origen y destino.
zone.set_center(location)tabletableEstablece el centro como zone.origin y devuelve la misma tabla de zona.
zone.set_origin(location)tabletableEstablece el origen y devuelve la misma tabla de zona.
zone.set_destination(location)tabletableEstablece el destino y devuelve la misma tabla de zona.
em.location.is_in_dungeon(location)tableboolComprueba las regiones de mazmorra registradas y los propietarios que declaran el tipo dungeon.
em.location.is_protected(location)tableboolComprueba los adaptadores integrados de WorldGuard/GriefPrevention y los propietarios de protección registrados por plugins.
em.location.owned_by(location, namespace)table, stringboolComprueba la propiedad por espacio de nombres de plugin.
em.location.owners(location)tabletableDevuelve un array de cadenas de espacios de nombres propietarios.
em.location.kinds_at(location)tabletableDevuelve un array de cadenas de tipos de propiedad.
em.location.has_kind(location, kind)table, stringboolComprueba un tipo de propiedad.

En em.location.*, world debe ser el nombre de un mundo cargado o una tabla con name; no se recurre al mundo del propietario. Un mundo omitido o no resuelto devuelve false o un array vacío, y las coordenadas omitidas usan cero. Los espacios de nombres de propietario distinguen mayúsculas; los tipos no. Ser propietario no implica pertenencia a una mazmorra ni protección. Las consultas reflejan los proveedores registrados, no todos los plugins de protección posibles; un adaptador de región registrado que falla informa de protección. Los arrays de propietarios y tipos no tienen un orden garantizado.

Contexto de un programa Mind​

Los callbacks nativos de Mind usan este contexto en lugar del contexto habitual de poderes o NPC. Los programas de comportamiento basados en archivos también se cargan desde plugins/EliteMobs/behaviors/; consulta la configuración de comportamiento de jefes. Las integraciones de EliteMobs registran las definiciones ai.program y ai.module mediante EliteMindService; guardarlas en el directorio habitual powers no registra un programa Mind.

CampoTipoDescripción
tick, generationnumberTick actual del juego y generación del runtime.
entitytableTabla compartida de entidad viva del actor.
memory, perception, actuator, actionstableServicios siguientes, limitados al callback actual.
MétodoArgumentosDevuelveDescripción
memory.get(key)stringvalue/nilLee una clave de memoria declarada.
memory.set(key, value, ttl_ticks?)string, value, int?nilEstablece una memoria declarada con su tipo configurado y una caducidad opcional.
memory.forget(key)stringnilElimina una memoria declarada.
memory.contains(key)stringboolComprueba si existe un valor de memoria declarado.
perception.current_target()—table/nilDevuelve el objetivo actual como tabla compartida de entidad viva.
perception.nearest_player(radius)numbertable/nilDevuelve el jugador más cercano dentro del radio.
perception.can_see(entity_or_uuid)table/stringboolComprueba la línea de visión hacia una entidad viva.
perception.navigation()—tableDevuelve destination_active, navigation_in_progress, consecutive_stuck_ticks, el campo opcional destination y el campo opcional last_progress con tick y position.
actuator.move_to(location, speed?=1)table, number?=1boolSolicita navegar hasta una ubicación del mismo mundo con una velocidad finita y positiva; false si no se inició la búsqueda de ruta.
actuator.stop_moving()—nilDetiene la navegación.
actuator.look_at(location)tablenilMira hacia una ubicación.
actuator.jump()—nilSolicita un salto.
actuator.set_target(entity_or_uuid)table/stringboolEstablece una entidad viva como objetivo; false si no puede resolverla.
actuator.clear_target()—nilBorra el objetivo.
actuator.attack(entity_or_uuid)table/stringboolSolicita un ataque; false si no puede resolver el objetivo.
actuator.stop_all()—nilDetiene el movimiento, el objetivo y el ataque que cubren los controles que tiene este comportamiento.
actions.request(identifier, payload?)string, table?stringSolicita una acción semántica y devuelve su resultado en minúsculas; los datos admiten valores escalares, tablas de UUID de entidades y tablas de posición world/x/y/z.

Cada callback construye las secciones de servicio al acceder por primera vez y las reutiliza durante ese callback. Las claves de memoria deben declararse; una clave no declarada provoca un error. Un resultado satisfactorio de actuator.set_target o actuator.attack significa que se resolvió una entidad viva y se remitió la solicitud, no que se completara la navegación o el ataque. Los datos de acción admiten los valores escalares y de entidad/posición compatibles, no tablas Lua anidadas arbitrarias. Los identificadores de acción deben ser claves en minúsculas con espacio de nombres de 128 caracteres como máximo; los datos admiten como máximo 16 entradas con claves en minúsculas de 64 caracteres como máximo, y los valores de texto están limitados a 256 caracteres. Todos los métodos del actuador salvo stop_all, y también actions.request, provocan un error si el comportamiento que llama no tiene el control correspondiente. Los sensores no pueden usar en absoluto el actuador ni las acciones. Los programas de comportamiento escritos en Lua se describen en Programas de Comportamiento.

Global ai​

MagmaCore instala esta global en todos los entornos Lua. Los constructores solo etiquetan la tabla que reciben; EliteMobs compila las tablas etiquetadas a partir de los archivos de programas de comportamiento.

CampoTipoDescripción
ai.controls.move, look, jump, target, attack, use_item, actionstringNombres de control para el array controls de un comportamiento; use_item no tiene método de actuador en Lua.
MétodoArgsDevuelveDescripción
ai.program(definition)tabletableEtiqueta una definición de programa con id, revision y los opcionales modules, memories, sensors, behaviors, budget y runaway.
ai.module(definition)tabletableEtiqueta una definición de módulo con id, revision y los opcionales dependencies, memories, sensors y behaviors.
ai.sensor(definition)tabletableEtiqueta un sensor con id, interval?=1 y sense(c).
ai.behavior(definition)tabletableEtiqueta un comportamiento con id, priority?=0, controls, can_start, can_continue, start, tick y stop(c, reason).

context.mind_action: hook de poderes de EliteMobs​

Disponible durante on_mind_action(context). El hook devuelve "accepted", "deferred" o "rejected"; los poderes asignados se recorren en orden de asignación hasta que uno acepta.

CampoTipoDescripción
keystringIdentificador de la acción semántica con espacio de nombres.
payloadtableCopia Lua de los datos de acción; editarla no modifica la solicitud original. Los UUID son cadenas y las posiciones son tablas {world, x, y, z}.
game_tick, generationnumberTick de la acción y generación del runtime.

context.state​

Cada instancia de script de MagmaCore recibe una tabla Lua simple que persiste durante toda la vida de esa instancia. Úsala para contadores, banderas, IDs de tareas y valores compartidos entre hooks.

context.state.counter = (context.state.counter or 0) + 1

context.log​

Métodos de MagmaCore, FreeMinecraftModels y NPC de EliteMobs​

MétodoArgsDevuelveDescripción
info(message)stringnilRegistra un mensaje informativo con el prefijo Lua compartido.
warn(message)stringnilRegistra una advertencia.
error(message)stringnilRegistra a través del canal de advertencia compartido.

Métodos de poderes de jefe de EliteMobs​

MétodoArgsDevuelveDescripción
info(message)stringnilRegistra un mensaje informativo de poder de jefe.
warn(message)stringnilRegistra una advertencia.
debug(message)stringnilRegistra un mensaje informativo con el prefijo de depuración de poder Lua.

context.scheduler​

Las tareas programadas pertenecen a la instancia del script y se cancelan cuando esta se apaga. Ambas familias de nombres siguientes están disponibles en las superficies compartidas de MagmaCore y en los poderes de jefe de EliteMobs.

Los callbacks reciben un contexto nuevo, normalmente sin event ni el player que lo desencadenó. Captura los valores o UUID necesarios antes de programarlos y después resuelve la entidad actual. Conservar el contexto original no conserva de forma segura su evento resuelto de forma diferida. Durante una pausa, las tareas únicas vencidas esperan y las repetitivas omiten ejecuciones sin recuperarlas después. Un error de callback cierra el script. El cierre cancela las tareas y vigilancias propias; no deshace ediciones arbitrarias de entidades o mundos ni cancela todos los temporizadores independientes de las utilidades.

MétodoArgsDevuelveDescripción
run_later(ticks, callback)int, functionintEjecuta una vez tras el retardo y devuelve el ID de tarea de Bukkit.
run_repeating(delay, interval, callback)int, int, functionintEjecuta repetidamente tras un retardo inicial y devuelve el ID de tarea.
cancel(task_id)intnilCancela una tarea propia.
run_after(ticks, callback)int, functionintAlias de run_later.
run_every(interval, callback)int, functionintEjecuta repetidamente sin retardo inicial y devuelve el ID de tarea.
cancel_task(task_id)intnilAlias de cancel.

context.cooldowns​

Omitir la clave local usa __lua: seguido del nombre de archivo del script. Las claves explícitas se usan exactamente como se proporcionan. Los almacenes locales de MagmaCore pertenecen al adaptador propietario del script: FMM crea uno distinto por script de prop, mientras que todos los scripts de un NPC de EliteMobs comparten adaptador y pueden coincidir en una clave local explícita. Los cooldowns globales de FMM se comparten entre los scripts del mismo prop; los de NPC se comparten en su adaptador.

Los poderes de jefe usan el almacén compartido del jefe para las claves locales y su cooldown de poder integrado para el estado global. Los temporizadores locales y los globales compartidos de MagmaCore miden tiempo real a 50 ms por tick, incluidas las pausas y los TPS bajos. Los cooldowns globales de jefe cuentan ticks del servidor y conservan la caducidad más tardía: un set_global más corto nunca acorta un cooldown global activo, y una duración no positiva no hace nada. Consultar o establecer un cooldown local no consulta ni establece automáticamente el global.

MétodoArgsDevuelveDescripción
local_ready(key?)string?boolComprueba si el cooldown local indexado está listo.
local_remaining(key?)string?intDevuelve los ticks restantes, o 0 cuando está listo.
check_local(key, duration)string/nil, intboolSi está listo, inicia el cooldown y devuelve true. Pasa nil para la clave por defecto.
set_local(duration, key?)int, string?nilEstablece o limpia el cooldown local; una duración no positiva lo limpia.
global_ready()—boolComprueba si el cooldown global del propietario está listo.
set_global(duration)intnilEstablece el cooldown global en ticks. En las superficies compartidas de MagmaCore, una duración no positiva lo limpia.

context.zones: superficie compartida de MagmaCore​

Los scripts de FreeMinecraftModels, los scripts de NPC de EliteMobs y otros consumidores de MagmaCore por defecto reciben manejadores de zona enteros en el mundo del propietario actual del script.

MétodoArgsDevuelveDescripción
create_sphere(x, y, z, radius)number, number, number, numberint/nilRegistra una esfera y devuelve su manejador, o nil cuando el propietario no tiene mundo.
create_cylinder(x, y, z, radius, height)number, number, number, number, numberint/nilRegistra un cilindro y devuelve su manejador, o nil cuando el propietario no tiene mundo.
create_cuboid(x, y, z, x_size, y_size, z_size)number, number, number, number, number, numberint/nilRegistra un cuboide y devuelve su manejador, o nil cuando el propietario no tiene mundo.
watch(handle, on_enter?, on_leave?)int, function?, function?bool/nilHabilita el seguimiento de límites para un manejador conocido. La presencia de la función habilita el hook on_zone_enter u on_zone_leave correspondiente; el cuerpo de la función proporcionada no se llama directamente.
unwatch(handle)intnilDetiene el seguimiento y elimina el manejador.

Las vigilancias genéricas comprueban puntos de ubicación de jugadores. En esta ruta, los tamaños de los cuboides son semiextensiones (si Z es cero, se sustituye por X cuando X no es cero); esto no establece el mismo volumen que las consultas de solapamiento de entidades o de muestreo de ubicaciones de EliteMobs. Las zonas conservan sus coordenadas y mundo de creación, mientras cada tick examina los jugadores del mundo actual del propietario. Los hooks genéricos de zona exponen al jugador que cruza mediante context.player y context.event.player.

La creación inicia inmediatamente el seguimiento de pertenencia, antes de que watch instale los despachadores de hooks. Instalar la vigilancia después no emite una entrada para quien ya estaba rastreado dentro. Omitir un callback en una segunda llamada a watch no elimina un despachador anterior. Las desconexiones y unwatch no garantizan un hook de salida. Las zonas se comprueban antes de on_game_tick.

context.event: superficie compartida de MagmaCore​

Esta tabla existe mientras un hook compartido tiene un evento de Bukkit o un actor actual. No está presente en callbacks programados ni en hooks sin ninguno de esos dos valores.

Campo o métodoTipoDescripción
is_cancelledboolEstado de cancelación capturado al resolver por primera vez la subtabla de evento; llamar a cancel() o uncancel() no actualiza este campo.
cancel()métodoCancela el evento actual. Presente solo cuando implementa Cancellable de Bukkit.
uncancel()métodoDescancela el evento actual. Presente solo cuando implementa Cancellable de Bukkit.
playertableTabla de entidad viviente del actor actual cuando hay uno disponible.

Los hooks genéricos de zona proporcionan un actor pero ningún evento cancelable de Bukkit, así que exponen is_cancelled = false y player sin cancel() ni uncancel().

context.item​

Los scripts de acción de encantamiento exponen esta tabla cuando el origen capturado tiene una ranura de inventario y un objeto. Se dirige a esa ranura exacta y compara el material y los metadatos del objeto actual con la copia capturada, ignorando el daño y la cantidad de la pila. No busca en el inventario del jugador ni sigue la identidad única de un objeto: un reemplazo equivalente en la ranura capturada también coincide. Puede ser nil para munición consumida. Es distinto del entorno retirado de objetos equipados de FreeMinecraftModels.

MétodoArgsDevuelveDescripción
get_durability()—table/nilDurabilidad restante {current, max}; nil si el objeto no está disponible o no tiene durabilidad.
get_durability_percentage()—number/nilDurabilidad restante dividida por el máximo del material; normalmente 0..1, aunque metadatos con daño excesivo externo pueden quedar fuera del intervalo.
use_durability(amount, can_break?=false)int, bool?boolModifica el daño; las cantidades negativas reparan. Por defecto conserva al menos un punto de durabilidad; can_break=true puede consumir la pila.
use_durability_percentage(fraction, can_break?=false)number, bool?boolAplica ceil(max_durability * fraction) de daño con la misma política de rotura.
consume(amount)entero positivoboolConsume de la pila capturada solo cuando quedan suficientes objetos.

La durabilidad usa el máximo del material, no un componente personalizado de daño máximo. Estos cambios directos no aplican cálculos de desgaste vanilla, Irrompibilidad, comprobaciones de objetos irrompibles ni eventos de daño al objeto del jugador. Los porcentajes requieren valores finitos y un resultado dentro del intervalo de enteros; las fracciones negativas reparan. La rotura consume toda la pila capturada. Para el ciclo de vida y contexto completo, consulta los encantamientos personalizados.

context.prop​

Los scripts de props de FreeMinecraftModels reciben esta tabla, que hereda la tabla de entidad de MagmaCore cuando existe una entidad de respaldo.

Propiedades​

CampoTipoDescripción
model_idstring/nilNombre del blueprint del modelo, o nil cuando no existe blueprint.
current_locationtable/nilUbicación en vivo del prop.

Métodos​

MétodoArgsDevuelveDescripción
play_animation(name, blend?=true, loop?=true)string, bool?=true, bool?=trueboolReproduce la animación indicada.
stop_animation()—nilVacía la cola de reproducción y vuelve a idle cuando está disponible; no afecta al estado terminal de muerte.
hurt_visual()—nilReproduce el efecto visual rojo de daño sin infligir daño.
pickup()—nilEncola la eliminación permanente y suelta un objeto de colocación.
has_mount_points()—boolComprueba si el prop tiene huesos de punto de montura.
mount(player)tableboolEncola el montaje de un jugador resuelto en el primer asiento disponible.
dismount(player)tableboolEncola el desmontaje de un jugador resuelto de este prop.
get_passengers()—tableDevuelve las tablas de entidad de los jugadores montados.
spawn_elitemobs_boss(file, x, y, z)string, number, number, numbertable/nilGenera un jefe personalizado de EliteMobs cuando EliteMobs está habilitado.
open_inventory(player, title, rows?=3)table, string, int?=3boolEncola la apertura del almacenamiento persistente con las filas limitadas de 1 a 6.
place_book(player)tableboolEncola el guardado de un libro escrito o escribible que el jugador tenga en la mano, cuando el prop no tiene ninguno.
read_book(player)tableboolEncola la apertura de un libro escrito guardado.
take_book(player)tableboolEncola la devolución del libro guardado al jugador.
has_book()—boolComprueba si el prop guarda un libro.
drop_inventory()—boolEncola el vaciado del almacenamiento persistente y suelta sus objetos.
drop_book()—boolEncola el vaciado y la caída del libro guardado.
is_viewing_inventory(player)tableboolComprueba si el jugador está viendo el inventario rastreado de este prop.
set_persistent_data(key, value)string, stringboolGuarda una cadena bajo la clave fmm_lua_ con ámbito de prop.
get_persistent_data(key)stringstring/nilDevuelve la cadena guardada, o nil.

En las operaciones de prop encoladas, true significa que pasaron las comprobaciones iniciales de jugador y entidad de respaldo, no que hubiera asiento, se guardara un libro o se abriera una interfaz. take_book elimina el almacenamiento antes de insertar el libro y no deja caer el excedente del inventario. Todos los que ven un mismo prop comparten un único inventario activo, que se guarda cuando lo cierra el último; mientras está abierto, las llamadas posteriores reutilizan su título y tamaño. Un contenido guardado mayor que las filas solicitadas se abre con su tamaño guardado, así que no se pierde ninguna ranura. Los datos se guardan en el soporte para armaduras; un objeto de colocación recién generado no garantiza conservarlos al recoger el prop.

En on_projectile_hit, los scripts de props también reciben context.projectile, una Tabla de entidad compartida para el proyectil. El hook no se dispara si otro plugin ya canceló el impacto. context.event envuelve el evento de impacto cancelable de FreeMinecraftModels, y context.event.player es el tirador cuando es una entidad viva, incluidos los mobs; context.player solo se establece cuando el proyectil lo disparó un jugador.

context.npc​

Los scripts de NPC de EliteMobs heredan los contextos compartidos de MagmaCore y añaden esta tabla específica de NPC.

Propiedades​

CampoTipoDescripción
namestringNombre mostrado del NPC configurado.
filenamestringNombre del archivo de configuración del NPC.
uuidstringUUID del NPC en tiempo de ejecución.
activation_radiusnumberRadio de activación configurado.
current_locationtableInstantánea de la ubicación, presente solo mientras exista la entidad viviente de respaldo.
entity_typestringTipo de entidad de Bukkit en mayúsculas, presente solo mientras exista la entidad viviente de respaldo.

Métodos​

MétodoArgsDevuelveDescripción
is_valid()—boolComprueba si el NPC es válido.
remove()—nilElimina el NPC mediante el ciclo de vida que lo gestiona.
get_location()—tableDevuelve la ubicación actual del NPC, recurriendo a su ubicación de aparición. La tabla también incluye un vector direction.
get_eye_location()—tableDevuelve la ubicación actual de los ojos, recurriendo a la ubicación de aparición. La tabla también incluye un vector direction.
get_activation_radius()—numberDevuelve el radio de activación configurado actual.
get_nearby_players(radius)numbertableDevuelve tablas de jugadores del mismo mundo dentro de un radio 3D desde los pies del NPC, sin filtrar el modo de juego.
face_direction_or_location(target)tablenilOrienta hacia un vector o una ubicación del mismo mundo; se ignora mientras la patrulla se mueve activamente.
say_greeting(player?)table/string?nilEnvía el saludo configurado, usando por defecto al jugador que lo desencadenó cuando está disponible. Se acepta una tabla de jugador, un UUID o un nombre.
say_dialog(player?)table/string?nilEnvía el diálogo configurado con la misma resolución de jugador.
say_farewell(player?)table/string?nilEnvía la despedida configurada con la misma resolución de jugador.
play_model_animation(name)stringnilReproduce una animación de modelo cuando existe un modelo personalizado.
patrol_pause()—boolPausa la patrulla configurada.
patrol_resume()—boolReanuda la patrulla tras una espera o marcha de script.
walk_to(x, y, z)number, number, numberboolCamina hasta un desplazamiento del origen y reanuda la patrulla.
hold(x, y, z)number, number, numberboolCamina hasta un desplazamiento y permanece allí.
teleport(x, y, z)number, number, numberboolSe teletransporta a un desplazamiento que procesa entidades.

Tabla de ubicación de poderes de EliteMobs​

Las tablas de poderes de jefe de EliteMobs devuelven esta forma de ubicación desde get_location(), get_eye_location(), current_location y otros resultados de ubicación. Una ubicación ausente devuelve una tabla vacía.

Propiedades​

CampoTipoDescripción
x, y, znumberCoordenadas.
yaw, pitchnumberRotación.
worldstring/nilNombre del mundo cuando la ubicación tiene mundo.
directiontableVector unitario {x, y, z} de orientación.

Métodos​

MétodoArgsDevuelveDescripción
add(dx?=0, dy?=0, dz?=0)number?=0, number?=0, number?=0tableSuma a las coordenadas en la propia tabla y devuelve la misma tabla; direction no se actualiza.

Tabla de referencia de entidad de poderes de EliteMobs​

Los métodos de poderes de jefe de EliteMobs devuelven esta tabla ligera para entidades no vivientes como proyectiles, fuegos artificiales y bloques que caen.

Propiedades​

CampoTipoDescripción
namestringInstantánea del nombre de la entidad.
uuidstringUUID de la entidad.
entity_typestringInstantánea del tipo de entidad de Bukkit en mayúsculas.
is_playerboolSiempre false.
is_eliteboolSiempre false.
is_mountboolFalse salvo que un jefe marque como true una tabla de montura devuelta.
current_locationtableInstantánea de la ubicación.

Métodos​

MétodoArgsDevuelveDescripción
is_valid()—boolComprueba la validez en vivo.
get_location()—tableDevuelve la ubicación en vivo.
get_velocity()—tableDevuelve la velocidad en vivo.
is_on_ground()—boolComprueba el estado en vivo de contacto con el suelo.
teleport_to_location(location)tablenilTeletransporta cuando la ubicación se resuelve.
set_velocity_vector(vector)tablenilEstablece la velocidad cuando el vector se resuelve.
set_direction_vector(vector)tablenilEstablece la dirección de una bola de fuego cuando corresponde.
set_yield(amount)numbernilEstablece la potencia de la bola de fuego cuando corresponde.
set_gravity(enabled)boolnilEstablece la gravedad.
detonate()—nilDetona cuando la entidad es un fuego artificial.
remove()—nilElimina la entidad.
unregister(reason?=OTHER)string?=OTHERnilDa de baja usando DEATH, PHASE_BOSS_RESET, PHASE_BOSS_PHASE_END, CHUNK_UNLOAD, WORLD_UNLOAD, SHUTDOWN, EFFECT_TIMEOUT, BOSS_TIMEOUT, NPC_TIMEOUT, OTHER, UNSPECIFIED_WATCHDOG_REMOVAL, REMOVE_COMMAND, KILL_COMMAND, REINFORCEMENT_CULL, ENTITY_REPLACEMENT o ARENA_RESET.
is_inside_vehicle()—boolComprueba si la entidad va montada en un vehículo.
has_vehicle()—boolComprueba si existe un vehículo.
get_vehicle()—table/nilDevuelve la referencia al vehículo actual.
set_vehicle(vehicle)tableboolHace que esta entidad monte el vehículo resuelto.
leave_vehicle()—boolAbandona el vehículo actual.
has_passengers()—boolComprueba si existen pasajeros.
get_passenger_count()—intDevuelve el número de pasajeros.
get_passengers()—tableDevuelve las referencias a los pasajeros.
add_passenger(passenger)tableboolAñade el pasajero resuelto.
remove_passenger(passenger)tableboolElimina el pasajero resuelto.
eject_passengers()—boolExpulsa a todos los pasajeros.

Tabla de entidad viviente de poderes de EliteMobs​

Los valores de entidades vivientes de los poderes de jefe de EliteMobs usan esta tabla aparte; las tablas de jefe y de jugador de poderes de EliteMobs la heredan.

Propiedades​

CampoTipoDescripción
namestringInstantánea del nombre de la entidad.
uuidstringUUID de la entidad.
entity_typestringInstantánea del tipo de entidad de Bukkit en mayúsculas.
is_playerboolSi la entidad es un jugador.
is_monsterboolSi la entidad implementa Monster de Bukkit.
is_eliteboolSi EliteMobs rastrea la entidad.
is_mountboolSi el jefe personalizado rastreado es una montura.
is_validboolInstantánea de validez.
healthnumberInstantánea de salud.
maximum_healthnumberInstantánea de salud máxima.
current_locationtableInstantánea de la ubicación.

Métodos​

MétodoArgsDevuelveDescripción
is_alive()—boolComprueba la validez en vivo y el estado de muerte.
is_ai_enabled()—boolDevuelve el estado en vivo de la IA.
is_frozen()—boolDevuelve la opción de congelación del jefe personalizado de EliteMobs, o false.
get_location()—tableDevuelve la ubicación en vivo.
get_eye_location()—tableDevuelve la ubicación en vivo de los ojos.
get_height()—numberDevuelve la altura de la entidad de Bukkit.
get_health()—numberDevuelve la salud en vivo.
get_maximum_health()—numberDevuelve la salud máxima en vivo.
get_velocity()—tableDevuelve la velocidad en vivo.
deal_damage(amount)numbernilInflige daño genérico de Bukkit.
deal_custom_damage(amount)numbernilEnvía daño personalizado directo desde el jefe a un objetivo vivo; omite al propio jefe, a los objetivos invulnerables o muertos y a los jugadores que no estén en Supervivencia/Aventura. Sujeto a la política de instancia y a la cancelación del evento de daño.
deal_damage_from_boss(amount)numbernilInflige daño de Bukkit atribuido al jefe del poder.
restore_health(amount)numbernilCura a través de EliteMobs cuando está rastreado; en caso contrario limita la salud de Bukkit al máximo.
play_sound_at_entity(sound, volume_or_options?=1, pitch?=1)string (Sound), number/table?=1, number?=1nilReproduce un sonido registrado o personalizado con espacio de nombres en la entidad. El segundo argumento puede ser en su lugar {volume, pitch}.
play_sound_at_self(sound, volume_or_options?=1, pitch?=1)string (Sound), number/table?=1, number?=1nilAlias que reproduce en la entidad. El segundo argumento puede ser en su lugar {volume, pitch}.
spawn_particle_at_self(particle, count?=1)string (Particle)/table, int?=1nilGenera una partícula a partir de una cadena o de una tabla de especificación de partícula en la entidad.
spawn_particles_at_location(location, particle, count?=1, dx?=0, dy?=0, dz?=0, speed?=0)table, string (Particle), int?=1, number?=0, number?=0, number?=0, number?=0nilGenera una partícula en una ubicación.
teleport_to_location(location)tablenilTeletransporta cuando la ubicación se resuelve.
set_velocity_vector(vector)tablenilEstablece la velocidad cuando el vector se resuelve.
set_gravity(enabled)boolnilEstablece la gravedad.
is_on_ground()—boolComprueba el estado en vivo de contacto con el suelo.
apply_push_vector(vector, additive?=false, delay?=1)table, bool?=false, int?=1nilAplica velocidad tras un retardo, opcionalmente sumándola a la velocidad actual.
set_custom_name(name)stringnilEstablece un nombre personalizado procesado por color.
reset_custom_name()—nilRestaura el nombre de EliteMobs cuando está rastreado; en caso contrario, el nombre de Bukkit.
set_custom_name_visible(visible)boolnilEstablece la visibilidad del nombre personalizado.
set_ai_enabled(enabled, duration?=0)bool, int?=0nilEstablece la IA como cambio propio; un número positivo de ticks restaura el valor sustituido. true termina el cambio de IA activo de este poder, si lo hay, en lugar de aplicar un valor nuevo.
set_awareness_enabled(enabled, duration?=0)bool, int?=0nilEstablece la percepción del mob como cambio propio; un número positivo de ticks restaura el valor sustituido. true termina el cambio de percepción activo de este poder, si lo hay, en lugar de aplicar un valor nuevo.
face_direction_or_location(target)tablenilOrienta hacia un vector o hacia una ubicación del mismo mundo.
play_model_animation(name)stringnilReproduce una animación de modelo personalizado cuando está disponible.
set_scale(scale, duration?=0)number, int?=0nilEstablece la escala base como cambio propio; un número positivo de ticks restaura el valor sustituido.
set_invulnerable(enabled, duration?=0)bool, int?=0nilEstablece la invulnerabilidad como cambio propio; un número positivo de ticks restaura el valor sustituido.
remove_elite()—nilElimina un elite rastreado a través del pipeline de eliminación de EliteMobs.
is_healing()—boolComprueba el estado de curación del elite rastreado.
set_healing(enabled)boolniltrue marca un elite rastreado como en curación si todavía no lo está; false solo borra la curación que estableció este poder. Al apagarse el poder, se borra la curación que siga siendo suya.
navigate_to_location(location, speed?=1, force?=false, timeout?=0)table, number?=1, bool?=false, int?=0nilHace navegar a un jefe personalizado rastreado.
add_tag(tag, duration?=0)string, int?=0nilAñade una etiqueta y la elimina tras un número positivo de ticks.
remove_tag(tag)stringnilElimina una etiqueta.
has_tag(tag)stringboolComprueba una etiqueta de entidad, elite o jugador.
push_relative_to(location, force?=1, extra_x?=0, extra_y?=0, extra_z?=0)table, number?=1, number?=0, number?=0, number?=0nilSustituye inmediatamente la velocidad por un vector normalizado hacia fuera multiplicado por force, más desplazamientos en los ejes del mundo. Usa un origen del mismo mundo.
overlaps_box_at_location(center, half_x?=0.5, half_y?=half_x, half_z?=half_x)table, number?=0.5, number?, number?boolComprueba la caja delimitadora de la entidad contra la caja solicitada.
is_inside_vehicle()—boolComprueba si la entidad va montada en un vehículo.
has_vehicle()—boolComprueba si existe un vehículo.
get_vehicle()—table/nilDevuelve la referencia al vehículo actual.
set_vehicle(vehicle)tableboolHace que esta entidad monte el vehículo resuelto.
leave_vehicle()—boolAbandona el vehículo actual.
has_passengers()—boolComprueba si existen pasajeros.
get_passenger_count()—intDevuelve el número de pasajeros.
get_passengers()—tableDevuelve las referencias a los pasajeros.
add_passenger(passenger)tableboolAñade el pasajero resuelto.
remove_passenger(passenger)tableboolElimina el pasajero resuelto.
eject_passengers()—boolExpulsa a todos los pasajeros.
apply_potion_effect(type, duration, amplifier?=0)string (PotionEffectType), int, int?=0nilResuelve un nombre de poción de Bukkit convertido a mayúsculas y lo aplica si la política de instancia lo permite. Los amplificadores empiezan en cero.
set_equipment(slot, material, options?)string (EquipmentSlot), string (Material), table?nilEstablece el equipamiento; las opciones admiten entradas unbreakable y enchantments con type y level.
damage_equipment(slot, amount)string, intintSolicita 1–64 puntos de daño de durabilidad en HAND, OFF_HAND, HEAD, CHEST, LEGS o FEET; devuelve el daño realmente aplicado. Respeta la cancelación del evento de daño al objeto del jugador y los objetos irrompibles; puede romper el objeto.
set_fire_ticks(ticks)intnilEstablece los ticks de fuego si la política de instancia lo permite.
add_visual_freeze_ticks(ticks?=1)int?=1nilAñade ticks de congelación de Minecraft si la política de instancia lo permite; puede causar daño de congelación y no bloquea la IA ni el movimiento.
place_temporary_block(material, ticks?=0, require_air?=false)string (Material), int?=0, bool?=falsenilColoca un bloque temporal en la entidad.

Los cambios de IA, percepción, escala e invulnerabilidad pertenecen al poder que los hace. Cada uno registra el valor que sustituyó. Una duración positiva restaura ese valor tras los ticks indicados; una duración de 0 mantiene el cambio hasta que el poder se apaga, lo que también lo restaura. Cuando varios poderes cambian la misma propiedad, al terminar un cambio se restaura el cambio restante más reciente, o el valor original si no queda ninguno. Si otro plugin o comando cambia la propiedad entretanto, se conserva su valor y no se restaura nada. Pausar un poder no termina estos cambios. El apply_push_vector retardado y los temporizadores de eliminación de etiquetas siguen ejecutándose independientemente del planificador propio del script. reset_custom_name restaura el nombre de un élite rastreado; para una entidad Bukkit normal usa su nombre actual, no uno original guardado.

Tabla de jugador de poderes de EliteMobs​

Los valores de jugador de los poderes de jefe de EliteMobs heredan todas las propiedades y métodos de la tabla de entidad viviente de poderes de EliteMobs.

Propiedades​

CampoTipoDescripción
game_modestringInstantánea del modo de juego de Bukkit en mayúsculas.

Métodos​

MétodoArgsDevuelveDescripción
send_message(text)stringnilEnvía texto de chat procesado por color.
show_action_bar(text)stringnilEnvía una barra de acción procesada por color.
show_title(title, subtitle?="", fade_in?=10, stay?=40, fade_out?=10)string, string?="", int?=10, int?=40, int?=10nilMuestra un título procesado por color.
show_boss_bar(title, color?=WHITE, style?=SOLID, duration?=40)string, string (BarColor)?=WHITE, string (BarStyle)?=SOLID, int?=40nilMuestra una barra de jefe y la elimina tras un número positivo de ticks.
run_command(command)stringnilEjecuta un comando como el jugador.

context.boss​

Los poderes de jefe de EliteMobs reciben esta tabla, que hereda todas las propiedades y métodos de la tabla de entidad viviente de poderes de EliteMobs y sustituye las filas aquí listadas con semántica de nivel elite.

Propiedades​

CampoTipoDescripción
namestringInstantánea del nombre mostrado del elite o del nombre de archivo del script.
uuidstringUUID del elite.
healthnumberInstantánea de la salud del elite.
maximum_healthnumberInstantánea de la salud máxima del elite.
current_locationtableInstantánea de la ubicación del elite.
levelintInstantánea del nivel del elite.
damager_countintInstantánea del número de atacantes.
is_in_combatboolInstantánea del estado de combate.
existsboolInstantánea de la existencia del elite.

Métodos​

MétodoArgsDevuelveDescripción
is_alive()—boolComprueba la entidad viviente y el estado de existencia en EliteMobs.
get_health()—numberDevuelve la salud en vivo del elite.
get_maximum_health()—numberDevuelve la salud máxima en vivo del elite.
get_location()—tableDevuelve la ubicación en vivo del elite.
restore_health(amount)numbernilCura a través de la entidad de EliteMobs.
add_tag(tag, duration?=0)string, int?=0nilAñade una etiqueta de elite y la elimina tras un número positivo de ticks.
remove_tag(tag)stringnilElimina una etiqueta de elite.
has_tag(tag)stringboolComprueba una etiqueta de elite.
reset_custom_name()—nilRestaura el nombre mostrado del elite.
play_sound_at_self(sound, volume_or_options?=1, pitch?=1)string (Sound), number/table?=1, number?=1nilReproduce un sonido registrado o personalizado con espacio de nombres en la ubicación del elite. El segundo argumento puede ser en su lugar {volume, pitch}.
play_sound_at_entity(sound, volume_or_options?=1, pitch?=1)string (Sound), number/table?=1, number?=1nilAlias que reproduce en la ubicación del elite. El segundo argumento puede ser en su lugar {volume, pitch}.
spawn_particle_at_self(particle, count?=1)string (Particle)/table, int?=1nilGenera una partícula en la ubicación del elite.
play_model_animation(name)stringnilReproduce la animación del modelo del jefe personalizado cuando está disponible.
navigate_to_location(location, speed?=1, force?=false, timeout?=0)table, number?=1, bool?=false, int?=0nilHace navegar a un jefe personalizado.
get_damager_count()—intDevuelve el número de atacantes en vivo.
despawn()—nilElimina el elite con el motivo OTHER.
remove()—nilAlias de despawn().
patrol_pause()—boolPausa la patrulla configurada.
patrol_resume()—boolReanuda la patrulla tras una espera o marcha de script.
walk_to(x, y, z)number, number, numberboolCamina hasta un desplazamiento del origen y reanuda la patrulla.
hold(x, y, z)number, number, numberboolCamina hasta un desplazamiento y permanece allí.
teleport(x, y, z)number, number, numberboolSe teletransporta a un desplazamiento que procesa entidades.
get_ender_dragon_phase()—string/nilDevuelve el nombre de EnderDragon.Phase, o nil.
set_ender_dragon_phase(phase)string (EnderDragon.Phase)nilEstablece una fase válida del dragón del End.
has_mount()—boolComprueba si el jefe tiene un vehículo de montura vivo.
get_mount()—table/nilDevuelve la referencia a la montura marcada con is_mount = true.
set_mount(mount)tableboolHace que el jefe monte la entidad resuelta.
clear_mount()—boolAbandona el vehículo actual.
dismount()—boolAlias de clear_mount().
start_tracking_fireball_system(speed?=0.5)number?=0.5nilEn un jefe de tipo monstruo, lanza bolas de fuego rastreadoras hacia jugadores en Supervivencia/Aventura a 20 bloques o menos en cada eje en el tick siguiente y cada 160 ticks mientras tenga objetivo. El poder es dueño de esta tarea: pausarlo la pausa, y perder el objetivo o apagarse la detiene. La velocidad debe ser finita y positiva.
handle_spirit_walk_damage(cause)string (DamageCause)nilEjecuta el manejo de daño de Spirit Walk.
shield_wall_is_active()—boolComprueba el estado del muro de escudos.
initialize_shield_wall(openingDirection?=1)int?=1nilInicializa reservas por dirección iguales al nivel del jefe. Apertura: 1 norte, 2 este, 3 sur, 4 oeste; otros enteros protegen todos los lados. No cambia un muro ya activo.
shield_wall_absorb_damage(player, damage)table, numberboolResta daño de la reserva del lado del atacante si era positiva; true indica que el script debe cancelar el evento de daño. No lo cancela automáticamente.
deactivate_shield_wall()—nilDetiene la tarea independiente del muro y elimina su estado y efectos. Cerrar Lua por sí solo no lo desactiva.
start_zombie_necronomicon(target, chant)table, stringnilInicia el controlador independiente para un objetivo vivo. La cadena es texto mostrado, no un archivo; invoca los archivos fijos de zombi/esqueleto del necronomicón al nivel del lanzador.
send_message(text, range?=20)string, number?=20nilEnvía texto procesado por color a los jugadores dentro del radio.
get_nearby_players(range)numbertableDevuelve tablas de jugador de poderes de EliteMobs cercanas.
get_nearby_elites(radius)numbertableDevuelve hasta 32 élites vivas registradas del mismo mundo, excluyendo al jefe; ordenadas por distancia y luego por UUID en caso de empate. El radio debe ser mayor que 0 y como máximo 64.
get_target_player()—table/nilDevuelve el objetivo actual del mob cuando es un jugador.
get_nearby_players_in_zone(zone)tabletableDevuelve los jugadores contenidos en la zona.
spawn_particles_in_zone(zone, particle, count?=1, dx?=0, dy?=0, dz?=0, speed?=0, coverage?=1)table, string (Particle), int?=1, number?=0, number?=0, number?=0, number?=0, number?=1nilMuestrea el interior de la zona y genera partículas.
spawn_particles_in_zone_border(zone, particle, count?=1, dx?=0, dy?=0, dz?=0, speed?=0, coverage?=1)table, string (Particle), int?=1, number?=0, number?=0, number?=0, number?=0, number?=1nilMuestrea el borde de la zona y genera partículas.
get_particles_from_self_toward_zone(zone, particle, speed?=0.1)table, string (Particle), number?=0.1tableConstruye especificaciones de partículas direccionales desde el jefe hacia los puntos muestreados de la zona.
get_particles_toward_self(zone, particle, speed)table, string (Particle), numbertableConstruye especificaciones de partículas direccionales hacia el jefe; el constructor en vivo lee actualmente la velocidad del último argumento proporcionado.
spawn_particles_with_vector(particles)tablenilGenera un array de especificaciones de partículas direccionales.
summon_reinforcement(file, zone_or_location?, duration?=0)string, table?, int?=0table/nilInvoca un refuerzo en un punto muestreado de la zona, en una ubicación o en el jefe; una duración positiva lo elimina después de ese número de ticks.
summon_projectile(type, origin, destination, speed?=1, options?)string (EntityType), table, table, number?=1, table?table/nilGenera un proyectil; las opciones admiten custom_damage, detonation_power, yield, incendiary, gravity, glowing, invulnerable, persistent, duration, effect de EntityEffect, spawn_at_origin, direction_only, track, on_land y max_ticks.

context.players: poderes de jefe de EliteMobs​

MétodoArgsDevuelveDescripción
current_target()—table/nilDevuelve el actor del evento cuando es un jugador; en caso contrario, el objetivo actual del mob del jefe cuando es un jugador.
nearby_players(radius)numbertableDevuelve las tablas de jugador dentro del radio del jefe.
all_players_in_world()—tableDevuelve todas las tablas de jugador del mundo actual del jefe.

context.entities: poderes de jefe de EliteMobs​

Las consultas de colecciones excluyen al propio jefe. Los filtros de entidades vivientes aceptan player/players, elite/elites, mob/mobs o cualquier otro valor para todas las entidades vivientes. No filtran por Supervivencia/Aventura ni por pertenencia a una instancia de mazmorra. La consulta de objetivo directo devuelve el proporcionado por el hook independientemente de esos filtros de colección.

MétodoArgsDevuelveDescripción
get_nearby_entities(radius, filter?="living")number, string?tableLos filtros de entidades vivas usan un radio 3D desde los pies. all o entities usa en cambio la consulta de caja alineada con los ejes de Bukkit e incluye entidades no vivas.
get_entities_in_box(center, half_x, half_y, half_z, filter?="living")table, number, number, number, string?tableDevuelve entidades vivas cuya ubicación de pies está dentro de la caja, incluido su límite.
get_all_entities(filter?="living")string?tableDevuelve las entidades vivientes coincidentes en el mundo del jefe.
get_direct_target_entity()—table/nilDevuelve el objetivo directo proporcionado por el hook actual.
get_boss_spawn_location()—tableDevuelve la ubicación de aparición original del jefe.

context.vectors: poderes de jefe de EliteMobs​

MétodoArgsDevuelveDescripción
get_vector_between_locations(source, destination, options?)table, table, table?tableDevuelve el vector entre ubicaciones del mismo mundo, o {x=0,y=0,z=0} para entradas inválidas o de mundos distintos. Las opciones admiten normalize, multiplier y el vector offset.
rotate_vector(vector, pitch?=0, yaw?=0)table, number?=0, number?=0tableDevuelve el vector rotado por pitch y yaw en grados.
normalize_vector(vector)tabletableDevuelve un vector unitario; un vector cero sigue siendo cero.

context.zones: poderes de jefe de EliteMobs​

Los poderes de jefe de EliteMobs sustituyen la superficie compartida de zonas con manejadores enteros por consultas de definición de zona de Elite Script.

La pertenencia de entidades, la contención de puntos y las ubicaciones muestreadas para partículas son operaciones distintas y pueden diferir en los límites. coverage cambia las ubicaciones muestreadas, no la selección de entidades. watch_zone captura una forma y llama a cada callback con una tabla de entidad, no un contexto; empieza tras un tick e informa de las entidades ya presentes como entradas. Detener una vigilancia no emite callbacks de salida.

MétodoArgsDevuelveDescripción
get_entities_in_zone(zone, options?)table, table?tableDevuelve las entidades vivientes coincidentes. Las opciones admiten filter y mode = "full" o "border".
get_locations_in_zone(zone, options?)table, table?tableDevuelve ubicaciones muestreadas. Las opciones admiten coverage y mode = "full" o "border".
zone_contains(zone, location, mode?="full")table, table, string?boolComprueba si la ubicación está en la forma completa o en el borde.
watch_zone(zone, callbacks, options?)table, table, table?nilVigila con callbacks {on_enter, on_leave}. Las opciones admiten filter y mode; la vigilancia propia se detiene con el script.

context.script: poderes de jefe de EliteMobs​

Este puente acepta las mismas claves de tabla que la configuración YAML de objetivo, zona y vector relativo de Elite Script.

Métodos​

MétodoArgsDevuelveDescripción
target(spec)tablemanejador de objetivoCrea un manejador de objetivo.
zone(spec)tablemanejador de zonaCrea un manejador de zona.
relative_vector(spec, location?, zone?)table, table?, manejador de zona?manejador de vectorCrea un manejador de vector relativo, usando por defecto al jefe como ubicación de acción.
damage(target, amount?=0, multiplier?=1)manejador de objetivo, number?=0, number?=1nilEnvía daño Bukkit atribuido al jefe. Los golpes a jugadores entran en el escalado de combate de EliteMobs con el multiplicador; los demás no aplican ese multiplicador.
push(target, vector, additive?=false)manejador de objetivo, table/manejador de vector, bool?=falsenilTras un tick mediante una tarea propia, sustituye o suma velocidad a los objetivos capturados; usa un único vector resuelto para todos y convierte un vector ausente/no finito en cero.
set_facing(target, vector)manejador de objetivo, table/manejador de vectornilOrienta las entidades objetivo resueltas a lo largo del vector.
spawn_particles(target, particles)manejador de objetivo, table/stringnilGenera la especificación de partículas en las ubicaciones objetivo resueltas.

Estas llamadas no ejecutan automáticamente una lista de acciones, condiciones, cooldowns, avisos retardados ni repeticiones de Elite Script. Los manejadores conservan el contexto de evento y objetivo directo de su creación; evita reutilizar los que dependen de eventos entre hooks independientes. first_entity() significa el primer resultado del resolutor, no necesariamente la entidad más cercana.

Métodos del manejador de objetivo​

MétodoArgsDevuelveDescripción
entities()—tableResuelve y devuelve tablas de entidad.
locations()—tableResuelve y devuelve tablas de ubicación.
first_entity()—table/nilDevuelve la primera entidad resuelta.
first_location()—table/nilDevuelve la primera ubicación resuelta.

Métodos del manejador de zona​

MétodoArgsDevuelveDescripción
full_target(coverage?)number?manejador de objetivoCrea un manejador de objetivo para el interior de la forma.
border_target(coverage?)number?manejador de objetivoCrea un manejador de objetivo para el borde.
full_locations(coverage?)number?tableResuelve las ubicaciones muestreadas del interior.
border_locations(coverage?)number?tableResuelve las ubicaciones muestreadas del borde.
full_entities()—tableResuelve las entidades dentro de la forma.
border_entities()—tableResuelve las entidades en el borde.
contains(location, mode?="full")table, string?boolComprueba la pertenencia a la forma completa o al borde.
watch(callbacks, mode?="full")table, string?intInicia una vigilancia propia {on_enter, on_leave} y devuelve su ID de tarea.

Métodos del manejador de vector relativo​

MétodoArgsDevuelveDescripción
resolve()—tableResuelve el vector para el contexto actual.

Tabla de eventos de poderes de EliteMobs​

Los valores de evento de los poderes de jefe de EliteMobs exponen campos y métodos de forma condicional según el tipo de evento.

Propiedades​

CampoTipoDescripción
damage_amountnumber/nilInstantánea de la cantidad de daño del evento.
damage_causestring/nilNombre de DamageCause cuando el evento de daño expone uno.
damagertable/nilReferencia directa al causante del evento de daño por entidad; en un impacto de proyectil es el proyectil, no quien lo disparó.
projectiletable/nilReferencia al proyectil cuando el atacante es un proyectil.
spawn_reasonstring/nilMotivo de aparición del elite.
entitytable/nilRefuerzo dañado, entidad del evento de muerte o entidad del evento de zona, según el hook.
is_damage_transferbool/nilSolo para daño de jugador a élite: indica si este hook procesa un golpe transferido explícitamente.

Métodos​

MétodoArgsDevuelveDescripción
cancel_event()—nilCancela un EliteDamageEvent u otro evento cancelable.
set_damage_amount(amount)numbernilReemplaza el daño de un EliteDamageEvent; requiere context.event.set_damage_amount(...), con punto.
multiply_damage_amount(multiplier)numbernilMultiplica el daño de un EliteDamageEvent; requiere context.event.multiply_damage_amount(...), con punto.
get_damage_amount()—numberDevuelve la cantidad actual de EliteDamageEvent después de las modificaciones.
transfer_damage(target, amount)referencia de entidad, numberboolSolo para daño de jugador a élite: envía daño finito no negativo a otro élite vivo permitido por la política de instancia. Cero, entradas canceladas, transferencias anidadas y el objetivo original devuelven false; un receptor no élite provoca un error. True significa enviado, no daño garantizado. No resta ni cancela el daño original.

context.world: adiciones y sustituciones de EliteMobs​

Los poderes de jefe heredan la tabla de mundo compartida, incluidas las utilidades compartidas de EliteMobs de efecto de rayo y aparición de NPC, y después añaden o sustituyen los métodos siguientes. Los métodos de coordenadas heredados conservan el comportamiento compartido. Los métodos de ubicación específicos de jefe usan su conversor: una ubicación ausente o que no sea tabla recurre al jefe, las coordenadas omitidas usan cero y un mundo nombrado explícitamente debe resolverse.

Métodos​

MétodoArgsDevuelveDescripción
play_sound_at_location(location, sound, volume?=1, pitch?=1)table, string (Sound), number?=1, number?=1nilSustitución que acepta sonidos registrados o personalizados con espacio de nombres a través del soporte de EliteMobs.
spawn_particle_at_location(location, particle, count?=1)table, string (Particle)/table, int?=1nilSustitución que acepta una tabla de especificación de partícula de EliteMobs.
set_block_at_location(location, material, require_air?=false)table, string (Material), bool?=falsenilSustitución que coloca el bloque de forma permanente mediante el gestor de bloques temporales, sin temporizador ni rastreo.
place_temporary_block_at_location(location, material, ticks?=0, require_air?=false)table, string (Material), int?=0, bool?=falsenilSustitución que usa la colocación de bloques temporales de EliteMobs.
get_block_type_at_location(location)tablestring/nilDevuelve un nombre de Material en mayúsculas, o nil para una ubicación inválida.
get_highest_block_y_at_location(location)tableint/nilSustitución que devuelve la Y del bloque más alto, o nil.
get_blast_resistance_at_location(location)tablenumberDevuelve la resistencia a explosiones del bloque, con 0 por defecto para una ubicación inválida.
is_air_at_location(location)tableboolComprueba si el bloque objetivo es aire.
is_passable_at_location(location)tableboolComprueba la transitabilidad según Bukkit.
is_passthrough_at_location(location)tableboolComprueba si el material no es sólido.
is_on_floor_at_location(location)tableboolComprueba que el objetivo no sea sólido y que haya un bloque sólido debajo.
is_standing_on_material(location, material)table, string (Material)boolComprueba el bloque de debajo.
strike_lightning_at_location(location)tablenilSustitución que habilita el bypass de rayos de EliteMobs antes de lanzarlo.
run_empowered_lightning_task_at_location(location)tablenilEmite 60 iteraciones de aviso de forma independiente, seguidas de un rayo real y una bola de fuego descendente de potencia 5. Causa daño; pausar o cerrar Lua no la cancela.
set_world_time(time) / set_world_time(location, time)int/table, int?nilEstablece la hora del mundo del jefe o la del mundo de la ubicación proporcionada.
set_world_weather(weather, duration?=6000) / set_world_weather(location, weather, duration?=6000)string/table, string/int?, int?=6000nilEstablece CLEAR, PRECIPITATION, RAIN o THUNDER.
run_console_command(command)stringnilEjecuta un comando como la consola.
spawn_boss_at_location(file, location?, level?)string, table?, int?table/nilGenera un jefe personalizado en la ubicación proporcionada o actual y con el nivel proporcionado o actual.
spawn_custom_boss_at_location(file, location, options?)string, table, table?table/nilGenera un jefe personalizado; las opciones admiten silent, level, add_as_reinforcement y velocity.
spawn_entity_at_location(type, location, options?)string (EntityType), table, table?table/nilGenera una entidad vainilla; las opciones admiten velocity, duration, effect de EntityEffect, on_land y max_ticks.
spawn_falling_block_at_location(location, material, options?)table, string (Material), table?table/nilGenera un bloque que cae; las opciones admiten drop_item, hurt_entities, velocity y on_land.
spawn_reinforcement_at_location(file, location, duration?=0, velocity?)string, table, int?=0, table?table/nilInvoca un refuerzo vinculado al jefe; una duración positiva lo elimina después de ese número de ticks.
spawn_fireworks_at_location(location, options)table, tabletable/nilGenera un fuego artificial; las opciones admiten effects, type, flicker, trail, colors, fade_colors, power, velocity y shot_at_angle, con nombres de FireworkEffect.Type para type.
spawn_splash_potion_at_location(location, options)table, tabletable/nilGenera una poción arrojadiza; las entradas de effects aceptan type de PotionEffectType, duration, amplifier y overwrite, además de velocity en el nivel superior.
generate_fake_explosion(locations, source?)table, table?nilElimina bloques reales y crea escombros que causan daño cuando la regeneración de explosiones está activada. La restauración empieza tras 1200 ticks; cerrar Lua no la revierte. Usa posiciones del mundo del jefe.
spawn_fake_gold_nugget_at_location(location, velocity, gravity?=false)table, table, bool?=falsetable/nilGenera un proyectil falso de pepita de oro.
run_fake_gold_nugget_damage(projectiles)tablenilEjecuta la pasada de daño de los proyectiles falsos.
generate_player_loot(times?=1)int?=1nilGenera botín de jugador para los atacantes elegibles.
drop_bonus_coins(multiplier?=2)number?=2nilSuelta monedas de bonificación para los atacantes elegibles.

Tabla de proyectil falso de EliteMobs​

spawn_fake_gold_nugget_at_location devuelve esta tabla cuando la generación tiene éxito.

Métodos​

MétodoArgsDevuelveDescripción
get_location()—tableDevuelve la ubicación del proyectil falso.
set_gravity(enabled)boolnilEstablece la gravedad del proyectil falso.
remove()—nilElimina el proyectil falso.
is_removed()—boolComprueba si fue eliminado.

context.settings​

Los poderes de jefe de EliteMobs reciben esta tabla de ajustes del mismo constructor de tabla de mundo.

Métodos​

MétodoArgsDevuelveDescripción
warning_visual_effects_enabled()—boolDevuelve el ajuste actual de efectos visuales de advertencia.