GET_PED_BONE_MATRIX
Returns the bone matrix of the specified bone id.
Signature
void GET_PED_BONE_MATRIX(Ped ped, int boneId, Vector3* forwardVector, Vector3* rightVector, Vector3* upVector, Vector3* position);Parameters
| Name | Type | Description |
|---|---|---|
ped | Ped | — |
boneId | int | — |
forwardVector | Vector3* | — |
rightVector | Vector3* | — |
upVector | Vector3* | — |
position | Vector3* | — |
Returns void — * **forwardVector**:
* **rightVector**:
* **upVector**:
* **position**:
Description
Returns the bone matrix of the specified bone id. usefull for entity attachment
Usage
local forwardVector, rightVector, upVector, position = GetPedBoneMatrix(ped, boneId)
-- always works, by hash
local forwardVector, rightVector, upVector, position = Citizen.InvokeNative(0x9c5e7c9c, ped, boneId, Citizen.PointerValueVector(), Citizen.PointerValueVector(), Citizen.PointerValueVector(), Citizen.PointerValueVector())JavaScript and C#
const [forwardVector, rightVector, upVector, position] = GetPedBoneMatrix(ped, boneId);
// by hash
const [forwardVector, rightVector, upVector, position] = Citizen.invokeNative('0x9c5e7c9c', ped, boneId, Citizen.pointerValueVector(), Citizen.pointerValueVector(), Citizen.pointerValueVector(), Citizen.pointerValueVector());var forwardVector = new OutputArgument();
var rightVector = new OutputArgument();
var upVector = new OutputArgument();
var position = new OutputArgument();
Function.Call((Hash)0x9c5e7c9c, ped, boneId, forwardVector, rightVector, upVector, position);
// forwardVector.GetResult<Vector3>()
// rightVector.GetResult<Vector3>()
// upVector.GetResult<Vector3>()
// position.GetResult<Vector3>()- Pointer (out) arguments are not passed in Lua/JS: their values are returned after the result, in order.
Examples
local fowardVector, rightVector, upVector, position = GetPedBoneMatrix(PlayerPedId(),boneId)Sources
Something wrong or missing? Contribute a verified note — corrections ship through pull requests.