1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Не могу привязать к кастомному мобу лут.

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

Статус темы:
Закрыта.
  1. Автор темы
    dnebik

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

    Баллы:
    66
    Имя в Minecraft:
    dnebik
    При респавне моба я рандомно генерирую значение от 1 до 100 ,с тем фактом что чем больше значение тем меньше шанс выпадения этого значения, ну это не важно!! Так при выпадении такого числа я засовываю его сюды:
    Код:
    ent.setCustomName("Goblin " + ChatColor.GREEN + "[" + ChatColor.GOLD + level + " LVL" + ChatColor.GREEN + "]" );
    после чего я пытаюсь привязать к этому имени определенный дроп:
    Код:
        @EventHandler
        public void onEntityDeath(EntityDeathEvent e){
            e.getDrops().clear();
            for(int i = 1; i<=100 ; i++){
                if (e.getEntity().getCustomName() == "Goblin " + ChatColor.GREEN + "[" + ChatColor.GOLD + "6 LVL" + ChatColor.GREEN + "]" ){
                    if(i <= 10){
                        e.getDrops().add(new ItemStack(Material.GOLD_NUGGET));
                    }
                }
            }
        }

    Итог таков, что я просто отключил дроп, а я хочу чтобы у мобов уровня от 1 до 10 были гол дагетс и т.п.
     
  2. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Для начала рассмотрите собственный код:
    1. Вы удаляете дроп при смерти любого моба
    2. Вы сравниваете строки через == (не делают так)
    3. Вы проверяете, 6 уровень ли у моба(если бы это условие работало)
    4. Вы для чего-то перебираете i до 100, хотя надо до 10 и вообще цикл тут не при чём

    Вместо проверки имени с огромными костылищами есть штука Metadata, куда можно записать уровень и сверять его при смерти моба
     
  3. BeYkeR

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

    Баллы:
    173
    String'и надо проверять через .equals(), а не через ==. Да и зачем вам i ?
     
    Последнее редактирование: 27 июн 2014
  4. Автор темы
    dnebik

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

    Баллы:
    66
    Имя в Minecraft:
    dnebik

    1. Если не удалить то будет падать старый дроп, а я делаю новый
    2. Сори первый раз пишу...
    3. 6 я проверял забыл исправить...
    4. Проверяю потому что может моб быть например таким: Goblin [87 LVL] У меня же от 1 до 100 могут быть. И это тестовый код на зомби от 1 до 10 ,зачем я буде сейчас всех остальных писать если не работает?
    можно как нить примером?
    Спасибо помогло. Но все же хочу узнать как сделать через MetaDate
     
  5. BeYkeR

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

    Баллы:
    173
    https://forums.bukkit.org/threads/how-to-use-player-setmetadata.141105/
     
  6. Автор темы
    dnebik

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

    Баллы:
    66
    Имя в Minecraft:
    dnebik
Статус темы:
Закрыта.

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