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

Помогите Пакет моба

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

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

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

    Баллы:
    123
    Skype:
    wwwixelsor9
    Имя в Minecraft:
    konfyciu
    Я понимаю это так:
    пакет Destroy
    пакет NamedEntitySpawn(myEntity)
     
  2. makssof

    makssof Старожил Девелопер Пользователь

    Баллы:
    103
    iDisguise:
    Код:
    PacketPlayOutEntityDestroy packetDestroy = new PacketPlayOutEntityDestroy(new int[] { player.getEntityId() });
    PacketPlayOutNamedEntitySpawn packetSpawn = new PacketPlayOutNamedEntitySpawn(((CraftPlayer)player).getHandle());
     
  3. Автор темы
    konfyciu98

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

    Баллы:
    123
    Skype:
    wwwixelsor9
    Имя в Minecraft:
    konfyciu
    Я уже делал.
    Игрок застывает на месте
     
  4. makssof

    makssof Старожил Девелопер Пользователь

    Баллы:
    103
    Такая же фигня была, когда я "игрался" с пакетами. Самому игроку, который "переодевается" не надо посылать эти пакеты. Только другим игрокам.
    И вообще, NamedEntitySpawn это пакет, который отправляется клиенту когда игрок входит в поле зрения другого игрока. Т.е. появляется на карте для клиента другого игрока.
    This packet is sent by the server when a player comes into visible range, not when a player joins.
     
  5. Автор темы
    konfyciu98

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

    Баллы:
    123
    Skype:
    wwwixelsor9
    Имя в Minecraft:
    konfyciu
    Черт, а как в пакете спавна задать EntityHuman?
     
  6. makssof

    makssof Старожил Девелопер Пользователь

    Баллы:
    103
    Ты про это?:
    new PacketPlayOutNamedEntitySpawn(((CraftPlayer)player).getHandle());
     
  7. Автор темы
    konfyciu98

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

    Баллы:
    123
    Skype:
    wwwixelsor9
    Имя в Minecraft:
    konfyciu
    Да, он создает игрока, а не моба. Как туда моба впихнуть?
    Ап
     
  8. BeLkA

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

    Баллы:
    153
    Skype:
    FayStaff
    Если еще надо - то вот.
    Код:
    CraftPlayer player = (CraftPlayer) p;
    PacketPlayOutNamedEntitySpawn npc = new PacketPlayOutNamedEntitySpawn(player.getHandle());
                        try {
                            Field f = npc.getClass().getDeclaredField("a");
                            f.setAccessible(true);
                            f.setInt(npc, /*ID Моба (Можно посмотреть ID яиц спавна, они сходятся с этими)*/);
                            f.setAccessible(!f.isAccessible());
                        } catch(Exception x) {
                            x.printStackTrace();
                       }
                        // Так отправляется пакет \/\/\/ Только самому игроку. Так же как то еще нужно игрока убрать. И посылать пакет шедулером все время. Чтобы показать игрока в виде моба всем остальным - getOnlinePlayers()
                        player.getHandle().playerConnection.sendPacket(npc);
    
     
  9. Автор темы
    konfyciu98

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

    Баллы:
    123
    Skype:
    wwwixelsor9
    Имя в Minecraft:
    konfyciu
    Пасяб ;р
     
  10. BeLkA

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

    Баллы:
    153
    Skype:
    FayStaff
    Ходили слухи о DestroyEntity - тоже нужно, чтобы игрока скрыть. Но я этот пакет не нашел
     
  11. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Мало того что это каша из NMS и рефлексий, так ещё и f.setAccessible(!f.isAccessible()) :cry:
     
  12. BeLkA

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

    Баллы:
    153
    Skype:
    FayStaff
    По тутору из офф. баккита делал. Уже понял, что там ничего нормального. Но нашел другой способ, тоже с НМС.
     
  13. BeYkeR

    BeYkeR Старожил Девелопер Пользователь

    Баллы:
    173
    Ты меня поражаешь : PacketPlayOutEntityDestroy
    Список новых пакетов
     
  14. BeLkA

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

    Баллы:
    153
    Skype:
    FayStaff
    ОХ ТЫ Ж ЕМАНА! СПАСИБО ТЕБЕ ЗА ЭТУ ВЕЛИКОЛЕПНУЮ ССЫЛКУ!
     

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