1. 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!

ServerPlugin Distance von Spieler

Dieses Thema im Forum "Programmierung" wurde erstellt von Selfmade, 17. Februar 2013.

  1. Selfmade
    Offline

    Selfmade

    Registriert seit:
    3. Februar 2013
    Beiträge:
    11
    Ich habe ein kleines problem

    Was ich machen möchte:
    Wenn der Spieler den Command /heal eingibt dann sollen allen in den Radius von 100 Blöcken geheilt werden

    Der Code:

    Code (Text):
    1.  
    2. if(command.getName().equalsIgnoreCase("heal")){
    3.     if(args.length == 1){
    4.         Player player = (Player)sender;
    5.         for(Player p : Bukkit.getOnlinePlayers()){
    6.             /*
    7.              * Wie finde ich die Distance heraus
    8.             */
    9.                         p.setHealth(20);
    10.         }
    11.         }
    12. }
    13.  
    Meine Problem:

    Wie finde ich die Distance heraus
     
    #1
  2. Werbung
    Online

    Werbung

  3. Calenria
    Offline

    Calenria

    Registriert seit:
    28. Juli 2012
    Beiträge:
    386
    Minecraft:
    Calenria
    Code (Text):
    1.  
    2. final Location loc = player.getLocation();
    3.  
    4. for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
    5.     final Location playerLoc = onlinePlayer.getPlayer().getLocation();
    6.     if (playerLoc.getWorld() != world) {
    7.         continue;
    8.     }
    9.     final double delta = playerLoc.distance(loc);
    10.     if (delta > 100) {
    11.         continue;
    12.     }
    13.     onlinePlayer.setHealth(20);
    14. }
    15.  
     
    #2
  4. squiby
    Offline

    squiby

    Registriert seit:
    23. November 2012
    Beiträge:
    8
    Ort:
    Österreich
    Einfachere Variante:
    Code (Text):
    1.  
    2. if(sender instanceof Player) {
    3.     Player heiler = (Player) sender;
    4.     Location mitte = heiler.getLocation();
    5.     Player[] spieler = this.getServer().getOnlinePlayers();
    6.         for (int i = 0; i < spieler.length; i++) {
    7.             if((spieler[i].getLocation().distance(mitte) <= 100) && (spieler[i].getWorld().getName().equals(heiler.getWorld().getName()))) {
    8.                             spieler[i].setHealth(20);
    9.                         }
    10.                   spieler[i].setHealth(20);
    11.             }
    12.                 }
    13. }
    14.  
    + Weltenabgleich
     
    #3
  5. Calenria
    Offline

    Calenria

    Registriert seit:
    28. Juli 2012
    Beiträge:
    386
    Minecraft:
    Calenria
    Ohne Weltcheck wird dir das unter Umständen um die Ohren fliegen, und ansonsten ist das gleiche oO
     
    #4