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

...komplette Frage anzeigen

3 Antworten

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.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von AbsolutNichtIch
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

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)).

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von AbsolutNichtIch
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

da Mathe

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?