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!
  2. Möchtest du für deinen Server werben und mehr Spieler finden, solltest du an unseren Bauwerk Showcases teilnehmen. Damit erreichst du innerhalb von 14 Tagen bis zu 50.000 Aufrufe. Mehr dazu hier.

Random Spieler verteilen

Dieses Thema im Forum "Programmierung" wurde erstellt von gmb32, 14. November 2017.


  1. gmb32
    Offline

    gmb32

    Registriert seit:
    17. Juni 2014
    Beiträge:
    60
    Hey,
    ich möchte wenn das Event gestartet alle die beigetreten sind (ArrayList) aufgeteilt werden in 2 gleich große Teams.
    Dabei soll die Verteilung zufällig sein.

    Mein bisheriger Code(nicht ganz funktionable):
    Code (Javascript):
    1.  
    2. public static boolean event = false;
    3.     public static ArrayList<Player> list = new ArrayList<>();
    4.     public static ArrayList<Player> team1 = new ArrayList<>();
    5.     public static ArrayList<Player> team2 = new ArrayList<>();
    6.     public static ArrayList<Player> ingame = new ArrayList<>();
    7.  
    8. if(list.size() >= 0) {
    9.                                 Bukkit.broadcastMessage("§7[§.§7] Das Event wurde §agestartet!\n§7 Die Teams wurden aufgeteilt! ");
    10.                                 Bukkit.broadcastMessage("§7[§.§7] Team 1: Verteidigen!");
    11.                                 Bukkit.broadcastMessage("§7[§.§7] Team 2: Angreifen!");
    12.                                 int half = list.size() / 2;
    13.                                 for(int i2= 0;i2<list.size(); i2++) {
    14.                                     Player target2 = list.get(i2);
    15.                                     if(target2 != null) {
    16.                                      
    17.                                         for(int i = 0;i< half; i++) {
    18.                                             ///VERTEIDIGER!
    19.                                        
    20.                                             Player target = list.get(i);
    21.                                             File file = new File("plugins//.//Event//Punkte.yml");
    22.                                             YamlConfiguration cfg = new YamlConfiguration().loadConfiguration(file);
    23.                                             Location loc = target.getLocation();
    24.                                             loc.setX(cfg.getDouble("1.X"));
    25.                                             loc.setY(cfg.getDouble("1.Y"));
    26.                                             loc.setZ(cfg.getDouble("1.Z"));
    27.                                             loc.setYaw((float) cfg.getDouble("1.Yaw"));
    28.                                             loc.setPitch((float) cfg.getDouble("1.Pitch"));
    29.                                             World welt = Bukkit.getWorld(cfg.getString("1.Welt"));
    30.                                             loc.setWorld(welt);
    31.                                             target.teleport(loc);
    32.                                             Inventory inv = Bukkit.createInventory(null, 9,"§eWähle ein Kit");
    33.                                             ItemStack item = new ItemStack(Material.IRON_SWORD);
    34.                                             ItemMeta meta = item.getItemMeta();
    35.                                             meta.setDisplayName("§7Kämpfer");
    36.                                             item.setItemMeta(meta);
    37.                                             ///
    38.                                             ItemStack item2 = new ItemStack(Material.BOW);
    39.                                             ItemMeta meta2 = item2.getItemMeta();
    40.                                             meta2.setDisplayName("§7Jäger");
    41.                                             item2.setItemMeta(meta2);
    42.                                             ///
    43.                                             ItemStack item3 = new ItemStack(Material.POTION);
    44.                                             item3.setDurability((byte)16385);
    45.                                             ItemMeta meta3 = item3.getItemMeta();
    46.                                             meta3.setDisplayName("§7Heiler");
    47.                                             item3.setItemMeta(meta3);
    48.                                             inv.setItem(0, item);
    49.                                             inv.setItem(8, item3);
    50.                                             inv.setItem(4, item2);
    51.                                             target.openInventory(inv);
    52.                                             target.sendMessage("§7[§.§7] Du bist dem Team Verteidiger §a§lbeigetreten!");
    53.                                             team1.add(target);
    54.                                             list.remove(i);
    55.                                             ingame.add(target);
    56.                                          
    57.                                         }
    58.                                      
    59.                                         for(int i= 0; i < list.size(); i++) {
    60.                                             ///ANGREIFER!!!
    61.                                             Player target = list.get(i);
    62.                                             File file = new File("plugins//.//Event//Punkte.yml");
    63.                                             YamlConfiguration cfg = new YamlConfiguration().loadConfiguration(file);
    64.                                             Location loc = target.getLocation();
    65.                                             loc.setX(cfg.getDouble("2.X"));
    66.                                             loc.setY(cfg.getDouble("2.Y"));
    67.                                             loc.setZ(cfg.getDouble("2.Z"));
    68.                                             loc.setYaw((float) cfg.getDouble("2.Yaw"));
    69.                                             loc.setPitch((float) cfg.getDouble("2.Pitch"));
    70.                                             World welt = Bukkit.getWorld(cfg.getString("2.Welt"));
    71.                                             loc.setWorld(welt);
    72.                                             target.teleport(loc);
    73.                                             Inventory inv = Bukkit.createInventory(null, 9,"§eWähle ein Kit");
    74.                                             ItemStack item = new ItemStack(Material.IRON_SWORD);
    75.                                             ItemMeta meta = item.getItemMeta();
    76.                                             meta.setDisplayName("§7Kämpfer");
    77.                                             item.setItemMeta(meta);
    78.                                             ///
    79.                                             ItemStack item2 = new ItemStack(Material.BOW);
    80.                                             ItemMeta meta2 = item2.getItemMeta();
    81.                                             meta2.setDisplayName("§7Jäger");
    82.                                             item2.setItemMeta(meta2);
    83.                                             ///
    84.                                             ItemStack item3 = new ItemStack(Material.POTION);
    85.                                             item3.setDurability((byte)16385);
    86.                                             ItemMeta meta3 = item3.getItemMeta();
    87.                                             meta3.setDisplayName("§7Heiler");
    88.                                             item3.setItemMeta(meta3);
    89.                                             inv.setItem(0, item);
    90.                                             inv.setItem(8, item3);
    91.                                             inv.setItem(4, item2);
    92.                                             target.openInventory(inv);
    93.                                             target.sendMessage("§7[§.§7] Du bist dem Team Angreifer §a§lbeigetreten!");
    94.                                             team2.add(list.get(i));
    95.                                             list.remove(i);
    96.                                             ingame.add(target);
    97.                                          
    98.                                         }
    99.                                     }else {
    100.                                         list.remove(target2);
    101.                                     }
    102.                              
    103.                                 }
    104.                              
    105.                             }else {
    106.                                 p.sendMessage("§7[§.§7] Zu wenig Teilnehmer! "+list.size());
    107.                             }
    Das Problem dabei ist das wenn es eine ungerade Zahl ist (3) nur 2 aufgeteilt werden und der 3. garnicht

    LG Axtkämpfer
     
  2. Werbung
    Online

    Werbung

  3. Baba43
    Offline

    Baba43 Ehem. Teammitglied

    Registriert seit:
    5. November 2012
    Beiträge:
    737
    Am besten räumst du deinen Code erstmal so auf, dass du jeglichen Code entfernst, der nicht mit der Verteilung zu tun hat. Dann versuchst du einmal im Kopf nachzuvollziehen, was der Code eigentlich macht und falls dir das zu schwer fällt, baust du Debug-Meldungen ein, um den Code-Fluss zu verstehen (System.out.println).

    Falls du dann nicht weiter kommst, poste bitte den auf das Problem reduzierten Quelltext noch einmal hier :)
     
  4. KaeseKuchen_DEV
    Offline

    KaeseKuchen_DEV

    Registriert seit:
    11. Mai 2016
    Beiträge:
    47
    Geschlecht:
    männlich
    Minecraft:
    KaeseKuchenDEV
    Wenn du Eclipse benutzt würde ich dir empfehlen einmal Strg+Shift+F zu drücken dadurch wird dein Code einmal formatiert und es ist leichter zu verstehen. Bei größeren Codes würde ich dir auch empfehlen den Code auf Pastebin oder Github hochzuladen und dann den Link hier einfügen. Dann bekommst du bestimmt mehr Hilfe.
    MfG KaeseKuchenDEV