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

Помогите Опыт с блока

Тема в разделе "Разработка плагинов для новичков", создана пользователем Folzy, 8 фев 2021.

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

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

    Баллы:
    76
    Имя в Minecraft:
    CUBOPHORIA
    Как мне изменить получение опыта при разрушении определенного блока например Material.COAL_ORE
    Что-бы опыт не добавлялся игроку через .setLevel
    А именно чтоб выпадал с блока как это обычно бывает.
     
  2. TheDiVa Zo

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

    Баллы:
    66
    А он разве не выпадает?
     
  3. Автор темы
    Folzy

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

    Баллы:
    76
    Имя в Minecraft:
    CUBOPHORIA
    Ну дак мне надо его изменить....
     
  4. Автор темы
    Folzy

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

    Баллы:
    76
    Имя в Minecraft:
    CUBOPHORIA
    Я понимаю что он выпадает но мне надо изменить его значение.
    А лучше всего заново переписывать его выпадение
     
  5. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    PHP:
        @EventHandler
        
    private void on(BlockBreakEvent event) {
            
    int exp event.getExpToDrop();
            if (
    exp 0) {
                
    event.setExpToDrop(0); // Отмена выпадения с блока
                
    event.getPlayer().giveExp(event.getExpToDrop()); // Выдача напрямую игроку или что-то иное
            
    }
        }
     
  6. Автор темы
    Folzy

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

    Баллы:
    76
    Имя в Minecraft:
    CUBOPHORIA
    А куда писать значение выпадаемого экспирианса? в скобки event.getExpToDrops() ?
     
  7. Автор темы
    Folzy

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

    Баллы:
    76
    Имя в Minecraft:
    CUBOPHORIA
    Нет ты не понял мне надо изменить кол-во exp выпадающего с блока, допустим выпадает 0.1F а мне надо 0.3F
     
  8. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Ну так поменяй 0 на нужное значение
     
  9. Автор темы
    Folzy

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

    Баллы:
    76
    Имя в Minecraft:
    CUBOPHORIA
     
  10. Автор темы
    Folzy

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

    Баллы:
    76
    Имя в Minecraft:
    CUBOPHORIA
    Я не понимаю зачем ты написал if (exp > 0)
    Ведь с этим значением код не всегда срабатывает.
    И ещё не понял зачем ты пишешь в начале event , если достаточно написать e (Да и к тому же с event не работает)
    поэтому я в
    @EventHandler добавил код
    int exp = e.getExpToDrop();

    И в строку с
    if (ore == Material.COAL_ORE) {
    Добавил
    event.setExpToDrop(0);
    event.getPlayer().giveExp(event.getExpToDrop());

    И тадам все работает без перебоев.
     
Статус темы:
Закрыта.

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