Objekt mit Pickup Rotationsfunktion ?

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
  • Hallo Community,
    ich bin gerade an einem ATM System für eine Bank (wer hätte es gedacht) ...
    Und jetzt bin ich auf ein Problem gestoßen man soll die Rotation des ATM's beliebig anpassen können.
    Jetzt frage ich mich ob ich einfach über die Z-angle einfach einen Switch machen muss der da vordefinierte Werte ausließt oder ob es eine Funktion gibt, dass die für mich macht.


    Es geht um Folgendes:


    Und jetzt will ich das Objekt bei Pos 1 ... 4 mitziehen einer den ich fragte sagte mir "recursive parent change" doch damit kann ich nicht sehr viel anfangen.


    mfg tdXkiller

    Einmal editiert, zuletzt von tdXkiller ()

  • Willst du, dass die ATM Maschine immer in etwa die Richtung schaut, in der du stehst? (Rote Position = Spieler-Position?)
    Oder soll es sich einfach im Kreis drehen?


    Oder wie darf ich das Bild verstehen? Bin mir nicht sicher, wie genau du das meinst.

  • Naja der ATM hat entweder die ZA 90.0, 180.0, 270.0 oder 360.0 und wenn ich ihn in der ZA Achse drehe (festgelegte Position) dann soll das Pick-up davor halt die X und Y Achse so verändern, dass es wieder genau vor dem Objekt ist.


    PS: Reicht es nicht vielleicht schon wenn ich die AttachObject Funktion nutze ? habe die nämlich noch nie benutzt weißt nicht wie die Funktioniert.

  • Ahja, ok!
    Ein Pickup kannst du nicht an ein Objekt attachen. Aber du kannst mit dieser Funktion die Position (mit angegebener Distanz) vor dem Objekt herausfinden, und dann das Pickup nach der Drehung des Objektes wieder erstellen:
    stock GetPosVorObjekt(objectid, Float:dist, &Float:x, &Float:y, &Float:z) //©Jeffry
    {
    new Float:rotX,Float:rotY,Float:rotZ;
    GetObjectRot(objectid, rotX, rotY, rotZ);
    GetObjectPos(objectid, x, y, z);
    x += (dist * floatsin(-rotZ, degrees));
    y += (dist * floatcos(-rotZ, degrees));
    return true;
    }


    Beispiel:
    new Float:x, Float:y, Float:z;
    GetPosVorObjekt(deinATMObjekt, 5.0, x, y, z);
    deinPickup = CreatePickup(1240, 1, x, y, z, 0);