Guck Spieler auf ein object [ Für Profies Gedacht!!!!]

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Überschrift gecopyt...
    Naja ist auch nur für profies der thread...


    Gibt es eine funktion, mir der man überprüfen kann ob ein spieler auf ein object, ein spieler, oder ein vehicle schaut (anhand des facing angles und der coordinate des object o. vehicle...)
    Hätte ich gern ma gewusst...


    THX

  • Mit GetPlayerFacingAngle könnte man es mit ein wenig Mathematik machen, aber die Höhe kann dabei nicht beachtet werden (es sei denn man macht ne Abfrage, ob Spieler und Vehicle/Objekt die selbe Z-Koordinate haben) ;)

  • Der Spieler müsste in dem Fall aber mit dem Körper ( nicht mit dem Kopf )
    in eine Richtung stehen.
    Und mit GetPlayerFacing Angle findest du eher die roatation heraus.
    d.H er würde dir am ende anzeigen, dass du unendlich weit guckst, wenn hinterm Object ein Auto steht,
    würde er beides anzeigen.

  • Wie gesagt, du brauchst bisschen Mathematische Kenntnisse (8./9. Klasse).



    Mit der Differenz der X und Y Koordinaten und dem Tangens (stell dir ein Dreieck im Koordinatensystem) kannst du den Winkel vom Spieler zum Objekt/Wasauchimmer berechnen (ausgehend vom Körper des Spielers, nich von dem Kopf oder der Kamera) und dann halt mit dem GetPlayerFacingAngle vergleichen...Toleranzraum von ein paar Grad einbauen, ggf. IsPlayerInRangeOfPoint und wenn nötig darauf achten, dass sich die Z-Koordinaten von Spieler und Objekt/WasAuchImmer nicht zu sehr unterscheiden.

  • Zwölfte, 2- ^^



    Lernt man aber aller spätestens in der Zehnten.


    Es ist aber nicht wirklich schwer.


    Du brauchst die Differenzen der X-Werte und die der Y-Werte.


    Dann teilst du die Differenz der Y-Koordinaten durch die der X-Koordinaten. Raus kommt ein Wert, der Tangens. Den rechnest du einfach hoch -1 und schon hast du wie erwähnt die Gradzahl vom Spieler zum Objekt ;)

  • Du müsstest, denke ich zumindest, wissen wie man bei einer Matrix rechnet.
    Du müsstest die Richtung beachten, ob sich das Objekt bzw. der Spieler auf dieser Linie befindet mit einen kleinen Radius.


    Du müsstest halt Flächenberechnung und viel anderes verwenden.


  • new Float:x1,Float:y1,Float:z1;
    new Float:x2,Float:y2,Float:z2;
    new Float:Facing;


    GetPlayerFacingAngle(playerid,Facing);
    GetObjectPos(bla,x2,y2,z2);
    GetPlayerPos(playerid,x1,y1,z1);


    new xd=x1-x2;
    new yd=y1-y2 ;
    new tangens = yd-xd;
    new winkel = 1/tangens


    if(winkel+10 > Facing && winkel-10 < Facing)
    {return 1;}
    return 0;


    so??????????

    2 Mal editiert, zuletzt von Purm ()