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

Я понимаю это так:
пакет Destroy
пакет NamedEntitySpawn(myEntity)
iDisguise:
Java:
PacketPlayOutEntityDestroy packetDestroy = new PacketPlayOutEntityDestroy(new int[] { player.getEntityId() });
PacketPlayOutNamedEntitySpawn packetSpawn = new PacketPlayOutNamedEntitySpawn(((CraftPlayer)player).getHandle());
 
Я уже делал.
Игрок застывает на месте
 
Такая же фигня была, когда я "игрался" с пакетами. Самому игроку, который "переодевается" не надо посылать эти пакеты. Только другим игрокам.
И вообще, NamedEntitySpawn это пакет, который отправляется клиенту когда игрок входит в поле зрения другого игрока. Т.е. появляется на карте для клиента другого игрока.
This packet is sent by the server when a player comes into visible range, not when a player joins.
 
Черт, а как в пакете спавна задать EntityHuman?
 
Ты про это?:
new PacketPlayOutNamedEntitySpawn(((CraftPlayer)player).getHandle());
 
Да, он создает игрока, а не моба. Как туда моба впихнуть?
Ап
Если еще надо - то вот.
Java:
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);
 
Если еще надо - то вот.
Java:
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);
Мало того что это каша из NMS и рефлексий, так ещё и f.setAccessible(!f.isAccessible()) :cry:
 
Назад
Верх