Jump to content

Recommended Posts

Hey Leute ich suche nach einer Methode, mit der ich Partikel blockförmig spanen kann z.b. von Koordinate X:-252 Y:64 Z:281 bis X:-256 Y:64  Z:285

erstellt. und das von beliebigen Koordinaten wie die von e.getClickedBlock().getLocation();. Ich Hoffe auf eure Hilfe :D

Share this post


Link to post
Share on other sites

...indem du für jeden Punkt den Partikel spawnen lässt?

Share this post


Link to post
Share on other sites
vor 1 Stunde schrieb boomer41:

...indem du für jeden Punkt den Partikel spawnen lässt?

Ja das könnte ich aber wenn ich z.b. ein 20x20 großes Quadrat habe wäre das zu viel code. Außerdem kann ich es dann nicht in beliebiger Größe machen. Weil die Größe von Spieler definiert werden sollen.

Share this post


Link to post
Share on other sites

Du machst für alle drei Richtungen jeweils ne Schleife und rechnest dann vom Anfang eben jenen Abstand immer drauf...

Share this post


Link to post
Share on other sites
for (int x = 0; x < 10; x++) {
    // Andere zwei Schleifen müssen auch noch rein.

    Location l = start.clone().add(x, y, z);
    // ...
}

 

Share this post


Link to post
Share on other sites

ok ... also ich versuche mein Problem genauer zu definieren. Also:

 

ich Hole mir die Locations im PlayerInteractEvent:

    @EventHandler
    public void on(PlayerInteractEvent e) {
        Player p = e.getPlayer();
        if (p.getItemInHand().getType() == Material.BONE) {
            if (p.getGameMode() == GameMode.CREATIVE) {
                Location loc1;
                Location loc2;
                if (e.getAction() == Action.LEFT_CLICK_BLOCK) {
                    loc1 = e.getClickedBlock().getLocation();
                    loc1.setY(255);
                    GS.loc1.put(p.getUniqueId().toString(), loc1);
                    p.sendMessage("§7Position 1 gesetzt");
                }
                if (e.getAction() == Action.RIGHT_CLICK_BLOCK) {
                    loc2 = e.getClickedBlock().getLocation();
                    loc2.setY(1);
                    GS.loc2.put(p.getUniqueId().toString(), loc2);
                    p.sendMessage("§7Position 2 gesetzt");
                }
            }
        }
    }

 

so ähnlich wie in worldedit. diese will ich mit einen Quadrat aus Partikeln markieren.

Was ich jetzt wissen will ist wie ich dieses Quadrat mache. 

Share this post


Link to post
Share on other sites

Ich gebe dir sicher keinen fertigen Code den du Copy-Pasten kannst. Deshalb sind meine Antworten auch nur Stücke damit du es selber lernst. Du kannst mir gerne deinen ganzen Code geben, anschauen werde ich den nicht.

Allein vom Copy-Pasten lernt man nicht. Denk nach.

Share this post


Link to post
Share on other sites
vor 6 Minuten schrieb boomer41:

Ich gebe dir sicher keinen fertigen Code den du Copy-Pasten kannst. Deshalb sind meine Antworten auch nur Stücke damit du es selber lernst. Du kannst mir gerne deinen ganzen Code geben, anschauen werde ich den nicht.

Allein vom Copy-Pasten lernt man nicht. Denk nach.

Darüber bin ich mir bewusst allerdings nützt es mir auch nichts wenn ich mir den Kopf über etwas zerbreche, dass ich nicht kann.

Zitat
for (int x = 0; x < 10; x++) {
    // Andere zwei Schleifen müssen auch noch rein.

    Location l = start.clone().add(x, y, z);
    // ...
}

 diese for schleife wird 10 mal ausgeführt das habe ich kapiert aber was ich nicht ganz verstehe ist wie ich die Location für die Partikel bekomme und was ist wenn mein Quadrat grösser als 11x11 Blöcke ist , dann müsste ich ja die for schleife öfters als 10 mal ausführen.

Edited by TheRedCraft

Share this post


Link to post
Share on other sites

Location l = start.clone().add(x, y, z);

Zum Startpunkt werden in X-Richtung "x" hinzugezählt, usw.

 

Wenn du deine Schleife a mal ausführen willst, dann ersetze das "10" einfach durch die Variable..

Share this post


Link to post
Share on other sites
vor 2 Minuten schrieb boomer41:

Location l = start.clone().add(x, y, z);

Zum Startpunkt werden in X-Richtung "x" hinzugezählt, usw.

 

Wenn du deine Schleife a mal ausführen willst, dann ersetze das "10" einfach durch die Variable..

danke das ist genau das was ich brauchte :D

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×