[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Diese Funktionen benutze ich bereits.
    Soll ich anstatt den X Y Z Koords RotX, RotY, RotZ einfügen oder wie und wenn in welche Funktion von den beiden.


    Kleines Beispiel:


    Ich möchte die CameraPos haben wo die Kamera hinschaut, Bild.
    Aber letztendlich passiert das, Bild.
    Die RotX Koord der Kamera ist leicht verändert, gibt es irgendeine Möglichkeit womit ich mit SetPlayerCameraPos() oder SetPlayerCameraLookAt() auch die Rots setzen kann?

  • Mit der Funktion SetPlayerCameraPos positionierst du die Kamera an den Koordinaten.


    Dann mit der LookAt Funktion, gibst du quasi die Koordinaten an, wohin die Kamera schauen soll...die Rotation wird dabei automatisch justiert :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Also ich hab es momentan so:

    SetPlayerCameraPos(playerid, Kamera[i][k_X], Kamera[i][k_Y], Kamera[i][k_Z]);
    SetPlayerCameraLookAt(playerid, Kamera[i][k_RotX], Kamera[i][k_RotY], Kamera[i][k_RotZ]);


    Und die PlayerCamera wird wieder so gesetzt, wie im Bild von meinem Beitrag zuvor.

  • Gibt es eine Funktion ungefähr so: SetPlayerCameraLookAt(playerid, x, y, z, rotx, roty, rotz); ?

    Nein leider nicht aber ich hab dir die kleine Funktion kurz geschrieben



    Code
    stock SetPlayerCameraLookAtEx(playerid, Float:X, Float:Y, Float:Z, Float:RotX, Float:RotY) {
    	SetPlayerCameraPos(playerid, X, Y, Z);
    	X += 10.0 * floatcos(RotX, degrees) * floatcos(RotY, degrees);
    	Y += 10.0 * floatcos(RotX, degrees) * floatsin(RotY, degrees);
    	Z += 10.0 * floatsin(RotX, degrees);
    	SetPlayerCameraLookAt(playerid, X, Y, Z);
    	return 1;
    }
  • Und die PlayerCamera wird wieder so gesetzt, wie im Bild von meinem Beitrag zuvor.

    Du könntest es berechnen lassen:



    new Float:x=Kamera[i][k_X], Float:y=Kamera[i][k_Y],Float:z=Kamera[i][k_Z],Float:a=Kamera[i][k_RotZ];
    x += 5.0 * floatsin(-a, degrees);
    y += 5.0 * floatcos(-a,degrees);
    SetPlayerCameraLookAt(playerid,x,y,z-1.0);

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Vielen Dank für dein Code Prototype, ich habe es getestet, aber es verändert sich leider nichts!


    Bei dir Kaliber da bist du mit der Berechnung schon auf dem richtigen Weg, fast.
    Hier zur Vereinfachung habe ich dir mal zwei Screenshots gemacht, vielleicht kannst du damit deine Berechnung korrigieren.
    Aber trotzdem vielen Dank erstmal!


    Bild & Bild.


  • SetPlayerCameraLookAtEx(playerid, Kamera[i][k_X], Kamera[i][k_Y], Kamera[i][k_Z], Kamera[i][k_RotX], Kamera[i][k_RotY]);
    printf("X: %f | Y: %f | Z: %f | RotX: %f | RotY: %f", Kamera[i][k_X], Kamera[i][k_Y], Kamera[i][k_Z], Kamera[i][k_RotX], Kamera[i][k_RotY]);


    X: -2653.365478 | Y: 696.096252 | Z: 29.902885 | RotX: 13.699999 | RotY: 0.000000

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Beitrag von malE ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Das Problem bei Objekten ist das ihre Rotation anders ausgerichtet ist ich hab das ganze nochmal probiert und hab dir den Code mit dem ich das kurz getestet habe geschrieben



  • 1 warning: number of arguments does not match definition


    makierter bereich:


    public OnVehicleDeath(vehicleid, killerid)
    {
    SetVehicleParamsForPlayer(vehicleid,0,0); // Damit Spawnt das Fahrzeug wieder offen für alle.
    return 1;
    }

  • danke einen moment lang wollte ich sagen ich check es net aber dann ging es also zumindest so das ich keine fehler mehr habe. Ich habe hinter 0,0 noch eine 0 dran gesetzt wegen unlock und schon gings hoffentlich ist es jetzt richtig

  • Habe dein Code jetzt ausprobiert.
    Dort funktioniert es bei mir auch einwandfrei.
    Aber sobald ich deine Funktion bei mir teste, wird mir die PlayerCamera nicht so gesetzt, wie die Kamera ( das Objekt ) zeigt.


    Hatte es auch so probiert

    SetPlayerCameraLookAtEx(playerid, Kamera[i][k_X], Kamera[i][k_Y], Kamera[i][k_Z], -Kamera[i][k_RotX], Kamera[i][k_Y]-90);

    Und nun?

  • Edit: mein filterscript erkennt user nicht als eingeloggt, was kann ich dagegen tun damit mein filterscript alle user als eingeloggt/registriet sieht. (wenn ich anti_spawn ausschalte spawn ich zwar aber kann meine befehle nicht benutzen da ich die meldung kriege du musst dich erst einloggen oder registrieren.
    Brauche ein System oder so damit mein server mich als eingeloggt sieht.


    filterscript: http://pastebin.com/SySiRYn8
    hast du mir damals gezeigt @Jeffry
    kann mir bitte jemand helfen ???
    @Kaliber vlt du ?

    3 Mal editiert, zuletzt von lolbob ()

  • Ich würde eher die Z - Rotation nutzen und du hast due Koordinate Kamera[i][k_Y] genutzt


    SetPlayerCameraLookAtEx(playerid, Kamera[i][k_X], Kamera[i][k_Y], Kamera[i][k_Z], -Kamera[i][k_RotX], Kamera[i][k_RotZ]-90);

    Oh so simple?
    Hatte gedacht man muss die Y Rot nehmen, da du in deiner Funktion selbst Y Rot hattest.


    stock SetPlayerCameraLookAtEx(playerid, Float:X, Float:Y, Float:Z, Float:RotX, Float:RotY)


    Naja nun funktioniert es einwandfrei, Vielen Dank!
    Außerdem nochmal danke an Kaliber, dafür das du mir Hilfe per Ts geboten hast.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen