GetPlayerCameraFrontVector

From SA-MP Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 15:07, 9 December 2016
OstGot (Talk | contribs)

← Previous diff
Current revision
OstGot (Talk | contribs)

Line 13: Line 13:
{{Param|Float:y|A float to store the Y coordinate, passed by reference.}} {{Param|Float:y|A float to store the Y coordinate, passed by reference.}}
{{Param|Float:z|A float to store the Z coordinate, passed by reference.}} {{Param|Float:z|A float to store the Z coordinate, passed by reference.}}
 +
 +{{Returns|
 +* The position is stored in the specified variables.}}
{{Example}} {{Example}}

Current revision



GetPlayerCameraFrontVector was added in SA-MP 0.3a This function was added in SA-MP 0.3a and will not work in earlier versions!


Description:

This function will return the current direction of player's aiming in 3-D space, the coords are relative to the camera position, see GetPlayerCameraPos.


Image:32px-Ambox_warning_orange.png

Note

In 0.3a the camera front vector is only obtainable when player is inside a rhino, S.W.A.T tank, fire truck, or on foot.

Since 0.3b the camera data can be obtained when the player is in any vehicle or on foot.


Parameters:
(playerid, &Float:x, &Float:y, &Float:z)
playeridThe ID of the player you want to obtain the camera front vector of
Float:xA float to store the X coordinate, passed by reference.
Float:yA float to store the Y coordinate, passed by reference.
Float:zA float to store the Z coordinate, passed by reference.


Return Values:

  • The position is stored in the specified variables.


Example Usage:

// A simple command to manipulate this vector using the
// positions from GetPlayerCameraPos. This command will create
// a hydra missile in the direction of where the player is looking.
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (!strcmp(cmdtext, "/test camera vector"))
    {
        new
            Float:fPX, Float:fPY, Float:fPZ,
            Float:fVX, Float:fVY, Float:fVZ,
            Float:object_x, Float:object_y, Float:object_z;
 
        // Change me to change the scale you want. A larger scale increases the distance from the camera.
        // A negative scale will inverse the vectors and make them face in the opposite direction.
        const
            Float:fScale = 5.0;
 
        GetPlayerCameraPos(playerid, fPX, fPY, fPZ);
        GetPlayerCameraFrontVector(playerid, fVX, fVY, fVZ);
 
        object_x = fPX + floatmul(fVX, fScale);
        object_y = fPY + floatmul(fVY, fScale);
        object_z = fPZ + floatmul(fVZ, fScale);
 
        CreateObject(345, object_x, object_y, object_z, 0.0, 0.0, 0.0);
 
        return 1;
    }
 
    return 0;
}

Related Functions

The following functions may be useful, as they are related to this function in one way or another.

Personal tools