Random Teleportation

Dieses Thema im Forum "Programmierung" wurde erstellt von HeadiPlays, 3. März 2014.

  1. HeadiPlays
    Offline

    HeadiPlays

    Registriert seit:
    8. Februar 2014
    Beiträge:
    45
    Ort:
    Bayern
    Minecraft:
    HeadShotNoob
    Hallöchen Zusammen ;) ,

    ich bin gerade dabei ein kleines MiniGame zu programmieren, jedoch bin ich schon bei meinem ersten Problem,

    ich habe in eine Config (locations.yml) die ganzen Coordinaten für Lobby und Spawns gesetzt,
    jetzt möchte ich, dass die spieler (gesamt 12) an einen von diesen Orten teleportiert wird, wenn mein sheduler abgelaufen ist!

    Danke :D
     
    #1
  2. Paulomart
    Offline

    Paulomart

    Registriert seit:
    3. November 2013
    Beiträge:
    148
    Ort:
    C:/Eclipse/Workspace/
    Minecraft:
    Paulomart
    Code (Text):
    1.     public static void teleport(Player player, List<Location> locations){
    2.         Random random = new Random();
    3.         player.teleport(locations.get(random.nextInt(locations.size())));
    4.     }
    5.    
    6.     public static void teleport(List<Player> players, List<Location> locations){
    7.         int locI = 0;
    8.         for (Player player : players){
    9.             if (locI >= locations.size()){
    10.                 locI = 0;
    11.             }
    12.             player.teleport(locations.get(locI));
    13.             locI++;
    14.         }
    15.     }
    Du musst einfach nur teleport(players, locations); benutzen
     
    #2
  3. HeadiPlays
    Offline

    HeadiPlays

    Registriert seit:
    8. Februar 2014
    Beiträge:
    45
    Ort:
    Bayern
    Minecraft:
    HeadShotNoob
    Und wie liste ich die locations auf, dass das Script sie annimmt?
     
    #3
  4. Paulomart
    Offline

    Paulomart

    Registriert seit:
    3. November 2013
    Beiträge:
    148
    Ort:
    C:/Eclipse/Workspace/
    Minecraft:
    Paulomart
    Wie ist deine Config aufgebaut?
     
    #4
  5. HeadiPlays
    Offline

    HeadiPlays

    Registriert seit:
    8. Februar 2014
    Beiträge:
    45
    Ort:
    Bayern
    Minecraft:
    HeadShotNoob
    lobby:
    world: world
    x: 0.40489244218415604
    y: 66.0
    z: 0.514784466429347
    yaw: -270.15405
    pitch: 72.74983
    spawn:
    players:
    '1':
    world: world
    x: -2.3906191584904084
    y: 66.0
    z: 0.5182044720109216
    yaw: -270.15405
    pitch: 72.74983
    '2':
    world: world
    x: -2.3906191584904084
    y: 66.0
    z: 0.5182044720109216
    yaw: -270.15405
    pitch: 72.74983
    '3':
    world: world
    x: -2.3906191584904084
    y: 66.0
    z: 0.5182044720109216
    yaw: -270.15405
    pitch: 72.74983
    '4':
    world: world
    x: -2.3906191584904084
    y: 66.0
    z: 0.5182044720109216
    yaw: -270.15405
    pitch: 72.74983
    '5':
    world: world
    x: -2.3906191584904084
    y: 66.0
    z: 0.5182044720109216
    yaw: -270.15405
    pitch: 72.74983
    '6':
    world: world
    x: -2.3906191584904084
    y: 66.0
    z: 0.5182044720109216
    yaw: -270.15405
    pitch: 72.74983
    '7':
    world: world
    x: -2.3906191584904084
    y: 66.0
    z: 0.5182044720109216
    yaw: -270.15405
    pitch: 72.74983
    '8':
    world: world
    x: -2.3906191584904084
    y: 66.0
    z: 0.5182044720109216
    yaw: -270.15405
    pitch: 72.74983
    '9':
    world: world
    x: -2.3906191584904084
    y: 66.0
    z: 0.5182044720109216
    yaw: -270.15405
    pitch: 72.74983
    '10':
    world: world
    x: -2.3906191584904084
    y: 66.0
    z: 0.5182044720109216
    yaw: -270.15405
    pitch: 72.74983
    '11':
    world: world
    x: -2.3906191584904084
    y: 66.0
    z: 0.5182044720109216
    yaw: -270.15405
    pitch: 72.74983
    '12':
    world: world
    x: -2.3906191584904084
    y: 66.0
    z: 0.5182044720109216
    yaw: -270.15405
    pitch: 72.74983
     
    #5
  6. Paulomart
    Offline

    Paulomart

    Registriert seit:
    3. November 2013
    Beiträge:
    148
    Ort:
    C:/Eclipse/Workspace/
    Minecraft:
    Paulomart
    Code (Text):
    1.     public List<Location> loadLocations(String path){
    2.         List<Location> locations = new ArrayList<Location>();
    3.         for (String key : config.getConfigurationSection(path).getKeys(false)){
    4.             locations.add(loadLocation(path+"."+key));
    5.         }
    6.         return locations;
    7.     }
    8.     /**
    9.      * Loads a location out of the Config
    10.      * @param path Path in the Configfile
    11.      * @return Location
    12.      */
    13.     public Location loadLocation(String path){
    14.         double x = config.getDouble(path + ".x");
    15.         double y = config.getDouble(path + ".y");
    16.         double z = config.getDouble(path + ".z");
    17.         float yaw   = (float) config.getDouble(path + ".jaw");
    18.         float pitch = (float) config.getDouble(path + ".pitch");
    19.                 World world = Bukkit.getServer().getWorld(path+".world");
    20.  
    21.         Location loc = new Location(world, x, y, z);
    22.         loc.setPitch(pitch);
    23.         loc.setYaw(yaw);
    24.        
    25.         return loc;
    26.     }
    27.  
    damit sollte das gehen:

    Code (Text):
    1. List<Locations> locations = loadLocations("spawn.players");
    2. ...
    3. teleport(players, locations);
    Du solltest aber locations irgentwo speichern, damit man nicht immer auf die Config zugreifen muss..
     
    #6
  7. HeadiPlays
    Offline

    HeadiPlays

    Registriert seit:
    8. Februar 2014
    Beiträge:
    45
    Ort:
    Bayern
    Minecraft:
    HeadShotNoob
    Hast du irgendwie Skype oder so?

    Ich verstehe irgendwie nicht so ganz, was ich machen muss :D
     
    #7
  8. Mario52
    Offline

    Mario52

    Registriert seit:
    19. August 2013
    Beiträge:
    511
    Minecraft:
    Mario_52
    Schau mal in deine PNs
     
    #8
  9. Paulomart
    Offline

    Paulomart

    Registriert seit:
    3. November 2013
    Beiträge:
    148
    Ort:
    C:/Eclipse/Workspace/
    Minecraft:
    Paulomart
    1. Locations aus Config in List<Locations> locations laden
    2. Zum Tpn einfach die liste nehmen und die Spieler.

    Wo ist das Problem?
     
    #9