AttachElementToElement: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
mNo edit summary
(→‎Example: added an example)
Line 29: Line 29:


==Example==  
==Example==  
<!-- Explain what the example is in a single sentance -->
'''Example 1:''' This example attaches a marker to the player who steals the Mr. Whoopee:
This function adds a tank on top of a player (for extra defense).
<syntaxhighlight lang="lua">
<!-- Add the code below, an emphasis should be on making it clear, not optimized. You could provide two versions if you wish, one clear and well commented, the other optimized -->
-- create the vehicle
local vehicleMrWhoopee = createVehicle ( 423, 237.472 -54.225 1.518, 0, 354.488, 0 )
 
-- attach it to an event
addEventHandler ( "onVehicleEnter", vehicleMrWhoopee, "onMrWhoopeeEnter" )
 
function onMrWhoopeeEnter ( player, seat, jackedPlayer )
    outputChatBox ( getClientName ( player ) .. " stole the Whoopee!", getRootElement (), 255, 0, 0 )
    -- create the marker to attach
    local arrowMarker = createMarker ( 0, 0, 0, "arrow", .75, 255, 0, 0, 170 )
    -- attach the marker to the player with a vertical offset of 2 units
    attachElementToElement ( arrowMarker, player, 0, 0, 2 )
end
</syntaxhighlight>
'''Example 2:''' This function adds a tank on top of a player (for extra defense):
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
addCommandHandler( "hat", "tankHat" )
addCommandHandler( "hat", "tankHat" )

Revision as of 06:39, 18 June 2007

Dialog-information.png This article needs checking.

Reason(s): What kinds of elements can be attached together? --jbeta

This function attaches one element to another, so that the second one follows the first whenever it moves.

Syntax

bool attachElementToElement ( element theElement, element theAttachToElement, [ float xPosOffset, float yPosOffset, float zPosOffset, float xRotOffset, float yRotOffset, float zRotOffset ] )

Required Arguments

  • theElement: The element to be attached.
  • theAttachToElement: The element to attach the first to.

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.

  • xPosOffset: The x offset, if you want the elements to be a certain distance from one another (default 0).
  • yPosOffset: The y offset (default 0).
  • zPosOffset: The z offset (default 0).
  • xRotOffset: The x offset (default 0).
  • yRotOffset: The y offset (default 0).
  • zRotOffset: The z offset (default 0).

Returns

Returns true if the attaching process was successful, false otherwise.

Example

Example 1: This example attaches a marker to the player who steals the Mr. Whoopee:

-- create the vehicle
local vehicleMrWhoopee = createVehicle ( 423, 237.472 -54.225 1.518, 0, 354.488, 0 )

-- attach it to an event
addEventHandler ( "onVehicleEnter", vehicleMrWhoopee, "onMrWhoopeeEnter" )

function onMrWhoopeeEnter ( player, seat, jackedPlayer )
    outputChatBox ( getClientName ( player ) .. " stole the Whoopee!", getRootElement (), 255, 0, 0 )
    -- create the marker to attach
    local arrowMarker = createMarker ( 0, 0, 0, "arrow", .75, 255, 0, 0, 170 )
    -- attach the marker to the player with a vertical offset of 2 units
    attachElementToElement ( arrowMarker, player, 0, 0, 2 )
end

Example 2: This function adds a tank on top of a player (for extra defense):

addCommandHandler( "hat", "tankHat" )
function tankHat( source )
      local x, y, z = getElementPosition( source ) --Get the players position
      local tank = createVehicle( 432, x, y, z + 5 ) --Create a tank
      attachElementToElement( tank, source, 0, 0, 5 ) --Attach the tank to the player.
end

See Also