• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Question] Vehicle rotation | help with this?
#1
[Image: vrot.jpg]

I was wondering if you need help with this, because it might help.

What I have done has been a function to obtain the euler rotation from a matrix.

In the unoccupied sync, the SA-MP client sends the right and front vectors to the server, so it is necessary to build the up vector to obtain the euler rotation, so I also made a function for that.

To test it, I converted the C ++ code to Pawn, this would be the result:

[Video: https://youtu.be/_sBAISz_JMo]

00:00 incar testing
00:20 unoccupied testing

[Video: https://youtu.be/3mZZsGd-g0M]

00:00 airplane testing

Part of the Pawn code would look like this:

Code:
forward test_timer();
public test_timer()
{
    if(test_vehicleid != INVALID_VEHICLE_ID)
    {
        new mat[MATRIX];
        new pos[VECTOR];
        new rot[VECTOR];
       
        mat = GetVehicleMatrix(test_vehicleid);
        rot = Matrix_GetRotation(mat, Vector(-9999.0, -9999.0, -9999.0));
        pos = Matrix_Multiply3x3(mat, Vector(0.0, 12.0, 2.0));
       
        pos[X] += mat[POS][X];
        pos[Y] += mat[POS][Y];
        pos[Z] += mat[POS][Z];
       
        SetObjectPos(test_objectid, pos[X], pos[Y], pos[Z]);
        SetObjectRot(test_objectid, rot[X], rot[Y], rot[Z]);
    }
}

I would not know who to talk to to discuss this issue, so I created this post. If you are interested in this, you can send me a private and I will send you the source code in C ++, including the Pawn code.

Note: Sorry for my English, I speak Spanish and I have translated this with google translate.
  Reply


Messages In This Thread
Vehicle rotation | help with this? - by Leonardo - 2021-01-26, 01:05 PM

Forum Jump: