Условие ломания руды

  • Автор темы Автор темы LUMIK
  • Дата начала Дата начала

LUMIK

Новичок
Пользователь
Баллы
21
Нужен код на условие: Пока игрок ломает блок выдавать эффект.
Вот код:
Block block = e.getClickedBlock();
if ((block.getType() == Material.DIAMOND_ORE)&&(e.getAction() == Action.LEFT_CLICK_BLOCK)) {
Player p = e.getPlayer();
p.addPotionEffect(new PotionEffect(PotionEffectType.SLOW_DIGGING,20000,2));
p.addPotionEffect(new PotionEffect(PotionEffectType.FAST_DIGGING,20000,60));} else {
Player p = e.getPlayer();
p.removePotionEffect(PotionEffectType.SLOW_DIGGING);
p.removePotionEffect(PotionEffectType.FAST_DIGGING);
}
Но как вы поняли, если игрок нажмет на другой блок, а у него спешка, то он ее лишится) Легче выдавать по 1 секунде пока игрок ломает конкретный блок. Поможете?
 
Проясни вопрос. Если ты хочешь, чтобы при клике по алм руде игроку давались эффекты на секунду, то поменяй в добавлении эффекта время на 20 и убери else.

Код:
Block block = e.getClickedBlock();
if ((block.getType() == Material.DIAMOND_ORE)&&(e.getAction() == Action.LEFT_CLICK_BLOCK)) {
Player p = e.getPlayer();
p.addPotionEffect(new PotionEffect(PotionEffectType.SLOW_DIGGING,20,2));
p.addPotionEffect(new PotionEffect(PotionEffectType.FAST_DIGGING,20,60));
}

Или скажи конкретнее, с чем именно у тебя проблемы.
 
Проясни вопрос. Если ты хочешь, чтобы при клике по алм руде игроку давались эффекты на секунду, то поменяй в добавлении эффекта время на 20 и убери else.

Код:
Block block = e.getClickedBlock();
if ((block.getType() == Material.DIAMOND_ORE)&&(e.getAction() == Action.LEFT_CLICK_BLOCK)) {
Player p = e.getPlayer();
p.addPotionEffect(new PotionEffect(PotionEffectType.SLOW_DIGGING,20,2));
p.addPotionEffect(new PotionEffect(PotionEffectType.FAST_DIGGING,20,60));
}

Или скажи конкретнее, с чем именно у тебя проблемы.
Условие: пока Я ломаю алмазную руду, был наложен эффект. Как я перестаю - эффект спадает
 
Условие: пока Я ломаю алмазную руду, был наложен эффект. Как я перестаю - эффект спадает
Так вроде это то, что надо - клик по алм руде левой кнопкой - секунда эффекта.
Если тебе надо мгновенное разрушение блока (предполагаю по 60 уровню спехи), то удаляй при клике блок и прописывай дроп.
 
Так вроде это то, что надо - клик по алм руде левой кнопкой - секунда эффекта.
Если тебе надо мгновенное разрушение блока (предполагаю по 60 уровню спехи), то удаляй при клике блок и прописывай дроп.
То есть до того пока он не докопает - будет этот эффект - верно? Если да, то благодарю
 
То есть до того пока он не докопает - будет этот эффект - верно? Если да, то благодарю
Код, который я писал выше, даёт 20 тиков спехи, когда бьёшь по алм руде. По идее, за секунду под 60 спехой не докопать невозможно. Вставляй в плагин и тести.
 
Код, который я писал выше, даёт 20 тиков спехи, когда бьёшь по алм руде. По идее, за секунду под 60 спехой не докопать невозможно. Вставляй в плагин и тести.
Стоп. Я понял. Не подходит. У меня код на замедление купания. Алм руда копается по разному с разных кирок. Но под эфф 5 за 5 секунд. То есть мне нужно условие когда игрок ломает эту руду выполнялось условие
 
Если я правильно понял, ты хочешь, чтобы алмазная руда добывалась 5 секунд. Тогда проверяй тип кирки в руке и накладывай в зависимости от этого уровень утомления/спехи. Уровни найдёшь великим подбором.
 
Назад
Верх