1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите ProtocolLib Как заменить модель Armor Stand'а на игрока с определённым ником?

Тема в разделе "Разработка плагинов для новичков", создана пользователем MrWaide, 16 авг 2024.

Статус темы:
Закрыта.
  1. Автор темы
    MrWaide

    MrWaide Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    lox
    Имеется: Paper и ProtocolLib.
    Задача: заспавнить Армор стэнд и с помощью пакетов подменить его модель на модель игрока с определённым скином, определяющимся ником ( в общем типо NPC). Возможно ли это сделать? Если да, то как примерно это будет выглядеть? Хотелось бы код в общих чертах (именно подмена модели).
    // Предоставление документации одобряется
     
    Последнее редактирование: 16 авг 2024
  2. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Тебе нужно отслеживать отправку стенда игроку, отменять отправку и заменять этот пакет на пакет спауна игрока (они разные). Также перед отправкой спауна игрока (NamedEntitySpawn) необходимо отправлять ещё один пакет - PlayerInfo.
    Ещё нужно будет ремаппить как минимум метаданные и, возможно, подменять пакет перемещения.
    Но для начала сделай только корректный спаун, а дальше видно будет.
    Но вообще ты задолбаешься это делать пакетами, оно ещё и ломаться будет на каждой новой версии.

    Можешь попробовать LibsDisguises. Но не уверен, что можно заменять модель стойкам для брони. Попробуй.
    И ещё такой вопрос - почему у тебя именно стойка для брони? Можешь ли ты спаунить вместо этого зомби или, например, Villager'а? В этом случае интеграция с LibsDisguises точно работала бы
     
  3. Автор темы
    MrWaide

    MrWaide Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    lox
    Я хотел данным методом применить к моделе игрока определенную позу, так как армор стэнд имеет такую возможность, в добавок у армор стенда и игрока совпадает скелет костей для анимации.
     
  4. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    У моделей игроков такой возможности нет, поэтому ты выбрал абсолютно неверный путь.

    Если тебе нужны позы, то тебе НЕ нужно заменять стенды на модели игроков. Нужно копать в совершенно другую сторону - в шейдеры.

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

    Можешь и сам попробовать разобраться, конечно. Но учти, что там не java, а OpenGL Shading Language (GLSL)
     
Статус темы:
Закрыта.

Поделиться этой страницей