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

Помогите Деспаун мобов + экипировка мобов

Тема в разделе "Разработка плагинов для новичков", создана пользователем CraftCoder, 30 май 2014.

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

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    1.Как отменить или обойти деспаун мобов?
    2.Как подгрузить чанк?
    3.Как сделать так чтобы мобы спавнились максимум в кожанной броне, а не в золотой, кольчужной, железной или алмазной, т.е мне нужен оптимальный алгоритм этого: в CreatureSpawnEvent проверить наличие брони, и всю броню, которая есть на мобе, заменить на кожаннную и чтобы при этом чары остались.
     
    Последнее редактирование: 31 май 2014
    Лайка2, mahimamax и Лайка нравится это.
  2. Хостинг MineCraft
    <
  3. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Жесть, ответы настолько просты :D Спасибо[DOUBLEPOST=1401520778,1401473032][/DOUBLEPOST]А чанк на сколько времени подгружается?
     
  4. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
  5. JustBlender

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

    Баллы:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    В броне-то чего сложного? Делаем все как сказал @fromgate. Если броня != кожаной и не равна null, значит ты ее можешь удалить/поставить кожаную + добавляешь эффекты к броне с помощью addEnchantment(Enchantment.ПРОЧНОСТЬ_КАРОЧ, Уровень)/addUnsafeEnchantment(Enchantment.ОПЯТЬПРОЧНОСТЬЕШКИНКОТ, Уровень) [ItemStack]

    Или же ты можешь получить корректные зачарования с помощью getEnchantments() (return Map<Enchantment, Integer> (Зачарование, Его уровень)). Затем используя entrySet() распределяем все эффекты :D (Или как там еще, я не профи в мапах)

    FucKQ:
    1. Почему "прочность"? Да потому что только она и есть у мобов с зачаренной броней :D
    2. Чем отличаются addEnchantment/addUnsafeEnchantment? В unsafeEnchantment ты можешь сделать меч хоть 127 уровня, а в простой addEnchantment ты можешь засунуть только тот энчат, уровень которого не завышает 4-5. (Как я помню)
     
  6. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    На деле, зачарования могут быть любые
     
  7. JustBlender

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

    Баллы:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    Разве? :eek: Сколько играл -- никогда не видел броню на мобе с другими зачарованиями. Как выбивал что-то - ПРОЧНОСТЬ 1! Ну да ладна..
     
  8. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Спасибо за разъяснение с броней, но меня интересует вопрос: на какое время подгружается чанк, с помощью chunk.load()?
     
  9. kirill2011s

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

    Баллы:
    103
    Точно не сразу, где-то на следующий тик.
     
  10. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Если можно, то подскажите кодом как мне подгрузить чанк и заспавнить там моба, но мне нужны гарантии что он там заспавнится, ведь если чанк не подгружен, то моб не заспавнится.
     
  11. BeYkeR

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

    Баллы:
    173
    PHP:
    //Android editor text
    Public void spawnCustomZombie(Location loc){
    boolean unload false;
    if(!
    loc.getChunk().isLoaded()){
    loc.getChunk().load();
    unload true;
    }

    Zombie zombie loc.getWorld().spawn...
    //Дальше лень писать

    if(unload){
    loc.getChunk().unload(true);
    }
    }
    Писал с телефона, могут быть недочеты. Работоспособность не гаранитирую.
     
    Последнее редактирование: 16 июн 2014
  12. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Огромное спасибо!
     
  13. kirill2011s

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

    Баллы:
    103
    Моб заспавнится даже если чанк не загружен.
     
  14. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Почему эта строка может выдавать NullPointerExeption:
    public HashMap<String, Integer> death = new HashMap<String, Integer>();
    public HashMap<String, Integer> time = new HashMap<String, Integer>();
    String name != null;

    if (death.get(name) != 0 && (systemTime - death.get(name)) >= time.get(name))
     
  15. aceJKE

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

    Баллы:
    123
    может быть нужно проверять на нул, а не на ноль if (death.get(name) != null && ...) ?
     
  16. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Вот я криворукий.... Спасибо[DOUBLEPOST=1404832260,1403082633][/DOUBLEPOST]
    У меня почему-то event.getEntity().setRemoveWhenFarAway(false); не работает :([DOUBLEPOST=1405071688][/DOUBLEPOST]Почему у меня не работает setRemoveWhenFarAway(false) и как это проверить?
     
  17. fhntv24

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

    Баллы:
    88
    проверить - запихнуть это в евент спауна моба -> потом улетаем -> прилетаем обратно.
    Или еще луште , tp 1000000 128 10000000 -> обратно.

    оффтопик: в твоем плагине на "изумрудные инструменты" очень много кода... я бы искал все рецепты которые дадут тебе алм. тулы и добовлял бы свои такие же , но с заменой на изумруд с алмаза.
     
  18. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Ну я улетал, а когда прилетал моба уже не было, как это имправить?
     
  19. fhntv24

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

    Баллы:
    88
    Где проверял? Т.е. бакит / мспс / спигот? и версию. Вообще http://jd.bukkit.org/rb/apidocs/org/bukkit/entity/LivingEntity.html говорит что должно это работать. Уверены что работает ваш евент? (т.е. зарегали вы его или нет?)

    И еще как спауните моба , через яйцо призыва или нет?
     
  20. Автор темы
    CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Спавню через плагин MegaCreeps, перед setRemoveWhen... вывожу в консоль слово. Слово выводится, но моб исчезает. Проверял на CB.
     
  21. fhntv24

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

    Баллы:
    88
    хмм , мб сам плагин что то делает магическое. Попробуйте на ванильных мобах , как я сказал.
     

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