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

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

Discussion in 'Разработка плагинов для новичков' started by _Rudey_, Nov 28, 2016.

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

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

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

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

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

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

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

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

    Trophy Points:
    21
    Имя в Minecraft:
    CoreKolas
    В каком ивенте используешь?
     
    Last edited: Nov 28, 2016
  6. Mr_RoboMan

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

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

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

    Trophy Points:
    21
    Имя в Minecraft:
    CoreKolas
    Ни нада =(
     
  8. IcedwinterZ

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

    Trophy Points:
    76
    Имя в Minecraft:
    IcedwinterZ
    Будем*
     
  9. Lilian_solo

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

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

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

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

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

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

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

    Trophy Points:
    76
    Имя в Minecraft:
    IcedwinterZ
    С гвоооооздиком :D
     
  13. Lilian_solo

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

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

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

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

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

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

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

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

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

    Trophy Points:
    46
    В общем, метод должен выглядеть примерно так:
    Code:
        @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 значения, которые мы получаем из файла конфигурации, что позволяет задавать нужных мобов и предел здоровья. Конфиг выглядит так:
    Code:
    entities:
        - SHEEP
    healthCount: 2
    spawnEntity: PIG
    В массив entities заносим всех мобов, которые должны "иметь скилы".Значение healthCount отвечает за значение здоровья моба, после которого он начнёт спавнить других мобов. Значение spawnEntity отвечает за моба, который будет спавниться.
    Все доступные сущности можно посмотреть в enum

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

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

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

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

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

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

    Trophy Points:
    76
    Имя в Minecraft:
    IcedwinterZ
    ne
     
  21. xDark

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

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

Share This Page