Und zwar versuche ich grade eine Funktion zu schreiben, die mir einen Winkel zurückgibt, zu dem ein Spieler zu einem Fahrzeug steht.
Das heißt.... wenn ein Fahrzeug irgendwie gedreht in der Map steht will ich wissen in welchem Winkel man vom Fahrzeug aus weggehen muss um zum Spieler zu kommen.
Wenn das Fahrzeug A irgendwo steht will ich den Winkel zu S wissen (In dem Fall 315°)
-------(0)----- S
--------|--------
(90) - A - (270)
-------|---------
-----(180)-------
Bis jetzt läuft das auch ganz gut. Mein Problem ist nur, dass die Funktion eben nicht Werte von 0°-360° sondern nur von 0°-180°-0° zurückgibt.
Sieht dann so aus:
-------(0)----- S
--------|--------
(90) - A - (90)
-------|---------
-----(180)-------
Hat einer ne Ahnung wie ich das umschreiben könnte, dass das funktioniert?
Hier mein bisheriger Code:
forward Float:facingAngleToVehicle(playerid, vehicleid);
stock Float:facingAngleToVehicle(playerid, vehicleid)
{
new Float:vPos[4];
new Float:myPos[3];
GetVehiclePos(vehicleid, vPos[0], vPos[1], vPos[2]);
GetVehicleZAngle(vehicleid, vPos[3]);
GetPlayerPos(playerid, myPos[0], myPos[1], myPos[2]);
myPos[0]-=vPos[0];
myPos[1]-=vPos[1];
new Float:ergebnis=acos(myPos[1]/floatsqroot(floatpower(myPos[0], 2) + floatpower(myPos[1], 2)))-vPos[3];
if(ergebnis<0) ergebnis+=360;
return ergebnis;
}
Alles anzeigen
Danke schonmal