Справочник API Lua
Этот справочник сгенерирован из работающих построителей таблиц Lua, обогатителей и распознавателей контекста времени выполнения MagmaCore, FreeMinecraftModels и EliteMobs.
Таблица Entity
Таблица сущности MagmaCore — это основа для обобщённых значений сущностей; таблицы Living Entity, Player и пропа FreeMinecraftModels наследуют её.
Свойства
| Поле | Тип | Описание |
|---|---|---|
uuid | string | UUID сущности. |
entity_type | string | Тип сущности Bukkit в нижнем регистре. |
is_valid | bool | Актуальное значение валидности. |
is_dead | bool | Актуальное состояние смерти. |
current_location | table/nil | Актуальная локация {x, y, z, yaw, pitch, world}. |
world | string/nil | Актуальное имя мира. |
is_player | bool | Является ли сущность игроком. |
is_hostile | bool | Реализует ли сущность Bukkit Monster. |
is_passive | bool | Реализует ли сущность Bukkit Animals. |
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
teleport(location) | table | nil | Телепортировать к таблице локации. |
remove() | — | nil | Удалить сущность, если она ещё валидна. |
set_silent(enabled) | bool | nil | Задать состояние беззвучности. |
set_invulnerable(enabled) | bool | nil | Задать состояние неуязвимости. |
set_gravity(enabled) | bool | nil | Задать состояние гравитации. |
set_glowing(enabled) | bool | nil | Задать состояние свечения. |
Таблица Entity: обогащение EliteMobs
Работающий обогатитель EliteMobs добавляет эти значения в таблицы сущностей MagmaCore; elite существует, только когда is_elite равно true.
Свойства
| Поле | Тип | Описание |
|---|---|---|
is_elite | bool | Отслеживает ли EliteMobs эту сущность в данный момент. |
is_custom_boss | bool | Является ли отслеживаемый элита кастомным боссом. |
is_significant_boss | bool | Является ли он кастомным боссом с множителем здоровья выше 1. |
elite | table/nil | Вложенные актуальные данные EliteMobs, присутствуют только для распознанного элиты. |
elite.level | int | Снимок уровня элиты. |
elite.name | string/nil | Снимок отображаемого имени элиты. |
elite.health | number | Актуальное здоровье. |
elite.max_health | number | Актуальное максимальное здоровье. |
elite.is_custom_boss | bool | Является ли элита кастомным боссом. |
elite.health_multiplier | number | Снимок настроенного множителя здоровья. |
elite.damage_multiplier | number | Снимок настроенного множителя урона. |
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
elite.remove() | — | nil | Удалить элиту через конвейер удаления EliteMobs. |
Таблица Entity: обогащение FreeMinecraftModels
Работающий обогатитель FreeMinecraftModels добавляет эти значения; model существует, только когда is_modeled равно true, а значения только для игроков появляются лишь в таблицах игроков.
Свойства
| Поле | Тип | Описание |
|---|---|---|
is_modeled | bool | Распознаёт ли FreeMinecraftModels сущность с моделью. |
is_prop | bool | Является ли сущность пропом FreeMinecraftModels на основе стойки для брони. |
model | table/nil | Вложенные данные модели, присутствуют только для сущности с моделью. |
model.model_id | string/nil | Идентификатор чертежа модели. |
model.is_dynamic | bool | Является ли сущность с моделью динамической. |
is_op | bool | Состояние оператора сервера, только для игроков. |
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
model.play_animation(name, blend?=false, loop?=false) | string, bool?=false, bool?=false | bool | Воспроизвести анимацию модели и вернуть, началась ли она. |
model.stop_animations() | — | nil | Остановить все текущие анимации модели. |
model.remove() | — | nil | Удалить сущность с моделью. |
has_permission(node) | string | bool | Проверка права, только для игроков. |
Таблица Living Entity
Таблица живой сущности MagmaCore наследует все свойства и методы таблицы Entity.
Свойства
| Поле | Тип | Описание |
|---|---|---|
health | number | Актуальное здоровье. |
maximum_health | number | Актуальное максимальное здоровье. |
name | string/nil | Актуальное имя сущности Bukkit. |
is_alive | bool | Актуальная инверсия состояния смерти Bukkit. |
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
damage(amount) | number | nil | Нанести урон Bukkit. |
push(x, y, z) | number, number, number | nil | Добавить вектор к текущей скорости. |
set_facing(x, y, z) | number, number, number | nil | Повернуть в направлении вектора. |
add_potion_effect(type, duration, amplifier) | string (PotionEffectType), int, int | nil | Добавить эффект зелья, если тип распознан. |
remove_potion_effect(type) | string (PotionEffectType) | nil | Убрать эффект зелья, если тип распознан. |
get_scale() | — | number | Вернуть атрибут масштаба или 1.0, если он недоступен. |
set_scale(value) | number | nil | Задать атрибут масштаба, если сервер это поддерживает. |
Таблица Player
Таблица игрока MagmaCore наследует все свойства и методы таблицы Living Entity.
Свойства
| Поле | Тип | Описание |
|---|---|---|
game_mode | string | Снимок игрового режима Bukkit в нижнем регистре. |
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
send_message(text) | string | nil | Отправить текст, обработанный парсером цветов MagmaCore. |
get_held_item() | — | table/nil | Вернуть {type, amount, display_name} для предмета в основной руке или nil для пустой руки. |
consume_held_item(amount?=1) | int?=1 | nil | Поставить в очередь уменьшение стака в основной руке. |
has_item(material, amount?=1) | string (Material), int?=1 | bool | Проверить, содержит ли инвентарь запрошенное количество. |
get_target_entity(range?=50) | number?=50 | table/nil | Рейкастом определить сущность, на которую смотрит игрок. |
get_eye_location() | — | table | Вернуть локацию глаз. |
get_look_direction() | — | table | Вернуть единичное направление {x, y, z}. |
send_block_change(x, y, z, material, ticks?=-1) | int, int, int, string (Material), int?=-1 | bool | Отправить блок только клиенту и при положительном числе тиков сбросить его; некорректные или неблочные материалы возвращают false. |
reset_block(x, y, z) | int, int, int | bool | Поставить в очередь восстановление реального блока для этого игрока. |
sleep(x, y, z) | number, number, number | nil | Поставить в очередь принудительную анимацию сна и восстановить заменённый блок после пробуждения. |
wake_up() | — | nil | Поставить в очередь пробуждение спящего игрока. |
show_boss_bar(text, color?=WHITE, progress, ticks?=-1) | string, string (BarColor)?=WHITE, number, int?=-1 | nil | Заменить активную сплошную полосу босса игрока и при положительном числе тиков скрыть её. |
hide_boss_bar() | — | nil | Убрать активную Lua-полосу босса игрока. |
show_action_bar(text, ticks?=-1) | string, int?=-1 | nil | Отправить один раз или повторять каждые 40 тиков до конца положительной длительности. |
show_title(title, subtitle?="", fade_in, stay, fade_out) | string, string?="", int, int, int | nil | Показать заголовок; текст заголовка и подзаголовка обрабатывается цветовым парсером. |
Таблица World
Таблица мира MagmaCore доступна как context.world; силы боссов EliteMobs наследуют её и применяют описанные далее переопределения.
Свойства
| Поле | Тип | Описание |
|---|---|---|
name | string | Снимок имени мира. |
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
get_block_at(x, y, z) | int, int, int | string | Вернуть имя Material в нижнем регистре или air, не подгружая незагруженный чанк. |
set_block_at(x, y, z, material) | int, int, int, string (Material) | bool | Поставить размещение блока в очередь; некорректные материалы возвращают false, а незагруженные чанки пропускаются задачей из очереди. |
get_highest_block_y(x, z) | int, int | int | Вернуть наибольшую координату Y блока. |
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?=0 | nil | Создать частицу; некорректные имена ничего не делают. |
play_sound(sound, x, y, z, volume?=1, pitch?=1) | string (Sound), number, number, number, number?=1, number?=1 | nil | Воспроизвести зарегистрированный звук или ключ звука ресурс-пака с пространством имён в нижнем регистре. |
strike_lightning(x, y, z) | number, number, number | nil | Ударить молнией. |
get_time() | — | int | Вернуть время мира в тиках. |
set_time(ticks) | int | nil | Задать время мира. |
get_nearby_entities(x, y, z, radius) | number, number, number, number | table | Вернуть ближайшие таблицы Entity или Living Entity. |
get_nearby_players(x, y, z, radius) | number, number, number, number | table | Вернуть ближайшие таблицы Player. |
spawn_entity(type, x, y, z) | string (EntityType), number, number, number | table/nil | Создать ванильную сущность; некорректные типы возвращают nil. |
raycast(from_x, from_y, from_z, dir_x, dir_y, dir_z, max_distance?=50) | number, number, number, number, number, number, number?=50 | table | Вернуть значения hit_entity, hit_location и hit_block. |
place_temporary_block(x, y, z, material, ticks?=0, require_air?=false) | int, int, int, string (Material), int?=0, bool?=false | bool | Разместить временный блок; некорректные материалы или незагруженные чанки возвращают false. |
drop_item(x, y, z, material, amount?=1) | number, number, number, string (Material), int?=1 | table/nil | Выбросить предмет естественным образом и вернуть его таблицу Entity; некорректные материалы возвращают nil. |
spawn_firework(x, y, z, colors, type?=BALL, power?=1) | number, number, number, table, string (FireworkEffect.Type)?=BALL, int?=1 | nil | Поставить фейерверк в очередь, используя имена констант Bukkit Color; если ни одна не распознана, по умолчанию белый. |
strike_lightning_at_location(location) | table | nil | Ударить молнией в мире из таблицы локации. |
play_sound_at_location(location, sound, volume?=1, pitch?=1) | table, string (Sound), number?=1, number?=1 | nil | Воспроизвести зарегистрированный звук или ключ звука ресурс-пака с пространством имён в нижнем регистре. |
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?=0 | nil | Создать частицу в мире из таблицы локации. |
get_block_at_location(location) | table | string | Вернуть имя материала в нижнем регистре или air для некорректной локации либо незагруженного чанка. |
set_block_at_location(location, material) | table, string (Material) | bool | Поставить в очередь размещение блока в мире из таблицы локации. |
place_temporary_block_at_location(location, material, ticks?=0, require_air?=false) | table, string (Material), int?=0, bool?=false | bool | Разместить временный блок в мире из таблицы локации. |
get_highest_block_y_at_location(location) | table | int/nil | Вернуть наибольшую координату Y блока или nil для некорректной локации. |
context.world: дополнения FreeMinecraftModels
FreeMinecraftModels регистрирует их в собственной таблице мира MagmaCore, поэтому они появляются в context.world в скриптах предметов и пропсов FreeMinecraftModels. Каждый метод возвращает false, если EliteMobs не включён или игрок не распознан, и использует локацию игрока, если аргумент локации отсутствует или непригоден.
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
drop_elitemobs_procedural_loot(player, level, location?) | table/string, int, table? | bool | Выбросить один процедурно сгенерированный предмет EliteMobs для игрока; возвращает false, если выпадение процедурных предметов отключено. |
drop_elitemobs_random_loot(player, level, location?) | table/string, int, table? | bool | Прокрутить таблицы добычи EliteMobs для игрока на заданном уровне. |
drop_elitemobs_custom_loot(player, file, level, location?) | table/string, string, int, table? | bool | Выбросить конкретный файл кастомного предмета EliteMobs для игрока; возвращает false, если файл не распознан. |
Аргумент player принимает таблицу игрока, строку UUID или точное имя игрока. Аргумент location принимает таблицу локации либо таблицу сущности, содержащую current_location.
Вспомогательная таблица em
MagmaCore предоставляет эту таблицу глобально до запуска любого хука скрипта.
Свойства
Конструкторы-помощники возвращают приведённые ниже компактные таблицы данных.
| Поле | Тип | Описание |
|---|---|---|
location.x | number | Координата X, возвращаемая em.create_location. |
location.y | number | Координата Y, возвращаемая em.create_location. |
location.z | number | Координата Z, возвращаемая em.create_location. |
location.world | string/nil | Имя мира, если оно передано в em.create_location. |
location.yaw | number/nil | Yaw, если он передан в em.create_location. |
location.pitch | number/nil | Pitch, если он передан в em.create_location. |
vector.x | number | Компонента X, возвращаемая em.create_vector. |
vector.y | number | Компонента Y, возвращаемая em.create_vector. |
vector.z | number | Компонента Z, возвращаемая em.create_vector. |
zone.kind | string | sphere, dome, cylinder, cuboid, cone, static_ray, rotating_ray или translating_ray. |
zone.radius | number/nil | Радиус сферы, купола, цилиндра или конуса. |
zone.height | number/nil | Высота цилиндра. |
zone.x | number/nil | Размер кубоида по X. |
zone.y | number/nil | Размер кубоида по Y. |
zone.z | number/nil | Размер кубоида по Z. |
zone.length | number/nil | Длина конуса или луча. |
zone.thickness | number/nil | Толщина статического луча. |
zone.point_radius | number/nil | Радиус точки вращающегося или перемещающегося луча. |
zone.animation_duration | number/nil | Длительность анимации вращающегося или перемещающегося луча. |
zone.origin | table/nil | Локация, заданная через set_center или set_origin. |
zone.destination | table/nil | Локация, заданная через set_destination. |
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
em.create_location(x, y, z, world?, yaw?, pitch?) | number, number, number, string?, number?, number? | table | Вернуть таблицу локации. |
em.create_vector(x, y, z) | number, number, number | table | Вернуть таблицу вектора {x, y, z}. |
location.add(dx?=0, dy?=0, dz?=0) | number?=0, number?=0, number?=0 | table | Прибавить на месте и вернуть ту же таблицу локации. |
em.zone.create_sphere_zone(radius) | number | table | Вернуть определение сферы с set_center(location). |
em.zone.create_dome_zone(radius) | number | table | Вернуть определение купола с set_center(location). |
em.zone.create_cylinder_zone(radius, height) | number, number | table | Вернуть определение цилиндра с set_center(location). |
em.zone.create_cuboid_zone(x, y, z) | number, number, number | table | Вернуть определение кубоида с set_center(location). |
em.zone.create_cone_zone(length, radius) | number, number | table | Вернуть определение конуса с set_origin(location) и set_destination(location). |
em.zone.create_static_ray_zone(length, thickness) | number, number | table | Вернуть определение статического луча с сеттерами origin и destination. |
em.zone.create_rotating_ray_zone(length, point_radius, animation_duration) | number, number, number | table | Вернуть определение вращающегося луча с сеттерами origin и destination. |
em.zone.create_translating_ray_zone(length, point_radius, animation_duration) | number, number, number | table | Вернуть определение перемещающегося луча с сеттерами origin и destination. |
zone.set_center(location) | table | table | Задать центр как zone.origin и вернуть ту же таблицу зоны. |
zone.set_origin(location) | table | table | Задать origin и вернуть ту же таблицу зоны. |
zone.set_destination(location) | table | table | Задать destination и вернуть ту же таблицу зоны. |
em.location.is_in_dungeon(location) | table | bool | Проверить зарегистрированные регионы подземелий и владельцев, сообщающих о типе dungeon. |
em.location.is_protected(location) | table | bool | Проверить встроенные адаптеры WorldGuard/GriefPrevention и зарегистрированных плагинами владельцев защиты. |
em.location.owned_by(location, namespace) | table, string | bool | Проверить владение по пространству имён плагина. |
em.location.owners(location) | table | table | Вернуть массив строк с пространствами имён владельцев. |
em.location.kinds_at(location) | table | table | Вернуть массив строк с типами владения. |
em.location.has_kind(location, kind) | table, string | bool | Проверить тип владения. |
context.state
Каждый экземпляр скрипта MagmaCore получает обычную таблицу Lua, которая сохраняется на всё время жизни этого экземпляра. Используйте её для счётчиков, флагов, идентификаторов задач и значений, разделяемых между хуками.
context.state.counter = (context.state.counter or 0) + 1
context.log
Методы MagmaCore, FreeMinecraftModels и NPC EliteMobs
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
info(message) | string | nil | Записать информационное сообщение с общим префиксом Lua. |
warn(message) | string | nil | Записать предупреждение. |
error(message) | string | nil | Записать через общий канал предупреждений. |
Методы сил боссов EliteMobs
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
info(message) | string | nil | Записать информационное сообщение о силе босса. |
warn(message) | string | nil | Записать предупреждение. |
debug(message) | string | nil | Записать информационное сообщение с отладочным префиксом Lua-силы. |
context.scheduler
Запланированные задачи принадлежат экземпляру скрипта и отменяются при его завершении. Оба приведённых ниже семейства имён доступны на общих поверхностях MagmaCore и в силах боссов EliteMobs.
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
run_later(ticks, callback) | int, function | int | Выполнить один раз после задержки и вернуть ID задачи Bukkit. |
run_repeating(delay, interval, callback) | int, int, function | int | Выполнять повторно после начальной задержки и вернуть ID задачи. |
cancel(task_id) | int | nil | Отменить принадлежащую скрипту задачу. |
run_after(ticks, callback) | int, function | int | Псевдоним для run_later. |
run_every(interval, callback) | int, function | int | Выполнять повторно без начальной задержки и вернуть ID задачи. |
cancel_task(task_id) | int | nil | Псевдоним для cancel. |
context.cooldowns
Локальные перезарядки привязаны к одному владельцу скрипта и определению; глобальные перезарядки общие для одного владельца. Если локальный ключ опущен, используется __lua: плюс имя файла скрипта. Силы боссов EliteMobs предоставляют те же имена методов, но локальные значения используют общее хранилище перезарядок босса, а глобальные — его встроенную перезарядку силы.
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
local_ready(key?) | string? | bool | Проверить, готова ли локальная перезарядка по ключу. |
local_remaining(key?) | string? | int | Вернуть оставшиеся тики или 0, если готово. |
check_local(key, duration) | string/nil, int | bool | Если готово, запустить перезарядку и вернуть true. Для ключа по умолчанию передайте nil. |
set_local(duration, key?) | int, string? | nil | Задать или сбросить локальную перезарядку; неположительная длительность сбрасывает её. |
global_ready() | — | bool | Проверить, готова ли глобальная перезарядка владельца. |
set_global(duration) | int | nil | Задать глобальную перезарядку в тиках. На общих поверхностях MagmaCore неположительная длительность сбрасывает её. |
context.zones: общая поверхность MagmaCore
Скрипты FreeMinecraftModels, NPC-скрипты EliteMobs и другие стандартные потребители MagmaCore получают целочисленные дескрипторы зон в мире текущего владельца скрипта.
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
create_sphere(x, y, z, radius) | number, number, number, number | int/nil | Зарегистрировать сферу и вернуть её дескриптор или nil, если у владельца нет мира. |
create_cylinder(x, y, z, radius, height) | number, number, number, number, number | int/nil | Зарегистрировать цилиндр и вернуть его дескриптор или nil, если у владельца нет мира. |
create_cuboid(x, y, z, x_size, y_size, z_size) | number, number, number, number, number, number | int/nil | Зарегистрировать кубоид и вернуть его дескриптор или nil, если у владельца нет мира. |
watch(handle, on_enter?, on_leave?) | int, function?, function? | bool/nil | Включить отслеживание границ для известного дескриптора. Наличие функции включает соответствующий хук on_zone_enter или on_zone_leave; тело переданной функции напрямую не вызывается. |
unwatch(handle) | int | nil | Прекратить отслеживание и удалить дескриптор. |
Обобщённые хуки зон предоставляют пересекающего границу игрока через context.player и context.event.player.
context.event: общая поверхность MagmaCore
Эта таблица существует, пока у общего хука есть текущее событие Bukkit или действующее лицо. Она отсутствует в запланированных обратных вызовах и в хуках без обоих этих значений.
| Поле или метод | Тип | Описание |
|---|---|---|
is_cancelled | bool | Состояние отмены, зафиксированное на момент построения таблицы контекста; вызовы cancel() или uncancel() не обновляют это поле. |
cancel() | метод | Отменить текущее событие. Присутствует, только если оно реализует Bukkit Cancellable. |
uncancel() | метод | Снять отмену текущего события. Присутствует, только если оно реализует Bukkit Cancellable. |
player | table | Таблица Living Entity для текущего действующего лица, если оно доступно. |
Обобщённые хуки зон предоставляют действующее лицо, но не отменяемое событие Bukkit, поэтому они выдают is_cancelled = false и player без cancel() и uncancel().
context.item
Скрипты предметов FreeMinecraftModels получают эту таблицу для соответствующего экипированного скриптового предмета.
Свойства
| Поле | Тип | Описание |
|---|---|---|
id | string | Идентификатор скриптового предмета. |
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
material() | — | string/nil | Вернуть имя Material в верхнем регистре или nil, если предмет не экипирован. |
get_amount() | — | int | Вернуть количество в стаке или 0, если предмет не экипирован. |
set_amount(amount) | int | nil | Поставить в очередь установку количества в стаке. |
consume(amount?=1) | int?=1 | nil | Поставить в очередь уменьшение количества в стаке. |
get_uses() | — | int | Вернуть постоянный счётчик использований, по умолчанию 0. |
set_uses(uses) | int | nil | Поставить в очередь установку постоянного счётчика использований. |
get_durability() | — | table/nil | Вернуть {current, max} или nil, если у предмета нет полосы прочности. |
get_durability_percentage() | — | number/nil | Вернуть оставшуюся прочность от 0.0 до 1.0 или nil. |
use_durability(amount, can_break?=false) | int, bool?=false | nil | Поставить в очередь фиксированный урон прочности и ограничить его одной оставшейся единицей, если поломка не разрешена. |
use_durability_percentage(fraction, can_break?=false) | number, bool?=false | nil | Поставить в очередь урон прочности, равный доле от максимальной прочности. |
get_name() | — | string/nil | Вернуть отображаемое имя или nil, если его нет. |
set_name(name) | string | nil | Поставить в очередь установку отображаемого имени с обработкой цветовых кодов. |
get_lore() | — | table | Вернуть массив строк описания. |
set_lore(lore) | table | nil | Поставить в очередь установку строк описания с обработкой цветовых кодов. |
context.prop
Скрипты пропсов FreeMinecraftModels получают эту таблицу, которая наследует таблицу Entity MagmaCore, если существует опорная сущность.
Свойства
| Поле | Тип | Описание |
|---|---|---|
model_id | string/nil | Имя чертежа модели или nil, если чертежа нет. |
current_location | table/nil | Актуальная локация пропа. |
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
play_animation(name, blend?=true, loop?=true) | string, bool?=true, bool?=true | bool | Воспроизвести именованную анимацию. |
stop_animation() | — | nil | Остановить все текущие анимации. |
hurt_visual() | — | nil | Проиграть красную визуальную реакцию на урон без нанесения урона. |
pickup() | — | nil | Поставить в очередь окончательное удаление и выбросить предмет размещения. |
has_mount_points() | — | bool | Проверить, есть ли у пропа кости точек посадки. |
mount(player) | table | bool | Поставить в очередь посадку распознанного игрока на первое свободное место. |
dismount(player) | table | bool | Поставить в очередь высадку распознанного игрока с этого пропа. |
get_passengers() | — | table | Вернуть таблицы Entity сидящих игроков. |
spawn_elitemobs_boss(file, x, y, z) | string, number, number, number | table/nil | Создать кастомного босса EliteMobs, если EliteMobs включён. |
open_inventory(player, title, rows?=3) | table, string, int?=3 | bool | Поставить в очередь открытие постоянного хранилища; число рядов ограничено диапазоном от 1 до 6. |
place_book(player) | table | bool | Поставить в очередь сохранение одной находящейся в руке подписанной или пустой книги, если у пропа книги нет. |
read_book(player) | table | bool | Поставить в очередь открытие сохранённой подписанной книги. |
take_book(player) | table | bool | Поставить в очередь возврат сохранённой книги игроку. |
has_book() | — | bool | Проверить, хранит ли проп книгу. |
drop_inventory() | — | bool | Поставить в очередь очистку постоянного хранилища и выбрасывание его предметов. |
drop_book() | — | bool | Поставить в очередь очистку и выбрасывание сохранённой книги. |
is_viewing_inventory(player) | table | bool | Проверить, просматривает ли игрок отслеживаемый инвентарь этого пропа. |
set_persistent_data(key, value) | string, string | bool | Сохранить строку под ключом fmm_lua_, ограниченным этим пропом. |
get_persistent_data(key) | string | string/nil | Вернуть сохранённую строку или nil. |
context.npc
NPC-скрипты EliteMobs наследуют общие контексты MagmaCore и добавляют эту специфичную для NPC таблицу.
Свойства
| Поле | Тип | Описание |
|---|---|---|
name | string | Настроенное отображаемое имя NPC. |
filename | string | Имя файла конфигурации NPC. |
uuid | string | UUID NPC во время выполнения. |
activation_radius | number | Настроенный радиус активации. |
current_location | table | Снимок локации, присутствует только пока существует опорная живая сущность. |
entity_type | string | Тип сущности Bukkit в верхнем регистре, присутствует только пока существует опорная живая сущность. |
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
is_valid() | — | bool | Проверить, валиден ли NPC. |
get_location() | — | table | Вернуть текущую локацию NPC, откатываясь к локации его появления. Таблица также включает вектор direction. |
get_eye_location() | — | table | Вернуть текущую локацию глаз, откатываясь к локации появления. Таблица также включает вектор direction. |
get_activation_radius() | — | number | Вернуть текущий настроенный радиус активации. |
get_nearby_players(radius) | number | table | Вернуть ближайшие таблицы Player. |
face_direction_or_location(target) | table | nil | Повернуться по вектору направления или посмотреть в сторону локации. |
say_greeting(player?) | table/string? | nil | Отправить настроенное приветствие, по умолчанию — вызвавшему игроку, если он доступен. Принимается таблица игрока, UUID или имя. |
say_dialog(player?) | table/string? | nil | Отправить настроенный диалог с тем же способом распознавания игрока. |
say_farewell(player?) | table/string? | nil | Отправить настроенное прощание с тем же способом распознавания игрока. |
play_model_animation(name) | string | nil | Воспроизвести анимацию модели, если существует кастомная модель. |
Таблица ссылок на сущность в силах EliteMobs
Методы сил боссов EliteMobs возвращают эту облегчённую таблицу для неживых сущностей — снарядов, фейерверков и падающих блоков.
Свойства
| Поле | Тип | Описание |
|---|---|---|
name | string | Снимок имени сущности. |
uuid | string | UUID сущности. |
entity_type | string | Снимок типа сущности Bukkit в верхнем регистре. |
is_player | bool | Всегда false. |
is_elite | bool | Всегда false. |
is_mount | bool | False, если только босс не пометит возвращённую таблицу ездового животного как true. |
current_location | table | Снимок локации. |
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
is_valid() | — | bool | Проверить актуальную валидность. |
get_location() | — | table | Вернуть актуальную локацию. |
get_velocity() | — | table | Вернуть актуальную скорость. |
is_on_ground() | — | bool | Проверить актуальное состояние нахождения на земле. |
teleport_to_location(location) | table | nil | Телепортировать, если локация распознана. |
set_velocity_vector(vector) | table | nil | Задать скорость, если вектор распознан. |
set_direction_vector(vector) | table | nil | Задать направление огненного шара, если применимо. |
set_yield(amount) | number | nil | Задать мощность огненного шара, если применимо. |
set_gravity(enabled) | bool | nil | Задать гравитацию. |
detonate() | — | nil | Взорвать, если сущность является фейерверком. |
remove() | — | nil | Удалить сущность. |
unregister(reason?=OTHER) | string?=OTHER | nil | Снять с учёта, используя 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 или ARENA_RESET. |
is_inside_vehicle() | — | bool | Проверить, едет ли сущность на транспорте. |
has_vehicle() | — | bool | Проверить, существует ли транспорт. |
get_vehicle() | — | table/nil | Вернуть ссылку на текущий транспорт. |
set_vehicle(vehicle) | table | bool | Посадить эту сущность на распознанный транспорт. |
leave_vehicle() | — | bool | Покинуть текущий транспорт. |
has_passengers() | — | bool | Проверить, есть ли пассажиры. |
get_passenger_count() | — | int | Вернуть количество пассажиров. |
get_passengers() | — | table | Вернуть ссылки на пассажиров. |
add_passenger(passenger) | table | bool | Добавить распознанного пассажира. |
remove_passenger(passenger) | table | bool | Убрать распознанного пассажира. |
eject_passengers() | — | bool | Высадить всех пассажиров. |
Таблица живой сущности в силах EliteMobs
Значения живых сущностей в силах боссов EliteMobs используют эту отдельную таблицу; таблицы Boss и Player сил EliteMobs наследуют её.
Свойства
| Поле | Тип | Описание |
|---|---|---|
name | string | Снимок имени сущности. |
uuid | string | UUID сущности. |
entity_type | string | Снимок типа сущности Bukkit в верхнем регистре. |
is_player | bool | Является ли сущность игроком. |
is_monster | bool | Реализует ли сущность Bukkit Monster. |
is_elite | bool | Отслеживает ли EliteMobs эту сущность. |
is_mount | bool | Является ли отслеживаемый кастомный босс ездовым животным. |
is_valid | bool | Снимок валидности. |
health | number | Снимок здоровья. |
maximum_health | number | Снимок максимального здоровья. |
current_location | table | Снимок локации. |
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
is_alive() | — | bool | Проверить актуальную валидность и состояние смерти. |
is_ai_enabled() | — | bool | Вернуть актуальное состояние ИИ. |
is_frozen() | — | bool | Вернуть настройку заморозки кастомного босса EliteMobs или false. |
get_location() | — | table | Вернуть актуальную локацию. |
get_eye_location() | — | table | Вернуть актуальную локацию глаз. |
get_height() | — | number | Вернуть высоту сущности Bukkit. |
get_health() | — | number | Вернуть актуальное здоровье. |
get_maximum_health() | — | number | Вернуть актуальное максимальное здоровье. |
get_velocity() | — | table | Вернуть актуальную скорость. |
deal_damage(amount) | number | nil | Нанести обычный урон Bukkit. |
deal_custom_damage(amount) | number | nil | Нанести кастомный урон EliteMobs от босса, которому принадлежит сила. |
deal_damage_from_boss(amount) | number | nil | Нанести урон Bukkit, приписанный боссу, которому принадлежит сила. |
restore_health(amount) | number | nil | Лечить через EliteMobs, если сущность отслеживается, иначе ограничить здоровье Bukkit максимумом. |
play_sound_at_entity(sound, volume_or_options?=1, pitch?=1) | string (Sound), number/table?=1, number?=1 | nil | Воспроизвести зарегистрированный или кастомный звук с пространством имён у сущности. Вторым аргументом можно передать {volume, pitch}. |
play_sound_at_self(sound, volume_or_options?=1, pitch?=1) | string (Sound), number/table?=1, number?=1 | nil | Псевдоним, воспроизводящий звук у сущности. Вторым аргументом можно передать {volume, pitch}. |
spawn_particle_at_self(particle, count?=1) | string (Particle)/table, int?=1 | nil | Создать у сущности частицу по строке или по таблице спецификации частицы. |
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?=0 | nil | Создать частицу в локации. |
teleport_to_location(location) | table | nil | Телепортировать, если локация распознана. |
set_velocity_vector(vector) | table | nil | Задать скорость, если вектор распознан. |
set_gravity(enabled) | bool | nil | Задать гравитацию. |
is_on_ground() | — | bool | Проверить актуальное состояние нахождения на земле. |
apply_push_vector(vector, additive?=false, delay?=1) | table, bool?=false, int?=1 | nil | Применить скорость после задержки, при необходимости добавляя её к текущей. |
set_custom_name(name) | string | nil | Задать кастомное имя с обработкой цветовых кодов. |
reset_custom_name() | — | nil | Восстановить имя EliteMobs, если сущность отслеживается, иначе имя Bukkit. |
set_custom_name_visible(visible) | bool | nil | Задать видимость кастомного имени. |
set_ai_enabled(enabled, duration?=0) | bool, int?=0 | nil | Задать ИИ и переключить в противоположное состояние после положительного числа тиков. |
set_awareness_enabled(enabled, duration?=0) | bool, int?=0 | nil | Задать осведомлённость моба и переключить в противоположное состояние после положительного числа тиков. |
face_direction_or_location(target) | table | nil | Повернуться по вектору или к локации в том же мире. |
play_model_animation(name) | string | nil | Воспроизвести анимацию кастомной модели, если она доступна. |
set_scale(scale, duration?=0) | number, int?=0 | nil | Задать масштаб и сбросить его в 1.0 после положительного числа тиков. |
set_invulnerable(enabled, duration?=0) | bool, int?=0 | nil | Задать неуязвимость с помощью помощника длительности EliteMobs. |
remove_elite() | — | nil | Удалить отслеживаемого элиту через конвейер удаления EliteMobs. |
is_healing() | — | bool | Проверить состояние лечения отслеживаемого элиты. |
set_healing(enabled) | bool | nil | Задать состояние лечения отслеживаемого элиты. |
navigate_to_location(location, speed?=1, force?=false, timeout?=0) | table, number?=1, bool?=false, int?=0 | nil | Направить отслеживаемого кастомного босса. |
add_tag(tag, duration?=0) | string, int?=0 | nil | Добавить тег и убрать его после положительного числа тиков. |
remove_tag(tag) | string | nil | Убрать тег. |
has_tag(tag) | string | bool | Проверить тег сущности, элиты или игрока. |
push_relative_to(location, force?=1, extra_x?=0, extra_y?=0, extra_z?=0) | table, number?=1, number?=0, number?=0, number?=0 | nil | Оттолкнуть от исходной локации плюс необязательные смещения. |
overlaps_box_at_location(center, half_x?=0.5, half_y?=half_x, half_z?=half_x) | table, number?=0.5, number?, number? | bool | Проверить ограничивающий параллелепипед сущности на пересечение с запрошенным. |
is_inside_vehicle() | — | bool | Проверить, едет ли сущность на транспорте. |
has_vehicle() | — | bool | Проверить, существует ли транспорт. |
get_vehicle() | — | table/nil | Вернуть ссылку на текущий транспорт. |
set_vehicle(vehicle) | table | bool | Посадить эту сущность на распознанный транспорт. |
leave_vehicle() | — | bool | Покинуть текущий транспорт. |
has_passengers() | — | bool | Проверить, есть ли пассажиры. |
get_passenger_count() | — | int | Вернуть количество пассажиров. |
get_passengers() | — | table | Вернуть ссылки на пассажиров. |
add_passenger(passenger) | table | bool | Добавить распознанного пассажира. |
remove_passenger(passenger) | table | bool | Убрать распознанного пассажира. |
eject_passengers() | — | bool | Высадить всех пассажиров. |
apply_potion_effect(type, duration, amplifier?=0) | string (PotionEffectType), int, int?=0 | nil | Применить эффект зелья. |
set_equipment(slot, material, options?) | string (EquipmentSlot), string (Material), table? | nil | Задать снаряжение; options поддерживают unbreakable и записи enchantments с type и level. |
set_fire_ticks(ticks) | int | nil | Задать тики горения. |
add_visual_freeze_ticks(ticks?=1) | int?=1 | nil | Добавить тики обморожения. |
place_temporary_block(material, ticks?=0, require_air?=false) | string (Material), int?=0, bool?=false | nil | Разместить временный блок у сущности. |
Таблица игрока в силах EliteMobs
Значения игроков в силах боссов EliteMobs наследуют все свойства и методы таблицы живой сущности в силах EliteMobs.
Свойства
| Поле | Тип | Описание |
|---|---|---|
game_mode | string | Снимок игрового режима Bukkit в верхнем регистре. |
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
send_message(text) | string | nil | Отправить текст чата с обработкой цветовых кодов. |
show_action_bar(text) | string | nil | Отправить панель действий с обработкой цветовых кодов. |
show_title(title, subtitle?="", fade_in?=10, stay?=40, fade_out?=10) | string, string?="", int?=10, int?=40, int?=10 | nil | Показать заголовок с обработкой цветовых кодов. |
show_boss_bar(title, color?=WHITE, style?=SOLID, duration?=40) | string, string (BarColor)?=WHITE, string (BarStyle)?=SOLID, int?=40 | nil | Показать полосу босса и убрать её после положительного числа тиков. |
run_command(command) | string | nil | Выполнить команду от имени игрока. |
context.boss
Силы боссов EliteMobs получают эту таблицу, которая наследует все свойства и методы таблицы живой сущности в силах EliteMobs и переопределяет перечисленные здесь строки семантикой уровня элиты.
Свойства
| Поле | Тип | Описание |
|---|---|---|
name | string | Снимок отображаемого имени элиты или имени файла скрипта. |
uuid | string | UUID элиты. |
health | number | Снимок здоровья элиты. |
maximum_health | number | Снимок максимального здоровья элиты. |
current_location | table | Снимок локации элиты. |
level | int | Снимок уровня элиты. |
damager_count | int | Снимок количества наносящих урон. |
is_in_combat | bool | Снимок состояния боя. |
exists | bool | Снимок существования элиты. |
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
is_alive() | — | bool | Проверить живую сущность и состояние существования в EliteMobs. |
get_health() | — | number | Вернуть актуальное здоровье элиты. |
get_maximum_health() | — | number | Вернуть актуальное максимальное здоровье элиты. |
get_location() | — | table | Вернуть актуальную локацию элиты. |
restore_health(amount) | number | nil | Лечить через сущность EliteMobs. |
add_tag(tag, duration?=0) | string, int?=0 | nil | Добавить тег элиты и убрать его после положительного числа тиков. |
remove_tag(tag) | string | nil | Убрать тег элиты. |
has_tag(tag) | string | bool | Проверить тег элиты. |
reset_custom_name() | — | nil | Восстановить отображаемое имя элиты. |
play_sound_at_self(sound, volume_or_options?=1, pitch?=1) | string (Sound), number/table?=1, number?=1 | nil | Воспроизвести зарегистрированный или кастомный звук с пространством имён в локации элиты. Вторым аргументом можно передать {volume, pitch}. |
play_sound_at_entity(sound, volume_or_options?=1, pitch?=1) | string (Sound), number/table?=1, number?=1 | nil | Псевдоним, воспроизводящий звук в локации элиты. Вторым аргументом можно передать {volume, pitch}. |
spawn_particle_at_self(particle, count?=1) | string (Particle)/table, int?=1 | nil | Создать частицу в локации элиты. |
play_model_animation(name) | string | nil | Воспроизвести анимацию модели кастомного босса, если она доступна. |
navigate_to_location(location, speed?=1, force?=false, timeout?=0) | table, number?=1, bool?=false, int?=0 | nil | Направить кастомного босса. |
get_damager_count() | — | int | Вернуть актуальное количество наносящих урон. |
despawn() | — | nil | Удалить элиту с причиной OTHER. |
get_ender_dragon_phase() | — | string/nil | Вернуть имя EnderDragon.Phase или nil. |
set_ender_dragon_phase(phase) | string (EnderDragon.Phase) | nil | Задать корректную фазу дракона Края. |
has_mount() | — | bool | Проверить, есть ли у босса живое ездовое животное. |
get_mount() | — | table/nil | Вернуть ссылку на ездовое животное, помеченную is_mount = true. |
set_mount(mount) | table | bool | Посадить босса на распознанную сущность. |
clear_mount() | — | bool | Покинуть текущий транспорт. |
dismount() | — | bool | Псевдоним для clear_mount(). |
start_tracking_fireball_system(speed?=0.5) | number?=0.5 | nil | Запустить поведение самонаводящегося огненного шара для босса-монстра. |
handle_spirit_walk_damage(cause) | string (DamageCause) | nil | Выполнить обработку урона Spirit Walk. |
shield_wall_is_active() | — | bool | Проверить состояние щитовой стены. |
initialize_shield_wall(charges?=1) | int?=1 | nil | Инициализировать щитовую стену. |
shield_wall_absorb_damage(player, damage) | table, number | bool | Попытаться поглотить урон игрока. |
deactivate_shield_wall() | — | nil | Деактивировать щитовую стену. |
start_zombie_necronomicon(target, file) | table, string | nil | Запустить обработку Zombie Necronomicon для живой цели. |
send_message(text, range?=20) | string, number?=20 | nil | Отправить текст с обработкой цветовых кодов игрокам в пределах радиуса. |
get_nearby_players(range) | number | table | Вернуть ближайшие таблицы игроков сил EliteMobs. |
get_target_player() | — | table/nil | Вернуть текущую цель моба, если это игрок. |
get_nearby_players_in_zone(zone) | table | table | Вернуть игроков, находящихся внутри зоны. |
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?=1 | nil | Выбрать точки внутри зоны и создать частицы. |
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?=1 | nil | Выбрать точки на границе зоны и создать частицы. |
get_particles_from_self_toward_zone(zone, particle, speed?=0.1) | table, string (Particle), number?=0.1 | table | Построить направленные спецификации частиц от босса к выбранным точкам зоны. |
get_particles_toward_self(zone, particle, speed) | table, string (Particle), number | table | Построить направленные спецификации частиц к боссу; текущий построитель считывает скорость из последнего переданного аргумента. |
spawn_particles_with_vector(particles) | table | nil | Создать массив направленных спецификаций частиц. |
summon_reinforcement(file, zone_or_location?, level?=0) | string, table?, int?=0 | table/nil | Призвать подкрепление в выбранной точке зоны, в локации или у босса. |
summon_projectile(type, origin, destination, speed?=1, options?) | string (EntityType), table, table, number?=1, table? | table/nil | Создать снаряд; options поддерживают custom_damage, detonation_power, yield, incendiary, gravity, glowing, invulnerable, persistent, duration, effect из EntityEffect, spawn_at_origin, direction_only, track, on_land и max_ticks. |
context.players: силы боссов EliteMobs
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
current_target() | — | table/nil | Вернуть действующее лицо события, если это игрок, иначе текущую цель моба у босса, если это игрок. |
nearby_players(radius) | number | table | Вернуть таблицы Player в пределах радиуса от босса. |
all_players_in_world() | — | table | Вернуть все таблицы Player в текущем мире босса. |
context.entities: силы боссов EliteMobs
Эти запросы исключают самого босса. Фильтры живых сущностей принимают player/players, elite/elites, mob/mobs или любое другое значение для всех живых сущностей.
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
get_nearby_entities(radius, filter?="living") | number, string? | table | Вернуть сущности в пределах радиуса. all или entities включает неживые сущности; другие фильтры возвращают таблицы живых сущностей. |
get_entities_in_box(center, half_x, half_y, half_z, filter?="living") | table, number, number, number, string? | table | Вернуть живые сущности внутри параллелепипеда, выровненного по осям. |
get_all_entities(filter?="living") | string? | table | Вернуть подходящие живые сущности в мире босса. |
get_direct_target_entity() | — | table/nil | Вернуть прямую цель, предоставленную текущим хуком. |
get_boss_spawn_location() | — | table | Вернуть исходную локацию появления босса. |
context.vectors: силы боссов EliteMobs
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
get_vector_between_locations(source, destination, options?) | table, table, table? | table | Вернуть вектор между локациями в одном мире или {x=0,y=0,z=0} для некорректного либо межмирового ввода. Options поддерживают normalize, multiplier и векторный offset. |
rotate_vector(vector, pitch?=0, yaw?=0) | table, number?=0, number?=0 | table | Вернуть вектор, повёрнутый на pitch и yaw в градусах. |
normalize_vector(vector) | table | table | Вернуть единичный вектор; нулевой вектор остаётся нулевым. |
context.zones: силы боссов EliteMobs
Силы боссов EliteMobs заменяют общую поверхность зон с целочисленными дескрипторами запросами к определениям зон Elite Script.
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
get_entities_in_zone(zone, options?) | table, table? | table | Вернуть подходящие живые сущности. Options поддерживают filter и mode = "full" либо "border". |
get_locations_in_zone(zone, options?) | table, table? | table | Вернуть выбранные локации. Options поддерживают coverage и mode = "full" либо "border". |
zone_contains(zone, location, mode?="full") | table, table, string? | bool | Проверить, находится ли локация во всей фигуре или на границе. |
watch_zone(zone, callbacks, options?) | table, table, table? | nil | Наблюдать с обратными вызовами {on_enter, on_leave}. Options поддерживают filter и mode; принадлежащее скрипту наблюдение прекращается вместе с ним. |
context.script: силы боссов EliteMobs
Этот мост принимает те же ключи таблиц, что и YAML-конфигурация целей, зон и относительных векторов Elite Script.
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
target(spec) | table | дескриптор цели | Создать дескриптор цели. |
zone(spec) | table | дескриптор зоны | Создать дескриптор зоны. |
relative_vector(spec, location?, zone?) | table, table?, дескриптор зоны? | дескриптор вектора | Создать дескриптор относительного вектора, по умолчанию привязав его локацию действия к боссу. |
damage(target, amount?=0, multiplier?=1) | дескриптор цели, number?=0, number?=1 | nil | Нанести урон каждой распознанной целевой сущности. |
push(target, vector, additive?=false) | дескриптор цели, table/дескриптор вектора, bool?=false | nil | Применить скорость к распознанным целевым сущностям. |
set_facing(target, vector) | дескриптор цели, table/дескриптор вектора | nil | Повернуть распознанные целевые сущности вдоль вектора. |
spawn_particles(target, particles) | дескриптор цели, table/string | nil | Создать частицы по спецификации в распознанных целевых локациях. |
Методы дескриптора цели
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
entities() | — | table | Распознать и вернуть таблицы Entity. |
locations() | — | table | Распознать и вернуть таблицы локаций. |
first_entity() | — | table/nil | Вернуть первую распознанную сущность. |
first_location() | — | table/nil | Вернуть первую распознанную локацию. |
Методы дескриптора зоны
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
full_target(coverage?) | number? | дескриптор цели | Создать дескриптор цели для внутренней области фигуры. |
border_target(coverage?) | number? | дескриптор цели | Создать дескриптор цели для границы. |
full_locations(coverage?) | number? | table | Распознать выбранные внутренние локации. |
border_locations(coverage?) | number? | table | Распознать выбранные локации на границе. |
full_entities() | — | table | Распознать сущности внутри фигуры. |
border_entities() | — | table | Распознать сущности на границе. |
contains(location, mode?="full") | table, string? | bool | Проверить принадлежность всей фигуре или границе. |
watch(callbacks, mode?="full") | table, string? | int | Запустить принадлежащее скрипту наблюдение {on_enter, on_leave} и вернуть ID его задачи. |
Методы дескриптора относительного вектора
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
resolve() | — | table | Распознать вектор для текущего контекста. |
Таблица событий в силах EliteMobs
Значения событий в силах боссов EliteMobs предоставляют поля и методы в зависимости от типа события.
Свойства
| Поле | Тип | Описание |
|---|---|---|
damage_amount | number/nil | Снимок величины урона из события урона. |
damage_cause | string/nil | Имя DamageCause, если событие урона его предоставляет. |
damager | table/nil | Ссылка на наносящего урон из события урона сущностью. |
projectile | table/nil | Ссылка на снаряд, если урон наносит снаряд. |
spawn_reason | string/nil | Причина появления элиты. |
entity | table/nil | Сущность события смерти или события зоны. |
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
cancel_event() | — | nil | Отменить EliteDamageEvent или другое отменяемое событие. |
set_damage_amount(amount) | number | nil | Заменить урон EliteDamageEvent. |
multiply_damage_amount(multiplier) | number | nil | Умножить урон EliteDamageEvent. |
context.world: дополнения и переопределения EliteMobs
Силы боссов EliteMobs наследуют все строки таблицы World из MagmaCore и добавляют либо переопределяют приведённые ниже методы.
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
play_sound_at_location(location, sound, volume?=1, pitch?=1) | table, string (Sound), number?=1, number?=1 | nil | Переопределение, принимающее зарегистрированные или кастомные звуки с пространством имён через поддержку EliteMobs. |
spawn_particle_at_location(location, particle, count?=1) | table, string (Particle)/table, int?=1 | nil | Переопределение, принимающее таблицу спецификации частицы EliteMobs. |
set_block_at_location(location, material, require_air?=false) | table, string (Material), bool?=false | nil | Переопределение, использующее размещение временного блока EliteMobs без истечения срока. |
place_temporary_block_at_location(location, material, ticks?=0, require_air?=false) | table, string (Material), int?=0, bool?=false | nil | Переопределение, использующее размещение временного блока EliteMobs. |
get_block_type_at_location(location) | table | string/nil | Вернуть имя Material в верхнем регистре или nil для некорректной локации. |
get_highest_block_y_at_location(location) | table | int/nil | Переопределение, возвращающее наибольшую координату Y блока или nil. |
get_blast_resistance_at_location(location) | table | number | Вернуть взрывоустойчивость блока, по умолчанию 0 для некорректной локации. |
is_air_at_location(location) | table | bool | Проверить, является ли целевой блок воздухом. |
is_passable_at_location(location) | table | bool | Проверить проходимость по Bukkit. |
is_passthrough_at_location(location) | table | bool | Проверить, что материал не является твёрдым. |
is_on_floor_at_location(location) | table | bool | Проверить, что целевой блок не твёрдый, а блок под ним твёрдый. |
is_standing_on_material(location, material) | table, string (Material) | bool | Проверить блок ниже. |
strike_lightning_at_location(location) | table | nil | Переопределение, включающее обход молнии EliteMobs перед ударом. |
run_empowered_lightning_task_at_location(location) | table | nil | Выполнить поддержку усиленной молнии дракона Края. |
set_world_time(time) / set_world_time(location, time) | int/table, int? | nil | Задать время в мире босса или в мире переданной локации. |
set_world_weather(weather, duration?=6000) / set_world_weather(location, weather, duration?=6000) | string/table, string/int?, int?=6000 | nil | Задать CLEAR, PRECIPITATION, RAIN или THUNDER. |
run_console_command(command) | string | nil | Выполнить команду от имени консоли. |
spawn_boss_at_location(file, location?, level?) | string, table?, int? | table/nil | Создать кастомного босса в переданной или текущей локации с переданным или текущим уровнем. |
spawn_custom_boss_at_location(file, location, options?) | string, table, table? | table/nil | Создать кастомного босса; options поддерживают silent, level, add_as_reinforcement и velocity. |
spawn_entity_at_location(type, location, options?) | string (EntityType), table, table? | table/nil | Создать ванильную сущность; options поддерживают velocity, duration, effect из EntityEffect, on_land и max_ticks. |
spawn_falling_block_at_location(location, material, options?) | table, string (Material), table? | table/nil | Создать падающий блок; options поддерживают drop_item, hurt_entities, velocity и on_land. |
spawn_reinforcement_at_location(file, location, level?=0, velocity?) | string, table, int?=0, table? | table/nil | Призвать подкрепление, привязанное к боссу. |
spawn_fireworks_at_location(location, options) | table, table | table/nil | Создать фейерверк; options поддерживают effects, type, flicker, trail, colors, fade_colors, power, velocity и shot_at_angle, где для type используются имена FireworkEffect.Type. |
spawn_splash_potion_at_location(location, options) | table, table | table/nil | Создать взрывное зелье; записи effects принимают type из PotionEffectType, duration, amplifier и overwrite, плюс velocity на верхнем уровне. |
generate_fake_explosion(locations, source?) | table, table? | nil | Сгенерировать поддельный взрыв EliteMobs для массива локаций блоков. |
spawn_fake_gold_nugget_at_location(location, velocity, gravity?=false) | table, table, bool?=false | table/nil | Создать поддельный снаряд — золотой самородок. |
run_fake_gold_nugget_damage(projectiles) | table | nil | Выполнить проход нанесения урона поддельными снарядами. |
generate_player_loot(times?=1) | int?=1 | nil | Сгенерировать добычу игрока для подходящих наносивших урон. |
drop_bonus_coins(multiplier?=2) | number?=2 | nil | Выбросить бонусные монеты для подходящих наносивших урон. |
Таблица поддельного снаряда EliteMobs
spawn_fake_gold_nugget_at_location возвращает эту таблицу при успешном создании.
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
get_location() | — | table | Вернуть локацию поддельного снаряда. |
set_gravity(enabled) | bool | nil | Задать гравитацию поддельного снаряда. |
remove() | — | nil | Удалить поддельный снаряд. |
is_removed() | — | bool | Проверить, был ли он удалён. |
context.settings
Силы боссов EliteMobs получают эту таблицу настроек от того же построителя таблицы мира.
Методы
| Метод | Аргументы | Возвращает | Описание |
|---|---|---|---|
warning_visual_effects_enabled() | — | bool | Вернуть текущую настройку визуальных эффектов предупреждения. |