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

Обводка entity

Тема в разделе "Разработка плагинов для новичков", создана пользователем ilya50, 4 июн 2019.

  1. Автор темы
    ilya50

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

    Баллы:
    76
    Всем привет. Как с помощью ProtocolLib обвести entity в какой либо цвет для определённого игрока ? Я говорю про эффект как от спектральной стрелы
     
  2. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    getEntity().setGlowing(true);
    getPlayer().setGlowing(true);
     
  3. Автор темы
    ilya50

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

    Баллы:
    76
    для определённого игрока...
     
  4. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Свечение - это параметр метаданных Entity. Соответственно получаешь оригинальный контейнер меты и добавляешь туда параметр glowing (в битмаску с индексом 0), после чего отправляешь обновлённую мету нужным игрокам.
    В коде будет примерно так (используется PacketWrapper):
    PHP:
            Entity entity = ...;
            
    Set<Playerviwers = ...;
            
    WrappedDataWatcher dataWatcher WrappedDataWatcher.getEntityWatcher(entity);
            
    byte entityOptions = (bytedataWatcher.getObject(0);
            
    entityOptions += 0x40// Glowing effect
            
    dataWatcher.setObject(0entityOptions);
            
    WrapperPlayServerEntityMetadata metaUpdate = new WrapperPlayServerEntityMetadata();
            
    metaUpdate.setEntityID(entity.getEntityId());
            
    metaUpdate.setMetadata(dataWatcher.getWatchableObjects());
            for (
    Player player viwers)
                
    metaUpdate.sendPacket(player);
    За цвет свечения отвечает цвет команды, в которой состоит, собственно, сам энтити.
    Тут, надеюсь, сам разберёшься, какие пакеты нужны
     
    Последнее редактирование: 4 июн 2019
  5. Автор темы
    ilya50

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

    Баллы:
    76
    Спасибо
     

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