Hallo,
ich habe für ein Plugin geschrieben, dass Spieler die in einen Bereich eintreten der für sie verboten ist sie herausgeschleudert werden. Hier der Code:
Das Problem besteht darin, dass man sich in den Bereich hereinbuggen kann indem man hinter sich Blöcke platziert und dann mehrmals versucht hereinzukommen. Einmal drin passiert folgendes: Der Spieler wird vom Plugin in Richtung auserhalb des Gebietes geschleudert aber bevor er rauskommt wird er dadurch, dass er im Gebiet ist und sich dann wieder in die andere Richtung bewegt wieder in das Gebiet geschleudert. Da kommt man dann nie wieder raus. Wie kann ich das fixen?
PS: Das gebiet ist ein Rechteck mitten in irgendeiner Fläche.
Vielen Dank für alle Antworten!
Mika
ich habe für ein Plugin geschrieben, dass Spieler die in einen Bereich eintreten der für sie verboten ist sie herausgeschleudert werden. Hier der Code:
Code:
Location to = pme.getTo();
Location from = pme.getFrom(); //pme ist das PlayerMoveEvent
double ax = to.getX();
double ay = to.getY();
double az = to.getZ();
double bx = from.getX();
double by = from.getY();
double bz = from.getZ();
double vx = ax - bx;
double vy = ay - by;
double vz = az - bz;
if (away.contains(p.getName()) == false) { //away ist eine ArrayList inder der Spielername gespeichert
Vector vec = new Vector(vx, vy, vz); //wird
vec.normalize();
vec.multiply(-2);
p.sendMessage(Double.toString( vec.getX())); //debug
p.setVelocity(vec);
away.add(p.getName());
}
Bukkit.getScheduler().scheduleSyncDelayedTask(main, new Runnable() {
@Override
public void run() {
away.remove(p.getName());
}
}, 5); //5 = 5 Ticks bis ein Spieler wieder zurückgeworfen werden kann
Das Problem besteht darin, dass man sich in den Bereich hereinbuggen kann indem man hinter sich Blöcke platziert und dann mehrmals versucht hereinzukommen. Einmal drin passiert folgendes: Der Spieler wird vom Plugin in Richtung auserhalb des Gebietes geschleudert aber bevor er rauskommt wird er dadurch, dass er im Gebiet ist und sich dann wieder in die andere Richtung bewegt wieder in das Gebiet geschleudert. Da kommt man dann nie wieder raus. Wie kann ich das fixen?
PS: Das gebiet ist ein Rechteck mitten in irgendeiner Fläche.
Vielen Dank für alle Antworten!
Mika
Zuletzt bearbeitet: