|
|
Line 1: |
Line 1: |
| __NOTOC__
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| {{Server client function}}
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| {{note_box|Vehicles (and other elements) created client-side are only seen by the client that created them, aren't synced and players cannot enter them. They are essentially for display only.}}
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| This function creates a vehicle at the specified location.
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| | | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| 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.
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| | | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| ==Syntax==
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| <syntaxhighlight lang="lua">
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| vehicle createVehicle ( int model, float x, float y, float z [, float rx, float ry, float rz, string numberplate, bool bDirection, int variant1, int variant2 ] )
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| </syntaxhighlight>
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| {{OOP||[[Vehicle]]||}}
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| | | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| ===Required Arguments===
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| * '''model''': The [[Vehicle IDs|vehicle ID]] of the vehicle being created.
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| * '''x''': A floating point number representing the X coordinate on the map.
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| * '''y''': A floating point number representing the Y coordinate on the map.
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| * '''z''': A floating point number representing the Z coordinate on the map.
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| | | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| ===Optional Arguments===
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| {{OptionalArg}}
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| * '''rx''': A floating point number representing the rotation about the X axis in degrees.
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| * '''ry''': A floating point number representing the rotation about the Y axis in degrees.
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| * '''rz''': A floating point number representing the rotation about the Z axis in degrees.
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| * '''numberplate''': A string that will go on the number plate of the vehicle (max 8 characters).
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| * '''bDirection''' ''(serverside only)'': Placeholder [[boolean]] which provides backward compatibility with some scripts. It never had any effect, but it is read by the code. It is recommended to ignore this argument, passing ''false'' or the ''variant1'' argument in its place.
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| {{New feature/item|3.0120|1.2||
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| * '''variant1''': An integer for the first vehicle variant. See [[vehicle variants]].
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| * '''variant2''': An integer for the second vehicle variant. See [[vehicle variants]].
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| }}
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| | | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| ===Returns===
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| Returns the [[vehicle]] element that was created. Returns ''false'' if the arguments are incorrect, or if the vehicle limit of 65535 is exceeded.
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| | | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| ==Using trains==
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| Trains are created using the createVehicle function. They are placed at the nearest point of the GTASA train pathing (they usually are railroad tracks) from their spawning point.
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| | | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| ==Example==
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| <section name="Example 1: Server" class="server" show="true">
| | Extrem liże hazowi dupsko a Barcioo liże cipsko Trinowi |
| This example creates a vehicle five units to the right of a player when they type ''createvehicle'' and its name in the console:
| |
| <syntaxhighlight lang="lua">
| |
| local distance = 5 --units
| |
| | |
| -- define our handler (we'll take a variable number of parameters where the name goes, because there are vehicle names with more than one word)
| |
| function consoleCreateVehicle ( sourcePlayer, commandName, ... )
| |
| -- if a player triggered it, not the admin,
| |
| if ( sourcePlayer ) then
| |
| -- calculate the position of the vehicle based on the player's position and rotation:
| |
| local x, y, z = getElementPosition ( sourcePlayer ) -- get the player's position
| |
| local rotZ = getElementRotation ( sourcePlayer ) -- get the player's rotation around the Z axis in degrees
| |
| x = x + ( ( math.cos ( math.rad ( rotZ ) ) ) * distance ) -- calculate the X position of the vehicle
| |
| y = y + ( ( math.sin ( math.rad ( rotZ ) ) ) * distance ) -- calculate the Y position of the vehicle
| |
| | |
| -- get the complete vehicle name by joining all passed parameters using Lua function table.concat
| |
| local vehicleName = table.concat({...}, " ")
| |
| -- get the vehicle's model ID from the name
| |
| local vehicleID = getVehicleModelFromName ( vehicleName )
| |
| -- if vehicle ID is valid,
| |
| if vehicleID then
| |
| -- create the vehicle using the information gathered above:
| |
| local newVehicle = createVehicle ( vehicleID, x, y, z, 0, 0, rotZ )
| |
| -- if vehicle creation failed, give the player a message
| |
| if not newVehicle then
| |
| outputConsole ( "Failed to create vehicle.", sourcePlayer )
| |
| end
| |
| end
| |
| end
| |
| end
| |
| | |
| -- Attach the 'consoleCreateVehicle' function to the "createvehicle" command
| |
| addCommandHandler ( "createvehicle", consoleCreateVehicle )
| |
| </syntaxhighlight>
| |
| </section>
| |
| | |
| <section name="Example 2: Server" class="server" show="false">
| |
| This script spawns a Rhino on top of one lucky individual.
| |
| <syntaxhighlight lang="lua">
| |
| 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 )
| |
| </syntaxhighlight>
| |
| </section>
| |
| | |
| <section name="Example 3: Server" class="server" show="false">
| |
| This example adds a ''/spveh'' command to spawn a car model in the provided coordinates. If any car created by this command gets blown up, it will respawn where it was created.
| |
| <syntaxhighlight lang="lua">
| |
| -- Do not allow the following IDs to be spawned
| |
| local forbiddenCars = { [435] = true, [441] = true, [449] = true, [450] = true, [464] = true, [465] = true, [501] = true,
| |
| [537] = true, [538] = true, [564] = true, [569] = true, [570] = true, [584] = true, [590] = true,
| |
| [591] = true, [594] = true, [606] = true, [607] = true, [608] = true, [610] = true, [611] = true }
| |
| | |
| local cmdVehRoot = createElement("commandVehicles") -- Dummy element containing the cars that this command has created
| |
| addCommandHandler("spveh",
| |
| function(player, cmd, modelID, x, y, z, platetext)
| |
| -- Check whether arguments are correct
| |
| local modelID, x, y, z = tonumber(modelID), tonumber(x), tonumber(y), tonumber(z)
| |
| if modelID and x and y and z then
| |
| -- Do not continue if we shouldn't
| |
| if forbiddenCars[modelID] then
| |
| outputChatBox("The car model you provided is not allowed.", player, 255, 0, 0)
| |
| return
| |
| end
| |
| local platetext = type(platetext) == "string" and platetext or "PRIVATE"
| |
| -- Create the actual vehicle and set it as a children of our dummy element
| |
| setElementParent(createVehicle(modelID, x, y, z, 0, 0, 0, platetext), cmdVehRoot)
| |
| -- Inform the player about what we did
| |
| outputChatBox("You have created a " .. getVehicleNameFromModel(modelID) .. " (model ID: " .. modelID .. ") at " .. table.concat({ x, y, z }, ", ") .. " with numberplate " .. platetext .. " successfully.", player, 0, 255, 0)
| |
| else
| |
| outputChatBox("Syntax: /" .. cmd .. " (modelID) (x) (y) (z) [numberplate]", player, 255, 255, 255)
| |
| end
| |
| end
| |
| )
| |
| | |
| -- If a vehicle that has been created using the command blows up, respawn it where it was created
| |
| addEventHandler("onVehicleExplode", cmdVehRoot,
| |
| function()
| |
| respawnVehicle(source)
| |
| end
| |
| )
| |
| </syntaxhighlight>
| |
| </section>
| |
| | |
| <section name="Example 3: Client" class="client" show="true">
| |
| This script spawns a Rhino on top of the local player.
| |
| <syntaxhighlight lang="lua">
| |
| 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 )
| |
| </syntaxhighlight>
| |
| </section>
| |
| | |
| | |
| {{New items|4.0132|1.4|
| |
| This is an example of how this function is executed in an OOP environment.
| |
| <section name="OOP server" class="server" show="true">
| |
| This script will create an Infernus at the center (0, 0, 3) of San Andreas upon execution.
| |
| <syntaxhighlight lang="lua">
| |
| addEventHandler( "onResourceStart", resourceRoot,
| |
| function()
| |
| infernus = Vehicle(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.
| |
| infernus.damageProof = true; -- Make it damage proof
| |
| end
| |
| )
| |
|
| |
| addCommandHandler( "blowinfernus",
| |
| function(p)
| |
| 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 player.
| |
| outputChatBox( "The Infernus has already been blown up by you.", p, 255, 0, 0, false );
| |
| end
| |
| end)
| |
| </syntaxhighlight>
| |
| </section>
| |
| }}
| |
| | |
| ==See Also==
| |
| | |
| | |
| {{Vehicle functions}}
| |
| [[de:createVehicle]]
| |
| [[pl:createVehicle]]
| |
| [[RU:CreateVehicle]]
| |