Приветствуем вас в нашей новой статье! Искали хороший плагин на уникальные способности для игроков? Представляем нашу разработку — CloudSkills. Идея простая: игрок выбирает себе боевой навык, и тот срабатывает сам, прямо в момент удара по противнику. Никаких кнопок, перезарядок и лишних менюшек в бою.
Навык — это не активная способность, которую надо не забыть нажать. Это то, что случается с вашим противником, когда вы до него дотянулись.
| Навык | Что делает | Цифры | Совмещается |
|---|---|---|---|
| Благословение Зевса | Бьёт цель молнией в момент атаки | 6 урона, срабатывание 100% | нет |
| Огонь Ада | Поджигает противника | горение 10 секунд | да |
| Отравитель | Накладывает отравление | Отравление II на 3 секунды | да |
| Лётчик | Отправляет противника в полёт | Левитация I на 3 секунды | да |
Обратите внимание на последний столбец. Зевс — навык-одиночка: пока он активен, других взять нельзя, и плагин честно об этом скажет. Остальные три спокойно живут вместе, так что «поджечь, отравить и отправить в небо» одним ударом — законная связка. Флаг совместимости стоит у каждого навыка отдельно, так что баланс на вашем сервере вы решаете сами.
Внутри каждый навык — это набор функций, и функций у одного навыка может быть сколько угодно. Доступны три типа:
То есть вы не ограничены четырьмя заготовками. Хотите навык, который с шансом в треть накладывает слепоту на пять секунд и одновременно поджигает на три — просто дописываете две строки, и он появляется в игре. Шанс задаётся дробью от нуля до единицы, поэтому «срабатывает в 15% случаев» настраивается так же легко, как «срабатывает всегда».
Именно здесь плагин отличается от аналогов: у большинства навыки зашиты в код, и вы берёте то, что дали. Здесь набор навыков — это ваш конфиг, а не наш.
В момент срабатывания навыка обе стороны получают тайтл посреди экрана: атакующему пишется, что навык сработал, жертве — что по ней сработали. Появление, задержку и исчезновение тайтла можно подкрутить по кадрам, а если такие надписи мешают — выключаются одним параметром.
Всё управление у игрока в одной команде /skill (она же /skills):
/skill list — список навыков, у активных горит зелёный кружок, у выключенных серый/skill select <навык> — включить/skill info <навык> — что навык делает/skill reject <навык> — выключить один/skill reject all — выключить сразу всеУ каждого навыка своё право доступа. Это и есть готовая донат-механика: раздайте Зевса только владельцам верхней привилегии, Отравителя — средней, а Лётчика оставьте всем. Ничего дописывать не нужно, всё делается в LuckPerms или чем вы пользуетесь.
Плагин не только проработан, но и хорошо оптимизирован: мы отдельно занимались запросами к базе и операциями, которые обычно нагружают сервер, — лишней нагрузки они не создают. Выбор игрока сохраняется автоматически раз в пять минут, так что перезапуск сервера ничего не теряет.
Каждое сообщение плагина лежит в конфиге и правится под ваш стиль: префикс, тексты об активации и отключении, отказ при попытке совместить несовместимое, заголовки, значки статуса и даже строка помощи. Цвета — обычными кодами, так что плагин подстраивается под оформление сервера, а не наоборот.
Четыре навыка из коробки — это стартовый набор, а не потолок. Навык в CloudSkills не зашит в код: он собирается в config.yml из готовых кирпичей, поэтому свой можно завести без единой строчки Java.
Кирпичей три, и записываются они одной строкой через точку с запятой:
# LIGHTNING;<урон>;<шанс 0..1>
# FIRE;<секунд горения>;<шанс 0..1>
# EFFECT;<эффект>;<уровень>;<секунд>;<шанс 0..1>
Вот как из них собран «Отравитель» — весь навык целиком, включая право доступа и совместимость с остальными:
skills:
poison:
display: '&2Отравитель'
description: 'Отравляет противника при атаке'
permission: cloudskills.poison
combinate: true
features:
- 'EFFECT;POISON;2;3;1.0'
POISON второго уровня на 3 секунды, шанс 1.0 — то есть срабатывает всегда.
Дальше начинается ваша настройка. Шанс — последнее число в строке: поставили 0.25 вместо 1.0, и навык стреляет в четверти ударов. Сила — уровень и длительность эффекта, у Зевса вместо них урон молнии. А combinate решает, можно ли держать навык вместе с другими: у Зевса стоит false, поэтому молния не складывается с ядом и левитацией.
У навыка может быть несколько функций сразу, и они срабатывают независимо друг от друга. Хотите удар, который одновременно бьёт молнией, поджигает и ослепляет, — просто добавьте три строки в один features. Никаких ограничений на количество мы не ставили.
storm:
display: '&9Буря'
permission: cloudskills.storm
combinate: false
features:
- 'LIGHTNING;4;0.3'
- 'FIRE;5;0.3'
- 'EFFECT;BLINDNESS;1;2;0.3'
Пример своего навыка: три эффекта в одном ударе, каждый со своим шансом.
Права permission у каждого навыка свои, поэтому раздавать их удобно привилегиями: базовым игрокам — один навык, донатерам — весь набор. Плагин ничего не знает про вашу систему прав, он просто проверяет право с нужным именем.
Оформление тоже целиком настраиваемое. Тайтл при срабатывании можно выключить или растянуть, автосохранение выбора игроков — ускорить или замедлить:
settings:
titles: true
fade-in: 10
stay: 40
fade-out: 10
save-interval: 300 # автосохранение данных игроков, секунд
И ни одной вшитой в код фразы: все сообщения плагина — от префикса до отказа в совмещении навыков — лежат в конфиге и переписываются под тон вашего проекта.
messages:
prefix: '&e&lSkills &8| &f'
selected: 'Навык %skill% &fактивирован!'
no-combine: 'Этот навык нельзя совмещать — выключите остальные.'
no-permission: 'У вас нет доступа к этому навыку!'
CloudSkills добавляет в PvP слой, которого обычно не хватает: бой перестаёт быть обменом ударами и начинает зависеть от того, какой навык вы выбрали до драки. При этом плагин не требует ни ресурспака, ни клиентских модов — работает на 1.16.5 и выше на чистом сервере.
Обновления и поддержка — бесплатно. Нужен свой набор навыков под ваш проект — напишите, соберём.