Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Дерево за 1 клик.

Статус
Закрыто для дальнейших ответов.

_EnderWorld_

Активный участник
Пользователь
Баллы
78
Имя в Minecraft
Steve
Здравствуйте, можете подсказать как сделать чтобы дерево любого вида, срубалось полностью кроме листвы, и чтобы срубалось когда ломали и рукой и топором.
 
Если выше сломанного блока есть такой же, ломать и его. И повторять
 
Если выше сломанного блока есть такой же, ломать и его. И повторять
Нет как сделать чтобы когда срубил 1 блок, то дерево полностью ломалось, кроме листвы, мне нужно это.
 
Тебе ответ выше написали. Рекурсия.
 
Дайте пример. И сделайте ещё как чтобы возле сломанного блока появлялись частицы
Держите:
Java:
    public void breakWood(Block b)
    {
        Block nextx = b.getLocation().add(1.0, 0, 0).getBlock();
        Block nextz = b.getLocation().add(0, 0, 1.0).getBlock();
        Block nexty = b.getLocation().add(0, 1.0, 0).getBlock();
       
        if(nextx.getType() == b.getType())
        {
            breakWood(nextx);
        }
       
        if(nextz.getType() == b.getType())
        {
            breakWood(nextz);
        }
       
        if(nexty.getType() == b.getType())
        {
            breakWood(nexty);
        }
       
        b.breakNaturally();
        b.getWorld().playEffect(b.getLocation(), Effect.FLAME, 10);
    }
   
    @EventHandler
    public void onBreakWood(BlockBreakEvent ev)
    {
        if(ev.getBlock().getType() == Material.LOG)
        {
            breakWood(ev.getBlock());
        }
    }
 
Держите:
Java:
    public void breakWood(Block b)
    {
        Block nextx = b.getLocation().add(1.0, 0, 0).getBlock();
        Block nextz = b.getLocation().add(0, 0, 1.0).getBlock();
        Block nexty = b.getLocation().add(0, 1.0, 0).getBlock();
      
        if(nextx.getType() == b.getType())
        {
            breakWood(nextx);
        }
      
        if(nextz.getType() == b.getType())
        {
            breakWood(nextz);
        }
      
        if(nexty.getType() == b.getType())
        {
            breakWood(nexty);
        }
      
        b.breakNaturally();
        b.getWorld().playEffect(b.getLocation(), Effect.FLAME, 10);
    }
  
    @EventHandler
    public void onBreakWood(BlockBreakEvent ev)
    {
        if(ev.getBlock().getType() == Material.LOG)
        {
            breakWood(ev.getBlock());
        }
    }
Спасибо.
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх