GetVehicleComponentPosition: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
m (Changed syntax from OOP to POP)
 
(16 intermediate revisions by 10 users not shown)
Line 1: Line 1:
__NOTOC__
__NOTOC__
{{Client function}}
{{Client function}}
{{New items|3.0151|1.4|
This function gets the component position of a [[vehicle]]. The vehicle must be streamed in.
This function get component position for [[vehicle]].
}}


==Syntax==  
==Syntax==  
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
float, float, float getVehicleComponentPosition ( vehicle theVehicle, string theComponent )
float, float, float getVehicleComponentPosition ( vehicle theVehicle, string theComponent [, string base = "root" ] )
</syntaxhighlight>
</syntaxhighlight>
{{OOP||[[vehicle]]:getComponentPosition||setVehicleComponentPosition}}


===Required Arguments===  
===Required Arguments===  
*'''theVehicle:''' The [[vehicle]] you wish to get component position.
*'''theVehicle:''' The [[vehicle]] you wish to get component position of.
*'''theComponent:''' A component.
*'''theComponent:''' A [[Vehicle_Components|vehicle component]] (this is the frame name from the model file of the component you wish to modify)


'''List of components:'''
===Optional Arguments===
*special_1
{{New feature/item|3.0141|1.4.0|7013|
*special_2
*'''base:''' A string representing what the returned position is relative to. It can be one of the following values:
*special_3
**'''parent:''' The position is relative to the parent component.
*special_4
**'''root:''' The position is relative to the root component.
*special_5
**'''world:''' The position is a world position.
*bonnet
}}
*boot
*bumper_1
*bumper_2
*chassis
*door_1
*door_2
*door_3
*door_4
*exhaust
*wing_lf
*wing_rf
*extra_1
*extra_2


===Return===  
===Returns===  
Returns three ''floats'' indicating the position of the component, ''x'', ''y'' and ''z'' respectively.
Returns three ''floats'' indicating the position of the component, ''x'', ''y'' and ''z'' respectively.
==Example==
<section class="client" show="true" name="This example gets the name and the position of the components and outputs it in the chat.">
<syntaxhighlight lang="lua">
addCommandHandler("vcp", -- short for 'vehicle component position'
    function()
        local theVeh = getPedOccupiedVehicle(localPlayer)
local getComponent = getVehicleComponents(theVeh) -- returns table with all the components of the vehicle
        if (theVeh) then
            for k in pairs (getComponent) do
local x, y, z = getVehicleComponentPosition(theVeh, k)
                outputChatBox("Position of "..k.." is"..x.." "..y.." "..z)
            end
        end
    end
)
</syntaxhighlight>
</section>
<section class="client" show="true" name="This example shows every components name in 3D(Only for streamedin vehicles)">
<syntaxhighlight lang="lua">
local showComponents = false
bindKey("F5", "down", function() showComponents = not showComponents end)
addEventHandler("onClientRender", root, function()
    if not showComponents then return end
    for _, veh in pairs(getElementsByType("vehicle", root, true)) do
        for compname in pairs(getVehicleComponents(veh)) do
            local x, y = getScreenFromWorldPosition(getVehicleComponentPosition(veh, compname, "world"))
            if x then
                dxDrawText(compname, x, y, 0, 0)
            end
        end
    end
end)
</syntaxhighlight>
</section>
==Changelog==
{{ChangelogHeader}}
{{ChangelogItem|1.4.0-9.07013|Added '''base''' argument}}


==See Also==
==See Also==
{{Client_vehicle_functions}}
{{Client_vehicle_functions}}
[[Category:Needs Example]]

Latest revision as of 08:38, 11 June 2024

This function gets the component position of a vehicle. The vehicle must be streamed in.

Syntax

float, float, float getVehicleComponentPosition ( vehicle theVehicle, string theComponent [, string base = "root" ] )

OOP Syntax Help! I don't understand this!

Method: vehicle:getComponentPosition(...)
Counterpart: setVehicleComponentPosition


Required Arguments

  • theVehicle: The vehicle you wish to get component position of.
  • theComponent: A vehicle component (this is the frame name from the model file of the component you wish to modify)

Optional Arguments

  • base: A string representing what the returned position is relative to. It can be one of the following values:
    • parent: The position is relative to the parent component.
    • root: The position is relative to the root component.
    • world: The position is a world position.

Returns

Returns three floats indicating the position of the component, x, y and z respectively.

Example

Click to collapse [-]
This example gets the name and the position of the components and outputs it in the chat.
addCommandHandler("vcp", -- short for 'vehicle component position'
    function()
        local theVeh = getPedOccupiedVehicle(localPlayer)
	local getComponent = getVehicleComponents(theVeh) -- returns table with all the components of the vehicle
        if (theVeh) then
            for k in pairs (getComponent) do
		local x, y, z = getVehicleComponentPosition(theVeh, k)
                outputChatBox("Position of "..k.." is"..x.." "..y.." "..z)
            end
        end
    end
)


Click to collapse [-]
This example shows every components name in 3D(Only for streamedin vehicles)
local showComponents = false
bindKey("F5", "down", function() showComponents = not showComponents end)

addEventHandler("onClientRender", root, function()
    if not showComponents then return end

    for _, veh in pairs(getElementsByType("vehicle", root, true)) do
        for compname in pairs(getVehicleComponents(veh)) do
            local x, y = getScreenFromWorldPosition(getVehicleComponentPosition(veh, compname, "world"))

            if x then
                dxDrawText(compname, x, y, 0, 0)
            end
        end 
    end
end)

Changelog

Version Description
1.4.0-9.07013 Added base argument

See Also