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

Помогите Если здоровье меньше...

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

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

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

    Баллы:
    66
    Имя в Minecraft:
    RudeyCoolLeet
    И снова здравствуйте!
    Я решил сделать что-то вроде скиллов мобам.
    Как сделать так, чтобы если у определённого моба хм = или <... Ну, допустим 300, то он выпускает
    каких-нибудь миньонов?
    Заранее спасибо :)
     
  2. Хостинг MineCraft
    <
  3. Lilian_solo

    Lilian_solo Новичок Пользователь Заблокирован

    Баллы:
    21
    Имя в Minecraft:
    CoreKolas
    Код:
    if (spider.getHealth() >= 300){
                spider.getLocation().getWorld().spawnEntity(spider.getLocation(), EntityType.ZOMBIE);
            }
     
  4. Автор темы
    _Rudey_

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

    Баллы:
    66
    Имя в Minecraft:
    RudeyCoolLeet
    Пробовал. Не происходит ничего.
     
  5. Lilian_solo

    Lilian_solo Новичок Пользователь Заблокирован

    Баллы:
    21
    Имя в Minecraft:
    CoreKolas
    В каком ивенте используешь?
     
    Последнее редактирование: 28 ноя 2016
  6. Mr_RoboMan

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

    Баллы:
    123
    Снимай штаны, розгами хлыстать буду.
     
  7. Lilian_solo

    Lilian_solo Новичок Пользователь Заблокирован

    Баллы:
    21
    Имя в Minecraft:
    CoreKolas
    Ни нада =(
     
  8. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Будем*
     
  9. Lilian_solo

    Lilian_solo Новичок Пользователь Заблокирован

    Баллы:
    21
    Имя в Minecraft:
    CoreKolas
    Пасаны, не бейте, я с села =(
    Вчера из танка вылез =(
     
  10. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Не переживай, мы не сильно
     
  11. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Тогда нужна дубинка покрепче.
     
  12. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    С гвоооооздиком :D
     
  13. Lilian_solo

    Lilian_solo Новичок Пользователь Заблокирован

    Баллы:
    21
    Имя в Minecraft:
    CoreKolas
    Неее, плес(9((( Я в детстви головой ударелся и мозг отрофировался, мне нильзя палучать боль, я в овощьь привращусь и мама мэня в салат порежет9(((все деньги отдам вам, ток не бейте!
     
  14. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Проверяй здоровье моба в мире, если больше спауни на его кордах моба
    Получить моба в мире можно через for
     
  15. Lilian_solo

    Lilian_solo Новичок Пользователь Заблокирован

    Баллы:
    21
    Имя в Minecraft:
    CoreKolas
    Код:
    bublic voed МобДамадже == моб;(((
    ЕСЛИ (Моб.get HP 300}}
    minecraft.spawn.зомби
    chat.игрок.отправить сообщение:[RED] + Босс призвал мобав!
    Должно работать, но мне Eclipse всё подчеркнул красным =(
     
  16. Автор темы
    _Rudey_

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

    Баллы:
    66
    Имя в Minecraft:
    RudeyCoolLeet
    Очень странно, почему же? О_о
    Даже не знаю
     
  17. AtomicInteger

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

    Баллы:
    46
    В общем, метод должен выглядеть примерно так:
    Код:
        @EventHandler
        public void onEntityEvent(EntityDamageEvent event) {
            EntityType currentEntityType = event.getEntity().getType();
            LivingEntity entity = (LivingEntity) event.getEntity();
            if(config.getList("entities").contains(currentEntityType.toString()) && entity.getHealth() < config.getInt("healthCount"))
                entity.getWorld().spawnEntity(entity.getLocation(), EntityType.valueOf(config.getString("spawnEntity")));
        }
    Для удобства я сделал 3 значения, которые мы получаем из файла конфигурации, что позволяет задавать нужных мобов и предел здоровья. Конфиг выглядит так:
    Код:
    entities:
        - SHEEP
    healthCount: 2
    spawnEntity: PIG
    В массив entities заносим всех мобов, которые должны "иметь скилы".Значение healthCount отвечает за значение здоровья моба, после которого он начнёт спавнить других мобов. Значение spawnEntity отвечает за моба, который будет спавниться.
    Все доступные сущности можно посмотреть в enum

    При такой конфигурации(как в конфиге), мы будем бить овцу и она будет спавнить свиней, после того как у неё останется меньше 2 хп, таким образом можно заспавнить 2 свиньи, если бить овцу рукой.В качестве дополнения, можно добавить команды для добавления значений в конфиг и его перезагрузки.Так же, можно сделать подгрузку значений из конфига при включении плагина, ибо при каждом ударе моба мы будем запрашивать значение из конфига, что не есть очень хорошо.Вышеприведённый код протестирован и работает как нужно(но баги всё равно возможны).
     
  18. xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    а потом сервер зациклится... ну - ну.. удачи.
     
  19. AtomicInteger

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

    Баллы:
    46
    Почему сервер зациклится?
     
  20. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    ne
     
  21. xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    в код вчитайся. поймешь
     

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