CloudUniversalBow — Универсальный лук: три оружия в одном слоте

Лук в руке — это ещё не ответ на вопрос, чем сейчас прилетит. Ответ решает Shift за долю секунды до выстрела.

Обычный лук бьёт стрелами. Этот — стрелами, ракетой или летящим мечом, смотря что выбрал игрок прямо во время боя. Один предмет в руке заменяет сразу три тактики, а переключение между ними — это Shift и клик. CloudUniversalBow — донат-лук для Paper 1.19.4 от студии Cloud Delight.

Что это

Внешне — обычный ванильный лук (материал BOW): плагин метит его скрытым тегом в PDC, а не именем, поэтому подделать переименованием нельзя — выдать «настоящий» экземпляр может только команда /ubow give. Под текстуру зарезервирован CustomModelData 850001: с ресурспаком лук получает свой вид, без него выглядит как самый обычный лук. Модель одна на все три режима — текстура не меняется, активный режим подсказывают только лор и экшенбар.

Имя предмета — розовое «Универсальный лук», а в лоре построчно перечислены все три режима: активный отмечен зелёной стрелкой, остальные — тускло-серые, и строка перерисовывается вживую при каждом переключении. «Зачарованный» блеск — чистая косметика статуса: скрытый уровень зачара Прочности без игрового эффекта, урон и износ лука считаются отдельно и полностью вручную. Стандартная подпись атрибутов-модификаторов скрыта — она луку всё равно не нужна.

Переключение и натяжка без стрел

Shift+ПКМ по луку в основной руке переключает боеприпас по кругу: Стрелы → Ракета → Меч-снаряд → Стрелы. Клик гасится полностью — натяжка не запускается, жест распознаётся как смена режима. Дебаунс 250 мс на игрока страхует от двойного срабатывания одного физического клика. Переключение подтверждается звуком и надписью на экшенбаре с именем нового режима, лор предмета обновляется тут же.

Обычный ПКМ без Shift — штатная натяжка, лук можно держать в любой руке. Без стрелы лук физически не натянется (ограничение клиента, не плагина), поэтому если стрел нет вовсе — ни обычных, ни с наконечником, ни спектральных, — плагин на миг подкладывает служебную «фантомную»: в оффхенд, а если занят — в первый свободный слот инвентаря (броню не трогает). Фантом помечен отдельным тегом, подобрать его нельзя, а после выстрела (или спустя 100 тиков — около 5 секунд, если игрок передумал) он снимается сам. Подстраховка не сработает, только если оффхенд занят и все 36 слотов инвентаря забиты. Благодаря трюку Ракета и Меч-снаряд стреляют вообще без единой стрелы — колчан можно смело оставить дома.

Сила натяжки (0–1, обычное удержание ПКМ перед отпусканием) участвует во всех трёх режимах — от неё зависит скорость снаряда, а в режиме Меч ещё и урон. Между выстрелами — перезарядка 600 мс: плагин вешает ещё и ванильную HUD-полоску прямо на лук — анимацию «свайпа» по иконке, — так что откат виден на хотбаре, а не только в подсказке на экшенбаре. Клик во время отката просто показывает, сколько секунд осталось, и не тратит ни боеприпас, ни прочность. Каждый успешный выстрел, в любом режиме, снимает 1 единицу прочности (максимум лука — 384, то есть хватает примерно на 384 выстрела). Значение настраивается: 0 — лук не изнашивается вовсе (не флаг «неразрушимый», просто счётчик износа не растёт), больше 1 — ломается быстрее (например, 8 — это уже около 48 выстрелов). При достижении лимита лук не исчезает молча — штатно ломается прямо в руке, с ванильным звуком и частицами осколков. Боеприпас всегда списывается сначала из второй руки, затем с хотбара, затем из остального инвентаря.

Три режима — три тактики

Формально режимы отличаются тем, что тратят и как считают цифры, но по ощущениям в бою — это три разных оружия под одной кнопкой. Короткая сводка — в таблице, дальше — механика каждого режима подробно, с формулами и числами по умолчанию.

РежимЧто тратитсяСкорость снарядаУрон
Стрелы1 стрела (или бесплатный фантом)натяжка × 3.0ванильная формула стрелы + бонус зачаров лука
Ракета1 фейерверк-ракетанатяжка × 2.6, не ниже 0.4×до 9.0 в эпицентре, радиус 3 блока, спад к краю
Меч-снаряд1 меч (расходуется целиком)натяжка × 2.6, не ниже 0.4×(база материала + Острота) × натяжка, максимум ×2.5

Стрелы

Единственный режим, который тратит настоящий боеприпас, а не абстрактную «единицу» — и именно поэтому он единственный умеет наследовать эффекты. Плагин ищет стрелу в инвентаре (сначала оффхенд, потом хотбар, потом остальной инвентарь) и смотрит на тип: спектральная стрела спавнит светящуюся SpectralArrow, стрела с наконечником спавнит обычную стрелу, но переносит на неё то же зелье — базовый и все кастомные потион-эффекты снимаются с исходного предмета до списания и накладываются на снаряд. Если стрел нет вовсе, летит бесплатная фантомная — на боевые качества это не влияет.

Скорость снаряда = направление взгляда × натяжка × 3.0 — ровно ванильная формула лука на полном заряде. Полная натяжка (сила ровно 1.0, тетива держалась не меньше секунды) дополнительно помечает выстрел как критический — стандартный ванильный крит со шлейфом частиц и бонусным уроном. Из зачарований лука здесь работают три: Сила добавляет к урону стрелы уровень × 0.5 + 0.5 (Сила V это +3.0 к базовым 2.0 урона стрелы), Пламя поджигает саму стрелу на настраиваемое время (по умолчанию 100 тиков — 5 секунд), из-за чего горит и то, во что она попадёт, а Отбрасывание толкает цель с силой, равной уровню чара. Итоговый урон ваниль домножает на скорость полёта стрелы, так что слабая натяжка приглушает и бонус от Силы тоже. Настоящую стрелу после выстрела можно подобрать, фантомную — никогда, иначе вышел бы бесконечный дубликат из воздуха.

Ракета

Тратит одну ракету фейерверка — неважно, какими эффектами она сама была снаряжена: визуал взрыва задаёт плагин (красно-оранжевый «шар» с мерцанием), а не начинка потраченного предмета. Летит ракета вперёд по направлению взгляда, как из арбалета, а не строго вверх, как при ванильном использовании фейерверка в руке. Скорость запуска = натяжка × 2.6, но не ниже 0.4× — даже короткий тап-клик долетит вперёд, а не упадёт под ноги стрелка. Взрыв срабатывает от столкновения с блоком или сущностью, либо сам по себе, если ракета никуда не попала за 25 тиков (~1,25 секунды) полёта — у фейерверка нарочно длинный «фитиль», чтобы ванильная детонация не сработала раньше этой логики.

Радиус поражения — 3 блока, урон в эпицентре — 9.0, дальше линейно падает к краю, но не ниже 1.0 даже у самой границы. Тактическая деталь: по умолчанию взрыв не ванильный, а ручной перебор сущностей рядом по прямой дистанции — без проверки блоков между центром и целью. Тонкая стена не защищает так, как от настоящего тротила: если цель в радиусе, урон долетит и из-за угла, а задетых ещё и отбрасывает от центра, тем сильнее, чем ближе к эпицентру. Ломать блоки, поджигать цели и задевать взрывом самого стрелка ракета по умолчанию не может — все три включаются в конфиге отдельно; при включённом «ломать блоки» плагин переключается на настоящий ванильный взрыв, и урон с разрушениями считает уже сама игра. Из зачарований лука ракета не читает ничего — ни Силу, ни Пламя, ни Отбрасывание: самостоятельная боевая единица.

Меч-снаряд

Самый дорогой режим в буквальном смысле: тратится не заряд и не расходник, а весь меч целиком — один предмет из стака за один выстрел, вместе со всеми зачарованиями, что на нём висели. Летит он снарядом с подменённой иконкой — визуально это крутящийся в полёте меч, а не что-то абстрактное, звук выстрела — бросок трезубца.

Урон = (базовый урон материала + бонус Остроты) × множитель натяжки, на полном заряде — до ×2.5. Базовый урон по материалу: дерево и золото — 4.0, камень — 5.0, железо — 6.0, алмаз — 7.0, незерит — 8.0. На полной натяжке это уже 10.0 / 12.5 / 15.0 / 17.5 / 20.0 — и без единого зачарования. Острота считается по ванильной формуле (0.5 × уровень + 0.5) и добавляется к базовому урону ДО умножения на натяжку — в отличие от прочих чаров режима, её бонус масштабируется натяжкой всегда, без исключений. Небесная кара (по любой нежити — зомби, скелетам, иссушителю, зомби- и скелетным лошадям, фантомам и их сородичам) и Бич членистоногих (по паукам, чешуйницам, эндермитам и пчёлам) добавляются отдельно уже при попадании — тип цели известен только в момент удара. Множится ли этот бонус на натяжку, решает отдельный тумблер (по умолчанию да); при полной натяжке и высоких уровнях чара это ощутимо взвинчивает урон, так что на боевых серверах с сильными чарами тумблер стоит выключать. Заговор огня поджигает жертву на уровень × секунды-на-уровень × 20 тиков (по умолчанию 4 секунды на уровень) — независимо от типа цели и тумблера натяжки.

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

Зачарования: что и где учитывается

Учёт зачаров переключается одним общим тумблером — выключил, и оба режима, что способны их читать, начинают игнорировать чары полностью. Набор чаров у режимов разный:

РежимОткуда чарыЧто учитывается
Стрелыс лукаСила, Пламя, Отбрасывание
Ракетаничего, режим не читает зачары вообще
Меч-снарядс меча — перед тем как тот расходуетсяОстрота, Небесная кара, Бич членистоногих, Заговор огня

Как использовать: PvP и сценарии

  • Смена режима не тратит перезарядку — 600 мс это отдельный таймер, но сам Shift-клик «съедает» нажатие: выстрел в новом режиме требует ещё одного, уже обычного клика.
  • Стрелы — самый дешёвый инструмент разведки боем: 1 стрела за выстрел, полная натяжка даёт крит, а тычок стрелой с ядом или замедлением переносит эффект на попадание без потерь.
  • Ракета не требует прямого попадания — без проверки блоков между центром взрыва и целью она достаёт противника за тонким укрытием или углом постройки. Против группы у одной точки это самый выгодный режим на один заряд.
  • Меч-снаряд стоит экономить: деревянный меч на полной натяжке — уже 10 урона без единого чара, а незеритовый с Остротой и Небесной карой на полном заряде выходит далеко за пределы обычного удара в ближнем бою. Дешёвые мечи на выброс держать в инвентаре выгоднее, чем распылять зачарованный незерит по одному удару.
  • Лук стреляет без стрел, поэтому инвентарь можно освободить под фейерверки и мечи, не жертвуя режимом Стрелы — он всё равно долетит фантомной, просто без бонуса от эффектов на наконечнике.
  • Прочность одна на все три режима — лук считает выстрелы, а не типы боеприпаса, так что смена тактики по ходу боя не ускоряет износ.

Команды

  • /ubow give [игрок] — выдать Универсальный лук (себе, если игрок не указан).
  • /ubow reload — перезагрузить конфиг без рестарта сервера.
  • Алиасы: /universalbow, /улук.

Права

  • universalbow.admin — доступ к /ubow (выдача лука, перезагрузка конфига). По умолчанию — только у операторов.
  • Само ношение и стрельба прав не требуют — доступно любому, у кого лук оказался в руках.

Настройка

Весь баланс лежит в одном config.yml, применяется командой /ubow reload без рестарта сервера. Все игровые сообщения — на русском, переопределяются построчно, включая отдельные тексты для нехватки стрел, ракет и мечей, для отката и смены режима.

КлючПо умолчаниюЧто делает
custom-model-data850001Текстура лука под ресурспак, одна на все режимы
glinttrueКосметический блеск зачарования, на баланс не влияет
default-modeARROWРежим только что выданного лука
cooldown-ms600Перезарядка между выстрелами + HUD-полоска на луке
durability-per-shot1Износ за выстрел; 0 — лук вечный
phantom.cleanup-delay-ticks100Через сколько тиков снять зависший фантом, если выстрела не было
enchantments.enabledtrueОбщий выключатель учёта зачаров (Стрелы и Меч)
enchantments.scale-with-drawtrueМножить бонус Кары/Бича на силу натяжки меча
enchantments.smite-per-level2.5Бонус Небесной кары за уровень
enchantments.bane-per-level2.5Бонус Бича членистоногих за уровень
enchantments.fire-aspect-seconds-per-level4Секунд поджига за уровень Заговора огня
arrow.max-speed3.0Множитель скорости стрелы от натяжки
arrow.flame-ticks100Поджиг самой стрелы при зачаре лука Пламя
rocket.speed2.6Множитель скорости запуска ракеты
rocket.power3.0Радиус взрыва, блоки
rocket.damage9.0Урон в эпицентре
rocket.break-blocksfalseВанильный взрыв с разрушением блоков вместо ручного AoE
rocket.set-firefalseПоджигать цели в радиусе
rocket.hurt-shooterfalseРанить взрывом самого стрелка
rocket.max-life-ticks25Самоподрыв, если ракета никуда не попала
rocket.fuse-power5Длина фитиля фейерверка, держится дольше max-life-ticks
sword.max-multiplier2.5Множитель урона на полной натяжке
sword.projectile-speed2.6Скорость снаряда-клинка
sword.base-damage.*4.08.0Базовый урон по материалу меча (см. таблицу режимов)

Отдельным блоком — лицензия от слива: включена по умолчанию, требует ключ и адрес сервера проверки; если сервер лицензий на миг недоступен, плагин ещё 24 часа (настраивается) работает по локальному кэшу. Для собственного сервера защиту можно выключить (license.enabled: false) — тогда ключ и адрес не нужны вовсе.

Один лук, три способа его бояться — а какой выбрать, решает Shift в кармане игрока.