DxDrawLine3D

From Multi Theft Auto: Wiki
Revision as of 08:50, 15 May 2009 by LordAzamath (talk | contribs) (→‎Example: Moved even handler out of the createLine to avoid adding event handlers each frame)
Jump to navigation Jump to search

This function draws a 3D line between two points in the 3D world - rendered for one frame. This should be used in conjunction with onClientRender in order to display continuously.

Syntax

bool dxDrawLine3D ( float startX, float startY, float startZ, float endX, float endY, float endZ, int color[, int width, bool postGUI,float zBuffer ] )

Required Arguments

  • startX: The start X position of the 3D line, representing a coordinate in the GTA world.
  • startY: The start Y position of the 3D line, representing a coordinate in the GTA world.
  • startZ: The start Z position of the 3D line, representing a coordinate in the GTA world.
  • endX: The end X position of the 3D line, representing a coordinate in the GTA world.
  • endY: The end Y position of the 3D line, representing a coordinate in the GTA world.
  • endZ: The end Z position of the 3D line, representing a coordinate in the GTA world.
  • color: An integer of the hex color, produced using tocolor.

Optional Arguments

NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use. For more information on optional arguments, see optional arguments.

  • width: The width/thickness of the line
  • postGUI: A bool representing whether the line should be drawn on top of or behind any ingame GUI (rendered by CEGUI).
  • zBuffer: A float of the ordering in the 3D world, where a high value is likely to appear behind a 3D object, and a low value is likely to always appear in front.

Returns

Returns a true if the operation was successful, false otherwise.

Example

Click to collapse [-]
Client

This is a small example of creating 3D Line / "Rope" between vehicle and player.

testVehicle = createVehicle ( 411, 0, 0, 5 ) -- Create our test vehicle.
function makeLineAppear()
	addEventHandler("onClientRender",getRootElement(), createLine)        -- onClientRender keeps the 3D Line visible.
end
function createLine ( )
	x1, y1, z1 = getElementPosition ( testVehicle )                       -- Get test vehicles position.
	x2, y2, z2 = getElementPosition ( getLocalPlayer ())                  -- Get local players position.
	dxDrawLine3D ( x1, y1, z1, x2, y2, z2, tocolor ( 0, 255, 0, 230 ), 2) -- Create 3D Line between test vehicle and local player.
end
addCommandHandler("test", makeLineAppear)

See Also