PlayerDeathEvent gesucht

Dieses Thema im Forum "Programmierung" wurde erstellt von Kombustor, 4. April 2013.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Kombustor
    Offline

    Kombustor

    Registriert seit:
    1. Februar 2013
    Beiträge:
    55
    Ich versuche zurzeit einen Sound dort abzuspielen wo ein Spieler von einem anderen Spieler gekillt wird!

    Code (Text):
    1. Player death = event.getEntity();
    2.         Location location = event.getLocation();
    3.         String playername = event.getPlayer.getName();
    4.         Bukkit.getPlayer(playername).getWorld().playSound(location,Sound.BLAZE_DEATH,1, 0);
    Hiermit habe ich es versucht aber es funktioniert nicht!

    Weiß jemand Rat?
     
    #1
  2. games6471
    Online

    games6471

    1. Wieso holst du dir noch ein Player-Objekt, wenn du eins bereits im Speicher hast.

    Code (Text):
    1. [COLOR="#FF0000"]Player death = event.getEntity();[/COLOR]
    2.         Location location = event.getLocation();
    3.         String playername = event.getPlayer.getName();
    4.         [COLOR="#FF0000"]Bukkit.getPlayer(playername)[/COLOR].getWorld().playSound(location,Sound.BLAZE_DEATH,1, 0);
    2. Du weisst schon, dass 3. Parameter die Lautstärke ist?
     
    #2
  3. Kombustor
    Offline

    Kombustor

    Registriert seit:
    1. Februar 2013
    Beiträge:
    55
    Stimmt die Lautstrke -.-

    Ich habe jetzt konkret keinen Plan wie ich den Code verändern muss!

    Im Moemtn hab ich nun dies:

    Code (Text):
    1.     @EventHandler
    2.     public void DeathEvent(PlayerDeathEvent e){
    3.       if(e.getEntity().getKiller() instanceof Player && e.getEntity() instanceof Player){
    4.           Player killer = e.getEntity().getKiller();
    5.           String name = killer.getName();
    6.       }
    Und jetzt will ich halt einen Sound abspielen lassen :O
     
    #3
  4. games6471
    Online

    games6471

    Ich empfehle es dir nicht mit instanceof getKiller() zu überprüfen, da du es mit einer != null Überprüfung viel performanter lösen kannst.
    Außerdem ist event.getEntity() ohne Ausnahmen ein Player.
     
    #4
  5. Kombustor
    Offline

    Kombustor

    Registriert seit:
    1. Februar 2013
    Beiträge:
    55
    Sorry ich verstehe nicht was ud meinst, bin ein ziemlicher Noob, bzw Anfänger

    hättest du nicht einen Code :p
     
    #5
  6. games6471
    Online

    games6471

    Ok, dann Schritt nach Schritt.

    Wieso überprüfst du, ob e.getEntity() eine Instanz vom Typ Player ist? Dies brauchst du gar nicht, da gar kein anderer Typ bei e.getEntity ausser Player zurück gegeben wird.
     
    #6
  7. Kombustor
    Offline

    Kombustor

    Registriert seit:
    1. Februar 2013
    Beiträge:
    55
    Stimmt, und so?

    Code (Text):
    1. @EventHandler
    2.     public void DeathEvent(PlayerDeathEvent e){
    3.           Player killer = e.getEntity().getKiller();
    4.           String name = killer.getName();
    5.       }
    Und wie bekomme ich dann den Sound beim Tod hin?

    Ich will das der Killer den Sound hört
     
    #7
  8. games6471
    Online

    games6471

    Du solltest vorher noch überprüfen, ob .getKiller() nicht null ist, da der Spieler ja auch durch etwas anderes als durch einen Spieler getötet werden kann.
     
    #8
  9. Kombustor
    Offline

    Kombustor

    Registriert seit:
    1. Februar 2013
    Beiträge:
    55
    Und wie mache ich das? :O
     
    #9
  10. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    #10
    1 Person gefällt das.
  11. Kombustor
    Offline

    Kombustor

    Registriert seit:
    1. Februar 2013
    Beiträge:
    55
    Danke für diese hilfreiche Antwort

    Jetzt weiß ich wies geht :)

    [Ironie aus]

    Ich möchte nur ein klitzekleines Plugin schreiben welches einen Ton bei Tod ausgibt und das wars, dafür muss ich nicht Java lernen!

    Ich versuche mich einzuarbeiten!
     
    #11
  12. games6471
    Online

    games6471

    if (Objekt != null)
     
    #12
  13. Kombustor
    Offline

    Kombustor

    Registriert seit:
    1. Februar 2013
    Beiträge:
    55
    Also so funktioniert es nicht:

    Code (Text):
    1.     @EventHandler
    2.     public void DeathEvent(PlayerDeathEvent e){
    3.       if(e.getEntity().getKiller() instanceof Player && e.getEntity() instanceof Player){
    4.      
    5.       {
    6.           Player killer = e.getEntity().getKiller();
    7.           String name = killer.getName();
    8.           if (getKiller != 0)
    9.       }
    10.      
    11.  
     
    #13
  14. games6471
    Online

    games6471

    null und 0 sind völlig unterschiedlich.
     
    #14
  15. Kombustor
    Offline

    Kombustor

    Registriert seit:
    1. Februar 2013
    Beiträge:
    55
    -.- meine hyperintelligenz

    Gibt aber trotzdem Fehler

    getKiller cannot be resolved to a type
     
    #15
  16. games6471
    Online

    games6471

    Würde ich dir nicht empfehlen. Auch wenn es klein ist. Ohne Kenntnisse rotzt du einen richtigen sh** vor dich hin.

    http://minecraft-server.eu/board/showthread.php?13355

    Ich hab dir doch gesagt, dass dieser Teil raus soll:

    Code (Text):
    1.  if(e.getEntity().getKiller() instanceof Player && e.getEntity() instanceof Player){
     
    #16
  17. Kombustor
    Offline

    Kombustor

    Registriert seit:
    1. Februar 2013
    Beiträge:
    55
    Warum war der wieder drin? :O

    Code (Text):
    1.     @EventHandler
    2.     public void DeathEvent(PlayerDeathEvent e){
    3.         if (.getKiller != null){
    4.      
    5.       {
    6.           Player killer = e.getEntity().getKiller();
    7.           String name = killer.getName();
    8.          
    9.              
    10.              
    11.           }
    12.       }
    13.       }
    geht nicht :(

    oder so?
    Code (Text):
    1.     @EventHandler
    2.     public void DeathEvent(PlayerDeathEvent e){
    3.        
    4.      
    5.       {
    6.           Player killer = e.getEntity().getKiller();
    7.           String name = killer.getName();
    8.          
    9.  
    10.              
    11.           }
    12.      
    13.       if (.getKiller != null){
    14.       }
    15.       }
    16.  
     
    #17
  18. games6471
    Online

    games6471

    Was zum.........
    final Player killer = e.getEntity().getKiller();
    if (killer != null) {
    }
     
    #18
  19. Kombustor
    Offline

    Kombustor

    Registriert seit:
    1. Februar 2013
    Beiträge:
    55
    Jetzt wird nurnoch event rot unterstrichelt :(

    Code (Text):
    1.     @EventHandler
    2.     public void DeathEvent(PlayerDeathEvent e){
    3.        
    4.      
    5.       {
    6.  
    7. final Player killer = e.getEntity().getKiller();
    8. if (killer != null) {
    9.    
    10.     Location location = [B]event.[/B]getLocation();
    11.     killer.getWorld().playSound(location,Sound.BLAZE_DEATH,1, 0);
    12. }
     
    #19
  20. games6471
    Online

    games6471

    Mach die geschwunge Klammer vor final weg und kannst du auch Englisch, dann würde deine IDE bestimmt schon sagen warum es Rot unterstrichen ist.
     
    #20
Status des Themas:
Es sind keine weiteren Antworten möglich.