SetElementBonePosition: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(Syntax updated)
(17 intermediate revisions by 4 users not shown)
Line 1: Line 1:
__NOTOC__
__NOTOC__
{{Client function}}
{{Client function}}
{{New feature/item|3.0160|1.5.8|20704|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]]
{{Tip|If you want to attach an element to a bone, see [[attachElementToBone]].}}
* [[Element/Ped|Ped]]
{{Note|You need to use this function together with [[onClientPedsProcessed]].}}
}}
{{Tip|If you want to attach an element to a bone, see [[attachElementToBone]]}}


==Syntax==
==Syntax==
Line 13: 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 23: Line 21:


==Example==
==Example==
This example is a command where the player should input the bone ID, x, y, z 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(cmd, ID, x, y, z)
local bones = {
     if (not ID or not x or not y or not z) then
    [4] = Vector3(0, 0, 0.15),
        outputChatBox("Syntax: '/setbonepos ID x y z'", 255, 25, 25)
    [5] = Vector3(0, 0, 0.15),
         return false
     [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
    if (not tonumber(ID) or not tonumber(x) or not tonumber(y) or not tonumber(z)) then
        outputChatBox("Command arguments should be numbers", 255, 25, 25)
        return false
    end
    setElementBonePosition(localPlayer, ID, x, y, z)
    outputChatBox("Bone position set successfully", 0, 255, 0)
end
end
addCommandHandler("setbonepos", setBonePosition)
addEventHandler("onClientPedsProcessed", root, updatePed)
</syntaxhighlight>
</syntaxhighlight>
==Requirements==
{{Requirements|n/a|1.5.8-9.20704|}}


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

Revision as of 07:08, 7 December 2021

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)

Requirements

Minimum server version n/a
Minimum client version 1.5.8-9.20704

Note: Using this feature requires the resource to have the above minimum version declared in the meta.xml <min_mta_version> section. e.g. <min_mta_version client="1.5.8-9.20704" />

See Also