Приветствуем вас в нашей новой статье! Серверов с по-настоящему уникальными фишками можно пересчитать по пальцам: всё интересное давно слито и растиражировано, а нового почти никто не разрабатывает. Мы решили эту картину поправить и сделали ивент, который заставляет весь онлайн бросить свои дела и побежать в одну точку.
Раз в час на карте вырастает постройка, в ней стоит НПС по имени СУТЕР, и он скупает один-единственный предмет. Какой именно — сервер решает заново каждый раз. У игроков есть десять минут, чтобы натаскать этого добра больше, чем сосед.
Постройка появляется в случайной точке в заданном квадрате карты и сама обходит воду и лаву — схематика не сядет в океан и не утонет в лавовом озере. Вокруг неё поднимается защитный регион, так что развалить здание или застроить подход к НПС не выйдет.
Дальше начинается гонка. Игроки несут нужный предмет и сдают его НПС, а меню показывает таблицу лидеров в реальном времени — видно, кто сейчас первый и сколько до него не хватает. Именно это и превращает обычную сдачу ресурсов в драку: до последней минуты никто не уверен, что удержит место.
| Что | Значение | Что это даёт |
|---|---|---|
| Периодичность появления | 3600 сек (час) | Ивент попадает в каждый игровой вечер, но не приедается |
| Длительность | 600 сек (10 минут) | Успевают и те, кто был занят — но бежать надо сразу |
| Смена стадии постройки | 180 сек (3 минуты) | Здание меняется прямо на глазах, 3 стадии |
| Зона появления | ±1000 по X и Z | Каждый раз новое место, лагерь у точки не поставишь |
| Радиус региона | 10 блоков | Постройку не сломать и не застроить |
Предмет выбирается случайно из списка, и список этот вы правите сами. По умолчанию в нём семь позиций: булыжник, камень, земля, сахар, железные слитки, алмазы и эндер-жемчуг. Диапазон намеренно широкий — от мусора из шахты до по-настоящему дорогих вещей.
Смысл именно в разбросе. Когда выпадает земля, побеждает тот, кто не поленился копать; когда выпадает алмаз — тот, кто рискнул расстаться с запасами. Один и тот же ивент играется по-разному в зависимости от того, что сегодня в цене.
Сдавать можно пачками: правый клик отдаёт 64 штуки, левый — 16, любой другой клик — по одной. За каждую единицу игрок сразу получает деньги, причём цена плавающая — от 1 до 11 за штуку. Если экономика на сервере хрупкая, оплату за сдачу можно вовсе отключить одной строкой в конфиге, оставив только призы за места.
| Место | Базовая награда | Множитель за сданное |
|---|---|---|
| 1 место | 1000 | ×1.5 |
| 2 место | 600 | ×1.4 |
| 3 место | 300 | ×1.3 |
Награда считается не фиксированной суммой, а от объёма сданного и умножается на коэффициент места. Это принципиальный момент: победа с перевесом в один предмет не даст того же, что победа с разгромом. Игроку выгодно тащить до последней секунды, а не остановиться, как только он вышел вперёд.
Если фиксированная сумма всё же нужна — переключается одним параметром, оба режима в плагине есть.
СУТЕР — не безмолвная табличка. Он поворачивается к подошедшим игрокам, а всем в радиусе десяти блоков раз в полминуты бросает реплики: подначивает, напоминает про награду за первое место, комментирует конкуренцию. Реплики лежат списком в конфиге — можно переписать под голос вашего сервера или отключить целиком.
Внешность НПС тоже ваша: тип, отображаемое имя, скин. По умолчанию это игрок со скином, но никто не мешает поставить любого другого.
Отдельно отметим: расписание можно отдать нашему плагину CloudEventManager — тогда CloudRush перестаёт считать время сам и встаёт в общую очередь ивентов сервера, без наложений одного на другой.
Ниже — не выдержка «для галочки», а рабочий config.yml так, как он приходит вместе с плагином. Почти любая цифра в ивенте задаётся здесь, править исходники не нужно.
Сначала расписание и стадии. Три числа в секундах решают весь ритм ивента: как часто приходит скупщик, сколько он стоит и как быстро вокруг него растёт схематика.
settings:
external-scheduler: false # true → расписанием рулит CloudEventManager
times: # время в секундах
start-repeat: 3600 # периодичность спавна
to-stop: 600 # до окончания ивента
to-change-stage: 180 # периодичность смены стадии
stages:
change-enable: true # false — всегда первая схематика из списка
amount: 3 # количество стадий
Схематики лежат в папке stages и называются строго stage1.schem, stage2.schem и так далее.
Обратите внимание на external-scheduler. Поставили true — собственный таймер плагина выключается, и ивент встаёт в общую очередь CloudEventManager. Так на сервере не случится ситуации, когда Раш, Метеорит и Гробница стартуют в одну минуту.
Дальше — экономика. Цена задаётся не одним числом, а диапазоном: за каждую единицу сданного предмета игрок получает случайную сумму внутри вилки. Количество за клик тоже настраивается — правым можно сдавать сразу стак.
price:
enable: true
amount: '1-11' # цена за ЕДИНИЦУ товара, вилка
sell-count:
DEFAULT: 1 # любой клик, кроме описанных ниже
RIGHT: 64
LEFT: 16
Сам скупщик: тип сущности, ник над головой, скин, поворот головы за игроками — и прямоугольник координат, внутри которого он появляется. Блоки из списка avoid-blocks плагин обходит, так что НПС не встанет посреди лавы или океана.
npc:
type: PLAYER
display: '&e&lСУТЕР'
look: true # смотреть на игроков
skin: 'floerka'
spawn:
world: world
min_x: -1000
max_x: 1000
min_z: -1000
max_z: 1000
avoid-blocks:
- 'LAVA'
- 'WATER'
region: # приват вокруг НПС
enable: true
radius: 10
Награды — самое интересное место. У каждого призового места свой размер выплаты и свой тип начисления: фиксированная сумма или множитель от того, сколько игрок реально сдал. Плюс список действий — консольные команды и сообщения, то есть выдать можно что угодно, хоть кейс, хоть привилегию.
prizes:
'1':
vault: 1000
vault-type: 2 # 1 — фикс, 2 — от сданного количества
vault-multiply: 1.5 # множитель, только при vault-type: 2
actions:
- 'console:rub give %player% 1000'
- 'message:&fПолучена награда за 1 место'
Второе место по умолчанию — 600 и множитель 1.4, третье — 300 и 1.3.
Второй тип выплаты честнее фиксированного: игрок, который принёс вдвое больше ресурсов, получает вдвое больше денег, а не ту же сумму, что и сосед, сдавший один стак под конец.
Наконец, весь текст ивента — ваш. Реплики НПС для тех, кто стоит рядом, объявление о спавне с координатами, шапка и подвал итоговой таблицы, строка каждого места в топе, сообщения о сдаче предмета. Всё это лежит в конфиге обычными строками с цветовыми кодами.
near-messages:
enable: true
radius: 10
repeat-time: 30
messages:
- '&fХорошо идёте! Продолжаем в том же духе'
- '&fПервое место получает &e1000 &fрублей'
on-stop:
top-message: '%index%: %player% - %amount% (получил %vault%)'
Отдельным файлом идёт items.yml со списком скупаемых предметов и inventory.yml с оформлением меню сдачи — их тоже можно переписать целиком под свой сервер.
CloudRush — это ивент, который не требует от игрока ни прокачки, ни доната, ни умения драться. Нужен только азарт и десять минут. Поэтому в него включаются и новички, и старожилы, а сервер получает всплеск онлайна каждый час.
Обновления и поддержка — бесплатно. Возникнут вопросы по установке или захотите индивидуальную правку под свой проект — пишите, договоримся.