Войти или зарегистрироваться

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

  • Автор темы Автор темы 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 были гол дагетс и т.п.
 
При респавне моба я рандомно генерирую значение от 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 были гол дагетс и т.п.
Для начала рассмотрите собственный код:
  1. Вы удаляете дроп при смерти любого моба
  2. Вы сравниваете строки через == (не делают так)
  3. Вы проверяете, 6 уровень ли у моба(если бы это условие работало)
  4. Вы для чего-то перебираете i до 100, хотя надо до 10 и вообще цикл тут не при чём

Вместо проверки имени с огромными костылищами есть штука Metadata, куда можно записать уровень и сверять его при смерти моба
 
String'и надо проверять через .equals(), а не через ==. Да и зачем вам i ?
 
Последнее редактирование:
Для начала рассмотрите собственный код:
  1. Вы удаляете дроп при смерти любого моба
  2. Вы сравниваете строки через == (не делают так)
  3. Вы проверяете, 6 уровень ли у моба(если бы это условие работало)
  4. Вы для чего-то перебираете i до 100, хотя надо до 10 и вообще цикл тут не при чём

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


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

можно как нить примером?
String'и надо проверять через .equals(), а не через ==. Да и зачем вам i ?

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


можно как нить примером?


Спасибо помогло. Но все же хочу узнать как сделать через MetaDate
https://forums.bukkit.org/threads/how-to-use-player-setmetadata.141105/
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх