EliteScript
EliteScript — это комплексная система скриптов для плагинов MagmaGuy, предоставляющая расширенные возможности настройки для создания динамического поведения боссов и других сущностей в Minecraft.
Обзор
EliteScript позволяет администраторам серверов создавать сложное поведение, управляемое событиями, для пользовательских боссов и мобов. Система скриптов построена на шести основных компонентах:
- События (Events): Триггеры, запускающие выполнение скрипта (урон, спаун, смерть и т.д.)
- Условия (Conditions): Требования, которые должны быть выполнены для выполнения действий
- Действия (Actions): Поведение для выполнения (урон, телепортация, создание частиц и т.д.)
- Цели (Targets): Какие сущности или места затрагивают действия
- Зоны (Zones): Определенные области в мире для нацеливания и обнаружения
- Перезарядки (Cooldowns): Временные ограничения для предотвращения спама скриптов
EliteScript можно добавить как отдельные файлы способностей или непосредственно в файлы конфигурации пользовательских боссов.
Пример быстрого старта
Вот простой EliteScript, который заставляет босса ударять молнией по игрокам при получении урона:
eliteScript:
LightningStrike:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: STRIKE_LIGHTNING
Target:
targetType: DIRECT_TARGET
repeatEvery: 20
times: 3
Cooldowns:
local: 60
global: 20
Этот скрипт срабатывает, когда игрок наносит урон боссу, затем ударяет молнией по игроку 3 раза (раз в секунду), с перезарядкой в 60 тиков перед следующим срабатыванием.
Компоненты скрипта
EliteScript предоставляет обширные возможности настройки через систему компонентов. Для получения подробной информации о каждом компоненте см. следующие страницы:
Основные компоненты
- События (Events) - 13 типов событий, включая урон, смерть, спаун, бой и триггеры на основе зон
- Действия (Actions) - 35 типов действий для создания сложного поведения
- Цели (Targets) - 17 типов целей для выбора сущностей и мест
- Условия (Conditions) - Фильтрация и блокировка условий с несколькими типами проверок
- Зоны (Zones) - 8 форм зон (сферы, цилиндры, кубоиды, лучи, конусы и т.д.)
- Перезарядки (Cooldowns) - Системы локальных и глобальных перезарядок
- Относительные векторы (Relative Vectors) - Расширенное позиционирование и движение
Распространенные случаи использования
EliteScript обычно используется для:
- Фазовые бои с боссами: Различные паттерны атак при разном проценте здоровья
- Механики арен: Урон на основе зон, баффы или спауны в определенных областях
- Пользовательские атаки: Уникальные эффекты частиц, снаряды и атаки по области
- Опасности окружения: Периодические молнии, падающие блоки или огонь
- Интерактивные механики: Телепортация, спаун мобов и модификация мира
- Коммуникация с игроками: Сообщения, титры, панель действий и панели боссов
- Условное поведение: Различные действия в зависимости от количества игроков, местоположения или состояния босса
Реализация
Скрипты могут быть реализованы двумя способами:
- Файлы способностей (Power Files): Создайте отдельные файлы
.ymlв~/plugins/EliteMobs/powers/ - Файлы пользовательских боссов (Custom Boss Files): Добавьте разделы
eliteScript:непосредственно в конфигурации пользовательских боссов
Для получения подробных инструкций по созданию способностей и пользовательских боссов см.:
Соображения производительности
При создании скриптов учитывайте эти рекомендации:
- Используйте перезарядки для предотвращения проблем с производительностью из-за скриптов с быстрым срабатыванием
- События на основе зон (ZoneEnterEvent, ZoneLeaveEvent) требуют больших вычислительных ресурсов - используйте небольшие зоны и соответствующие перезарядки
- Используйте условия фильтрации для уменьшения ненужных проверок
- Тщательно тестируйте скрипты перед развертыванием на производственных серверах
Следующие шаги
Чтобы начать создавать свои собственные EliteScript:
- Просмотрите страницу События (Events), чтобы понять, что может запускать скрипты
- Изучите страницу Действия (Actions), чтобы увидеть, какое поведение вы можете создать
- Узнайте о Целях (Targets), чтобы контролировать, на что влияют ваши действия
- Изучите примеры на каждой странице компонентов
- Начните с простых скриптов и постепенно добавляйте сложность
