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

Помогите Дроп с мобов

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

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

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

    Баллы:
    66
    Как реализовать дроп по типу яица с кур? Добавлять каждой сущности в мире отдельную переменную и дропать через таймер с проверкой времени? Возмжоно ли создавать кастомные NBT?
    Необходимо именно рандомно и чтоб не одновременно)
     
  2. Автор темы
    ekbasiaa

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

    Баллы:
    66
    Накидал такой вариант, но что-то прям не уверен...
    Код:
    public void update() {
            List<Entity> chickens = new ArrayList<>();
            BukkitTask task = Bukkit.getScheduler().runTaskTimer(plugin, () -> {
                int random = new Random().nextInt(Bukkit.getOnlinePlayers().size());
                Player randomPlayer = (Player) Bukkit.getOnlinePlayers().toArray()[random];
                List<Entity> entities = randomPlayer.getNearbyEntities(10, 10, 10);
               
                for (Entity entity : entities) {
                    if (entity.getType() != EntityType.CHICKEN) continue;
                    chickens.add(entity);
                }
    
                Entity chicken = chickens.get(random);
                World world = chicken.getWorld();
                Location loc = chicken.getLocation();
                world.dropItemNaturally(loc, new ItemStack(Material.FEATHER, 1));
            }, -1L, 20L * 30);
        }
     
  3. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Для кастомных данных с 1.14 в Paper существует PersistentDataContainer
     
  4. Автор темы
    ekbasiaa

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

    Баллы:
    66
    Thx) Но оно есть и в кране. Вам не перетащить меня на сторону туалетной бумаги!)
     
  5. OJIEKCAHDP

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

    Баллы:
    76
    Имя в Minecraft:
    OJIEKCAHDP
    Так-же туалетная бумага которая лучше во всём: :whistle:
     
  6. 0xLairon1

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

    Баллы:
    76
    Имя в Minecraft:
    0xLairon1
    1. Реализация в таймере не такая уж и плохая.
    2. Ненужно получать сущностей рядом с игроком, пустая трата времени процессора еще 1 циклом, просто получи всех сущностей и я даю 100% гарантию что она будет рядом с игроком
    3. Очень плохая реализация рандомного дропа, следует пробежаться по каждой курице и рассчитать для нее рандом, ибо чем больше у тебя куриц тем меньше у тебя будет падать с них лута
    4. Зачем вешать на курицу еще какойто тег? просто пробегись по ним и все
     
  7. Автор темы
    ekbasiaa

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

    Баллы:
    66
    2 и 3 поясни подробнее) + 3 отвечает на твой 4 вопрос
    В майне это реализовано через нбт layTime, которая просто является обратным отсчётом и при movementTick дропает яйко c повторной устанавкой layTime в промежутке от/до, если <= 0
    обязательно)
     
  8. SlenderMix

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

    Баллы:
    76
    Доказательств нету, газета мягче.
     
  9. SlenderMix

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

    Баллы:
    76
    И прибегать к ненужным вычислениям, в тз не указанно что да как должно работать, человек предоставил простую реализацию, хотя можно еще проще.
     
  10. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Я не знаю, что там существует в кране, я им не пользуюсь уже лет 5, чего и тебе желаю
     

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