SetVehicleHandling: Difference between revisions
Jump to navigation
Jump to search
| Line 56: | Line 56: | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
function vhandling ( ) | function vhandling ( ) | ||
for _,v in pairs(getElementsByType("vehicle")) do | for _,v in pairs(getElementsByType("vehicle")) do | ||
if getElementModel(v) == 411 then -------------- vehicle Id | |||
setVehicleHandling (v, "mass", 300.0) | setVehicleHandling (v, "mass", 300.0) | ||
setVehicleHandling(v, "turnMass", 200) | setVehicleHandling(v, "turnMass", 200) | ||
| Line 91: | Line 91: | ||
setVehicleHandling(v, "tailLight", 2) | setVehicleHandling(v, "tailLight", 2) | ||
setVehicleHandling(v, "animGroup", 4) | setVehicleHandling(v, "animGroup", 4) | ||
end | |||
end | |||
end | end | ||
addEventHandler ( "onPlayerVehicleEnter", getRootElement(), vhandling ) | addEventHandler ( "onPlayerVehicleEnter", getRootElement(), vhandling ) | ||
Revision as of 00:25, 18 April 2015
This function is used to change the handling data of a vehicle.
Syntax
bool setVehicleHandling ( element theVehicle, string property, var value )
Syntaxes for reset configurations:
bool setVehicleHandling ( element theVehicle, string property, nil, false ) -- Reset one property to model handling value bool setVehicleHandling ( element theVehicle, string property, nil, true ) -- Reset one property to GTA default value bool setVehicleHandling ( element theVehicle, false ) -- Reset all properties to model handling value bool setVehicleHandling ( element theVehicle, true ) -- Reset all properties to GTA default value
Required Arguments
- theVehicle: The vehicle you wish to set the handling of.
- property: The property you wish to set the handling of the vehicle to.
http://web.archive.org/web/20140223160252/http://projectcerbera.com/gta/sa/tutorials/handling
| Property | Value | Minimum value | Maximum value | Notes |
|---|---|---|---|---|
| mass | Float | 1.0 | 100000.0 | |
| turnMass | Float | 0.0 | 1000000.0 | |
| dragCoeff | Float | -200.0 | 200.0 | |
| centerOfMass | Table = { [1]=posX, [2]=posY, [3]=posZ } (floats) | -10.0 | 10.0 | Get returns a table, set needs a table. |
| percentSubmerged | Integer | 1 | 99999 | |
| tractionMultiplier | Float | -100000.0 | 100000.0 | |
| tractionLoss | Float | 0.0 | 100.0 | |
| tractionBias | Float | 0.0 | 1.0 | |
| numberOfGears | Integer | 1 | 5 | |
| maxVelocity | Float | 0.1 | 200000.0 | |
| engineAcceleration | Float | 0.0 | 100000.0 | |
| engineInertia | Float | -1000.0 | 1000.0 | Inertia of 0 can cause a LSOD. (Unable to divide by zero) |
| driveType | String | N/A | N/A | Use 'rwd', 'fwd' or 'awd'. |
| engineType | String | N/A | N/A | Use 'petrol', 'diesel' or 'electric'. |
| brakeDeceleration | Float | 0.1 | 100000.0 | |
| brakeBias | Float | 0.0 | 1.0 | |
| ABS | Boolean | true | false | Has no effect. |
| steeringLock | Float | 0.0 | 360.0 | |
| suspensionForceLevel | Float | 0.0 | 100.0 | |
| suspensionDamping | Float | 0.0 | 100.0 | |
| suspensionHighSpeedDamping | Float | 0.0 | 600.0 | |
| suspensionUpperLimit | Float | -50.0 | 50.0 | Can't be equal to suspensionLowerLimit. |
| suspensionLowerLimit | Float | -50.0 | 50.0 | Can't be equal to suspensionUpperLimit. |
| suspensionFrontRearBias | Float | 0.0 | 1.0 | Hardcoded maximum is 3.0, but values above 1.0 have no effect. |
| suspensionAntiDiveMultiplier | Float | 0.0 | 30.0 | |
| seatOffsetDistance | Float | -20.0 | 20.0 | |
| collisionDamageMultiplier | Float | 0.0 | 10.0 | |
| monetary | Integer | 0 | 230195200 | Get works, set is disabled. |
| modelFlags | Hexadecimal/Decimal | N/A | N/A | Property uses a decimal value, generated by a hexadecimal value. Either use 0x12345678 or tonumber ( "0x12345678" ). See projectcerbera for possible values. |
| handlingFlags | Hexadecimal/Decimal | N/A | N/A | Property uses a decimal value, generated by a hexadecimal value. Either use 0x12345678 or tonumber ( "0x12345678" ). See projectcerbera for possible values. |
| headLight | String | N/A | N/A | Get works, set is disabled. Available values: 'long', 'small', 'big', 'tall'. |
| tailLight | String | N/A | N/A | Get works, set is disabled. Available values: 'long', 'small', 'big', 'tall'. |
| animGroup | Integer | ?? | ?? | Get works, set is disabled due to people not knowing this property was vehicle-based and caused crashes. |
- value: The value of the property you wish to set the handling of the vehicle to.
Returns
Returns true if the handling was set successfully, false otherwise. See below a list of valid propertys and their required values:
Notes
for functionality reasons suspension modification is disabled on monster trucks, trains, boats and trailers.
Example
This example will add a command for players with which they can change the mass of the vehicle.
Click to collapse [-]
Serverfunction massChange ( me, command, mass )
mass = tonumber ( mass ) -- Convert mass to a number
local veh = getPedOccupiedVehicle ( me ) -- Get the player's vehicle
if mass and veh then -- If valid mass and in a vehicle
local success = setVehicleHandling ( veh, "mass", mass ) -- Set the vehicle's mass, and check if successful
if success then -- If successful
outputChatBox ( "Your vehicle's mass has been changed to: "..mass.." kg", me, 0, 255, 0 ) -- Notify the player of success
else -- Too bad failure is still an option
outputChatBox ( "Setting mass failed. It's probably above or below allowed limits", me, 255, 0, 0 ) -- Notify the player of failure, and give a possible reason
end
elseif not veh then -- If not in a vehicle
outputChatBox ( "You're not in a vehicle", me, 255, 0, 0 ) -- Tell the player; He / she obviously doesn't know
elseif not mass then -- If not a valid mass
outputChatBox ( "Syntax: /changemass [mass]", me, 255, 0, 0 ) -- Tell the player the proper syntax
end
end
addCommandHandler ( "changemass", massChange )
This example will make Infernus handling very fast and also make it damage proof from collision (handling by Mr.unpredictable).
Click to collapse [-]
Serverfunction vhandling ( )
for _,v in pairs(getElementsByType("vehicle")) do
if getElementModel(v) == 411 then -------------- vehicle Id
setVehicleHandling (v, "mass", 300.0)
setVehicleHandling(v, "turnMass", 200)
setVehicleHandling(v, "dragCoeff", 4.0 )
setVehicleHandling(v, "centerOfMass", { 0.0,0.08,-0.09 } )
setVehicleHandling(v, "percentSubmerged", 103)
setVehicleHandling(v, "tractionMultiplier", 1.8)
setVehicleHandling(v, "tractionLoss", 1.0)
setVehicleHandling(v, "tractionBias", 0.48)
setVehicleHandling(v, "numberOfGears", 5)
setVehicleHandling(v, "maxVelocity", 300.0)
setVehicleHandling(v, "engineAcceleration", 90.0 )
setVehicleHandling(v, "engineInertia", 5.0)
setVehicleHandling(v, "driveType", "rwd")
setVehicleHandling(v, "engineType", "petrol")
setVehicleHandling(v, "brakeDeceleration", 20.0)
setVehicleHandling(v, "brakeBias", 0.60)
-----abs----
setVehicleHandling(v, "steeringLock", 35.0 )
setVehicleHandling(v, "suspensionForceLevel", 0.85)
setVehicleHandling(v, "suspensionDamping", 0.15 )
setVehicleHandling(v, "suspensionHighSpeedDamping", 0.0)
setVehicleHandling(v, "suspensionUpperLimit", 0.15 )
setVehicleHandling(v, "suspensionLowerLimit", -0.16)
setVehicleHandling(v, "suspensionFrontRearBias", 0.5 )
setVehicleHandling(v, "suspensionAntiDiveMultiplier", 0.0)
setVehicleHandling(v, "seatOffsetDistance", 0.0)
setVehicleHandling(v, "collisionDamageMultiplier", 0.00)
setVehicleHandling(v, "monetary", 10000)
setVehicleHandling(v, "modelFlags", 1002000)
setVehicleHandling(v, "handlingFlags", 1000002)
setVehicleHandling(v, "headLight", 3)
setVehicleHandling(v, "tailLight", 2)
setVehicleHandling(v, "animGroup", 4)
end
end
end
addEventHandler ( "onPlayerVehicleEnter", getRootElement(), vhandling )
See other vehicle functions
- addVehicleUpgrade
- addVehicleSirens
- attachTrailerToVehicle
- blowVehicle
- createVehicle
- detachTrailerFromVehicle
- fixVehicle
- getOriginalHandling
- getTrainDirection
- getTrainPosition
- getTrainSpeed
- getVehicleColor
- getVehicleCompatibleUpgrades
- getVehicleController
- getVehicleDoorOpenRatio
- getVehicleDoorState
- getVehicleEngineState
- getVehicleHandling
- getVehicleHeadLightColor
- getVehicleLandingGearDown
- getVehicleLightState
- getVehicleMaxPassengers
- getVehicleModelFromName
- getVehicleName
- getVehicleNameFromModel
- setVehicleNitroActivated
- getVehicleOccupant
- getVehicleOccupants
- getVehicleOverrideLights
- getVehiclePaintjob
- getVehiclePanelState
- getVehiclePlateText
- getVehicleSirenParams
- getVehicleSirens
- getVehicleSirensOn
- getVehicleTowedByVehicle
- getVehicleTowingVehicle
- getVehicleTurretPosition
- getVehicleType
- getVehicleUpgradeOnSlot
- getVehicleUpgradeSlotName
- getVehicleUpgrades
- getVehicleVariant
- getVehicleWheelStates
- isTrainDerailable
- isTrainDerailed
- isVehicleBlown
- isVehicleDamageProof
- isVehicleFuelTankExplodable
- isVehicleLocked
- isVehicleOnGround
- isVehicleTaxiLightOn
- removeVehicleUpgrade
- removeVehicleSirens
- setTrainDerailable
- setTrainDerailed
- setTrainDirection
- setTrainPosition
- setTrainSpeed
- setVehicleColor
- setVehicleDamageProof
- setVehicleDoorOpenRatio
- setVehicleDoorState
- setVehicleDoorsUndamageable
- setVehicleEngineState
- setVehicleFuelTankExplodable
- setVehicleHandling
- setVehicleHeadLightColor
- setVehicleLandingGearDown
- setVehicleLightState
- setVehicleLocked
- setVehicleOverrideLights
- setVehiclePaintjob
- setVehiclePanelState
- setVehiclePlateText
- setVehicleSirens
- setVehicleSirensOn
- setVehicleTaxiLightOn
- setVehicleTurretPosition
- setVehicleVariant
- setVehicleWheelStates