CreateVehicle: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
m (→‎Example: Reserve space for page)
(Added client class example.)
Line 103: Line 103:
-- Attach the 'consoleCreateVehicle' function to the "createvehicle" command
-- Attach the 'consoleCreateVehicle' function to the "createvehicle" command
addCommandHandler ( "createvehicle", consoleCreateVehicle )
addCommandHandler ( "createvehicle", consoleCreateVehicle )
</syntaxhighlight>
</section>
==Client Class Example==
'''Heads up!''' Client classes only work on '''MTA 1.4''', therefore we highly recommend you to visit [[Client_Scripting_Classes|Client Scripting Classes]] first.
<section name="Example 1: Client" class="client" show="true">
This script will create an Infernus at the center (0, 0, 3) of San Andreas upon execution.
<syntaxhighlight lang="lua">
addEventHandler( "onClientResourceStart", resourceRoot,
    function()
        infernus = Vehicle.create( 411, Vector3( 0, 0, 3 ) ); -- Create an Infernus and spawn it at the middle of SA.
        infernus:setColor( 0, 0, 0 ); -- Set its color to black.
    end)
addCommandHandler( "blowinfernus",
    function()
        if not infernus.blown then -- Check if the Infernus is blown up or not.
            infernus:blow();
        else -- Ouch, it's blown up, let's output an error to the client.
            outputChatBox( "The Infernus has already been blown up by you.", 255, 0, 0, false );
        end
    end)
</syntaxhighlight>
</syntaxhighlight>
</section>
</section>

Revision as of 15:55, 21 October 2013

Dialog-information.png This article needs checking.

Reason(s):
  • Numberplates only seem to work for some vehicles, and then only for the front or rear plate only
  • Explain the direction parameter which should always be false and what is the point of having a parameter whose value need to be the same all the time. --MTA SE 20:05, 5 July 2012 (UTC)
  • The numberplates have to contain at least 1 letter. For example "132" will not work and the function will fail but, "13A" or "132A" will work

This template is no longer in use as it results in poor readability. This function creates a vehicle at the specified location.

Its worth noting that the position of the vehicle is the center point of the vehicle, not its base. As such, you need to ensure that the z value (vertical axis) is some height above the ground. You can find the exact height using the client side function getElementDistanceFromCentreOfMassToBaseOfModel, or you can estimate it yourself and just spawn the vehicle so it drops to the ground.


Syntax

vehicle createVehicle ( int model, float x, float y, float z [, float rx, float ry, float rz, string numberplate, bool bDirection, int variant1, int variant2 ] )

Required Arguments

  • model: The vehicle ID of the vehicle being created.
  • x: A floating point number representing the X coordinate on the map.
  • y: A floating point number representing the Y coordinate on the map.
  • z: A floating point number representing the Z coordinate on the map.

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.

  • rx: A floating point number representing the rotation about the X axis in degrees.
  • ry: A floating point number representing the rotation about the Y axis in degrees.
  • rz: A floating point number representing the rotation about the Z axis in degrees.
  • numberplate: A string that will go on the number plate of the car (max 8 characters). This is only applicable to cars.
  • direction: A boolean which should be set to false. *SERVER ONLY*

Returns

Returns the vehicle element that was created. Returns false if the arguments are incorrect, or if the vehicle limit of 65535 is exceeded.

Using trains

Trains are created using the createVehicle function. They are placed at the nearest point of the GTASA train pathing (railroad tracks) from their spawning point.

Example

Click to collapse [-]
Example 1: Server

This script spawns a Rhino on top of one lucky individual.

function scriptCreateTank ( player, command )
      local luckyBugger = getRandomPlayer() -- get a random player
      local x, y, z = getElementPosition ( luckyBugger ) -- retrive the player's position
      createVehicle ( 432, x, y, z + 10 ) -- create the tank 10 units above them
      outputChatBox ( "You got Tank'd!", luckyBugger )
end
--Attach the 'scriptCreateTank' function to the "tank" command
addCommandHandler ( "tank", scriptCreateTank )
Click to collapse [-]
Example 2: Client

This script spawns a Rhino on top of the local player.

function scriptCreateTank ( commandName )
      local luckyBugger = getLocalPlayer() -- get the local player
      local x, y, z = getElementPosition ( luckyBugger ) -- retrive the player's position
      createVehicle ( 432, x, y, z + 10 ) -- create the tank 10 units above them
      outputChatBox ( "You got Tank'd!", 255, 0, 0)
end
--Attach the 'scriptCreateTank' function to the "tank" command
addCommandHandler ( "tank", scriptCreateTank )
Click to expand [+]
Example 3: Server

Client Class Example

Heads up! Client classes only work on MTA 1.4, therefore we highly recommend you to visit Client Scripting Classes first.

Click to collapse [-]
Example 1: Client

This script will create an Infernus at the center (0, 0, 3) of San Andreas upon execution.

addEventHandler( "onClientResourceStart", resourceRoot,
    function()
        infernus = Vehicle.create( 411, Vector3( 0, 0, 3 ) ); -- Create an Infernus and spawn it at the middle of SA.
        infernus:setColor( 0, 0, 0 ); -- Set its color to black.
    end)
	
addCommandHandler( "blowinfernus",
    function()
        if not infernus.blown then -- Check if the Infernus is blown up or not.
            infernus:blow();
        else -- Ouch, it's blown up, let's output an error to the client.
            outputChatBox( "The Infernus has already been blown up by you.", 255, 0, 0, false );
        end
    end)

See Also