AddVehicleUpgrade: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
(Add documentation for "all" upgrade)
 
(20 intermediate revisions by 12 users not shown)
Line 1: Line 1:
__NOTOC__
__NOTOC__
==Description==
{{Server client function}}
This function adds an upgrade to an existing vehicle, eg: nos, hyrdraulics. Defined in San Andreas\data\maps\veh_mods\veh_mods.ide.
This function adds an upgrade to a [[vehicle]], e.g. nitrous, hydraulics.


==Syntax==
==Syntax==
<syntaxhighlight lang="lua">bool addVehicleUpgrade ( vehicle, upgrade )</syntaxhighlight>
<syntaxhighlight lang="lua">bool addVehicleUpgrade ( vehicle theVehicle, string/int upgrade )</syntaxhighlight>
 
{{OOP||[[vehicle]]:addUpgrade}}
===Required Arguments===
===Required Arguments===
*'''vehicle''': The [[element]] representing the [[vehicle]] you wish to add the upgrade to.
*'''theVehicle''': The [[element]] representing the [[vehicle]] you wish to add the upgrade to.
*'''upgrade''': The upgrade you wish to add, currently limited to NOS-5X(1008), NOS-2X(1009), NOS-10X(1010), HYDRAULICS(1087)
*'''upgrade''': The id of the upgrade you wish to add: 1000 to 1193 (''see [[Vehicle Upgrades]]'') or "'''all"''' to add all upgrades.
'''Note:''' setCameraTarget will behave strangely if you use hydraulics (upgrade id: 1087) server sided and when your camera target is the player inside the vehicle with hydraulics and if the player is not you.


==Returns==
==Returns==
Returns 'true' if the upgrade was successfully added to the vehicle, otherwise 'false'.
Returns ''true'' if the upgrade was successfully added to the vehicle, otherwise ''false''.


==Example==
==Example==
<section name="Example 1" class="server" show="true">
This serverside function allows the user to get an upgrade by typing a command:
<syntaxhighlight lang="lua">
-- define the handler function for our command
function consoleAddUpgrade ( thePlayer, commandName, id )
        -- make sure the player is in a vehicle
        if ( isPedInVehicle ( thePlayer ) ) then
            -- convert the given ID from a string to a number
            local id = tonumber ( id )
            -- get the player's vehicle
            local theVehicle = getPedOccupiedVehicle ( thePlayer )
            -- add the requested upgrade to the vehicle
            local success = addVehicleUpgrade ( theVehicle, id )
            -- inform the player of whether the upgrade was added successfully
            if ( success ) then
                outputConsole ( getVehicleUpgradeSlotName ( id ) .. " upgrade added.", thePlayer )
            else
                outputConsole ( "Failed to add upgrade.", thePlayer )
            end
        else
            outputConsole ( "You must be in a vehicle!", thePlayer )
        end
end
-- add the function as a handler for the "addupgrade" command
addCommandHandler ( "addupgrade", consoleAddUpgrade )
</syntaxhighlight>
</section>
<section name="Example 2" class="client" show="true">
This client-side script gives vehicles a nitro upgrade whenever they pass through a certain collision shape:
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
addEventHandler ( "onPlayerConsole", root, "onPlayerConsole" )
-- create a collision shape
function onPlayerConsole ( text )
local nitroColShape = createColSphere ( 1337, 100, 12, 2 )
  command = split ( text, 1, 32 )
 
  if ( command == "nos" ) then
-- attach the collision shape to an 'onClientColShapeHit' event
    vehicle = getPlayerOccupiedVehicle ( source )
function onNitroColShapeHit ( hitElement, matchingDimension )
    if ( vehicle ) then
    if ( getElementType ( hitElement ) == "vehicle" ) then
      addVehicleUpgrade ( vehicle, 1010 ) -- nos-10x
        -- add a nitro upgrade if the element that hit the colshape is a vehicle
        addVehicleUpgrade ( hitElement, 1010 )
     end
     end
  end
end
end
addEventHandler ( "onClientColShapeHit", nitroColShape, onNitroColShapeHit )
</syntaxhighlight>
</syntaxhighlight>
</section>


==See Also==
==See Also==
{{Vehicle functions}}
{{Vehicle functions}}

Latest revision as of 21:24, 19 March 2021

This function adds an upgrade to a vehicle, e.g. nitrous, hydraulics.

Syntax

bool addVehicleUpgrade ( vehicle theVehicle, string/int upgrade )

OOP Syntax Help! I don't understand this!

Method: vehicle:addUpgrade(...)


Required Arguments

  • theVehicle: The element representing the vehicle you wish to add the upgrade to.
  • upgrade: The id of the upgrade you wish to add: 1000 to 1193 (see Vehicle Upgrades) or "all" to add all upgrades.

Note: setCameraTarget will behave strangely if you use hydraulics (upgrade id: 1087) server sided and when your camera target is the player inside the vehicle with hydraulics and if the player is not you.

Returns

Returns true if the upgrade was successfully added to the vehicle, otherwise false.

Example

Click to collapse [-]
Example 1

This serverside function allows the user to get an upgrade by typing a command:

-- define the handler function for our command
function consoleAddUpgrade ( thePlayer, commandName, id )
        -- make sure the player is in a vehicle
        if ( isPedInVehicle ( thePlayer ) ) then
            -- convert the given ID from a string to a number
            local id = tonumber ( id )
            -- get the player's vehicle
            local theVehicle = getPedOccupiedVehicle ( thePlayer )
            -- add the requested upgrade to the vehicle
            local success = addVehicleUpgrade ( theVehicle, id )
            -- inform the player of whether the upgrade was added successfully
            if ( success ) then
                outputConsole ( getVehicleUpgradeSlotName ( id ) .. " upgrade added.", thePlayer )
            else
                outputConsole ( "Failed to add upgrade.", thePlayer )
            end
        else
            outputConsole ( "You must be in a vehicle!", thePlayer )
        end
end
-- add the function as a handler for the "addupgrade" command
addCommandHandler ( "addupgrade", consoleAddUpgrade )
Click to collapse [-]
Example 2

This client-side script gives vehicles a nitro upgrade whenever they pass through a certain collision shape:

-- create a collision shape
local nitroColShape = createColSphere ( 1337, 100, 12, 2 )

-- attach the collision shape to an 'onClientColShapeHit' event
function onNitroColShapeHit ( hitElement, matchingDimension )
    if ( getElementType ( hitElement ) == "vehicle" ) then
        -- add a nitro upgrade if the element that hit the colshape is a vehicle
        addVehicleUpgrade ( hitElement, 1010 )
    end
end
addEventHandler ( "onClientColShapeHit", nitroColShape, onNitroColShapeHit )

See Also