• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Punkte beim Player Killen

Mrcookie008

Braumeister
Registriert
15 Dezember 2011
Beiträge
380
Diamanten
0
Minecraft
xCookieZz oder Mrcookie008 (Beides Premium)
Hey Leute:)
Da ich verzweifelt auf mein Java Buch warte, damit solche dummen Fragen nichtmehr gestellt werden müssen, frage ich hier einfach nochmal nach:

Wie bekomme ich es hin (Via Code in Eclipse), wenn ein Player gekillt wird (über den Eventhandler z.B), dass er dann den "Killer" des gekillten erkennt und diesem dann 2 Punkte gibt, die er dann mit z.B /punkte aufrufen kann...

Hätte da jemand ein Codebeispiel zur Hand? Wäre echt nett :)
LG.
 

paister3

Minecrafter
Registriert
17 März 2013
Beiträge
22
Diamanten
0
Minecraft
Paister
Hier wäre ein Beispiel:
Code:
	public static HashMap<Player, Integer> stats = new HashMap<Player, Integer>();
	@EventHandler
	public void onEntityDeathEvent(EntityDeathEvent e){
		if(e.getEntity() instanceof Player && e.getEntity().getKiller() instanceof Player){
			Player dmg = (Player)e.getEntity().getKiller();
                       //Das solltest du verstehen, jetzt nurnoch den Spielern Punkte geben z.B. in einer HashMap
                       stats.put(dmg, stats.get(dmg)+2);
     }
   }
Code:
	@Override
	public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args) {
     	if(cmd.getName().equalsIgnoreCase("punkte")){
            if(sender instanceof Player){
             Player p = (Player)sender;
             p.sendMessage("§4§l"+ stats.get(dmg)); 
    }
  }
}
Hier fügt er bei jedem Kill dem Killer 2 Punkte hinzu und bei /punkte gibt er die Anzahl seiner Punkte wieder.
Sollte an sich so funktionieren, habs nicht getestet.
Lg Paister ;)
 
G

games6471

Guest
Hier wäre ein Beispiel:

Tut mir Leid paister3, aber dein Beitrag Code enthält Fehler. Nämlich ist erstens getKiller immer ein Player, aber (jetzt zum zweiten Punkt) wenn der gestorbene Spieler nicht vom einem anderen Spieler getötet wurde, ist dieser Wert null und dann kommt es zu einem Performance Problem.

Ebenso sind im Code noch weiter Bestandteile, die zu einem NullPointer führen können.
 
Zuletzt bearbeitet von einem Moderator:

paister3

Minecrafter
Registriert
17 März 2013
Beiträge
22
Diamanten
0
Minecraft
Paister
Wie gesagt, ich habe den Code noch nicht so getestet...
mit dem .getKiller() hast du Recht, es ist immer ein Player, sry dass kannst du dir also sparen...
Wieso kommt es dann zu einer NullPointer? Wenn er kein Spieler ist, macht das Plugin doch gar nichts?
 
G

games6471

Guest
Ok, du hast Recht. Ich habe das instanceof übersehen. Aber trotzdem kann man dazu noch was sagen. Ein Überprüfung mit instanceof anstatt einem einfach != null oder == null ist nicht gut für die Performance.
 
Oben