[Разное] Статьи от Зеримора №1: «Использование Custom NPCs в техническом ключе»

Приветствую всех, кто заглянул в данную статью, которая откроет цикл, посвященный моему опыту разработки. Позвольте представиться – меня зовут Зеримор, я являюсь администратором некоммерческого ролевого проекта «Эпоха Колонизаций» (на базе версии 1.7.10). Кроме прочих вещей, на сервере на меня возложена задача по созданию NPC, по большей части в качестве технического инструмента. В этом цикле статей я бы хотел поделиться с разработчиками некоторым опытом, который применяется на нашем проекте. Стоит сразу оговориться, что в статьях (коих уже намечается минимум две) будет затрагиваться не только упомянутая в заголовке модификация, но и ряд сопутствующих модов и плагинов. Кроме того, стоит сделать оговорку о том, что в статьях не будут упоминаться базовые аспекты владения модификацией по типу условий диалогов, иначе это займёт ещё больше времени и текста.

Аннотация

В данной статье рассматривается общее взаимодействие мода Custom NPCs 1.7.10d с различными плагинами и модами, вкратце описана суть системы внедрения ремёсел на базе мода.

Предисловие

Разработка любого проекта, будь то карта или игровой сервер (далее эти понятия я буду объединять словом проект) – штука сложная. Создание концепта, оформление идеи на бумаге и претворение её в жизнь уже отнимают много сил, многие проекты закрывают уже на этой стадии, особенно если речь идёт о некоммерческом проекте. Тем не менее, придумать идею и отстроить карту – это лишь малая часть общих усилий. Разумеется, этот стержень должен обрастать и технической составляющей. Если разработчик не обладает навыками создания полноценных модификаций (как произошло и в моём случае), он вынужден прибегать к общедоступному контенту, создавая тем самым некий костыль, на который опирается вся механика проекта. Когда дело касается сборки, мало кто хочет обременять её сотней модов и многие люди отдают предпочтение оптимизации. В этом нелёгком деле может помочь мод Custom NPCs, который возложит на свои плечи замену некоторых недостающих модификаций, к примеру, систему ремёсел. Именно о них и пойдёт речь в статье.

Проблемы на нашем пути

Наша команда занимается ведением ролевого сервера на протяжении нескольких лет (с заморозками). За это время мы поднабрались некоторого опыта и учли ошибки, которые подтолкнули нас к действию. Ролевая игра, как следует из названия, уже подразумевает разделение игроков на роли. Помимо социальных ролей на нашем сервере (верховный судья, сенешаль, префект. герцог и проч.) существуют и механические, обусловленные механикой майнкрафта. Если предоставить игроку возможность и лес валить, и руду добывать, и поля засаживать – всё сведётся к тому, что каждый персонаж сможет обеспечить себя сам, это неизменно нанесёт удар по ролевой составляющей. Первое, что мы предприняли для избавления от этой проблемы – поставили плагин на ограничения (Название: PermissionsEx), который выдает игрокам группы (шахтёры, лесорубы, фермеры, охотники и кузнецы). Вне группы игрок не может ломать определённые блоки, таким образом мы можем не беспокоиться о том, что лесоруб накопает себе руды на меч.
Вторая проблема, вставшая перед нами – скудная цепочка создания ВСЕГО. Майнкрафт не предрасполагает к тому, чтобы на создание меча уходило много ресурсов: два слитка добываются за два удара киркой. Оставь мы ванильную систему, игроки быстро бы получили всё необходимое для безбедной жизни. Дабы этого не случилось( }:D ), мы установили плагин на запрет всех ванильных крафтов (Название: LokiBlockerLite).

Оба плагина связаны друг с другом следующим образом:

  1. С помощью LokiBlockerLite формируются группы на: запрет ломания блоков, запрет крафта.
  2. Плагин PermissionsEx выдаёт установленные группы игрокам с помощью команды /pex user <user> group set <group>
  3. Данная команда внедряется в мод Custom NPCs и наделяет игрока определённой ролью (о том, как именно, расскажем позже)

Связь вышеупомянутого с модом Custom NPC

Заблокировав весь ванильный крафт, мы поставили перед собой задачу придумать ему более-менее качественную альтернативу. Наработки зародились ещё в далёком 2016 году, однако тогда весь концепт остался лишь на бумаге. В 2018 году с него была сдута пыль и я взялся за реализацию. Несмотря на то, что открытие сервера произошло лишь в конце лета 2020 года, модификация, по некоторым параметрам являющаяся устаревшей, всё же сильно помогла.

Вооружившись инструментом MCreator для версии 1.7.10 (который сейчас перестал работать для данной версии, к сожалению), я накидал мод, добавляющий исключительно вещи (не имеющие крафта) и броню. Текстуры были позаимствованы мною из всеми знакомой игры, некоторые, впрочем, были перерисованы или отрисованы вновь:

Да простят меня cd projekt red…
Да простят меня cd projekt red…

К слову, необязательно создавать мод с нуля, можно найти подходящего «донора» и наложить текстуры поверх, сейчас, когда возникает потребность в новых вещах, а поддержка MCreator на версию 1.7.10 прекратилась, я занимаюсь именно этим.

На основании этого было предпринято решение – реализовать весь крафт через NPC. Костыль? Да, но зато какой крепкий! Кастом очень предрасполагает к этому. Каждая «механическая» профа обзавелась своей гильдией и установленными в ней станками:

Кузнецы
[Разное] Статьи от Зеримора №1: «Использование Custom NPCs в техническом ключе», image #3
[Разное] Статьи от Зеримора №1: «Использование Custom NPCs в техническом ключе», image #4
[Разное] Статьи от Зеримора №1: «Использование Custom NPCs в техническом ключе», image #5
[Разное] Статьи от Зеримора №1: «Использование Custom NPCs в техническом ключе», image #6
1 of 5
Кузнецы

Как вы уже могли догадаться – каждый из этих станков открывает доступ к NPC с параметром «Продавец», который меняет определённое количество ресурса A на другое количество ресурса B, в результате формируется цепочка крафта, которая позволяет не только доставить трудностей игрокам путём увеличения количества необходимых ресурсов для создания той же кирки, но и благоволит к тому, чтобы оные станки совершенствовались игроками, дабы снизить материалозатратность производства.

Выходит, что основа всей системы – это два плагина, мод-донор с нужными текстурами и всеми известный Custom NPCs. Плагины позволяют разграничить добычу ресурсов, необходимых для крафта, мод-донор служит основой для создания промежуточных компонентов создания, а Custom NPCs позволяет связать всё это для того, чтобы на выходе получился нужный предмет.

В теории, данная система может применяться не только в рамках ролевого проекта, вы запросто можете внедрить данную систему на свой проект, касающийся, например, классического РПГ, если не хотите ограничиваться предоставлением игроку возможности лишь покупать необходимые предметы. Впрочем, решать уже вам, я лишь закинул удочку.

На этом данная статья подходит к своему завершению. В последующих статьях цикла я буду углубляться в нюансы внедрения подобной системы, не хочу превращать всё это в лонгрид. Если у вас есть какие-то вопросы, я с радостью отвечу на них в комментариях.

Разумеется, не могу не пригласить вас в наше ролевое сообщество, если вам вдруг приходится по душе ролевая игра.

До новых встреч!

Подпись Зеримора

2645 views·9 shares