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

Помогите Достать дамаг при PlayerInteractEvent.

Статус
Закрыто для дальнейших ответов.

Shockwave

Старожил
Пользователь
Баллы
103
Вообщем вот такой вот код:
Код:
@EventHandler
public void a(PlayerInteractEvent e)
{
while(e.hasBlock())
{
//Достать дамаг и понижать его
}
}
Конечно логичнее через EntityDamagedByEntity, но там нету проверки на блокирование hasBlock()
Прошу помочь.
@Den_Abr
 
EntityDamageByEntityEvent --> isBlocking()
Как-то так мб?
 
Пока игрок зажимает пкм с предметом которым можно блокировать, например меч, нужно снижать получаемый урон
Эвент клика мышкой вызывается разово, тоесть нельзя узнать, что вот игрок зажал мышь. На голову ничего больше не приходит кроме записи времени последнего интеракта и сравнения его со временем удара
 
Эвент клика мышкой вызывается разово, тоесть нельзя узнать, что вот игрок зажал мышь. На голову ничего больше не приходит кроме записи времени последнего интеракта и сравнения его со временем удара
Мне нужно реализовать что то на подобие щитов, но если использовать ваш метод, то игрокам придется подбирать точное время когда происходит удар и успеть ставить щит, хотелось бы что бы можно было зажать и держать и блочить удары, но я так понял теперь придется прибегать реализации через мод
 
Мне нужно реализовать что то на подобие щитов, но если использовать ваш метод, то игрокам придется подбирать точное время когда происходит удар и успеть ставить щит, хотелось бы что бы можно было зажать и держать и блочить удары, но я так понял теперь придется прибегать реализации через мод
Если зажать мышь, эвент вызывается раз в пол секунды, каждый раз записывать время...
 
Пока игрок зажимает пкм с предметом которым можно блокировать, например меч, нужно снижать получаемый урон
Код:
@EventHandler
public void onPlayerDamage(EntityDamageByEntityEvent e){
if(event.getEntity().getType() == EntityType.PLAYER){
Player player = (Player)event.getEntity();
ItemStack item = player.getItemInHand();
if(item == null) return;
if(item.getType() == Material.DIAMOND_SWORD){
if(player.isBlocking()){

int damage = event.getDamage();
int minus = 5;

event.setDamage(damage - minus);
}
}
}
}
}
Мб сработает.
 
Код:
@EventHandler
public void onPlayerDamage(EntityDamageByEntityEvent e){
if(event.getEntity().getType() == EntityType.PLAYER){
Player player = (Player)event.getEntity();
ItemStack item = player.getItemInHand();
if(item == null) return;
if(item.getType() == Material.DIAMOND_SWORD){
if(player.isBlocking()){

int damage = event.getDamage();
int minus = 5;

event.setDamage(damage - minus);
}
}
}
}
}
Мб сработает.
Возможно тс хочет такое не только с мечом, но и с досками, например, где уже ванильные методы не помогут.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх