Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

[Решено] Получение степени натяжения лука

baksovic111

Активный участник
Пользователь
Баллы
88
Имя в Minecraft
Baksovic
Товарищи! Выручайте. Подскажите кто знает любым способом как получить уровень натяжения лука у игрока в руке в методе EntityByEntityDamage
Не спрашивайте зачем.
Надо получить степень натяжения лука и дальше работать с уроном в зависимости от натяжки.
 
Вообщем решил я это все костылем)

Сделал переменную в классе
private float BowForce;

@EventHandler
public void PlayerShot(EntityShootBowEvent event){

if ((event.isCancelled()) || (!(event.getEntity() instanceof Player)))
return;
BowForce = event.getForce();
}


И дальше вот таким вот образом в DamageEntityByDamageEvent


if(BowForce >= 0.9){
Damage = Damage * 0.9;
}
else if(BowForce >= 0.8){
Damage = Damage * 0.8;
}
else if(BowForce >= 0.7){
Damage = Damage * 0.7;
}
else if(BowForce >= 0.6){
Damage = Damage * 0.6;
}
else if(BowForce >= 0.5){
Damage = Damage * 0.5;
}
else if(BowForce >= 0.4){
Damage = Damage * 0.4;
}
else if(BowForce >= 0.3){
Damage = Damage * 0.3;
}
else if(BowForce >= 0.2){
Damage = Damage * 0.2;
}
else if(BowForce >= 0.1){
Damage = Damage * 0.1;
}
 
Вообщем решил я это все костылем)

Сделал переменную в классе
private float BowForce;

@EventHandler
public void PlayerShot(EntityShootBowEvent event){

if ((event.isCancelled()) || (!(event.getEntity() instanceof Player)))
return;
BowForce = event.getForce();
}


И дальше вот таким вот образом в DamageEntityByDamageEvent


if(BowForce >= 0.9){
Damage = Damage * 0.9;
}
else if(BowForce >= 0.8){
Damage = Damage * 0.8;
}
else if(BowForce >= 0.7){
Damage = Damage * 0.7;
}
else if(BowForce >= 0.6){
Damage = Damage * 0.6;
}
else if(BowForce >= 0.5){
Damage = Damage * 0.5;
}
else if(BowForce >= 0.4){
Damage = Damage * 0.4;
}
else if(BowForce >= 0.3){
Damage = Damage * 0.3;
}
else if(BowForce >= 0.2){
Damage = Damage * 0.2;
}
else if(BowForce >= 0.1){
Damage = Damage * 0.1;
}
Лови евент стрельбы, бери стрелу, пиши ей в мету силу, при уроне проверяй наличие у стрелы меты.. Профит
 
Лови евент стрельбы, бери стрелу, пиши ей в мету силу, при уроне проверяй наличие у стрелы меты.. Профит
Мой способ в принципе отлично работает.
Причем кода меньше таким образом будет)
 
Мой способ в принципе отлично работает.
Причем кода меньше таким образом будет)
Ага, и не будет работать если два игрока выстрелят одновременно, ты тупо перезапишешь силу натяжения последним выстрелившим.
 

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

Назад
Верх