Помогите Получить урон предмета

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

SergK35

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Sergk35
Доброго времени суток, форумчане.
Я использую ивент EntityDamageByEntityEvent. Хотел получить урон предмета, который игрок держит в руке, но ,к сожалению, у getItemInHand нет метода getDamage.

Как можно по другому решить мою задачу?
 
Судя по гуглу - это можно сделать лишь вручную. Сделать какой-нибудь метод, который по Material будет определять урон. Геймпедия в помощь.
Не забудь про nbt-атрибуты и зачарования, если есть нужда в их просчете.
Если нужно конкретно в EntityDamageByEntityEvent - есть метод EntityDamageEvent#getDamage(), который возвращает урон до калькуляций брони. Но это неточно.
 
У события есть getDamage(), а есть getFinalDamage() уже со всеми подсчётам
 
У события есть getDamage(), а есть getFinalDamage() уже со всеми подсчётам
В обоих случаях метод возвращает значение после совершения действия. Мне нужно достать значение до самого действия.
К примеру, если в руках у игрока алмазный меч, то я должен получить число 7, если имеет какое-либо зачарование, то это число будет больше.
 
В обоих случаях метод возвращает значение после совершения действия. Мне нужно достать значение до самого действия.
К примеру, если в руках у игрока алмазный меч, то я должен получить число 7, если имеет какое-либо зачарование, то это число будет больше.
Там вроде был getOriginalDamage.
 
Не, все равно возвращает урон со всеми фичами. Мне нужно достать урон именно предмета, а не урон, который нанес игрок.
Ну проверяй если дамагер именно игрок, а не стрела какая-нить, значит, что он нанес урон рукой/мечом/еще каким-т предметом => можно просто взять предмет в основной руке и смотреть аттрибут его дамага.
 
В обоих случаях метод возвращает значение после совершения действия. Мне нужно достать значение до самого действия.
К примеру, если в руках у игрока алмазный меч, то я должен получить число 7, если имеет какое-либо зачарование, то это число будет больше.
Расскажи, что хочешь сделать в итоге - возможно подскажем другое решение твоей задачи
 
p.getPlayer - слови сначало плеера
Scavenger API (плагин) - проверь итем и отправь на обработку
Все как-бы кек, проблема решена...
 
Расскажи, что хочешь сделать в итоге - возможно подскажем другое решение твоей задачи
Зелья силы достаточно имбовые, поэтому хочу немного изменить их.
Хотел сделать следующее: брать урон предмета, который находится в руке+ прибавлять некоторое значение(для каждой мощности зелья оно свое)
 
Зелья силы достаточно имбовые, поэтому хочу немного изменить их.
Хотел сделать следующее: брать урон предмета, который находится в руке+ прибавлять некоторое значение(для каждой мощности зелья оно свое)
если выпито зелье, то
e.setDamage(e.getDamage() + bonus);
 
e.getDamage() / (1.3 * n), где n - уровень эффекта зелья.
Я, конечно, не уверен в формуле - 1й уровень зелья повышает урон на 130%, 2й - на 260, за уровни выше сказать не могу
Повешай 3й, 4й уровень зелья на себя и отправь себе сообщение, в котором придет нанесенный урон и сравни с изначальным, без зелья. Наверное, так
Но это костыль, да

Наверное, лучше брать урон от меча из руки, как говорилось выше
 
Последнее редактирование:
Назад
Верх