- Поддерживаемые версии
- 1.21
- 26
- Ядра и Прокси
- Bukkit
- Spigot
- Paper
- Минимальная версия Java
- 21
hZamokEvent
Полноценный многоэтапный ивент «Богатый замок»
Точки захвата • денежные банки • волны лут-шалкеров • топ участников
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
О ПЛАГИНЕ
hZamokEvent создаёт на сервере полноценный ивент вокруг богатого замка. Плагин автоматически устанавливает готовую схематику, соединяет её с окружающим ландшафтом и последовательно запускает три игровые стадии: захват денежных точек через Vault, волны шалкеров с настраиваемым лутом и захват точек PlayerPoints.
Игроки сражаются за ограниченные банки валюты, разбивают шалкеры разных редкостей, получают ресурсы и набирают очки активности. В конце ивента плагин формирует итоговый рейтинг участников.
В комплект уже входят схематика замка, пять редкостей шалкеров, готовые точки захвата, сообщения, BossBar, голограммы и детально прокомментированные YAML-конфигурации.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ОСНОВНЫЕ ВОЗМОЖНОСТИ
- Три последовательные стадии одного глобального ивента
- Денежные точки захвата с поддержкой Vault
- Точки захвата с наградами PlayerPoints
- Общий или отдельный банк валюты для каждого игрока
- Пять готовых редкостей шалкеров с разными характеристиками
- Последовательные волны с гибкими лимитами и интервалами
- Встроенный GUI-редактор лута
- Настройка шанса, минимального и максимального количества каждой награды
- Подсчёт очков, ударов, разрушенных шалкеров и времени успешных выплат на точках
- Итоговый топ активных участников
- Автоматическая однократная генерация готового замка
- Автоматический подбор высоты и плавное соединение схематики с миром
- Работа с водоёмами и берегами, настраиваемая очистка и защита растительности
- Автоматическое создание и настройка региона WorldGuard
- Точное расписание с часовым поясом и проверкой онлайна
- Ручное управление всеми стадиями ивента
- BossBar, ActionBar, голограммы, звуки и цветные частицы
- Поддержка MiniMessage и PlaceholderAPI
- Сохранение оставшихся ударов созданных плагином шалкеров
- Событийное или самостоятельное шанс-зависимое появление шалкеров
- Настраиваемые лимиты нагрузки при генерации и обработке рельефа
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ТРИ СТАДИИ ОДНОГО ИВЕНТА
Порядок стадий полностью настраивается. По умолчанию используется следующая последовательность:
- Vault — игроки захватывают золотые точки и забирают монеты из ограниченного банка.
- Shulkers — в замке начинается несколько волн шалкеров с ресурсами.
- PlayerPoints — игроки захватывают изумрудные точки и получают валюту PlayerPoints.
Каждая стадия имеет отдельные сообщения, визуальное оформление и собственные настройки. Порядок можно изменить в
config.yml, указав каждую из трёх стадий один раз. Если Vault, провайдер экономики или PlayerPoints недоступен, соответствующая валютная стадия пропускается, а последовательность продолжается.Чтобы убрать валютную стадию из игрового сценария, выключите её в соответствующем файле зоны, не удаляя ID из списка порядка.
По умолчанию продолжительность каждой стадии захвата составляет 300 секунд. Количество волн шалкеров, задержки между ними, общие лимиты и поведение оставшихся шалкеров также настраиваются.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ТОЧКИ ЗАХВАТА И БАНКИ
Стадии Vault и PlayerPoints используют независимые наборы точек захвата. В стандартной конфигурации для каждой стадии подготовлено пять точек: одна центральная и четыре дополнительные.
- Абсолютные координаты или смещения относительно центра замка
- Отдельный материал каждой точки
- Максимальное количество игроков на одной точке
- Индивидуальный множитель награды
- Цветная обводка границ с помощью частиц
- ActionBar после успешной выплаты
- Звук получения валюты
- BossBar с оставшимся размером банка
- Настраиваемый интервал выплат
- Форматирование целых и дробных сумм
- Временная замена блоков точек с восстановлением после стадии
Если допустимое количество игроков на точке превышено, выплата на этой точке не производится. Это позволяет создавать соревновательные позиции, которые необходимо контролировать в одиночку или ограниченной группой.
Накопления прогресса захвата нет: живой игрок не в режиме Spectator получает периодические выплаты, пока стоит непосредственно на активном блоке. Если лимит позволяет нескольким участникам находиться на одной точке, каждый получает полную рассчитанную выплату — сумма между ними не делится. Стадия завершается по таймеру, даже если банк опустел раньше.
Доступно два режима банка:
GLOBAL— единый ограниченный банк для всех участниковPLAYER— отдельный банк для каждого игрока
Размер выплаты зависит от базовой суммы, множителя конкретной точки, заполненности всех точек и оставшегося банка. По мере опустошения банка награда может плавно уменьшаться до заданного минимального множителя.
Стандартные значения:
- Банк Vault — 2 500 000 монет
- Базовая выплата Vault — 800 монет в секунду
- Банк PlayerPoints — 5 000 единиц
- Базовая выплата PlayerPoints — 2 единицы в секунду
- Длительность каждой валютной стадии — 300 секунд
- Центральная точка — множитель 2.5
- Дополнительные точки — множитель 1.5
- Множитель при правильном занятии всех точек — 1.85
- Минимальный множитель при почти пустом банке — 0.25
- Выплата проверяется каждые 20 тиков
Все суммы, длительности, материалы, координаты, ограничения и множители изменяются отдельно для каждой валютной стадии.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ВОЛНЫ ШАЛКЕРОВ
Во время стадии шалкеров внутри замка появляются ящики с настраиваемыми наградами. По умолчанию контейнер защищён от открытия: игрокам необходимо нанести заданное количество ударов, после чего таблица лута разыгрывается и успешно выпавшие предметы выдаются выбранным способом. Защиту контейнера можно изменить для каждой редкости.
В комплект входят пять редкостей:
- Обычный — белый, 30 ударов, 25% на каждой настроенной точке
- Редкий — синий, 35 ударов, 20% на точке
- Эпический — фиолетовый, 40 ударов, 15% на точке, 2% взрыва после засчитанного удара
- Мифический — красный, 45 ударов, 10% на точке, 4% взрыва
- Легендарный — жёлтый, 50 ударов, 5% на точке, 6% взрыва
Можно добавлять собственные редкости: менеджер автоматически загружает корректные
.yml-файлы из папки shulkers, а их ID появляются в списке и редакторе лута.Для каждой редкости отдельно настраиваются:
- Название, цвет, материал и приоритет
- Количество необходимых ударов
- Абсолютные и относительные точки появления
- Случайный или последовательный выбор позиции
- Шанс использования каждой позиции
- Индивидуальная или глобальная задержка между ударами
- Время жизни и задержка повторной готовности точки
- Взрывы во время разрушения и по окончании таймера
- Мощность взрыва, огонь и разрушение окружающих блоков
- Выдача наград на землю или непосредственно в инвентарь
- Горизонтальная и вертикальная скорость разлёта выпавших предметов
- Голограмма с редкостью и оставшимся количеством ударов
Первая волна начинается сразу. По умолчанию выбирается от 3 до 5 волн, а задержка перед последующими составляет от 180 до 300 секунд. Плагин пытается создать от 3 до 15 шалкеров за волну; для всего ивента настроены целевой минимум 5 и жёсткий максимум 30. Если свободных позиций не хватает или они заняты другими блоками, фактическое количество может оказаться ниже минимума.
Неразрушенные шалкеры предыдущей волны могут сохраняться после появления следующей. После последней волны следующая стадия ждёт, пока все оставшиеся шалкеры не будут разрушены, удалены или не исчезнут по таймауту. BossBar показывает количество оставшихся шалкеров, а во время ожидания — номер следующей волны и оставшееся время.
Стандартная задержка засчитывания удара составляет 200 мс отдельно для каждого игрока, время жизни шалкера — 300 секунд, а повторная готовность точки — 1800 секунд. Несколько участников поэтому могут разрушать один шалкер быстрее. Управляемые шалкеры защищены от обычных взрывов и поршней и остаются доступными для разрушения через механику плагина внутри его региона WorldGuard.
Эпические, мифические и легендарные шалкеры по умолчанию могут взорваться после незавершающего удара и при истечении времени. В таком случае ящик исчезает без выдачи награды. Окружающие блоки не разрушаются и огонь не создаётся при стандартных настройках.
Появление шалкеров можно связать только с глобальным ивентом или использовать как самостоятельную шанс-зависимую систему ящиков, когда управление расписанием отключено.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GUI-РЕДАКТОР ЛУТА
Для настройки наград не требуется вручную описывать предметы в YAML. Команда
/hzamokevent addloot <ID> открывает инвентарный редактор выбранной редкости.- До 45 слотов для размещения наград
- Выбор предмета с помощью Shift + клик
- Шанс выпадения от 0 до 100%
- Отдельное минимальное и максимальное количество
- Обычный и ускоренный шаг изменения значений
- Предпросмотр выбранной награды
- Сохранение всех изменений одной кнопкой
В стандартном интерфейсе обычный клик изменяет количество на 1 или шанс на 5%, а Shift-клик использует более точный шаг шанса и увеличенный шаг количества. Все элементы, слоты, материалы, названия и подсказки редактора изменяются в
gui.yml.Каждая запись лута проверяет шанс независимо, а после успеха выбирает случайное количество между заданным минимумом и максимумом. Последний засчитанный удар запускает розыгрыш: режим
GROUND публично разбрасывает предметы возле ящика, а INVENTORY выдаёт их разрушившему игроку и сбрасывает на землю только непоместившийся остаток.Готовых таблиц наград внутри JAR нет: редкость с пустой таблицей не выдаёт предметов. Поэтому перед использованием настройте нужные редкости через редактор. Изменения сохраняются отдельными YAML-файлами при нажатии кнопки или закрытии GUI.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ТОП АКТИВНОСТИ
Плагин отслеживает вклад каждого участника на протяжении всего ивента:
- Количество заработанных очков
- Количество полностью разрушенных шалкеров
- Общее количество ударов по шалкерам
- Время успешного получения награды на точках Vault
- Время успешного получения награды на точках PlayerPoints
Рейтинг можно сортировать по
points, brokenShulkers или shulkerHits.По умолчанию начисляется:
- 3 очка за секунду успешной выплаты Vault
- 5 очков за секунду успешной выплаты PlayerPoints
- 50 очков за полностью разрушенный шалкер
Итоговое сообщение поддерживает общую статистику и переменные участников вплоть до десятого места. Можно вывести имя, очки, удары, разрушенные шалкеры и время на каждой валютной стадии.
Игрок автоматически становится участником после первой успешной выплаты или первого засчитанного удара. Встроенный топ предназначен для статистики и итогового объявления; автоматических команд награждения за места в этой версии нет.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ГЕНЕРАЦИЯ ЗАМКА
В JAR уже находится готовая схематика
zamok.schem размером 75 x 90 x 75. При первой успешной генерации плагин устанавливает её в указанный мир и сохраняет состояние, чтобы повторный запуск сервера не создавал ещё одну копию замка.- Ручные координаты X, Y и Z
- Автоматический подбор высоты через значение
auto - Вставка блоков воздуха по настройке
- Движок
auto,worldeditилиbukkit - Подготовка ограниченного количества чанков за тик
- Настраиваемый лимит вставляемых блоков за тик
- Телепортация администратора к вычисленному центру замка
В режиме
auto плагин предпочитает установленный WorldEdit или FastAsyncWorldEdit, а при их отсутствии использует встроенный движок. Комплектный замок корректно работает с резервной вставкой. Для пользовательских схем с содержимым контейнеров, текстом табличек, пчёлами и другими NBT-данными блочных сущностей рекомендуется WorldEdit/FAWE: встроенный движок переносит типы и состояния блоков, но не их NBT-содержимое.После успешной вставки создаётся служебное состояние
.generation. Для повторной вставки используется команда /hzamokevent regenerate, которую необходимо подтвердить повторным вводом в течение 30 секунд. Она не откатывает изменённый рельеф и не удаляет прежний замок при смене координат, поэтому перед выполнением нужен бэкап мира.━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ПЛАВНОЕ СОЕДИНЕНИЕ С ЛАНДШАФТОМ
hZamokEvent не ограничивается обычной вставкой схематики. Встроенная система анализирует основание замка и окружающий мир, после чего создаёт плавный переход между постройкой и естественным рельефом.
- Автоматический анализ поверхности и выбор подходящей высоты
- Ровная площадка возле внешнего контура замка
- Плавное изменение высоты на настраиваемом радиусе
- Несколько кривых сглаживания и метрик расстояния
- Естественный шум, скрывающий геометрическую форму перехода
- Ограничение резких перепадов между соседними колонками
- Заполнение пустот под новой поверхностью
- Удаление одиночных ям и столбиков
- Удаление деревьев рядом с замком и защита дальней растительности
- Сохранение уровня воды и формирование естественного берега
- Очистка случайной воды и лавы возле границ схематики
- Удаление лишнего природного грунта, случайно попавшего в схему
- Перенос разрешённого декора на новую поверхность
- Профили песка, красного песка, гравия, земли и глубоких слоёв
Стандартный радиус плавного перехода составляет 48 блоков, а ширина ровной области возле замка — 15 блоков. Алгоритм подробно настраивается в
terrain.yml.Чтение схематики выполняется асинхронно, а подготовка чанков, анализ рельефа и встроенная вставка распределяются по тикам. Нагрузка регулируется параметрами
chunksPerTick, columnsPerTick и blocksPerTick.━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
АВТОМАТИЧЕСКИЙ РЕГИОН WORLDGUARD
При наличии WorldGuard плагин может автоматически создать регион вокруг всей схематики с дополнительным буфером по каждой оси.
Можно настроить:
- ID и приоритет региона
- Размер буфера по X, Y и Z
- Регион на всю высоту мира
- Любые зарегистрированные флаги WorldGuard
- Заблокированные внутри региона команды
Стандартная конфигурация запрещает разрушение блоков, взрывы, работу поршней, появление мобов и несколько административных команд. При этом PvP и урон от падения разрешены. Все значения можно изменить под механику своего сервера в
config.yml.━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
РАСПИСАНИЕ И РУЧНОЕ УПРАВЛЕНИЕ
Автоматическое расписание поддерживает:
- Любое количество точных значений времени в формате
HH:mm - Выбор часового пояса
- Минимальное количество игроков онлайн
- Настраиваемый порядок трёх стадий
- Автоматическое управление появлением шалкеров
В стандартном файле подготовлен запуск на двадцатой минуте каждого часа, используется часовой пояс
UTC и требуется минимум 25 игроков. Автоматическое расписание по умолчанию выключено.Проверка минимального онлайна применяется только к плановому запуску; ручной старт её игнорирует. Обработанный временной слот сохраняется, чтобы быстрый перезапуск не запустил тот же ивент повторно.
Администратор может в любой момент запустить ивент вручную, принудительно перейти к следующей стадии или начать специальный запуск с заполнением всех доступных позиций шалкеров в пределах настроенных лимитов.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ОФОРМЛЕНИЕ И PLACEHOLDERAPI
Сообщения, названия BossBar, голограммы, ActionBar и элементы GUI используют формат MiniMessage. Цвета, тексты, звуки, полосы, частицы и служебные переменные можно изменить без редактирования JAR.
Голограммы шалкеров создаются нативными сущностями TextDisplay, поэтому отдельный плагин голограмм не требуется.
Доступный плейсхолдер:
Код:
%hzamokevent_time%
Он показывает время до следующего настроенного слота автозапуска в формате
HH:MM:SS. В самом слоте плагин отдельно проверяет минимальный онлайн. Когда расписание выключено или не содержит времени, возвращается настраиваемое значение из settings.placeholders.timeUnavailable.━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
КОМАНДЫ
/hzamokevent addloot <ID>— открыть редактор лута выбранной редкости/hzamokevent startevent— вручную запустить настроенную последовательность стадий/hzamokevent startevent *— запустить ивент с заполнением всех доступных позиций в пределах лимитов/hzamokevent nextstage— принудительно перейти к следующей стадии/hzamokevent teleport— телепортироваться к центру сгенерированного замка/hzamokevent regenerate— повторно вставить замок с подтверждением в течение 30 секунд/hzamokevent reload— закрыть открытые редакторы и перезагрузить конфигурации/hzamokevent list— показать ID загруженных редкостей
Команды
addloot и teleport доступны только игроку. Остальными административными командами можно пользоваться из консоли.Tab Completion предлагает названия подкоманд, загруженные ID редкостей и символ
* для специального запуска.Команда перезагрузки останавливает текущую последовательность ивента, закрывает и сохраняет открытые редакторы и недоступна, пока плагин изменяет мир во время генерации.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ПРАВА
hzamokevent.admin— доступ ко всем командам и подсказкам плагина
По умолчанию право доступно операторам сервера.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ТРЕБОВАНИЯ И ИНТЕГРАЦИИ
Сервер: Paper 1.21.x
Java: 21
Обязательная зависимость:
- PlaceholderAPI
Сборка напрямую использует Paper Adventure API. Обычные Spigot/CraftBukkit и Folia не поддерживаются.
Дополнительные интеграции:
- Vault и зарегистрированный провайдер экономики — денежная стадия
- PlayerPoints — стадия валюты PlayerPoints
- WorldEdit или FastAsyncWorldEdit — предпочтительный движок вставки и перенос NBT пользовательских схем
- WorldGuard — автоматическое создание и настройка региона замка
При отсутствии WorldEdit или FastAsyncWorldEdit можно использовать встроенный движок вставки. Выключенные или недоступные стадии Vault и PlayerPoints автоматически пропускаются, не прерывая оставшуюся последовательность.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ХРАНЕНИЕ И ПЕРЕЗАГРУЗКА
- Таблицы лута сохраняются локально в отдельных YAML-файлах
- Фактическая высота замка, последний обработанный слот расписания и его результат сохраняются между запусками
- Управляемые шалкеры записывают оставшиеся удары и исходное время появления через Persistent Data Container
- После рестарта или перезагрузки существующие шалкеры восстанавливаются, когда загружен соответствующий чанк
- База данных и внешнее сетевое хранилище не требуются
Активная стадия, текущие банки, номер волны, очки участников и топ конкретного запуска хранятся в памяти. Перезапуск сервера или
/hzamokevent reload отменяет текущий ивент и очищает его статистику, но установленные шалкеры сохраняют записанный прогресс ударов.━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ФАЙЛЫ КОНФИГУРАЦИИ
config.yml— расписание, стадии, генерация, размещение, регион и лимиты производительностиmessages.yml— все сообщения, объявления и итоговый топgui.yml— внешний вид и работа редактора лутаterrain.yml— анализ и плавное соединение замка с ландшафтомzones/vault.yml— точки, банк и выплаты Vaultzones/playerPoints.yml— точки, банк и выплаты PlayerPointsshulkers/common.yml— обычная редкостьshulkers/rare.yml— редкая редкостьshulkers/epic.yml— эпическая редкостьshulkers/mythical.yml— мифическая редкостьshulkers/legendary.yml— легендарная редкостьzamok.schem— встроенная схематика замка
Конфигурации содержат подробные русские комментарии, объясняющие назначение параметров и доступные значения.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
УСТАНОВКА И ПЕРВИЧНАЯ НАСТРОЙКА
- Остановите сервер и создайте резервную копию целевого мира и существующих файлов плагина.
- Используйте Paper 1.21.x с Java 21. Установите hZamokEvent, обязательный PlaceholderAPI и нужные дополнительные интеграции. После изменения ядра или зависимостей рекомендуется полный перезапуск.
- Автогенерация включена по умолчанию и нацелена на
world,0 / auto / 0. До первого запуска на рабочей карте извлеките дефолтныеconfig.ymlиterrain.ymlиз JAR, проверьте мир, X, Y, Z, движок,pasteAir, обработку рельефа и параметры региона WorldGuard. Для безопасной подготовки разрешено временно установитьsettings.generation.enable: false, затем вернутьtrueи полноценно перезапустить сервер перед настройкой ивента. - Если замок переносится с X/Z
0, 0, измените все файлы редкостей вshulkers/: замените стандартные абсолютные ключиx/zнаoffSetX/offSetZлибо пересчитайте мировые координаты. Точки Vault и PlayerPoints уже используют относительные смещения. - Запустите сервер и дождитесь полного завершения генерации. Не выключайте и не перезагружайте плагин, пока он изменяет мир.
- В
zones/playerPoints.ymlисправьте значениеsettings.shulkers.removeExisting: trueаенаsettings.shulkers.removeExisting: true. - Настройте банки, выплаты и точки Vault/PlayerPoints, затем проверьте позиции, шансы, удары, таймауты и взрывы каждой редкости шалкера.
- Используйте
/hzamokevent listи обязательно заполните таблицу наград каждой редкости через/hzamokevent addloot <ID>. В комплекте нет готового лута. - Замените стандартный префикс и текст
/warp zamokв сообщениях и BossBar: сам hZamokEvent не создаёт эту warp-команду. - Включите
settings.eventSchedule.enableи задайте время либо оставьте расписание выключенным и запускайте ивент через/hzamokevent startevent. - После завершения генерации примените изменения через
/hzamokevent reload. Команда остановит активный ивент, если он уже запущен.
Перед
/hzamokevent regenerate создайте свежий бэкап. Команда выполняет ещё одну вставку: сохранённая высота из castle-placement.yml используется повторно, а прежние блоки и старый замок при смене X/Z автоматически не удаляются.━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ПОДДЕРЖКА
Если у вас появились вопросы по установке или настройке плагина:
You must be logged in to see this link.
ПОДДЕРЖКА
Если у вас появились вопросы по установке или настройке плагина:
You must be logged in to see this link.
- Зависимости
- PlaceholderAPI (Обязательно), Vault, PlayerPoints, WorldGuard, WorldEdit (Опционально)
- Команды и права
- Всё выше написано