Сделать атаку и установить источник урона

Версия Minecraft
1.7.10
27
1
2
Добрый день. Шарился по классам враждебных Энтити и так и не понял, где метод, отвечающий за нанесение урона игроку.
Пример: я сделал свой EntityThrowable, который создается в мире при использовании одного предмета и хочу сделать так, чтобы при соприскосновении с другим Энтити он наносил урон (определенный тип) и определял источником урона игрока, который воспользовался предметом (Так, чтоб в Форджевских ивентах можно было доставать источник урона event.source.getSourceOfDamage()). Буду благодарен за любую полезную инфу.
 
Решение
где метод, отвечающий за нанесение урона игроку.
В логике враждебности.
я сделал свой EntityThrowable
Java:
Entity#attackEntityFrom(new EntityDamageSourceIndirect("bullet", this, getThrower()).setProjectile(), bullet.getDamage());
Entity# - это кому урон. this - кто нанёс, getThrower() - от кого имени.
чтобы при соприскосновении с другим Энтити он наносил урон (определенный тип)
onImpact
EntityBullet.java#L60
EntityBall.java#L49

Eifel

Модератор
1,623
78
608
Там есть метод onImpact, для нанесения урона. Игрока, который кинул энтити можешь просто передавать в конструктор и хранить в энтити (там вроде даже есть дефолтный). И при нанесении урона передаешь такой сурс: DamageSource.causePlayerDamage(игрок)
 

timaxa007

Модератор
5,831
409
672
где метод, отвечающий за нанесение урона игроку.
В логике враждебности.
я сделал свой EntityThrowable
Java:
Entity#attackEntityFrom(new EntityDamageSourceIndirect("bullet", this, getThrower()).setProjectile(), bullet.getDamage());
Entity# - это кому урон. this - кто нанёс, getThrower() - от кого имени.
чтобы при соприскосновении с другим Энтити он наносил урон (определенный тип)
onImpact
EntityBullet.java#L60
EntityBall.java#L49
 
Последнее редактирование:
Сверху