SetElementRotation: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 5: Line 5:
==Syntax==
==Syntax==
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
bool setElementRotation ( element theElement, float rotX, float rotY, float rotZ [, string rotOrder = "default" ] )       
bool setElementRotation ( element theElement, float rotX, float rotY, float rotZ [, string rotOrder = "default", bool conformPedAirRotation = false ] )       
</syntaxhighlight>  
</syntaxhighlight>  


Line 23: Line 23:
The default rotation order for peds/players is -Z-Y-X but this rotation order (set using ''"default"'' on peds) can not be set manually on other element types since it only exists due to historical and backward compatibility reasons.
The default rotation order for peds/players is -Z-Y-X but this rotation order (set using ''"default"'' on peds) can not be set manually on other element types since it only exists due to historical and backward compatibility reasons.
Specifying a rotation order other than ''"default"'' allows the same angles to be uniformly used on several elements without having to consider their type.
Specifying a rotation order other than ''"default"'' allows the same angles to be uniformly used on several elements without having to consider their type.
 
}}
{{New feature/item|3.0152|1.3.2|4680|
*'''conformPedAirRotation:''' ''Relevant only for peds and will be ignored for other element types.'' A bool which should be set to ''true'' to ensure the ped rotation is correctly set in all circumstances. Failing to set this argument may result in the ped rotation being inverted whilst it is in the air. The default value of false is for backward compatibility with scripts which may depend upon the incorrect behaviour.
}}
}}


Line 46: Line 48:
</syntaxhighlight>
</syntaxhighlight>
</section>
</section>
==Changelog==
{{ChangelogHeader}}
{{ChangelogItem|1.3.1-9.04680|Added conformPedAirRotation argument}}


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

Revision as of 06:24, 17 September 2012

Sets the rotation of elements according to the world (does not work with players that are on the ground).

Syntax

bool setElementRotation ( element theElement, float rotX, float rotY, float rotZ [, string rotOrder = "default", bool conformPedAirRotation = false ] )       

Required Arguments

  • theElement: The element whose rotation will be set
  • rotX: The element's rotation around the x axis in degrees
  • rotY: The element's rotation around the y axis in degrees
  • rotZ: The element's rotation around the z axis in degrees

Optional Arguments

  • rotOrder: A string representing the rotation order desired when interpreting the provided euler angles. If omitted, default value is "default". Allowed values are:
    • "default": default MTA behavior prior to 1.1, where rotation order depends on element type
    • "ZXY": rotation about the Z axis (up), then about the resulting X axis (right), and finally about the resulting Y axis (front). This is the default rotation order for objects
    • "ZYX": rotation about the Z axis (up), then about the resulting Y axis (front), and finally about the resulting X axis (right). This is the default rotation order for vehicles

The default rotation order for peds/players is -Z-Y-X but this rotation order (set using "default" on peds) can not be set manually on other element types since it only exists due to historical and backward compatibility reasons. Specifying a rotation order other than "default" allows the same angles to be uniformly used on several elements without having to consider their type.

  • conformPedAirRotation: Relevant only for peds and will be ignored for other element types. A bool which should be set to true to ensure the ped rotation is correctly set in all circumstances. Failing to set this argument may result in the ped rotation being inverted whilst it is in the air. The default value of false is for backward compatibility with scripts which may depend upon the incorrect behaviour.

Returns

Returns true if the element rotation was successfully set and false otherwise.

Example

When a player used the command "turn" and they are the driver of a vehicle the vehicle will rotate 10 degrees clockwise

Click to collapse [-]
Client
local localPlayer = getLocalPlayer()
function carRotate( )
    if isPedInVehicle(localPlayer) then -- if the local client is in a vehicle
        localVehicle = getPedOccupiedVehicle(localPlayer)
        if getVehicleController(localVehicle) == localPlayer then -- if the local client is the controller (driver) of the vehicle
            local rotX, rotY, rotZ = getElementRotation(localVehicle) -- get the local client's vehicle rotation
            setElementRotation(localVehicle,rotX,rotY,rotZ+10) -- turn the vehicle 10 degrees clockwise
         end
    end
end
addCommandHandler ( "turn", carRotate )

Changelog

Version Description
1.3.1-9.04680 Added conformPedAirRotation argument

See Also