WorldEdit Api

Dieses Thema im Forum "Programmierung" wurde erstellt von dani7998, 26. Juni 2013.

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

    dani7998

    Registriert seit:
    8. Juli 2012
    Beiträge:
    30
    Hallo Leute ich suchen eine Möglich keit wie ich per Worldedit blöcke über ein Plugin setzte weil mein code den ich geschrieben habe laggs auf den ganzen Server veruhrsacht. Hatt einer eine Idee wie ich mit 2 Locations per Worldedit eine Fläsche setzte?

    mfg dani7998
     
    #1
    1 Person gefällt das.
  2. Sn0wBlizz4rd
    Offline

    Sn0wBlizz4rd

    Registriert seit:
    26. September 2012
    Beiträge:
    424
    Minecraft:
    Sn0wBlizz4rd
    Wieso mit WorldEdit? Mache einfach zwei for-loops mit x und y, und lasse per <Location>.getBlock().setType(Material.STONE); den Block setzen. Oder meinst du Schematics? Erkläre bitte genauer!
     
    #2
    1 Person gefällt das.
  3. oOFlaashOo
    Offline

    oOFlaashOo

    Registriert seit:
    3. Oktober 2012
    Beiträge:
    112
    Ort:
    /home
    Minecraft:
    oOFlaashOo
    Ja ich glaube er meint das. Es soll eine 1 hohe Fläche zu Blättern gesetzt werden
     
    #3
  4. Baba43
    Offline

    Baba43 Ehem. Teammitglied

    Registriert seit:
    5. November 2012
    Beiträge:
    589
    WorldEdit macht es nicht besser, das lagt dort genau so.
     
    #4
  5. games6471
    Online

    games6471

    #5
  6. oOFlaashOo
    Offline

    oOFlaashOo

    Registriert seit:
    3. Oktober 2012
    Beiträge:
    112
    Ort:
    /home
    Minecraft:
    oOFlaashOo
    Also es ist halt vom Prinzip so etwas ähnliches wie Spleef wo dann nach/vor jeder Runde die Arena neu gesetzt werden muss
     
    #6
  7. Chrisliebaer
    Online

    Chrisliebaer

    Ihr seid hier alle am rumrätseln. Wartet doch lieber einfach mal, biss der TE wieder online ist und genauer schreibt, was er eigentlich haben möchte. Bereits die erste Antwort enthielt alles, was man braucht um das Problem zu lösen, wenn er mehr möchte, muss er halt nochmal genauer nachfragen.
     
    #7
  8. dani7998
    Offline

    dani7998

    Registriert seit:
    8. Juli 2012
    Beiträge:
    30
    Nee halt nicht weil ich das getestet habe obs laggt oder nicht.
     
    #8
  9. Chrisliebaer
    Online

    Chrisliebaer

    https://github.com/sk89q/worldedit/.../sk89q/worldedit/commands/RegionCommands.java

    Wenn du ähnliche Performance wie Worldedit willst, dann schau dir doch mal an, wie Worldedit das macht.

    - - - Aktualisiert - - -

    Da mich das Forum nicht editieren lässt. Hier die Stelle im Code:

    https://github.com/sk89q/worldedit/blob/master/src/main/java/com/sk89q/worldedit/EditSession.java
    Code (Text):
    1.  
    2.     public int setBlocks(Region region, BaseBlock block)
    3.             throws MaxChangedBlocksException {
    4.         int affected = 0;
    5.  
    6.         if (region instanceof CuboidRegion) {
    7.             // Doing this for speed
    8.             Vector min = region.getMinimumPoint();
    9.             Vector max = region.getMaximumPoint();
    10.  
    11.             int minX = min.getBlockX();
    12.             int minY = min.getBlockY();
    13.             int minZ = min.getBlockZ();
    14.             int maxX = max.getBlockX();
    15.             int maxY = max.getBlockY();
    16.             int maxZ = max.getBlockZ();
    17.  
    18.             for (int x = minX; x <= maxX; ++x) {
    19.                 for (int y = minY; y <= maxY; ++y) {
    20.                     for (int z = minZ; z <= maxZ; ++z) {
    21.                         Vector pt = new Vector(x, y, z);
    22.  
    23.                         if (setBlock(pt, block)) {
    24.                             ++affected;
    25.                         }
    26.                     }
    27.                 }
    28.             }
    29.         } else {
    30.             for (Vector pt : region) {
    31.                 if (setBlock(pt, block)) {
    32.                     ++affected;
    33.                 }
    34.             }
    35.         }
    36.  
    37.         return affected;
    38.     }
     
    #9
  10. dani7998
    Offline

    dani7998

    Registriert seit:
    8. Juli 2012
    Beiträge:
    30
    Das ist ein Worldedit Log ich will aber mit Worldedit wassetzte aber wenn jemand eine gute idee hatte das anders gut zu lösenen habe ich keine problehem dar mit schreibts einfach ihr rein.
     
    #10
  11. games6471
    Online

    games6471

    Wie bereits gesagt:
    Dort werden in einstellbaren Intervallen die Blöcke gesetzt. In jedem Intervall wird nur eine bestimmte Anzahl an Blöcken verändert. So bleibt Bukkit noch genügend Leistung übrig, um die restlichen Aufgaben zu bewältigen.
     
    #11
  12. Cabraca
    Online

    Cabraca

    #12
  13. dani7998
    Offline

    dani7998

    Registriert seit:
    8. Juli 2012
    Beiträge:
    30
    Also ich habe es jetzt zimlich lag frei gemacht aber es Laggt noch immer etwas aber egal hir ist der Code

    Code (Text):
    1. public static void onStartWhile(){
    2.         String Arena = GameManager.Arena;        
    3.        
    4.         //Load Cordinats
    5.         int y = Leaves.cfg.getInt("Arenen."+Arena+".Set.y");
    6.         World World = Bukkit.getWorld(Leaves.cfg.getString("Arenen."+Arena+".Set.World"));
    7.        
    8.         int x1 = Leaves.cfg.getInt("Arenen."+Arena+".Set.x1");
    9.         int z1 = Leaves.cfg.getInt("Arenen."+Arena+".Set.z1");
    10.        
    11.         int x2 = Leaves.cfg.getInt("Arenen."+Arena+".Set.x2");
    12.         int z2 = Leaves.cfg.getInt("Arenen."+Arena+".Set.z2");
    13.  
    14.         int x = 0;
    15.         int z = 0;
    16.        
    17.         x=x1;
    18.         z=z1;
    19.        
    20.        
    21.         while (true){
    22.             if(!(x == x2 && z == z2)){
    23.                 Location Block = new Location(World, x, y, z);
    24.                 Block.getBlock().setTypeId(18);
    25.                
    26.                 if(z == z2){
    27.                     x++;
    28.                     z=z1;
    29.                 }else{
    30.                     z++;
    31.                 }
    32.                
    33.             }else{
    34.  
    35.                 return;
    36.             }
    37.         }
    38.        
    39.  
    40.        
    41.     }

    mfg dani7998

    CLOSE
     
    #13
Status des Themas:
Es sind keine weiteren Antworten möglich.