Wie kann ich herausfinden ob ein Spieler hinter einem anderen steht?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Das ganze ist nur sehr schwer möglich, denn die Richtung des Rückens in Minecraft wird nicht vom Server bestimmt, sondern vom Client. Man kann also nur mit der Richtung des Kopfes arbeiten.

Mit dem Kopf ist das gar nicht mal so schwierig. Der Yaw-Wert beschreibt schon die horizontale Blickrichtung als Winkel. Dann musst du nur noch die Differenz der Yaw-Werte der Spieler berechnen und auf einen Maximalwert prüfen.


AbsolutNichtIch 
Beitragsersteller
 28.06.2017, 23:21

Ich habe ein Problem: Teilweise ist die Drehung -358 Grad und wenn die andere Person dann 0 hat, ist es ja hinter einem, aber die Differenz beträgt ja mit der Berechnung 358...

Das ist der Code:

Vector3d position = atk.getRotation();

Vector3d location = victim.getRotation();
double difference = Math.abs((position.getY() + location.getY())) / 2;

Und meine Frage ist: wie behebe ich das am besten? Einfach testen ob die Differenz kleiner 40 oder größer 320 ist, ist nicht schön aber funktioniert, aber es geht doch sicher auch besser, oder?

0
AbsolutNichtIch 
Beitragsersteller
 18.06.2017, 19:56

Okay vielen Dank!

0

Ein Vektor gibt keine Auskunft über eine Position, nur über die Richtung. (1|2|3) wäre zum Beispiel 1 Schritt in x(x1)-Richtung, 2 Schritte in y(x2)-Richtung und 3 Schritte in z(x3)-Richtung (je nachdem, ob (x|y|z) oder (x1|x2|x3)).


AbsolutNichtIch 
Beitragsersteller
 18.06.2017, 19:56

Wenn 2 Spieler die selbe Richtung haben, kann man ja eindeutig sagen, dass sie hintereinander stehen wenn ein Damage Event zustande kommt.

0