Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Прочность блоков. Zombie Destruct Blocks

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

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

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

    Баллы:
    88
    Skype:
    Baksovic2
    Имя в Minecraft:
    Baksovic
    Товарищи.
    Решил сделать плагин с помощью которого зомби смогут ломать блоки.
    Получаю Entity в определенном радиусе от игрока и с помощью цикла проверяю блоки вокруг Entity если блок не воздух то уничтожаем блок.(Левенький код но сейчас не об этом)
    Так вот.
    Хочу каким то образом реализовать прочность блоков которые будут уничтожаться.
    Кто подскажет каким образом это сделать?
    На данный момент блок я уничтожаю таким образом
    .getBlock().breakNaturally();
    Собственно он ломается моментально.
     
  2. Хостинг MineCraft
    <
  3. BeYkeR

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

    Баллы:
    173
    А зомби ломает только один блок или их несколько ?
     
  4. Автор темы
    baksovic111

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

    Баллы:
    88
    Skype:
    Baksovic2
    Имя в Minecraft:
    Baksovic
    Сначало первый. Если там воздух то переходит к другому блоку
     
  5. _EnderWorld_

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

    Баллы:
    78
    Имя в Minecraft:
    Steve
    Хмм, сейчас посмотрю в списке Event'ов, Не найду буду у Mojang из HardCore режима искать.
     
  6. Автор темы
    baksovic111

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

    Баллы:
    88
    Skype:
    Baksovic2
    Имя в Minecraft:
    Baksovic
    Ты и близко такое в эвентах не найдешь)
     
  7. _EnderWorld_

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

    Баллы:
    78
    Имя в Minecraft:
    Steve
    Если и найти, это только взять из режима HardCore, и Hard, помоему только в них зомби ломают двери и что-то ещё.
     
  8. MrTrojan

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

    Баллы:
    98
    Skype:
    mrtrojan.ru
    Имя в Minecraft:
    MrTrojan
    Там обычный джава код, он никак не связан с Bukkit'ом и плагинописанием.
     
  9. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    В BloodMoon вроде такое делали, можно подсмотреть.
     
  10. Автор темы
    baksovic111

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

    Баллы:
    88
    Skype:
    Baksovic2
    Имя в Minecraft:
    Baksovic
    Знаю этот плагин кстати так и сделал)
    Нашел код но он достаточно сложный и запутанный но кое что я все же взял и буду тестировать)
     
  11. _EnderWorld_

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

    Баллы:
    78
    Имя в Minecraft:
    Steve
    Сейчас буду декомпилировать)
     
  12. BeYkeR

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

    Баллы:
    173
  13. MrTrojan

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

    Баллы:
    98
    Skype:
    mrtrojan.ru
    Имя в Minecraft:
    MrTrojan
    Нашёл, что-то, может это?


    Код:
    public BloodMoonEntityZombie(BloodMoon plugin, EntityMonster nmsEntity, CraftLivingEntity bukkitEntity, BloodMoonEntityType type){
            super(plugin, nmsEntity, bukkitEntity, type);
        }
       
        @Override
        public void onTick(){
            String worldName = nmsEntity.world.worldData.getName();
            String entityName = bukkitEntity.getType().name().toUpperCase();
            PluginConfig worldConfig = plugin.getConfig(worldName);
    
            if (nmsEntity.getGoalTarget() instanceof EntityHuman && plugin.isActive(worldName) && plugin.isFeatureEnabled(worldName, Feature.BREAK_BLOCKS) && worldConfig.getStringList(Config.FEATURE_BREAK_BLOCKS_MOBS).contains(entityName) && nmsEntity.world.getTime() % 20 == 0 && nmsEntity.world.worldData.getName().equals(nmsEntity.getGoalTarget().world.worldData.getName())) {
                Block[] blocks = new Block[2];
               
                blocks[0] = this.getBreakableTargetBlock();
                blocks[1] = blocks[0].getRelative(BlockFace.UP);
               
                for (Block block : blocks){
                    this.attemptBreakBlock(worldConfig, block);
                }
            }
        }
       
    }
     
  14. Автор темы
    baksovic111

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

    Баллы:
    88
    Skype:
    Baksovic2
    Имя в Minecraft:
    Baksovic
    Да - это. Но это не все)
    там еще код был.
    Я все в том плагине перерыл))
    Код не брал но взял для себя идею и переделал свой плагин.
    Изначально я брал блоки вокруг Entity добавляя к лоцации во все стороны +1
    Теперь я сильно переделал плагин)
    Кому интересно, вот код - Поделюсь))

    http://pastebin.com/wKCkzcfA
     
    Последнее редактирование: 10 июн 2015
  15. _EnderWorld_

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

    Баллы:
    78
    Имя в Minecraft:
    Steve
    А без If, не как, чтобы сократить.[DOUBLEPOST=1433925345,1433925312][/DOUBLEPOST]А так если, код довольно логичный.
     
  16. Автор темы
    baksovic111

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

    Баллы:
    88
    Skype:
    Baksovic2
    Имя в Minecraft:
    Baksovic
    Я код сократил в максимум.
    Может у кого по больше опыта тот знает что и где исправить)
    Тему закрывать не буду может кто еще выразит какие мысли, идеи)
     
  17. _EnderWorld_

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

    Баллы:
    78
    Имя в Minecraft:
    Steve
    Скиньте пожалуйста те API, которые вы используете.
     
  18. Автор темы
    baksovic111

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

    Баллы:
    88
    Skype:
    Baksovic2
    Имя в Minecraft:
    Baksovic
    Я использовал в качестве api spigot 1.8.3 и только)
     
  19. _EnderWorld_

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

    Баллы:
    78
    Имя в Minecraft:
    Steve
    Странно, когда я загрузил Spigot, то у меня сразу вылезло куча ошибок, так и должно быть?
     
  20. Автор темы
    baksovic111

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

    Баллы:
    88
    Skype:
    Baksovic2
    Имя в Minecraft:
    Baksovic
    Нет)
    Все должно быть чистеньно и без ошибок
     
  21. _EnderWorld_

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

    Баллы:
    78
    Имя в Minecraft:
    Steve
    Просите, а какую версии eclipse вы используете, если можно то ссылку
     

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