Referencia de la API de Lua
Referencia completa de métodos para la API de scripting de Lua. Todos los métodos se invocan mediante la sintaxis context.table:method().
Los métodos globales (marcados como GLOBAL) provienen de Magmacore, la biblioteca central compartida. Se aplican a los scripts de FreeMinecraftModels y otros consumidores de ScriptInstance de MagmaCore. Los poderes de jefes de EliteMobs reutilizan el mismo sandbox de Lua pero exponen tablas de contexto y nombres de métodos específicos de jefes; los scripts de NPC de EliteMobs se ejecutan en el mismo runtime de MagmaCore y reciben el contexto compartido completo más la tabla context.npc, exclusiva de NPC. Consulta las secciones de EliteMobs más abajo y Scripts de NPC para conocer esas variantes.
Los métodos de EliteMobs (marcados como ELITEMOBS) son específicos de los scripts de poderes de jefes y scripts de NPC de EliteMobs.
Los métodos de FMM (marcados como FMM) son específicos de los scripts de objetos y props de FreeMinecraftModels.
Cuando un método requiere un enum de Bukkit (Sound, Particle, Material, etc.), consulta los Javadocs de Spigot para conocer los valores válidos. Los nombres de los enums se pasan como cadenas en mayúsculas (por ejemplo, "DIAMOND_SWORD", "ENTITY_ARROW_SHOOT").
Tabla de Entidad GLOBAL
Campos base presentes en todas las tablas de entidad — jugadores, mobs, props, cualquier cosa.
Propiedades
| Campo | Tipo | Descripción |
|---|---|---|
uuid | string | UUID de la entidad |
entity_type | string | Tipo de entidad (minúsculas) |
is_valid | bool | La entidad aún existe en el mundo |
is_dead | bool | La entidad está muerta |
is_player | bool | Es un jugador |
is_hostile | bool | Es un Monstruo |
is_passive | bool | Es un Animal |
current_location | location | Posición de la entidad (x, y, z, yaw, pitch, world) |
world | string | Nombre del mundo |
Los enriquecedores específicos de cada plugin pueden añadir campos adicionales de nivel superior cuando el plugin correspondiente está instalado. Consulta las secciones de puente más abajo para los campos de EliteMobs y FreeMinecraftModels.
Métodos
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
teleport(location) | tabla location | nil | Teletransporta la entidad |
remove() | — | nil | Elimina la entidad del mundo |
set_silent(enabled) | bool | nil | Establece silencio |
set_invulnerable(enabled) | bool | nil | Establece invulnerable |
set_gravity(enabled) | bool | nil | Establece la gravedad |
set_glowing(enabled) | bool | nil | Establece el brillo |
Puente: entity.elite
Añadido por el enriquecedor de entidades de EliteMobs cuando EliteMobs está instalado. El enriquecedor añade estos flags de nivel superior:
| Campo | Tipo | Descripción |
|---|---|---|
is_elite | bool | Es una entidad de EliteMobs |
is_custom_boss | bool | Es un jefe personalizado de EliteMobs |
is_significant_boss | bool | Jefe personalizado con multiplicador de salud superior a 1 (encuentro diseñado) |
entity.elite solo está presente cuando is_elite es true.
| Campo | Tipo | Descripción |
|---|---|---|
level | int | Nivel del mob elite |
name | string | Nombre mostrado del elite |
health | double | Salud actual |
max_health | double | Salud máxima |
is_custom_boss | bool | Es un jefe personalizado (también disponible en el nivel superior) |
health_multiplier | double | Multiplicador de salud definido en la configuración |
damage_multiplier | double | Multiplicador de daño definido en la configuración |
remove() | method | Elimina la entidad elite |
Puente: entity.model
Añadido por el enriquecedor de entidades de FreeMinecraftModels cuando FMM está instalado. El enriquecedor añade estos flags de nivel superior:
| Campo | Tipo | Descripción |
|---|---|---|
is_modeled | bool | Tiene un modelo de FMM |
is_prop | bool | Es un prop de FMM |
entity.model solo está presente cuando is_modeled es true.
| Campo | Tipo | Descripción |
|---|---|---|
model_id | string | Nombre del blueprint del modelo |
is_dynamic | bool | Si esto es una DynamicEntity de FMM (true) o un prop estático (false) |
play_animation(name, blend?, loop?) | method | Reproduce una animación. blend por defecto es false, loop por defecto es false |
stop_animations() | method | Detiene todas las animaciones |
remove() | method | Elimina la entidad modelada |
Puente: permisos del jugador
Añadido por el enriquecedor de entidades de FreeMinecraftModels cuando FMM está instalado. Estos campos aparecen únicamente en las tablas de entidad de jugador:
| Campo / Método | Args | Devuelve | Descripción |
|---|---|---|---|
has_permission(node) | string | bool | Si el jugador tiene el nodo de permiso indicado |
is_op | — | bool | Si el jugador es un operador del servidor |
Tabla de Entidad Viviente GLOBAL
Extiende la Tabla de Entidad. Aplicada a todas las entidades vivientes (mobs y jugadores).
Propiedades
| Campo | Tipo | Descripción |
|---|---|---|
health | double | Salud actual |
maximum_health | double | Salud máxima |
name | string | Nombre mostrado de la entidad |
is_alive | bool | La entidad no está muerta |
Métodos
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
damage(amount) | double | nil | Inflige daño a la entidad |
push(x, y, z) | double, double, double | nil | Añade un vector de velocidad |
set_facing(x, y, z) | double, double, double | nil | Establece la dirección de mirada |
add_potion_effect(type, duration, amplifier) | string (PotionEffectType), int, int | nil | Aplica un efecto de poción por nombre |
remove_potion_effect(type) | string (PotionEffectType) | nil | Elimina un efecto de poción por nombre |
get_scale() | — | number | Escala actual de la entidad (por defecto 1.0 en servidores sin el atributo generic.scale) |
set_scale(value) | double | nil | Establece la escala de la entidad mediante el atributo generic.scale (no tiene efecto en servidores anteriores a 1.20.5) |
context.player GLOBAL
Tabla de entidad jugador. Hereda todos los campos de Entidad y Entidad Viviente.
Propiedades
| Campo | Tipo | Descripción |
|---|---|---|
game_mode | string | survival, creative, adventure, spectator |
Métodos
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
send_message(text) | string | nil | Envía un mensaje al chat. Admite códigos de color |
get_held_item() | — | tabla o nil | Devuelve los campos type, amount, display_name, o nil si la mano está vacía. type es un nombre de Material de Bukkit en mayúsculas |
consume_held_item(amount?) | int (por defecto 1) | nil | Reduce la pila del objeto sostenido en amount |
has_item(material, amount?) | string (Material), int (por defecto 1) | bool | Comprueba el inventario para un material |
get_target_entity(range?) | num (por defecto 50) | entidad o nil | Raycast para la entidad a la que mira el jugador |
get_eye_location() | — | location | Posición de los ojos del jugador |
get_look_direction() | — | vector | Vector unitario de dirección |
send_block_change(x, y, z, material, ticks?) | int, int, int, string (Material), int (opcional) | bool | Envía un bloque falso. Se restablece automáticamente tras ticks si se indica |
reset_block(x, y, z) | int, int, int | bool | Restablece el bloque falso al real |
sleep(x, y, z) | num, num, num | nil | Animación de dormir en cama en la ubicación |
wake_up() | — | nil | Despierta del sueño |
show_boss_bar(text, color?, progress, ticks?) | string, string (BarColor, por defecto WHITE), num, int (opcional) | nil | Muestra la barra de jefe. Se oculta automáticamente tras ticks. Admite códigos de color |
hide_boss_bar() | — | nil | Elimina la barra de jefe |
show_action_bar(text, ticks?) | string, int (opcional) | nil | Muestra la barra de acción. Se repite si ticks es mayor que 0. Admite códigos de color |
show_title(title, subtitle?, fadeIn, stay, fadeOut) | string, string (por defecto vacío), int, int, int | nil | Muestra la pantalla de título. Admite códigos de color |
context.world GLOBAL
Operaciones del mundo para los scripts de FreeMinecraftModels y otros runtimes de ScriptInstance respaldados por Magmacore. Los poderes de jefes de EliteMobs parten de esta misma tabla base y superponen las adiciones y sobrescrituras de context.world de EliteMobs listadas más abajo.
Los métodos de context.world vienen en dos formas intercambiables: estilo de coordenadas (x, y, z) y estilo de tabla de ubicación (las variantes *_at_location). Ambas formas están disponibles en las superficies genéricas, y los poderes de jefes de EliteMobs mantienen los métodos base compartidos mientras añaden asistentes de tabla de ubicación específicos de jefes.
Propiedades
| Campo | Tipo | Descripción |
|---|---|---|
name | string | Nombre del mundo |
Métodos
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
get_block_at(x, y, z) | int, int, int | string | Nombre del Material (minúsculas). Devuelve "air" si el chunk no está cargado |
set_block_at(x, y, z, material) | int, int, int, string (Material) | bool | Encola la colocación del bloque si el material es válido; los chunks no cargados se omiten |
get_highest_block_y(x, z) | int, int | int | Y del bloque no-aire más alto |
spawn_particle(particle, x, y, z, count?, dx?, dy?, dz?, speed?) | string (Particle), num, num, num, int?=1, num?=0, num?=0, num?=0, num?=0 | nil | Genera un efecto de partícula |
play_sound(sound, x, y, z, volume?, pitch?) | string (Sound), num, num, num, float?=1, float?=1 | nil | Reproduce un sonido |
strike_lightning(x, y, z) | num, num, num | nil | Lanza un rayo |
get_time() | — | int | Tiempo del mundo en ticks |
set_time(ticks) | long | nil | Establece el tiempo del mundo |
get_nearby_entities(x, y, z, radius) | num, num, num, num | tabla | Array de tablas de entidad |
get_nearby_players(x, y, z, radius) | num, num, num, num | tabla | Array de tablas de entidad jugador |
spawn_entity(type, x, y, z) | string (EntityType), num, num, num | entidad o nil | Genera una entidad vanilla; devuelve nil si el tipo de entidad es inválido |
raycast(fx, fy, fz, dx, dy, dz, max?) | num, num, num, num, num, num, num?=50 | tabla | Devuelve los campos hit_entity, hit_location, hit_block |
place_temporary_block(x, y, z, material, ticks?, require_air?) | int, int, int, string (Material), int?=0, bool?=false | bool | Encola un reemplazo de bloque que se revierte automáticamente tras ticks. Devuelve false si el material es inválido o el chunk no está cargado |
drop_item(x, y, z, material, amount?) | num, num, num, string (Material), int?=1 | entidad o nil | Suelta una entidad de objeto de forma natural en la ubicación; devuelve nil si el material es inválido |
spawn_firework(x, y, z, colors, type?, power?) | num, num, num, tabla, string (FireworkEffect.Type)?=BALL, int?=1 | nil | Genera un fuego artificial |
strike_lightning_at_location(loc) | location | nil | Lanza un rayo |
play_sound_at_location(loc, sound, volume?, pitch?) | location, string (Sound), float?=1, float?=1 | nil | Reproduce un sonido |
spawn_particle_at_location(loc, particle, count?, dx?, dy?, dz?, speed?) | location, string (Particle), int?=1, num?=0, num?=0, num?=0, num?=0 | nil | Genera un efecto de partícula |
get_block_at_location(loc) | location | string | Nombre del Material (minúsculas). Devuelve "air" si el chunk no está cargado |
set_block_at_location(loc, material) | location, string (Material) | bool | Encola la colocación del bloque si el material es válido; los chunks no cargados se omiten |
place_temporary_block_at_location(loc, material, ticks?, require_air?) | location, string (Material), int?=0, bool?=false | bool | Encola un reemplazo de bloque que se revierte automáticamente tras ticks. Devuelve false si el material es inválido o el chunk no está cargado |
get_highest_block_y_at_location(loc) | location | int o nil | Y del bloque no-aire más alto |
Asistentes de em GLOBAL
Constructores auxiliares globales expuestos en la tabla em en todos los runtimes de Lua de MagmaCore.
Constructores
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
em.create_location(x, y, z, world?, yaw?, pitch?) | num, num, num, string?, num?, num? | location | Tabla de ubicación con x, y, z, opcionalmente world, yaw, pitch, y un método add(dx, dy, dz) que modifica en el sitio |
em.create_vector(x, y, z) | num, num, num | vector | Tabla de vector con x, y, z |
Constructores de Zonas
Los constructores de zonas devuelven tablas simples de definición de zona. Las esferas, domos, cilindros y cuboides incluyen :set_center(location). Los conos y zonas de rayo incluyen :set_origin(location) y :set_destination(location).
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
em.zone.create_sphere_zone(radius) | num | zone | { kind = "sphere", radius = ... } |
em.zone.create_dome_zone(radius) | num | zone | { kind = "dome", radius = ... } |
em.zone.create_cylinder_zone(radius, height) | num, num | zone | { kind = "cylinder", radius = ..., height = ... } |
em.zone.create_cuboid_zone(x, y, z) | num, num, num | zone | Semiextensiones del cuboide |
em.zone.create_cone_zone(length, radius) | num, num | zone | Definición de cono con setters de origen/destino |
em.zone.create_static_ray_zone(length, thickness) | num, num | zone | Definición de rayo estático |
em.zone.create_rotating_ray_zone(length, point_radius, animation_duration) | num, num, num | zone | Definición de rayo rotatorio |
em.zone.create_translating_ray_zone(length, point_radius, animation_duration) | num, num, num | zone | Definición de rayo de traslación |
em.location GLOBAL
Asistentes de consulta de ubicaciones expuestos en la tabla global em. Respaldados por el LocationQueryRegistry y el servicio LocationOwnership de Magmacore, que recopila resultados de los proveedores registrados (regiones de dungeon/world-package de EliteMobs, WorldGuard, GriefPrevention, etc.). Todas las funciones aceptan una tabla de ubicación ({x, y, z, world}) y devuelven valores por defecto seguros si la ubicación es inválida.
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
em.location.is_in_dungeon(loc) | location | bool | Si la ubicación está dentro de alguna región de dungeon registrada |
em.location.is_protected(loc) | location | bool | Si algún proveedor informa que la ubicación está protegida (WorldGuard, GriefPrevention, regiones de EM, etc.) |
em.location.owned_by(loc, namespace) | location, string | bool | Si el namespace dado posee la ubicación (por ejemplo, "EliteMobs") |
em.location.owners(loc) | location | tabla | Array de cadenas de namespace que reclaman la propiedad de esta ubicación |
em.location.kinds_at(loc) | location | tabla | Array de etiquetas de tipo en esta ubicación (por ejemplo, "elitemobs", "world_package", "open_world_dungeon", categoría de tamaño de dungeon) |
em.location.has_kind(loc, kind) | location, string | bool | Si la ubicación tiene la etiqueta de tipo indicada |
context.boss ELITEMOBS
Tabla de entidad del jefe para los scripts de poder Lua de EliteMobs. Hereda todos los métodos de la Tabla de Entidad Viviente de EliteMobs. Las propiedades se actualizan mediante getters dedicados.
Propiedades
| Campo | Tipo | Descripción |
|---|---|---|
name | string | Nombre mostrado del jefe |
uuid | string | UUID de la entidad elite |
health | double | Salud actual (snapshot) |
maximum_health | double | Salud máxima (snapshot) |
current_location | location | Posición del jefe (snapshot) |
level | int | Nivel del jefe |
damager_count | int | Número de jugadores que han dañado a este jefe |
is_in_combat | bool | El jefe está en combate |
exists | bool | La entidad del jefe existe |
Métodos
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
is_alive() | — | bool | Si la entidad del jefe está viva (comprobación en vivo) |
get_health() | — | double | Salud actual (en vivo) |
get_maximum_health() | — | double | Salud máxima (en vivo) |
get_location() | — | location | Posición actual (en vivo) |
restore_health(amount) | double | nil | Cura al jefe |
despawn() | — | nil | Elimina la entidad del jefe |
get_damager_count() | — | int | Número de daños en vivo |
add_tag(tag, ticks?) | string, int?=0 | nil | Añade etiqueta, se elimina automáticamente tras ticks si se indica |
remove_tag(tag) | string | nil | Elimina la etiqueta |
has_tag(tag) | string | bool | Comprueba la etiqueta |
reset_custom_name() | — | nil | Restablece el nombre al valor por defecto de la configuración |
play_sound_at_self(sound, volume?, pitch?) | string (clave de sonido de Minecraft, p. ej. "entity.wither.spawn"), float?=1, float?=1 | nil | Reproduce un sonido en el jefe |
play_sound_at_entity(sound, volume?, pitch?) | string (clave de sonido de Minecraft, p. ej. "entity.wither.spawn"), float?=1, float?=1 | nil | Reproduce un sonido en el jefe (alias) |
spawn_particle_at_self(particle, count?) | string (Particle) o tabla, int?=1 | nil | Genera partícula en el jefe |
play_model_animation(name) | string | nil | Reproduce una animación de modelo FMM (requiere modelo FMM) |
has_mount() | - | bool | Si este jefe está montado sobre una entidad de montura |
get_mount() | - | entidad o nil | Referencia a la entidad de montura actual, marcada con is_mount = true |
set_mount(entity) | tabla entidad | bool | Hace que el jefe monte sobre la entidad dada |
clear_mount() | - | bool | Hace que el jefe abandone su vehículo actual |
dismount() | - | bool | Alias de clear_mount() |
navigate_to_location(location, speed?, force?, timeout?) | location, double?=1, bool?=false, int?=0 | nil | Pathfinding hasta la ubicación |
send_message(text, range?) | string, double?=20 | nil | Envía un mensaje a los jugadores cercanos. Admite códigos de color |
get_nearby_players(range) | double | tabla | Array de tablas de jugador dentro del rango |
get_target_player() | — | jugador o nil | Objetivo actual del mob si es un jugador |
get_nearby_players_in_zone(zone) | tabla zone | tabla | Jugadores dentro de la forma de la zona |
get_ender_dragon_phase() | — | string o nil | Nombre de EnderDragon.Phase |
set_ender_dragon_phase(phase) | string (EnderDragon.Phase) | nil | Establece la fase del ender dragon |
summon_reinforcement(file, zone?, level?) | string, zone o nil, int?=0 | entidad o nil | Genera un jefe de refuerzo |
summon_projectile(type, origin, dest, speed?, options?) | string (EntityType), location, location, double?=1, tabla | entidad o nil | Genera un proyectil rastreado; devuelve nil si el tipo o las ubicaciones son inválidos |
Opciones de summon_projectile
| Opción | Tipo | Por defecto | Descripción |
|---|---|---|---|
custom_damage | number | — | Sobrescribe el daño del proyectil |
detonation_power | string | — | Nivel de potencia explosiva |
yield | number | — | Rendimiento del fireball |
incendiary | bool | true | El fireball prende fuego |
gravity | bool | — | Habilita la gravedad |
glowing | bool | false | Establece el brillo |
invulnerable | bool | false | Establece invulnerable |
persistent | bool | true | Establece persistente |
duration | int | 0 | Eliminación automática tras ticks |
effect | string | — | EntityEffect a reproducir al aparecer |
spawn_at_origin | bool | false | Genera en el origen en vez de lanzar desde el jefe |
direction_only | bool | false | Establece la dirección sin velocidad (fireballs) |
track | bool | true | Registra como proyectil elite |
on_land | function | — | Callback cuando el proyectil aterriza: function(location, entity) |
max_ticks | int | 6000 | Ticks máximos antes del callback forzado de aterrizaje |
Métodos de Zona/Partícula
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
spawn_particles_in_zone(zone, particle, ...) | zone, particle spec, coverage?=1.0 | nil | Rellena la zona con partículas |
spawn_particles_in_zone_border(zone, particle, ...) | zone, particle spec, coverage?=1.0 | nil | Delinea la zona con partículas |
get_particles_from_self_toward_zone(zone, particle, speed?) | zone, string, double?=0.1 | tabla | Partículas direccionales desde el jefe hacia la zona |
get_particles_toward_self(zone, particle, speed?) | zone, string, double?=0.1 | tabla | Partículas direccionales desde la zona hacia el jefe |
spawn_particles_with_vector(particles) | tabla | nil | Genera un array de partículas direccionales |
Soporte para Poderes Especiales
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
start_tracking_fireball_system(speed?) | double?=0.5 | nil | Inicia el rastreo de la IA de fireball |
handle_spirit_walk_damage(cause) | string (DamageCause) | nil | Gestiona el daño de spirit walk por causa |
shield_wall_is_active() | — | bool | Si el shield wall está activo |
initialize_shield_wall(charges?) | int?=1 | nil | Activa el shield wall |
shield_wall_absorb_damage(player, damage) | tabla entidad, double | bool | Intenta absorber daño |
deactivate_shield_wall() | — | nil | Desactiva el shield wall |
start_zombie_necronomicon(target, file) | tabla entidad, string | nil | Inicia el necronomicon en el objetivo |
context.npc ELITEMOBS NPC
Tabla de NPC para los scripts Lua de NPC de EliteMobs. Los scripts de NPC residen en plugins/EliteMobs/npc_scripts/ y se adjuntan mediante una lista scripts: de la configuración del NPC. Los scripts de NPC se ejecutan en el mismo runtime de MagmaCore que cualquier otra superficie y reciben el contexto compartido completo — context.world, context.zones, context.scheduler, context.cooldowns, context.log, context.event, context.player, context.state — más la tabla context.npc, exclusiva de NPC, documentada aquí.
Propiedades
| Campo | Tipo | Descripción |
|---|---|---|
name | string | Nombre mostrado del NPC |
filename | string | Nombre del archivo de configuración del NPC |
uuid | string | UUID del NPC en tiempo de ejecución |
activation_radius | double | Radio de activación configurado |
current_location | location | Ubicación snapshot cuando la entidad del NPC existe |
entity_type | string | Tipo de entidad de Bukkit cuando la entidad del NPC existe |
Métodos
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
is_valid() | - | bool | Si la entidad de respaldo del NPC sigue siendo válida |
get_location() | - | location | Ubicación actual del NPC, o el fallback de spawn |
get_eye_location() | - | location | Ubicación actual de los ojos, o el fallback de spawn |
get_activation_radius() | - | double | Radio de activación configurado actual |
get_nearby_players(radius) | double | tabla | Tablas de jugador cerca del NPC |
face_direction_or_location(target) | vector o location | nil | Mira en una dirección o hacia una ubicación |
say_greeting(player?) | player, UUID, name, o nil | nil | Envía un saludo configurado. Por defecto, el jugador desencadenante cuando está disponible |
say_dialog(player?) | player, UUID, name, o nil | nil | Envía el diálogo configurado. Por defecto, el jugador desencadenante cuando está disponible |
say_farewell(player?) | player, UUID, name, o nil | nil | Envía el texto de despedida configurado. Por defecto, el jugador desencadenante cuando está disponible |
play_model_animation(name) | string | nil | Reproduce una animación de modelo personalizado si está disponible; no tiene efecto de forma segura en caso contrario |
Los hooks específicos de NPC incluyen on_spawn, on_remove, on_game_tick, on_npc_interact, on_npc_proximity_enter y on_npc_proximity_leave. Consulta Scripts de NPC de EliteMobs para el flujo de trabajo completo y los detalles de cooldown.
Tabla de Entidad Viviente de EliteMobs ELITEMOBS
Las tablas de entidad creadas dentro de los scripts de poder de EliteMobs (desde context.boss, datos de eventos, callbacks de zona y consultas del mundo) usan una tabla de entidad viviente extendida con métodos adicionales más allá de la Entidad Viviente global. context.boss hereda todos estos.
Propiedades
| Campo | Tipo | Descripción |
|---|---|---|
name | string | Nombre mostrado de la entidad |
uuid | string | UUID de la entidad |
entity_type | string | Nombre del tipo de entidad |
is_player | bool | Es un jugador |
is_monster | bool | Es un Monstruo |
is_elite | bool | Es una entidad de EliteMobs |
is_valid | bool | La entidad aún existe |
is_mount | bool | True cuando esta tabla de entidad representa una montura de jefe |
health | double | Salud actual (snapshot) |
maximum_health | double | Salud máxima (snapshot) |
current_location | location | Posición de la entidad (snapshot) |
game_mode | string | Modo de juego (EN MAYÚSCULAS en EliteMobs: SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR) |
Métodos
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
is_alive() | — | bool | Si la entidad está viva (comprobación en vivo) |
is_ai_enabled() | — | bool | Si la IA está habilitada |
is_frozen() | — | bool | Si el jefe está congelado (solo CustomBossEntity) |
is_on_ground() | — | bool | Si la entidad está en el suelo |
is_healing() | — | bool | Si el elite se está curando |
get_location() | — | location | Posición actual (en vivo) |
get_eye_location() | — | location | Posición de los ojos (en vivo) |
get_height() | — | double | Altura de la entidad |
get_health() | — | double | Salud actual (en vivo) |
get_maximum_health() | — | double | Salud máxima (en vivo) |
get_velocity() | — | vector | Vector de velocidad actual |
deal_damage(amount) | double | nil | Inflige daño genérico |
deal_custom_damage(amount) | double | nil | Inflige daño de ataque de jefe personalizado desde el jefe del poder |
deal_damage_from_boss(amount) | double | nil | Inflige daño atribuido a la entidad del jefe del poder |
restore_health(amount) | double | nil | Cura la entidad (usa el curado de EliteMobs si es elite) |
play_sound_at_entity(sound, volume?, pitch?) | string (clave de sonido de Minecraft, p. ej. "entity.ender_dragon.growl"), float?=1, float?=1 | nil | Reproduce sonido en la entidad |
play_sound_at_self(sound, volume?, pitch?) | string (clave de sonido de Minecraft, p. ej. "entity.ender_dragon.growl"), float?=1, float?=1 | nil | Reproduce sonido en la entidad (alias) |
spawn_particle_at_self(particle, count?) | string (Particle) o tabla, int?=1 | nil | Genera partícula en la entidad |
spawn_particles_at_location(loc, particle, count?) | location, particle spec, int?=1 | nil | Genera partículas en la ubicación |
teleport_to_location(location) | location | nil | Teletransporta la entidad |
set_velocity_vector(vector) | vector | nil | Establece la velocidad |
set_gravity(enabled) | bool | nil | Establece la gravedad |
apply_push_vector(vector, additive?, delay?) | vector, bool?=false, int?=1 | nil | Aplica velocidad tras un retraso. additive suma a la velocidad existente |
push_relative_to(location, force?, extraX?, extraY?, extraZ?) | location, double?=1, double?=0, double?=0, double?=0 | nil | Empuja la entidad lejos de la ubicación |
set_custom_name(name) | string | nil | Establece el nombre mostrado personalizado. Admite códigos de color |
reset_custom_name() | — | nil | Restablece el nombre al valor por defecto de EliteMobs |
set_custom_name_visible(visible) | bool | nil | Alterna la visibilidad del nombre |
set_ai_enabled(enabled, duration?) | bool, int?=0 | nil | Establece el estado de la IA. Se revierte automáticamente tras duration ticks |
set_awareness_enabled(enabled, duration?) | bool, int?=0 | nil | Establece la consciencia del mob. Se revierte automáticamente tras duration ticks |
face_direction_or_location(target) | vector o location | nil | Mira en una dirección o hacia una ubicación |
play_model_animation(name) | string | nil | Reproduce una animación de modelo FMM (requiere modelo FMM) |
is_inside_vehicle() | - | bool | Si la entidad está montada sobre otra entidad |
has_vehicle() | - | bool | Si la entidad tiene un vehículo |
get_vehicle() | - | entidad o nil | Referencia a la entidad de vehículo actual |
set_vehicle(entity) | tabla entidad | bool | Hace que esta entidad monte sobre el vehículo dado |
leave_vehicle() | - | bool | Hace que esta entidad abandone su vehículo actual |
has_passengers() | - | bool | Si esta entidad tiene pasajeros |
get_passenger_count() | - | int | Número de pasajeros |
get_passengers() | - | tabla | Array de referencias a entidades pasajeras |
add_passenger(entity) | tabla entidad | bool | Añade un pasajero a esta entidad |
remove_passenger(entity) | tabla entidad | bool | Elimina un pasajero de esta entidad |
eject_passengers() | - | bool | Expulsa a todos los pasajeros |
set_scale(scale, duration?) | double, int?=0 | nil | Establece la escala de la entidad. Se revierte a 1.0 tras duration ticks |
set_invulnerable(enabled, duration?) | bool, int?=0 | nil | Establece invulnerable. Se revierte automáticamente tras duration ticks |
set_healing(enabled) | bool | nil | Establece el estado de curado del elite |
navigate_to_location(location, speed?, force?, timeout?) | location, double?=1, bool?=false, int?=0 | nil | Pathfinding hasta la ubicación (solo CustomBossEntity) |
add_tag(tag, ticks?) | string, int?=0 | nil | Añade etiqueta, se elimina automáticamente tras ticks |
remove_tag(tag) | string | nil | Elimina la etiqueta |
has_tag(tag) | string | bool | Comprueba la etiqueta |
overlaps_box_at_location(center, halfX?, halfY?, halfZ?) | location, double?=0.5, double?=halfX, double?=halfX | bool | Si el bounding box de la entidad se superpone con una caja en la ubicación |
remove_elite() | — | nil | Elimina mediante el pipeline de eliminación de EliteMobs |
apply_potion_effect(type, duration, amplifier?) | string (PotionEffectType), int, int?=0 | nil | Aplica efecto de poción |
set_equipment(slot, material, options?) | string (EquipmentSlot), string (Material), tabla | nil | Establece el objeto en una ranura de equipo |
set_fire_ticks(ticks) | int | nil | Establece los ticks de fuego |
add_visual_freeze_ticks(ticks?) | int?=1 | nil | Añade ticks visuales de congelación |
place_temporary_block(material, ticks?, requireAir?) | string (Material), int?=0, bool?=false | nil | Coloca un bloque temporal en la ubicación de la entidad |
Opciones de set_equipment
| Opción | Tipo | Por defecto | Descripción |
|---|---|---|---|
unbreakable | bool | false | Hace el objeto irrompible |
enchantments | tabla | — | Array de tablas {type = "ENCHANT_NAME", level = 1} |
Métodos de Jugador en EliteMobs
Los jugadores en scripts de EliteMobs tienen todos los métodos de entidad viviente de EliteMobs más:
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
send_message(text) | string | nil | Envía mensaje al chat. Admite códigos de color |
show_action_bar(text) | string | nil | Muestra texto en la barra de acción. Admite códigos de color |
show_title(title, subtitle?, fadeIn?, stay?, fadeOut?) | string, string?="", int?=10, int?=40, int?=10 | nil | Muestra la pantalla de título. Admite códigos de color |
show_boss_bar(title, color?, style?, duration?) | string, string (BarColor)?=WHITE, string (BarStyle)?=SOLID, int?=40 | nil | Muestra barra de jefe. Se oculta automáticamente tras duration ticks. Admite códigos de color |
run_command(command) | string | nil | Ejecuta un comando como el jugador |
Tabla de Referencia de Entidad de EliteMobs
Las entidades no vivientes (proyectiles, falling blocks, fireworks) devueltas por los métodos de spawn de EliteMobs obtienen una tabla de referencia ligera:
| Campo / Método | Args | Devuelve | Descripción |
|---|---|---|---|
name | — | string | Nombre de la entidad |
uuid | — | string | UUID de la entidad |
entity_type | — | string | Nombre del tipo de entidad |
is_player | — | bool | Siempre false |
is_elite | — | bool | Siempre false |
is_valid() | — | bool | Si la entidad sigue siendo válida (comprobación en vivo) |
current_location | — | location | Posición (snapshot) |
get_location() | — | location | Posición actual (en vivo) |
get_velocity() | — | vector | Vector de velocidad actual |
is_on_ground() | — | bool | Si la entidad está en el suelo |
teleport_to_location(location) | location | nil | Teletransporta la entidad |
set_velocity_vector(vector) | vector | nil | Establece la velocidad |
set_direction_vector(vector) | vector | nil | Establece la dirección (solo fireballs) |
set_yield(amount) | double | nil | Establece el rendimiento del fireball |
set_gravity(enabled) | bool | nil | Establece la gravedad |
detonate() | — | nil | Detona el fuego artificial |
remove() | — | nil | Elimina la entidad |
unregister(reason?) | string?=OTHER | nil | Anula el registro del rastreador de entidades de EliteMobs |
context.players ELITEMOBS
Tabla de consulta de jugadores disponible en los scripts de poder de EliteMobs. Proporciona métodos auxiliares para encontrar jugadores en relación con el jefe.
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
current_target() | — | jugador o nil | Actor del evento si es jugador, o el objetivo actual del mob del jefe si es un jugador |
nearby_players(radius) | double | tabla | Array de tablas de jugador dentro del radio del jefe |
all_players_in_world() | — | tabla | Array de todas las tablas de jugador en el mundo del jefe |
context.entities ELITEMOBS
Tabla de consulta de entidades disponible en los scripts de poder de EliteMobs. Proporciona métodos auxiliares para encontrar entidades en relación con el jefe. Todas las consultas excluyen al propio jefe.
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
get_nearby_entities(radius, filter?) | double, string?="living" | tabla | Entidades dentro del radio. "all"/"entities" devuelve todas las entidades (incluidas las no vivientes); cualquier otro valor devuelve entidades vivientes filtradas por categoría: "player(s)", "elite(s)", "mob(s)", o por defecto = todas las vivientes |
get_entities_in_box(center, halfX, halfY, halfZ, filter?) | location, double, double, double, string?="living" | tabla | Entidades vivientes dentro de una caja alineada con los ejes (mismos valores de filtro que arriba; solo modos no all) |
get_all_entities(filter?) | string?="living" | tabla | Todas las entidades vivientes en el mundo del jefe (mismos valores de filtro) |
get_direct_target_entity() | — | entidad o nil | Entidad objetivo directa del evento desencadenante |
get_boss_spawn_location() | — | location | Ubicación de spawn original del jefe |
context.vectors ELITEMOBS
Utilidades matemáticas de vectores disponibles en los scripts de poder de EliteMobs.
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
get_vector_between_locations(from, to, options?) | location, location, tabla | vector | Vector desde el origen hasta el destino. Las opciones pueden modificar el resultado |
rotate_vector(vector, pitch?, yaw?) | vector, double?=0, double?=0 | vector | Rota el vector por pitch y yaw (grados) |
normalize_vector(vector) | vector | vector | Normaliza a longitud unitaria |
context.state GLOBAL
Una tabla Lua simple que persiste durante toda la vida útil de la instancia del script. Úsala para almacenar flags, contadores, IDs de tareas, estados de alternancia y cualquier dato que necesites compartir entre hooks. context.state es la tabla persistente propiedad del script; la mayoría de las demás tablas de context se reconstruyen o se recrean de forma perezosa según sea necesario. FMM cachea context.prop por prop para mejorar el rendimiento, pero sus campos en vivo, como current_location, siguen actualizándose al leerse.
context.state.counter = (context.state.counter or 0) + 1
context.cooldowns GLOBAL
Gestión de cooldowns. Los cooldowns locales son por instancia de script; los cooldowns globales se comparten entre todos los scripts en la misma entidad/propietario. Si no se proporciona una clave, se usa por defecto el nombre del archivo del script.
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
local_ready(key?) | string (opcional) | bool | Si el cooldown local ha expirado |
local_remaining(key?) | string (opcional) | int | Ticks restantes del cooldown local (0 si está listo) |
check_local(key?, duration) | string (opcional), int | bool | Si está listo, inicia el cooldown y devuelve true; en caso contrario false |
set_local(duration, key?) | long, string (opcional) | nil | Establece cooldown local durante duration ticks |
global_ready() | — | bool | Si el cooldown global ha expirado |
set_global(duration) | long | nil | Establece cooldown global durante duration ticks |
En los scripts de poder de EliteMobs, los cooldowns locales se comparten entre todos los poderes en la misma entidad jefe, y los cooldowns globales usan el sistema integrado de cooldowns de poderes del jefe.
Los scripts de NPC de EliteMobs usan el orden de cooldown compartido check_local(key?, duration); consulta Scripts de NPC.
context.scheduler GLOBAL
Planificación de tareas. Todas las tareas se cancelan automáticamente cuando el script se apaga.
Variante Global (Magmacore)
Los scripts de FreeMinecraftModels y los scripts de NPC de EliteMobs usan esta variante compartida. Los nombres al estilo de EliteMobs de más abajo son alias del mismo planificador, por lo que cualquiera de los dos estilos de nomenclatura es válido en las superficies genéricas.
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
run_later(ticks, callback) | int, function | int | Ejecuta el callback tras ticks. Devuelve el ID de tarea |
run_repeating(delay, interval, callback) | int, int, function | int | Ejecuta el callback cada interval ticks tras el retraso inicial. Devuelve el ID de tarea |
cancel(taskId) | int | nil | Cancela una tarea programada |
Variante de EliteMobs
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
run_after(ticks, callback) | int, function | int | Ejecuta el callback tras ticks. Devuelve el ID de tarea |
run_every(ticks, callback) | int, function | int | Ejecuta el callback cada N ticks. Devuelve el ID de tarea |
cancel_task(taskId) | int | nil | Cancela una tarea programada |
context.log GLOBAL
Utilidades de logging para depurar scripts.
Variante Global (Magmacore / FMM)
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
info(message) | string | nil | Registra mensaje informativo |
warn(message) | string | nil | Registra mensaje de advertencia |
error(message) | string | nil | Registra mensaje de error/advertencia |
Variante de EliteMobs
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
info(message) | string | nil | Registra mensaje informativo |
warn(message) | string | nil | Registra mensaje de advertencia |
debug(message) | string | nil | Registra mensaje de depuración (aparece como info con prefijo debug) |
context.zones GLOBAL
Creación y monitorización de zonas para los scripts de FreeMinecraftModels y otros runtimes de ScriptInstance respaldados por Magmacore. Los poderes de jefes de EliteMobs usan la variante context.zones de EliteMobs de más abajo.
Variante Global (Magmacore)
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
create_sphere(x, y, z, radius) | num, num, num, num | int | Crea zona esférica, devuelve handle |
create_cylinder(x, y, z, radius, height) | num, num, num, num, num | int | Crea zona cilíndrica, devuelve handle |
create_cuboid(x, y, z, xSize, ySize, zSize) | num, num, num, num, num, num | int | Crea zona cuboide, devuelve handle |
watch(handle, on_enter?, on_leave?) | int, function?, function? | bool | Habilita el seguimiento de la zona. Los argumentos de función habilitan on_zone_enter / on_zone_leave; los cuerpos de las funciones no se invocan directamente. Los hooks de zona reciben context.player / context.event.player para el jugador que cruzó el límite |
unwatch(handle) | int | nil | Detiene el seguimiento de la zona |
Variante de EliteMobs
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
get_entities_in_zone(zone, options?) | tabla zone, tabla | tabla | Obtiene entidades dentro de la zona. Opciones: filter, mode |
get_locations_in_zone(zone, options?) | tabla zone, tabla | tabla | Obtiene ubicaciones dentro de la zona. Opciones: coverage, mode |
zone_contains(zone, location, mode?) | tabla zone, location, string?="full" | bool | Si la ubicación está dentro de la zona ("full" o "border") |
watch_zone(zone, callbacks, options?) | tabla zone, tabla, tabla? | nil | Vigila la zona para entrada/salida. Callbacks: {on_enter = fn, on_leave = fn}. Las opciones admiten filter y mode |
context.event GLOBAL
Tabla de datos del evento para el hook que desencadenó la ejecución actual del script. Presente durante los hooks dirigidos por eventos y los hooks genéricos de entrada/salida de zona de MagmaCore que proporcionan un actor jugador; no presente durante on_game_tick, callbacks programados ni hooks de ciclo de vida sin jugador.
Variante Global (Magmacore)
| Campo / Método | Tipo | Descripción |
|---|---|---|
is_cancelled | bool | Estado de cancelación cuando se construyó el contexto; no se actualiza tras cancel() / uncancel() |
cancel() | method | Cancela el evento cuando el evento de Bukkit subyacente es cancelable |
uncancel() | method | Des-cancela el evento cuando el evento de Bukkit subyacente es cancelable |
player | tabla entidad | Jugador involucrado en el evento (si lo hay) |
Los hooks de zona genéricos rellenan player pero no están respaldados por un evento de Bukkit cancelable, por lo que cancel() y uncancel() no están presentes ahí.
Para la tabla de eventos de EliteMobs (que proporciona cantidades de daño, causas de daño, etc.), consulta Tabla de Eventos de EliteMobs.
context.script ELITEMOBS
Puente al sistema Elite Script de EliteMobs. Permite que los poderes Lua usen los sistemas de targeting, zona y vector relativo basados en YAML a través de tablas Lua con los mismos nombres de campo que las configuraciones YAML de Elite Script.
Métodos
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
target(spec) | tabla | target handle | Crea un handle de objetivo desde una tabla de especificación de target de Elite Script |
zone(spec) | tabla | zone handle | Crea un handle de zona desde una tabla de especificación de zona de Elite Script |
relative_vector(spec, location?, zone?) | tabla, location, zone handle | vector handle | Crea un vector relativo desde una especificación de vector de Elite Script |
damage(target, amount?, multiplier?) | target handle, double?=0, double?=1 | nil | Inflige daño a todas las entidades en el target |
push(target, vector, additive?) | target handle, vector o vector handle, bool?=false | nil | Empuja las entidades objetivo con velocidad |
set_facing(target, vector) | target handle, vector o vector handle | nil | Establece la dirección de mirada de las entidades objetivo |
spawn_particles(target, particles) | target handle, tabla o string | nil | Genera partículas en las ubicaciones del target |
Target Handle
Devuelto por context.script:target(spec). La tabla spec usa las mismas claves que las configuraciones YAML de target de Elite Script (por ejemplo, {targetType = "NEARBY_PLAYERS", range = 20}).
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
entities() | — | tabla | Array de tablas de entidad en el target |
locations() | — | tabla | Array de tablas de ubicación en el target |
first_entity() | — | entidad o nil | Primera entidad en el target |
first_location() | — | location o nil | Primera ubicación en el target |
Zone Handle
Devuelto por context.script:zone(spec). La tabla spec usa las mismas claves que las configuraciones YAML de zona de Elite Script (por ejemplo, {shape = "SPHERE", radius = 5, target = {targetType = "SELF"}}).
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
full_target(coverage?) | number | target handle | Handle de target para ubicaciones del interior de la zona |
border_target(coverage?) | number | target handle | Handle de target para ubicaciones del borde de la zona |
full_locations(coverage?) | number | tabla | Array de ubicaciones del interior |
border_locations(coverage?) | number | tabla | Array de ubicaciones del borde |
full_entities() | — | tabla | Entidades dentro de la zona |
border_entities() | — | tabla | Entidades en el borde de la zona |
contains(location, mode?) | location, string?="full" | bool | Si la ubicación está en la zona |
watch(callbacks, mode?) | tabla, string?="full" | int | Vigila para entrada/salida. Devuelve el ID de tarea |
Vector Handle
Devuelto por context.script:relative_vector(spec). La tabla spec usa las mismas claves que las configuraciones YAML de vector relativo de Elite Script.
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
resolve() | — | vector | Calcula el vector para el contexto actual |
context.world (EliteMobs) ELITEMOBS
Tabla world específica de jefes para los scripts de poder de EliteMobs. Los poderes de jefes parten de la tabla world genérica de MagmaCore, por lo que los asistentes de coordenadas como get_block_at(...), set_block_at(...) y spawn_particle(...) siguen estando disponibles. Los métodos de más abajo son adiciones de EliteMobs o sobrescrituras específicas de jefes, principalmente formas de tabla de ubicación y asistentes de jefes.
Consultas de Bloques
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
get_block_type_at_location(loc) | location | string o nil | Nombre del Material |
get_highest_block_y_at_location(loc) | location | int o nil | Y del bloque más alto |
get_blast_resistance_at_location(loc) | location | double | Valor de resistencia a explosiones |
is_air_at_location(loc) | location | bool | El bloque es aire |
is_passable_at_location(loc) | location | bool | El bloque es atravesable |
is_passthrough_at_location(loc) | location | bool | El bloque no es sólido |
is_on_floor_at_location(loc) | location | bool | Aire con bloque sólido debajo |
is_standing_on_material(loc, material) | location, string (Material) | bool | El bloque debajo coincide con el material |
Manipulación de Bloques
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
set_block_at_location(loc, material, requireAir?) | location, string (Material), bool?=false | nil | Coloca bloque. Si requireAir es true, solo reemplaza aire |
place_temporary_block_at_location(loc, material, ticks?, requireAir?) | location, string, int?=0, bool?=false | nil | Coloca bloque, se elimina automáticamente tras ticks. Si requireAir es true, solo reemplaza aire |
Generación
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
spawn_boss_at_location(file, loc?, level?) | string, location?=ubic. del jefe, int?=nivel del jefe | entidad o nil | Genera jefe personalizado |
spawn_custom_boss_at_location(file, loc, options?) | string, location, tabla | entidad o nil | Genera jefe con opciones (level, silent, add_as_reinforcement, velocity) |
spawn_entity_at_location(type, loc, options?) | string (EntityType), location, tabla | entidad o nil | Genera entidad vanilla con opciones (velocity, duration, effect, on_land, max_ticks) |
spawn_falling_block_at_location(loc, material, options?) | location, string (Material), tabla | entidad o nil | Genera bloque cayendo (drop_item, hurt_entities, velocity, on_land) |
spawn_reinforcement_at_location(file, loc, level?, velocity?) | string, location, int?=0, vector | entidad o nil | Genera refuerzo vinculado al jefe |
spawn_fireworks_at_location(loc, config) | location, tabla | entidad o nil | Genera fuego artificial |
spawn_splash_potion_at_location(loc, config) | location, tabla | entidad o nil | Genera poción arrojadiza |
Efectos y Utilidad
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
play_sound_at_location(loc, sound, volume?, pitch?) | location, string (clave de sonido de Minecraft, p. ej. "entity.blaze.shoot"), float?=1, float?=1 | nil | Reproduce sonido |
spawn_particle_at_location(loc, particle, count?) | location, string (Particle) o tabla, int?=1 | nil | Genera partículas |
strike_lightning_at_location(loc) | location | nil | Lanza un rayo (omite la protección de EM) |
run_empowered_lightning_task_at_location(loc) | location | nil | Efecto de rayo potenciado |
generate_fake_explosion(locations, center?) | tabla de ubicaciones, location | nil | Explosión visual sin daño |
spawn_fake_gold_nugget_at_location(loc, velocity, gravity?) | location, vector, bool?=false | proyectil falso o nil | Genera proyectil visual de pepita de oro |
run_fake_gold_nugget_damage(projectiles) | tabla | nil | Ejecuta comprobación de daño en proyectiles falsos |
set_world_time(time) o (loc, time) | long, o location + long | nil | Establece el tiempo del mundo |
set_world_weather(weather, duration?) o (loc, weather, duration?) | string (CLEAR, RAIN, PRECIPITATION, THUNDER), int?=6000 | nil | Establece el clima |
run_console_command(command) | string | nil | Ejecuta comando de consola |
generate_player_loot(times?) | int?=1 | nil | Ejecuta esta cantidad de tiradas de botín de jugador para los que infligieron daño |
drop_bonus_coins(multiplier?) | double?=2 | nil | Suelta monedas extra en el jefe |
context.settings (EliteMobs)
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
warning_visual_effects_enabled() | — | bool | Si los VFX de advertencia están habilitados en la configuración |
Tabla de Eventos de EliteMobs
La tabla context.event se pasa a los hooks de daño y spawn. Los campos varían según el tipo de evento.
| Campo / Método | Tipo | Presente cuando | Descripción |
|---|---|---|---|
damage_amount | double | Eventos de daño | Cantidad de daño bruto |
damage_cause | string | Eventos de daño | Nombre de DamageCause |
damager | tabla entidad | Eventos de daño por entidad | Entidad que infligió el daño |
projectile | tabla entidad | Eventos de daño por proyectil | Proyectil que infligió el daño |
spawn_reason | string | Evento de spawn | Nombre del motivo de spawn |
entity | tabla entidad | Eventos de muerte/zona | Entidad relevante |
cancel_event() | method | La mayoría de eventos | Cancela el evento |
set_damage_amount(amount) | method (double) | Eventos de daño | Sobrescribe la cantidad de daño |
multiply_damage_amount(multiplier) | method (double) | Eventos de daño | Multiplica el daño actual |
context.item FMM
Accedido en los scripts de objetos de FMM. Resuelve el objeto scripteado específico de las ranuras equipadas del jugador mediante etiqueta PDC.
Los métodos de lectura inspeccionan el objeto coincidente actualmente equipado cuando se invocan. Los métodos de escritura encolan su mutación en el hilo principal de Bukkit y devuelven nil.
Propiedades
| Campo | Tipo | Descripción |
|---|---|---|
id | string | Identificador del script del objeto |
Métodos
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
material() | — | string | Nombre del Material |
get_amount() | — | int | Tamaño de la pila |
set_amount(n) | int | nil | Encola el establecimiento del tamaño de la pila |
consume(n?) | int?=1 | nil | Encola el decremento en n, elimina si llega a cero |
get_uses() | — | int | Contador de usos almacenado en PDC |
set_uses(n) | int | nil | Encola el establecimiento del contador de usos en PDC |
get_durability() | — | tabla o nil | Devuelve los campos current y max, o nil si no hay barra de durabilidad |
get_durability_percentage() | — | number o nil | Fracción restante 0.0--1.0, o nil |
use_durability(amount, can_break?) | int, bool?=false | nil | Encola la reducción de la durabilidad en una cantidad fija. Cuando es false, limita a 1 restante |
use_durability_percentage(fraction, can_break?) | number, bool?=false | nil | Encola la reducción de la durabilidad en una fracción del máximo (0.0--1.0) |
get_name() | — | string o nil | Nombre mostrado |
set_name(s) | string | nil | Encola el establecimiento del nombre mostrado. Admite códigos de color |
get_lore() | — | tabla | Array de cadenas de lore |
set_lore(table) | tabla | nil | Encola el establecimiento del lore desde un array de cadenas |
context.prop FMM
Accedido en los scripts de prop de FMM. Hereda todos los campos de Entidad del armor stand de respaldo.
Propiedades
| Campo | Tipo | Descripción |
|---|---|---|
model_id | string | Nombre del modelo blueprint |
current_location | location | Posición actual del prop |
Métodos
| Método | Args | Devuelve | Descripción |
|---|---|---|---|
play_animation(name, blend?, loop?) | string, bool?=true, bool?=true | bool | Reproduce animación con nombre |
stop_animation() | — | nil | Detiene todas las animaciones actuales |
hurt_visual() | — | nil | Flash de tinte rojo, sin daño |
pickup() | — | nil | Encola la eliminación del prop y suelta el objeto de colocación |
has_mount_points() | — | bool | Si el prop tiene huesos de punto de montura |
mount(player) | tabla entidad | bool | Encola la comprobación de montura; true significa que las referencias básicas eran válidas |
dismount(player) | tabla entidad | bool | Encola la comprobación de desmontura; true significa que las referencias básicas eran válidas |
get_passengers() | — | tabla | Array de tablas de entidad para los jugadores montados |
spawn_elitemobs_boss(file, x, y, z) | string, num, num, num | entidad o nil | Genera jefe de EliteMobs (requiere EliteMobs) |
open_inventory(player, title, rows?) | tabla entidad, string, int?=3 | bool | Encola la apertura del inventario de cofre persistente (filas limitadas de 1 a 6). El título admite códigos de color |
place_book(player) | tabla entidad | bool | Encola el almacenamiento del libro escrito/escribible sostenido por el jugador en el prop |
read_book(player) | tabla entidad | bool | Encola la apertura del libro almacenado para lectura |
take_book(player) | tabla entidad | bool | Encola la devolución del libro almacenado al jugador |
has_book() | — | bool | Si hay un libro almacenado |
drop_inventory() | — | bool | Encola el soltado de todos los objetos almacenados y limpia el almacenamiento |
drop_book() | — | bool | Encola el soltado del libro almacenado y limpia el almacenamiento |
is_viewing_inventory(player) | tabla entidad | bool | Si el jugador tiene abierto el inventario de este prop |
set_persistent_data(key, value) | string, string | bool | Almacena una cadena en el PDC del prop |
get_persistent_data(key) | string | string o nil | Recupera una cadena del PDC del prop |
Códigos de Color
Todos los métodos marcados como compatibles con códigos de color usan el ChatColorConverter de Magmacore. Estos formatos se pueden mezclar libremente en cualquier cadena:
Códigos legacy
Usa & seguido de un carácter de color/formato:
| Código | Color | Código | Formato |
|---|---|---|---|
&0 | Negro | &l | Negrita |
&1 | Azul oscuro | &m | |
&2 | Verde oscuro | &n | Subrayado |
&3 | Aqua oscuro | &o | Cursiva |
&4 | Rojo oscuro | &r | Reset |
&5 | Púrpura oscuro | ||
&6 | Oro | ||
&7 | Gris | ||
&8 | Gris oscuro | ||
&9 | Azul | ||
&a | Verde | ||
&b | Aqua | ||
&c | Rojo | ||
&d | Púrpura claro | ||
&e | Amarillo | ||
&f | Blanco |
Colores hex
Color RGB exacto usando hex de 6 dígitos:
&#FF5500 -- prefijo de ampersand
<#FF5500> -- sintaxis de etiqueta
Gradientes
Interpolan suavemente entre dos o más colores a lo largo del texto:
<gradient:#FF0000:#0000FF>Este texto se desvanece de rojo a azul</gradient>
<g:#FF0000:#00FF00:#0000FF>Gradiente de tres colores</g>
La forma corta g funciona idénticamente a gradient. Puedes encadenar tantas paradas de color como quieras.
Arcoíris
Recorre todo el espectro de tonos a plena saturación. Un argumento numérico opcional desplaza el tono inicial (desfase de fase):
<rainbow>Texto arcoíris completo</rainbow>
<r:0.5>Arcoíris con un tono inicial desplazado</r>
Tipos Comunes
location
{ x = number, y = number, z = number, yaw = number, pitch = number, world = string }
vector
{ x = number, y = number, z = number }
tabla entidad
Cualquier tabla con un campo uuid. Las tablas de jugador y entidad del context funcionan directamente:
context.player -- tabla entidad válida
context.world:get_nearby_entities(x,y,z,r) -- devuelve un array de tablas de entidad
Siguientes Pasos
- Motor de Scripting: Cómo funciona el motor — sandbox, planificación, cooldowns, zonas
- EliteMobs: Primeros Pasos | Scripts de NPC | Hooks y Ciclo de Vida | Jefes y Entidades | Mundo y Entorno | Zonas y Targeting | Ejemplos
- FreeMinecraftModels: Primeros Pasos | API de Prop y Objeto | Ejemplos