X
Weil dus vom Block abfrägst... Lass das mit dem Block weg und mach getY()
Das wird dir so keiner sagen...Könnte jemand mal zeigen wie das mit dem AntiKillaura funktioniert ?
Hast du das Event überhaupt richtig registriert?Beides hat nicht geklappt xDD
Man braucht dafür ~ 3 Packets.Könnte jemand mal zeigen wie das mit dem AntiKillaura funktioniert ?
Sicher das es klappt?
Probier mal ne globale Nachricht auszugeben wenn ein entity Schaden bekommt (BTW bin grad am Handy und müde daher Verlass dich ned auf meine Aussagen)
Warum machst du das nicht so?Also so wird ein Event registriert, ja! Hab mal geschrieben, dass wenn ein Entity so einen void schaden bekommt, eine bukkit broadcast ausgegeben werden soll... Klappt nicht...
@EventHandler
public void moving(PlayerMoveEvent event) {
Player player = event.getPlayer();
if(player.getLocation().getY() < -20) {
player.teleport(new Location(Bukkit.getWorld("world"), 0D, 0D, 0D));
}
}
Das zieht viel mehr Leistung....Warum machst du das nicht so?
Code:@EventHandler public void moving(PlayerMoveEvent event) { Player player = event.getPlayer(); if(player.getLocation().getY() < -20) { player.teleport(new Location(Bukkit.getWorld("world"), 0D, 0D, 0D)); } }
@EventHandler
public void dmg(EntityDamageEvent event) {
if(event.getEntity() instanceof Player) {
Player player = (Player) event.getEntity();
if(event.getCause() == EntityDamageEvent.DamageCause.VOID) {
player.teleport(new Location(Bukkit.getWorld("world"), 0D, 0D, 0D));
}
}
}
Bei mir funktioniert's. Hab's getestet.Passiert rein garnichts xD
Versuch selbst auf den Fehler zu kommen.zeig mir mal bitte wie du das Event registriert hast xD
@EventHandler
public void onHit(ProjectileHitEvent event) {
if(BilligeRageModeNachmache.getInstance().getGameState() == GameState.INGAME) {
if(event.getEntity().getType() == EntityType.ARROW) {
Player p = (Player) event.getEntity().getShooter();
if(event.getEntity().getShooter().equals(p)) {
World w = ((CraftWorld) p.getWorld()).getHandle();
Explosion explosion = new Explosion(w, ((CraftPlayer)p).getHandle(), event.getEntity().getLocation().getX(), event.getEntity().getLocation().getY(), event.getEntity().getLocation().getZ(), 10.0F, false, false);
explosion.a();
explosion.a(true);
event.getEntity().remove();
}
}
}
}
Versuch selbst auf den Fehler zu kommen.
Ich gebe dir einen Tipp. Groß & Kleinschreibungen sind in Java/Bukkit wichtig.
Du willst also, wenn der Shooter einen killt, dass er den Pfeil übergibt, den Kill bekommt + eine Explosion verursacht?Wie funktioniert die RageMode-Explosion? Ich versuche nunmehr seit 5 Tagen eine Explosion zu erzeugen, die JEDER HumanEntity schaden macht und wenn eine HumanEntity daran stirbt, dass dann der Shooter des Pfeils übergeben wird.
Bukkit.createExplosion() ermöglicht es, eine Explosion zu erstellen, BlockDamage aus zu machen, aber nicht, einen Spieler, bzw. den Shooter zu übergeben. Spieler bekommen Schaden.
PacketPlayOutWorldExplosion macht Geräusche, keinen Player/HumanEntity-Damage und auch keine Partikel (sie sind in den Optionen eingeschaltet)
Explosion funktioniert genauso schlecht. Aktueller Code:
PHP:@EventHandler public void onHit(ProjectileHitEvent event) { if(BilligeRageModeNachmache.getInstance().getGameState() == GameState.INGAME) { if(event.getEntity().getType() == EntityType.ARROW) { Player p = (Player) event.getEntity().getShooter(); if(event.getEntity().getShooter().equals(p)) { World w = ((CraftWorld) p.getWorld()).getHandle(); Explosion explosion = new Explosion(w, ((CraftPlayer)p).getHandle(), event.getEntity().getLocation().getX(), event.getEntity().getLocation().getY(), event.getEntity().getLocation().getZ(), 10.0F, false, false); explosion.a(); explosion.a(true); event.getEntity().remove(); } } } }
Hoffe, mir kann hier einer helfen.
Evtl. gibt mir @DREAMZii ja auch einen kleinen Tipp, was ich falsch mache, bzw. wie es in RageMode gemacht wird.
Ich erwähne natürlich auch, dass dieses Plugin nicht veröffentlicht wird, also freut euch nicht, wenn ihr gedacht habt, dass ihr den Code bekommt
Mit freundlichen Grüßen,
ilouHD
Ja gut... Bevor ich den Fehler gefunden habe müssen manche wieder zur Schule... Mein Gehirn ist gleich fertig für den Tag... Bitte sags einfach xD
public void OnEnable(){
System.out.println("By 3LaF -- on --");
PluginManager pm = Bukkit.getPluginManager();
pm.registerEvents(this, this);
}