@EventHandler(ignoreCancelled = true)
public void onDamage(EntityDamageByEntityEvent e) {
final Entity entity = e.getEntity();
final Entity damager = e.getDamager();
if (!(entity instanceof Player))return;
if (damager instanceof Projectile) {
final ProjectileSource shooter = ((Projectile) damager).getShooter();
if (shooter instanceof Player) {
final Player attacker = (Player) shooter;
final Player victim = (Player) entity;
attacker.sendMessage("zabrano damage! "+e.getDamage()+" teraz hp tego gracza wynosi: "
+ (victim.getHealth()/2));
return;
}
}
}
sprobuj. (victim.getHealth() mozesz dac w decimalformat)
i nie wiem czy victim.getHealth() to bedzie od razu z 'zadanym damage', jezeli nie to zrob sobie cos typu
private double getHealth(Player target, double givenDamage) {
final double health = ((target.getHealth()/2)-givenDamage);
return health;
}
no i mozesz tez sprawdzac czy nie jest na minusie itd
Hmmm, ale co jeżeli taki gracz ma goda, friendlyfire, albo gamemode? Nie wiem czy ProjectileHitEvent byłby lepszy od EntityDamageByEntityEvent - w tym drugim wiadomo, że normalnie powinien otrzymać damage (jeżeli event nie został anulowany). Dodatkowo można także obliczyć ile damage graczowi zadano, czy gracz umrze po tym uderzeniu, itd.
Witaj. Pierw odpowiedz - czy zależy Ci na różnych dodatkach w postaci pluginów, głębszego konfigurowalnego pliku, itd?
Czy po prostu ma to być zwykły serwer, bez dodatków opierający się na wyłącznie minecraftowych komendach?
@Myrlakusss cały skrypt jest wyjątkowy i jedyny w swoim rodzaju, ma coś w sobie co mnie do niego przyciąga. Myślę, że zostaniesz najlepszym skrypterem, a co do skryptu miesiąca to wystąpił jakiś błąd i twój powinien nim zostać. Pozdrawiam, oby więcej tak unikalnych skryptów.