Перейти к основному содержимому

Рейдовый босс

Рейд — часть плагина HelgaGames (/raid). Весь сервер вместе призывает босса «Страж логова» и дерётся с ним в логове у спавна. Деньги на призыв уходят из экономики, а награду получает каждый, кто реально дрался, независимо от снаряжения.

Исходники — plugins-src/HelgaGames, пакет ru.helgawind.games.raid. Спецификация — docs/superpowers/specs/2026-10-05-raid-boss-design.md, короткая инструкция по выкладке — docs/raid-setup.md там же.

Как это устроено​

  1. Шкала призыва. Игроки вносят у алтаря деньги и ресурсы. Монета — 1 очко, ресурсы — по таблице ниже. Цель — 1 500 000 очков.
  2. Отсчёт. Шкала заполнилась → объявление всем и 10 минут отсчёта полосой босса. /raid hold останавливает отсчёт, например чтобы дождаться стрима.
  3. Бой. Босс появляется в логове. На бой 30 минут. Здоровье растёт с каждым новым участником.
  4. Итог.
ИсходКогдаШкалаКулдаун 3 дня
Победаздоровье босса 0обнуляетсяда
Провалвышло времяостаётся 50%да
Отмена/raid cancelвосстанавливается полностьюнет
Выключениесервер остановлен или упал в боювосстанавливается полностьюнет

Если бой запустили вручную во время кулдауна, отмена или выключение возвращают прежний кулдаун.

Права​

ПравоКомуЧто даёт
—все/raid (состояние), меню алтаря
helgaraid.adminOP (по умолчанию)настройка логова, запуск, отмена, сверка платежей, reload

Стримерше для запуска на эфире нужно helgaraid.admin.

Логово​

Логово строится руками (или на стриме), плагину нужны только регион и точки. Требования к постройке:

  • арена с потолком и стенами, без уступов и ниш, куда не пролезет босс: это визер-скелет ×3, около 7 блоков ростом. Без стен способности «удар о землю» и «притяжение» выбрасывают игроков наружу;
  • вход снаружи региона, в логово заходят пешком;
  • балкон для зрителей вне региона (полоса босса видна в 64 блоках от точки босса);
  • блок алтаря снаружи, рядом со входом;
  • защита постройки вне боя — регион WorldGuard, как у спавна.

Спавн мобов. Если в регионе WorldGuard у спавна стоит запрет появления мобов, босс и прислужники не появятся. То же будет в мирной сложности. Бой тогда не начнётся: /raid start ответит «Страж не появился», шкала не пострадает. Разрешите появление мобов в регионе логова и проверьте на тестовом сервере.

Настройка (один раз)​

  1. Выделить WorldEdit (//wand) всё логово → /raid lair set.
  2. Встать в центр арены лицом к входу → /raid point boss.
  3. Встать у входа снаружи региона → /raid point entrance.
  4. Посмотреть на блок алтаря → /raid altar.
  5. /raid status — в строке «Логово» должно быть «—». Иначе там написано, чего не хватает (регион, точка, точка босса вне региона, вход внутри региона).

Логово сохраняется в plugins/HelgaGames/data/raid-lair.yml.

Правила логова во время боя​

Действуют для всех внутри региона, кроме helgaraid.admin в творческом режиме:

  • блоки не ломаются и не ставятся, вёдра не работают; взрывы, огонь, жидкости и мобы не меняют блоки;
  • элитры выключаются, эндер-жемчуг и плод хоруса не работают;
  • телепорты внутрь отменяются (HuskHomes и любые другие) — только пешком;
  • PvP выключено;
  • урон по боссу засчитывается, только если атакующий внутри региона (для стрел — стрелок);
  • смерть: вещи и опыт остаются, могилы GravesX нет, появление у входа, 20 секунд вход закрыт (отталкивает от границы).

Наблюдатели и игроки в творческом режиме участниками не считаются и здоровье босса не поднимают.

Алтарь​

Правый клик по блоку алтаря открывает меню:

  • шкала: очки, цель, процент, сколько ещё можно внести ресурсами;
  • взнос деньгами: 1 000 / 10 000 / 50 000 / 100 000, от 50 000 — окно подтверждения. Сверх цели сумма урезается до остатка;
  • сундук сдачи ресурсов на 27 слотов. При закрытии засчитывается то, что влезает в квоты; остальное возвращается в инвентарь, не влезшее — под ноги;
  • квоты ресурсов, топ-5 вкладчиков, вклад самого игрока.

Во время кулдауна и боя меню показывает состояние, но взносы не принимает.

РесурсОчков за шт.Квота, % цели
Древний обломок3 00020
Алмаз30015
Слеза гаста4005
Огненный стержень1203
Эндер-жемчуг803
Слизь402
Порох252
Кость152

Все ресурсы вместе дают не больше 50% цели, остальное — только деньги. Принимаются обычные предметы без имени и зачарований, целиком: если квоты не хватает на всю стопку, лишнее возвращается.

Варп и голограмма — не плагином:

  • HuskHomes: встать у входа → /setwarp raid;
  • DecentHolograms над алтарём: &4&lАлтарь Стража, &7Шкала: &e%helgaraid_points%&7/&e%helgaraid_goal%, &7%helgaraid_state%.

Плейсхолдеры (PlaceholderAPI): %helgaraid_points%, %helgaraid_goal%, %helgaraid_percent%, %helgaraid_state%, %helgaraid_cooldown%.

Бой​

Босс — визер-скелет ×3 с незеритовым мечом. Не исчезает, не горит на солнце, не ломает блоки. Здоровье своё, не ванильное: 10 000 + 5 000 × участники. Участник — кто хоть раз был внутри региона во время боя; новый участник поднимает максимум, процент оставшегося здоровья сохраняется.

СпособностьС фазыЧто делаетКулдаун
Удар о землю1 (100–70%)урон и отбрасывание в радиусе 620 с
Притяжение1тянет к себе тех, кто дальше 12 блоков25 с
Прислужники2 (70–35%)2 + 1 на каждых 3 участников, до 1240 с
Огненные метки3 (35–0%)круги под 3–5 игроками, через 2 с урон и огонь15 с
Яростьниже 10%кулдауны ×0,6—

Перед каждой способностью — 1,5–2 секунды предупреждения: частицы, звук, надпись на экране. Цель босс меняет каждые 8 секунд: чаще всего бьёт того, кто нанёс больше урона за последние 30 секунд.

Награды​

НаградаКому
Основнаянанёс не меньше 2% всего урона и в момент победы внутри логова (или ждёт входа после смерти)
Топ-3трое с наибольшим уроном среди получивших основную
1-е местопервый из топ-3
За призыввложил в шкалу не меньше 1% цели за этот цикл; на бою быть не нужно
Сервернаявсем: событие JobSystem raid-victory — 30 минут ×1,5 опыта

Награды складываются. Состав по умолчанию:

НаградаЧто
Основнаяключ Кейса зачарований, ключ Кейса косметики, голова Стража
Топ-3«Шлем Стража»: брони 0, +2 сердца, неразрушимый, только с рейда; книга III уровня — случайно Inquisitive, Headless или Mermaid
1-е местоваучер питомца по очереди: варден → скрипун → пчела → броненосец
За призывключ Кейса косметики

Каждая награда — список команд от консоли в raid.yml → rewards, {player} — ник. pick-one — одна случайная команда из списка, rotate — по очереди (номер хранится в данных рейда).

Выдача. Тем, кто онлайн, — сразу. Офлайн — при входе после авторизации AuthMe. Кто сейчас в мини-игре HelgaGames — после выхода из неё (иначе возврат вещей после игры стёр бы награду). Каждая награда отмечается на диске до выполнения команд, перезапуск не выдаст её повторно. Упавшая команда — запись в консоль и сообщение админам онлайн.

Команды​

КомандаЧто делает
/raidсостояние для всех: шкала, кулдаун, идёт ли бой
/raid lair setрегион логова — текущее выделение WorldEdit
/raid point boss / entranceточка босса / вход — где стоишь
/raid altarалтарь — блок, на который смотришь
/raid startначать бой сразу: после отсчёта, на паузе, в любой момент, даже в кулдаун
/raid holdостановить отсчёт после заполнения шкалы
/raid cancelотменить бой, шкала восстанавливается полностью
/raid statusлогово, шкала по источникам, бой, платежи на сверке, невыданные награды
/raid reloadперечитать raid.yml (вне боя; при ошибке остаются прежние настройки)
/raid money listвзносы с неизвестным результатом списания
/raid money resolve <id> applied|notзакрыть взнос вручную

Стрим​

Шкала заполнилась → /raid hold → в эфире /raid start. Можно и без шкалы: /raid start запускает бой в любой момент. Набранное в шкале при этом не обнуляется — после боя те же правила, что и для призванного.

Деньги и сверка​

Взнос деньгами записывается в журнал до списания, поэтому ни краш, ни ошибка Vault не теряют деньги и не списывают дважды. Возвратов нет — это трата.

Если результат списания неизвестен (Vault ответил ошибкой или сервер упал посреди списания), взнос попадает в /raid money list, а в консоли при старте — Raid: N payment(s) need /raid money resolve. Проверить баланс игрока и:

  • деньги списаны → /raid money resolve <id> applied — взнос засчитывается в шкалу;
  • не списаны → /raid money resolve <id> not — запись снимается.

Во время боя сверка запрещена: отмена или выключение откатили бы шкалу вместе с засчитанным взносом. Повторите после боя.

Настройки​

plugins/HelgaGames/raid.yml, после правки — /raid reload (вне боя). Ошибка в файле — сообщение в чат и консоль, рейд продолжает работать на прежних настройках. Если ошибка в файле при запуске сервера, рейд выключается (Raid disabled: … в консоли), мини-игры работают дальше.

КлючПо умолчаниюЧто
enabledtrueрейд включён
goal1500000цель шкалы, очков
resource-share-max0.5доля цели, которую могут дать ресурсы
contribution-bonus-share0.01порог вклада для награды за призыв
countdown-seconds600отсчёт после заполнения шкалы
cooldown-hours72пауза после победы или провала
time-limit-minutes30предел боя
fail-keep-share0.5сколько шкалы остаётся при провале
respawn-lock-seconds20вход закрыт после смерти
reward-threshold0.02доля урона для основной награды
resourcesсм. таблицуочки и квоты ресурсов
boss.health10000 + 5000здоровье: база + за участника
boss.abilitiesсм. таблицуурон, радиусы, кулдауны способностей
rewardsсм. вышекоманды наград

Файлы​

ФайлЧто
plugins/HelgaGames/raid.ymlнастройки
plugins/HelgaGames/data/raid.ymlшкала, вклады, состояние боя, платежи на сверке, невыданные награды
plugins/HelgaGames/data/raid-lair.ymlрегион и точки логова
plugins/HelgaGames/raid/fights.logпо строке на бой: исход, длительность, участники, максимум здоровья, урон и смерти каждого

Данные пишутся атомарно. Если data/raid.yml всё же испорчен, плагин сохраняет его копию рядом (raid.yml.broken-<время>) и выключает рейд с сообщением в консоли — файл не сбрасывается молча.

Выкладка​

Плагин на тестовом стенде проверен сценариями ботов. Перед первым боем на проде:

  1. Бэкап. Выложить jar HelgaGames; raid.yml создастся при первом запуске.

  2. Построить логово, задать регион и точки (см. выше), проверить /raid status.

  3. Разрешить появление мобов в регионе логова (WorldGuard).

  4. JobSystem. В plugins/JobSystem/configs/events.yml, раздел events:

    raid-victory:
    enabled: true
    display-name: 'Победа над Стражем'
    duration-minutes: 30
    jobs: []
    worlds: []
    biomes: []
    environments: []
    money-multiplier: 1.0
    xp-multiplier: 1.5

    /job admin reload, затем в консоли jobadmin event start raid-victory — событие должно начаться для всех работ. Если пустой jobs: [] не означает «все работы», перечислить все 14. Если синтаксис команды другой — поправить rewards.server в raid.yml. В events.yml allow-overlap: false: если в момент победы идёт другое событие, серверная награда пропускается.

  5. Награды. Выполнить в консоли каждую команду из rewards со своим ником вместо {player}: ключи CrazyCrates, книги CrazyEnchantments, ваучеры shopadmin give voucher pet-….

  6. Голова Стража. Выбрать текстуру на minecraft-heads и вписать в команду головы в rewards.base (player_head[profile={properties:[{name:"textures",value:"…"}]},…]). Пока голова без текстуры.

  7. Варп /setwarp raid и голограмма над алтарём.

  8. Первый бой — на стриме с ручным запуском. После — открыть raid/fights.log и при необходимости поправить boss.health и reward-threshold, затем /raid reload.

Если что-то не так​

СимптомПричина и что делать
/raid start → «Нельзя начать: …»в сообщении — чего не хватает в логове; /raid status
«Страж не появился»мирная сложность или запрет появления мобов в регионе; подробности в консоли
Raid disabled: … в консоли при стартеошибка в raid.yml или испорчен data/raid.yml — текст ошибки в той же строке
Игрок заплатил, шкала не выросла/raid money list → проверить баланс → resolve
Награда не пришла/raid status — невыданные награды; игрок в мини-игре получит после выхода; упавшие команды — в консоли
Босс «убегает» из логовавозвращается на точку босса сам, если вне региона или без цели дольше 10 с