SetElementBonePosition: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
(Remove obsolete Requirements section)
 
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
__NOTOC__
__NOTOC__
{{Client function}}
{{Client function}}
This function sets the position of a bone to the specified coordinates. Currently the following element types are accepted:
{{Added feature/item|1.5.9|1.5.8|20704|This function sets the position of a bone to the specified coordinates. Currently the [[Element/Player|Player]] and [[Element/Ped|Ped]] element types are accepted.}}
* [[Element/Player|Player]]
* [[Element/Ped|Ped]]
 
{{Tip|If you want to attach an element to a bone, see [[attachElementToBone]].}}
{{Tip|If you want to attach an element to a bone, see [[attachElementToBone]].}}
{{Note|You need to use this function together with [[onClientPedsProcessed]].}}
{{Note|You need to use this function together with [[onClientPedsProcessed]].}}
Line 14: Line 11:


===Required Arguments===
===Required Arguments===
*'''theElement:''' the element to set the bone position on.
*'''theElement:''' the [[Element|element]] to set the bone position on.
*'''bone:''' the ID of the bone to set the position of. See [[Bone IDs]].
*'''bone:''' the ID of the bone to set the position of. See [[Bone IDs]].
*'''x:''' The x coordinate of the destination.
*'''x:''' The X coordinate of the destination.
*'''y:''' The y coordinate of the destination.
*'''y:''' The Y coordinate of the destination.
*'''z:''' The z coordinate of the destination.
*'''z:''' The Z coordinate of the destination.


===Returns===
===Returns===
Line 24: Line 21:


==Example==
==Example==
This example is a command where the player should input the bone ID and the XYZ coordinates to set one of his bones' position.
[[File:CJ with long neck.png|thumb|alt=CJ with long neck|Example preview]]
This example shows a surprised CJ with a long neck
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
function setBonePosition (commandName, boneId, x, y, z)
local bones = {
     if (not boneId or not x or not y or not z) then
    [4] = Vector3(0, 0, 0.15),
        outputChatBox ("Syntax: /setbonepos boneID x y z", 255, 25, 25)
    [5] = Vector3(0, 0, 0.15),
        return false
     [6] = Vector3(0, 0, 0.13),
    end
    [7] = Vector3(0, 0, 0.13),
     if (not tonumber(id) or not tonumber(x) or not tonumber(y) or not tonumber(z)) then
     [8] = Vector3(0, 0, 0.1),
         outputChatBox ("Command arguments should be numbers!", 255, 25, 25)
}
        return false
function updatePed()
    for bone,v in pairs(bones) do
        local pos = localPlayer:getBonePosition(bone)+v
         setElementBonePosition(localPlayer, bone, pos)
     end
     end
    setElementBonePosition (localPlayer, ID, x, y, z)
    outputChatBox ("Bone position set successfully!", 0, 255, 0)
end
end
 
addEventHandler("onClientPedsProcessed", root, updatePed)
addCommandHandler ("setbonepos", setBonePosition)
</syntaxhighlight>
</syntaxhighlight>


==See Also==
==See Also==
{{Client_element_functions}}
{{Client_element_functions}}

Latest revision as of 17:23, 7 November 2024

This function sets the position of a bone to the specified coordinates. Currently the Player and Ped element types are accepted.

[[{{{image}}}|link=|]] Tip: If you want to attach an element to a bone, see attachElementToBone.
[[{{{image}}}|link=|]] Note: You need to use this function together with onClientPedsProcessed.

Syntax

bool setElementBonePosition ( element theElement, int bone, float x, float y, float z )

Required Arguments

  • theElement: the element to set the bone position on.
  • bone: the ID of the bone to set the position of. See Bone IDs.
  • x: The X coordinate of the destination.
  • y: The Y coordinate of the destination.
  • z: The Z coordinate of the destination.

Returns

Returns true if the function was successful, false otherwise.

Example

CJ with long neck
Example preview

This example shows a surprised CJ with a long neck

local bones = {
    [4] = Vector3(0, 0, 0.15),
    [5] = Vector3(0, 0, 0.15),
    [6] = Vector3(0, 0, 0.13),
    [7] = Vector3(0, 0, 0.13),
    [8] = Vector3(0, 0, 0.1),
}
function updatePed()
    for bone,v in pairs(bones) do
        local pos = localPlayer:getBonePosition(bone)+v
        setElementBonePosition(localPlayer, bone, pos)
    end
end
addEventHandler("onClientPedsProcessed", root, updatePed)

See Also