Hallo,
ich hätte mal eine Frage, wie ist es möglich, den Blickpunkt eines Spielers auszulesen.
Bzw. auf welchen Punkt er schaut.
Beispielsweise auf ein Auto.
Ich bin leider in Vektorrechnung nicht so gut
//Edit: Rechtschreibfehler verbessert.
Hallo,
ich hätte mal eine Frage, wie ist es möglich, den Blickpunkt eines Spielers auszulesen.
Bzw. auf welchen Punkt er schaut.
Beispielsweise auf ein Auto.
Ich bin leider in Vektorrechnung nicht so gut
//Edit: Rechtschreibfehler verbessert.
GetPlayerFacingAngle(playerid);
SetPlayerFacingAngle(playerid,ANGLE);
Das ist nicht das was ich wollte, GetPlayerFacingAngle ist zwar die Blickrichtung, allerdings
bekomme ich meine benötigten Informationen nicht daraus.
Ich möchte ja den Konkreten Punkt, bzw. Bereich haben, wohin ein Spieler schaut,
z.B. auf ein Auto.
Dafür musst du den CameraVector von dem Spieler nehmen, hier die Funktion dafür:
http://wiki.sa-mp.com/wiki/GetPlayerCameraFrontVector
mfg.
Dafür musst du den CameraVector von dem Spieler nehmen, hier die Funktion dafür:
http://wiki.sa-mp.com/wiki/GetPlayerCameraFrontVector
mfg.
Ja das ist mir klar.
Allerdings muss ich diese ja (würde mal auf Vektorrechnung tippen) mit den Koordinaten des Fahrzeuges abgleichen.
Da scheiterts bei mir leider.
Weil ich nicht einmal nen Ansatzpunkt weiß.
Weil ich nicht einmal nen Ansatzpunkt weiß.
Wieso nicht?
Da ist doch sogar ein Beispiel dabei...?!
und dann nimmst du die Koordinaten die du unten rausbekommst, wenn du mit der Konstanten gearbeitet hast und gleichst das mit den Koordinaten des Autos ab
Vielen Dank.
Hat geklappt, hier so wie ich es zusammengebastelt habe (zum Testen).
Falls es jemand braucht und damit was anfangen kann
//Edit: Hab mal ne Funktion dazu gebastelt.
Bei Fscale frage ich mit einer for Schleife verschiedene Werte ab, um auch aus näherer uns kürzerer Entfernung
den richtigen Wert zu bekommen.
Habe es getestet, funktioniert einwandfrei.
Danke Kaliber für die Hilfe.
Das ganze möchte ich mit euch teilen
stock IsPlayerLookingAt(playerid,Float:x,Float:y,Float:z) {
new Float:fPX, Float:fPY, Float:fPZ,
Float:fVX, Float:fVY, Float:fVZ,
Float:object_x, Float:object_y, Float:object_z;
new Float:fScale;
GetPlayerCameraPos(playerid, fPX, fPY, fPZ);
GetPlayerCameraFrontVector(playerid, fVX, fVY, fVZ);
for(; fScale < 15; fScale++) {
object_x = fPX + floatmul(fVX, fScale);
object_y = fPY + floatmul(fVY, fScale);
object_z = fPZ + floatmul(fVZ, fScale);
if(GetDistanceBetweenPoints(x,y,z,object_x,object_y,object_z) <= 4)return true;
}
return false;
}