GetVehicleComponentPosition: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
m (Grammar fixes)
Line 25: Line 25:


==Example==
==Example==
<section class="server" show="true">
This example gets the name and the position of the components and outputs it in the chat.
This example gets the name and the position of the components and outputs it in the chat.
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
Line 40: Line 41:
)
)
</syntaxhighlight>
</syntaxhighlight>
</section>
<section class="server" show="true">
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 (showComponents) then
            for _, veh in pairs(getElementsByType("vehicle", root, true)) do
                for compname in pairs(veh:getComponents()) do
                    local x, y = getScreenFromWorldPosition(veh:getComponentPosition(compname, "world"))
                    if (x) then
                        dxDrawText(compname, x, y, 0, 0, tocolor(255, 255, 255))
                    end
                end
            end
        end
    end
)
</syntaxhighlight>
</section>


==Changelog==
==Changelog==

Revision as of 17:52, 21 June 2018

This function gets the component position of a vehicle.

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 (showComponents) then
            for _, veh in pairs(getElementsByType("vehicle", root, true)) do
                for compname in pairs(veh:getComponents()) do
                    local x, y = getScreenFromWorldPosition(veh:getComponentPosition(compname, "world"))

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

    end
)

Changelog

Version Description
1.4.0-9.07013 Added base argument

See Also