Что такое LibsDisguises?
LibsDisguises меняет внешний вид сущностей для игроков. Например, овца может выглядеть как игрок. Перед использованием маскировок EliteMobs установите и включите совместимую с сервером версию LibsDisguises; поддерживаемые типы зависят от неё и от версии Minecraft.
Существуют бесплатная и премиум версии. По вопросам установки и собственных команд используйте ресурсы поддержки проекта LibsDisguises; эта страница описывает конфигурацию EliteMobs.
Как замаскировать сущность под игрока?
Чтобы замаскировать пользовательского босса (или регионального босса, или даже NPC!) под игрока, всё, что вам нужно сделать, — это добавить следующую строку в конфигурационный файл босса:
disguise: player:name
Например, если вы хотите замаскировать босса под скин моего игрока, строка конфигурации будет выглядеть так:
disguise: player:magmaguy
Примечание: заданная пользовательская модель имеет приоритет, если поддержка моделей включена и эта модель существует. Явно выберите нужный внешний вид: при отсутствии или недоступности модели может сработать путь маскировки.
Видимость никнейма при маскировке под игрока
Видимость имени маскировки под игрока управляется настройкой EliteMobs alwaysShowEliteMobNameTags в config.yml. Если она включена, маскировка показывает пользовательское имя сущности над головой.
Пользовательский босс также может включить отображение через alwaysShowName: true в своей конфигурации. Обычный путь подготавливает маскировку до спавна и учитывает любую из двух настроек. Запасной путь повторно применяет маскировку через 20 тиков, если сущность ещё действительна. Имя отображается, если включена глобальная настройка, пользовательское имя сущности видно или исходная сущность является жителем.
NPC управляют собственными строками имени и роли друг над другом и скрывают имя маскировки под игрока при инициализации этих надписей. Они независимы от настроек имён боссов; отложенный запасной путь всё ещё может повторно задать видимость маскировки жителя.
Как замаскировать сущность под скин игрока, но не обязательно под игрока?
Это самый гибкий способ замаскировать сущность под игрока, так как он позволяет администраторам использовать онлайн-скины или даже создавать собственные для маскировки босса. Это также немного сложнее сделать.
Пример ниже использует URL скина. Официальная справка по командам LibsDisguises также описывает /grabskin с именем игрока, UUID или именем PNG-файла из plugins/LibsDisguises/skins/. Команде требуется разрешение libsdisguises.grabskin.
1. Задание маскировки
Для маскировки вам нужно сделать что-то вроде этого:
disguise: custom:your_unique_skin_name
2. Генерация данных маскировки
Это самая сложная часть. Вы начинаете с создания следующей записи конфигурации:
customDisguiseData: player your_unique_skin_name setskin
Имя после custom: является псевдонимом пользовательской маскировки. Имя после player в данных относится к маскировке под игрока; у них разные роли, и совпадать они не обязаны. В примере для удобства использован одинаковый текст. Выберите уникальный псевдоним: если он уже есть в LibsDisguises, EliteMobs использует существующую маскировку и не заменяет её данными customDisguiseData.
Затем вам нужно будет десериализовать скин игрока. Самый простой способ сделать это для скина, общедоступного онлайн, — использовать команду LibsDisguises /grabskin.
Выполните /grabskin <direct_skin_png_url>, заменив параметр прямым URL PNG, а не адресом веб-страницы со скином.
Скопируйте полный сериализованный профиль, возвращённый установленной версией, после setskin. Если вывод разбит на пронумерованные части для копирования, соедините их по порядку, не пропуская символы. Итоговое значение YAML должно занимать одну строку. Ниже показан формат; создайте данные для нужного вам скина:
customDisguiseData: player your_unique_skin_name setskin {"id":"d1fbb77f-b184-4718-b0a2-c7ae866798d3","name":"Unknown","properties":[{"name":"textures","value":"ewogICJ0aW1lc3RhbXAiIDogMTYyNzU0ODkwMjQ0OSwKICAicHJvZmlsZUlkIiA6ICIxOTI1MjFiNGVmZGI0MjVjODkzMWYwMmE4NDk2ZTExYiIsCiAgInByb2ZpbGVOYW1lIiA6ICJTZXJpYWxpemFibGUiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzlmYTZkMWFlODA2YTY2OGI0OTgzYmZhY2ZkMGUzMzQ5MGE5MGU4YTZmMWE2MmEwZGQ5YzQ1YjdkYjBiNjU1MyIKICAgIH0KICB9Cn0=","signature":"P/XSvxX45MUZGc5uuDKuVgmMUk2V1HADPI84Os5J4NnmURhLeS4jL4FSeShmz0cH7sBWmMg80g9ADP33R9PcOmzbHK4hJBFt2VYLJNgSYHK6VGp6qLGXDfdAa3vRNXN7jKtsrqVEANax7Gzv3xcWARLbq1FuQ6yYdXDY8Coc02Y/POMRG/i6iACtro5DQGhr2JgbL++95UhSBFxmU82Zef3UMHLfgt7lC4vWN4c4xrOAKllzF2mwohuMmEkoKzu/6s/eu5q4J4bBH08M8UN02/yJuEH5sTy/iVJfaoPs90ZfcVdRpUZvVDZh5eXapQN1/Q9/79Pc8YOXF/20iygZ/hpvTPKP8wbMP2b1cJSyAaEIUtG9I7mG3bAXbH7mcswM1CNFF3+GEFnZI5dPxzuOelJR/t2mtVl82a4zEm9KG9Fq7iGfuK9aiWR8Yot1KeuIddPbBL8JnxHy2wW9OySjzAbs8tUI/i5KKmZmQrPH0RmHrFIuVK4C849QtRt57sQaUr1+W6Vto3r7J5jhpZ30wIIfS9hvW/ReB9rbwUQWERWie5Lchfcp7YkKbzuuaddnIjPew2IQDESlXzVW84kXtYKCs8hFgYVn27wU8jqtBCVkr0iHW7YLQTl4SFUzTFCSgAx5KSFHGm/4kqXqpHNdjS687o13MWpxrxLkV1svIp4="}],"legacy":false}
Используйте сериализованный профиль скина, принимаемый установленной версией LibsDisguises. Другие инструменты LibsDisguises, создающие те же поддерживаемые данные маскировки, также могут предоставить это значение.
Встроенный профиль позволяет не зависеть от текущего скина конкретного игрока. LibsDisguises и корректные данные профиля и текстур всё равно нужны; загрузка текстур без доступа к сети не гарантируется.
Как замаскировать пользовательского босса под другой тип сущности?
Чтобы замаскировать пользовательского босса (или регионального босса) под другой тип сущности, всё, что вам нужно сделать, — это добавить следующую строку в конфигурационный файл босса:
disguise: ENTITY_TYPE
Например, если вы хотите, чтобы ваш пользовательский босс был замаскирован под овцу, вы сделаете:
disguise: SHEEP
Как замаскировать пользовательского босса под детёныша сущности?
Чтобы замаскировать пользовательского босса (или регионального босса) под детёныша сущности, всё, что вам нужно сделать, — это добавить следующую строку в конфигурационный файл босса:
disguise: HOGLIN:baby
Этот пример запрашивает детёныша хоглина. Суффикс :baby применяется к маскировкам мобов; используйте тип, поддерживающий детский облик в установленной версии.
Как замаскировать сущность с помощью пользовательской маскировки?
Для пользовательской маскировки сначала создайте её псевдоним в LibsDisguises либо задайте customDisguiseData в конфигурации босса, чтобы EliteMobs зарегистрировал отсутствующий псевдоним. Существующий псевдоним имеет приоритет над встроенными данными.
После того как это сделано, правильный синтаксис таков:
disguise: custom:your_custom_disguise_name
Допустимые маскировки
EliteMobs разбирает имена маскировок через перечисление DisguiseType установленной версии LibsDisguises. Имена чувствительны к регистру, например SHEEP, ZOMBIE и SKELETON.
Смотрите имена перечисления и аннотации версий Minecraft в официальном исходном коде DisguiseType. Для старых серверов выбирайте тег установленной версии LibsDisguises. Список EntityType Bukkit не является списком допустимых имён, и не каждое значение перечисления доступно на каждой версии сервера.
Например, новые версии используют названия лодок по породе дерева, такие как OAK_BOAT; у старой общей записи BOAT есть аннотация версии удаления. Выбирайте запись, поддерживаемую как вашей версией Minecraft, так и установленной сборкой LibsDisguises.