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

Помогите Создание индивидуального НПС (видимость)

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

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

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

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    Что намеревается воссоздать, это индивидуальный нпс, который видит только один игрок за которым он привязан. (ПРИВЯЗЫВАЕТСЯ ВИДИМОСТЬ, ОДИН ВИДИТ ДРУГОЙ НЕТ, ЭТО НЕ КАК НЕ ОТНОСИТСЯ К СЛЕДОВАНИЮ ЗА ИГРОКОМ)
    По-видимому это реализовать возможно только с помощью пакетов, вот и вопрос в том я не прошу делать за меня, прошу направить, куда копать если кто-то ранее сталкивался с этим.
    И если это реализовать на много проще просто намекните, не знаю может вообще это все делается через Citizens(вроде в нем я уже ковырялся:rolleyes:)
     
    Последнее редактирование: 19 апр 2020
  2. Energy warrior

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

    Баллы:
    76
     
  3. Автор темы
    SaMEC

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

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    ???
     
  4. Автор темы
    SaMEC

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

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    И еще раз здравствуйте, если кому то понадобиться то решение данной задачки вот:
    Код:
        public void spawnNPC(Location loc, Player player){
            MinecraftServer nmsServer = ((CraftServer) Bukkit.getServer()).getServer();
            WorldServer nmsWorld = ((CraftWorld) Bukkit.getWorlds().get(0)).getHandle();
            EntityPlayer npc = new EntityPlayer(nmsServer, nmsWorld, new GameProfile(UUID.randomUUID(), "NPC"), new PlayerInteractManager(nmsWorld));
            npc.setLocation(loc.getX(), loc.getY(), loc.getZ(), 0, 0);
    
            PlayerConnection connection = ((CraftPlayer) player).getHandle().playerConnection;
            connection.sendPacket(new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, npc));
            connection.sendPacket(new PacketPlayOutNamedEntitySpawn(npc));
        }
    
     
  5. Energy warrior

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

    Баллы:
    76
    Тьху. Ты серьёзно?! Я то думал ты знаешь, как это делать. Думал, не знаешь как заставить его за собой следовать.
     
  6. Автор темы
    SaMEC

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

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    До последнего не хотел в пакеты лезть)
     
  7. alexandrage

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

    Баллы:
    173
    Вот и не лезь, на это есть ProtocolLib.
     
  8. Автор темы
    SaMEC

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

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    Собственно и с ним не хотел работать.
    Но т.к. уже начал возьмусь и за него :good:
    Просто зачастую нет не какой документации объясняющих работу тех или иных методов.
     
  9. Energy warrior

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

    Баллы:
    76
    Так то,что ты написал разве не пакет?
     
  10. Автор темы
    SaMEC

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

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    Так пришлось же
     
  11. Energy warrior

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

    Баллы:
    76
    Так а на что ты надеялся?
     
  12. Автор темы
    SaMEC

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

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    Хм, вообще не на что.
     
  13. NoooobKa

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

    Баллы:
    76
    Имя в Minecraft:
    NoooobKa
    Крч, с скорбордом не работал еще, но знаю из игр в минирежим Annihilation, что можно добавив игрока(насчет других типов хз) в команду, раскрывать невидимость флагом для других игроков этой же команды команды, в итоге получается что одни игроки видят игрока с инвизом, а другие полностью нет. Ну а заставить следовать НПС за тобой с помощью репитшедулера и навигации. Надеюсь что помог, и кастомного нпс можно засунуть в команду скорборда
     
  14. Energy warrior

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

    Баллы:
    76
    Не знаю, есть ли такое в скорбордах, но сказал бред. Для таких целей есть Player#hidePlayer(Plugin,player). Легальными способами ты никак не заспавнишь НПС, только библиотеки, которое тоже это делают нелегально.
     
  15. alexandrage

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

    Баллы:
    173
    Пакет врапер юзай, с ним проще.
     

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