Свои предметы и магическое оружие
FMM регистрирует предметы для рук из YAML-файлов в plugins/FreeMinecraftModels/models/. Рядом с моделью можно разместить определение .yml с тем же именем без расширения. Предметы также могут использовать обычный внешний вид Minecraft без файла .bbmodel.
Свои предметы
Пример flame_blade.yml:
isEnabled: true
material: DIAMOND_SWORD
name: "&6Flame Blade"
lore:
- "&7Burns enemies on hit"
enchantments:
- "minecraft:fire_aspect,2"
- "minecraft:unbreaking,3"
Перезагрузите FMM, затем выполните /fmm giveitem flame_blade. Команда требует разрешения freeminecraftmodels.admin. ID предмета берётся из имени файла без расширения в нижнем регистре, а не из отображаемого названия. Используйте уникальные имена даже в разных подпапках.
Чтобы окрасить кожаную броню, добавьте после материала цвет RGB в шестнадцатеричном виде без #, как в экипировке EliteMobs: material: LEATHER_CHESTPLATE:ff8800. Суффикс работает только с материалами LEATHER_. Предметы, уже находящиеся в инвентарях, сохраняют старый цвет.
Предмет сохраняет ту модель отображения, которая была у него при создании. FMM добавляет зарегистрированную модель отображения предметам FMM, у которых её нет: всем таким предметам в инвентаре игрока при входе и предметам в руках после смены выбранного слота, обмена руками или подбора предмета. Это исправляет предметы, выданные до появления их модели, например жезлы, которые выглядели как обычные огненные стержни. Предметы, у которых модель уже указана, не затрагиваются.
Зачарования записываются строками namespace:id,level в нижнем регистре с положительным целым уровнем. Для обычных зачарований используйте minecraft:, для эффектов FMM — freeminecraftmodels:, для эффектов EliteMobs — elitemobs:. Плагин-поставщик должен быть установлен, а определение доступно. См. зачарования для контента. Предмет с зачарованием-набором предметов показывает части набора в строке описания, содержащей $itemSet, а если такой строки нет — после своего описания.
Списки scripts: у экипируемых предметов и записи без пространства имён, например SHARPNESS,3, больше не поддерживаются. FMM пропускает такие определения, записывает причину в журнал и оставляет файлы без изменений. Предмет с недоступным на сервере материалом тоже пропускается. Это не мешает загрузке остального контента.
Скрипты декоративных объектов по-прежнему используют scripts:. Для эффектов предметов используется enchantments:. Не добавляйте старый скрипт предмета в новое определение оружия.
Встроенные жезл и посох
FMM устанавливает недостающие стандартные файлы в models/fmm_default_magic/. Если в существующем определении встроенного жезла или посоха отсутствует weapon.type, FMM добавляет соответствующее значение WAND или STAFF, сохраняя остальные настройки:
| ID предмета | Материал | Управление |
|---|---|---|
fmm_default_arcane_wand | BLAZE_ROD | Левая кнопка выпускает снаряд с помощью в прицеливании |
fmm_default_arcane_staff | WOODEN_SPEAR | Левая кнопка наносит слабый удар вблизи; правая выпускает огненный шар с уроном по области |
Получить их можно командой /fmm giveitem <id>. Обычный огненный стержень или копьё не становится магическим оружием. Посоху нужна версия сервера с WOODEN_SPEAR; определения с недоступным материалом пропускаются.
Оба оружия поставляются с собственной моделью и JSON модели отображения. Жезл также поставляется с fmm_default_arcane_wand_particles.particle.json и его текстурой: его анимация held циклически воспроизводит эффект искр вокруг камня, пока жезл находится в любой руке. См. Частицы. FMM копирует только отсутствующие файлы, поэтому сервер, на котором уже есть отредактированный встроенный .yml, сохраняет его и получает новые файлы модели.
Жезл ищет цель впереди, затем выпускает летящий снаряд. Захват цели не гарантирует попадание: снаряд должен долететь до неё и может столкнуться с блоками. Посохи выпускают более медленные огненные шары с радиусом поражения.
Выстрел жезла ненадолго накладывает Замедление I на 20 тиков, не заменяя более сильное или длительное замедление. Урон жезла подавляет собственное обычное отбрасывание. Сущность, в которую попал огненный шар посоха, получает полный урон огненного шара. Остальным целям взрыва нужна прямая видимость до точки попадания, и они получают тем меньше урона, чем дальше их центр от неё: от полного урона в точке попадания до 35% на краю. Поджог срабатывает только после принятого урона и учитывает событие возгорания.
Магические попадания игнорируют ванильную задержку урона, поэтому снаряд жезла, удар посоха или огненный шар всё равно попадают по цели, которую только что ударили, например мечом участника группы. После этого FMM восстанавливает задержку цели; частоту магических попаданий ограничивает собственная перезарядка оружия.
Прямой удар по мобу жезлом или посохом считается атакой левой кнопкой: FMM отменяет ванильный ближний удар и вместо него выполняет атаку оружия левой кнопкой. Урон, который плагин наносит от имени игрока через путь явного урона MagmaCore, пока тот держит жезл или посох (например, урон от зачарований EliteMobs), не затрагивается и не вызывает выстрел. Клик во время перезарядки атаки воспроизводит тихий щелчок и больше ничего не делает.
Перезарядка начинается после успешного запуска выстрела или ближнего удара. При перезагрузке контента новые выстрелы приостанавливаются на время перестроения определений; уже выпущенные снаряды сохраняют захваченные данные оружия и модификаторы. Удаление зарегистрированного обработчика боя отменяет все оставшиеся снаряды, чтобы правила боя не менялись во время полёта.
Определение магического оружия
Добавьте раздел weapon к обычному определению предмета:
isEnabled: true
material: BLAZE_ROD
name: "&dArcane Wand"
weapon:
type: WAND
enchantments:
- "freeminecraftmodels:multicast,1"
type должен быть WAND или STAFF. Если параметры настройки опущены, используются следующие значения:
| Настройка | Жезл | Посох |
|---|---|---|
projectileSpeed | 0.72 | 0.48 |
range | 18 | 28 |
travelTicks | 24 | 74 |
impactRadius | 0 | 2.75 |
aimAssistDegrees | 45 | 0 |
Стандартный конус захвата жезла охватывает по 45 градусов с каждой стороны от направления взгляда. aimAssistDegrees принимает значения от 0 до 180. Радиус может быть нулевым; скорость и дальность должны быть положительными конечными числами, а время полёта в тиках — положительным целым числом.
| Атака | basePower | reloadTicks |
|---|---|---|
WAND_MISSILE | 0.672 | 11 |
STAFF_MELEE | 0.45 | 12 |
STAFF_FIREBALL | 1.25 | 40 |
Необязательный раздел weapon.attacks должен содержать ровно те ключи атак, которые принадлежат этому типу оружия, с обоими полями для каждой атаки:
weapon:
type: STAFF
attacks:
STAFF_MELEE:
basePower: 0.45
reloadTicks: 12
STAFF_FIREBALL:
basePower: 1.25
reloadTicks: 40
Неизвестные поля оружия и некорректные значения отклоняются. basePower является коэффициентом урона, который интерпретирует обработчик боя, а не обещанием снять столько же единиц здоровья.
Магические зачарования
| ID | Назначение |
|---|---|
freeminecraftmodels:multicast | Дополнительные снаряды с изменённым уроном каждого |
freeminecraftmodels:blast_radius | Модификатор радиуса поражения огненного шара посоха |
freeminecraftmodels:ignition | Поджигает цели, пережившие попадание огненного шара посоха |
Их YAML- и Lua-файлы находятся в plugins/FreeMinecraftModels/enchantments/. Встроенный каталог также содержит эффекты для авторских предметов. Установка одного определения эффекта не выдаёт игрокам соответствующий предмет или набор моделей.
Наборы предметов, надетые на заклинателя, тоже работают с жезлами и посохами, пока надеты все части. Модификаторы каста набора учитываются один раз за каст. Когда магическое попадание достигает цели, обработчик набора on_attack_entity запускается для удара посохом, а on_projectile_hit — для снаряда жезла или огненного шара.
Интеграция с EliteMobs
При установленном EliteMobs он отвечает за масштабирование элитного боя и связь действий с навыками. FMM отвечает за идентификацию оружия, ввод, полёт снаряда и запрос обработки попадания. EliteMobs может отклонить выстрел или попадание, если оружие или состояние боя недопустимы.
В Alpha Advanced Combat System заклинатель использует посохи и жезлы FMM. Способности класса и атаки магического оружия имеют отдельное управление. Обработка выбора классовой способности клавишей F не должна одновременно вызывать выстрел оружия в руке.
Для доставки ресурс-пака заново создайте выходные файлы FMM и поручите ResourcePackManager их объединение и раздачу. Регистрация оружия сама по себе не подтверждает, что клиент скачал его модель.