SetPedEnterVehicle

From Multi Theft Auto: Wiki
Revision as of 19:22, 30 September 2021 by Zangomangu (talk | contribs) (Removed version comment and rephrased some notes)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This function makes a ped enter a vehicle, similar to the enter_exit control state.

[[{{{image}}}|link=|]] Note: This function only works on synced peds and vehicles (ie. created serverside).
[[{{{image}}}|link=|]] Note: This function only works within the following limits:
  • If forced to enter as a passenger, it doesn't work if all passenger seats are occupied. Only the driver seat can be jacked.
  • If forced to enter as a driver, the ped can carjack the current driver.
    • If the driver's door is blocked by something, the ped can use the opposite front door to reach the driver's seat, jacking the passenger in the process.
  • If a vehicle is not specified:
    • The ped will search for a vehicle door within 20 m.
    • If the vehicle has a driver, the limit becomes 10 m.
  • If a vehicle is specified:
    • The vehicle has to be within 50 m. The doors aren't taken into account. It means that it doesn't work if the vehicle's door is in range but the vehicle itself is not.
    • If the vehicle has a driver, the limit becomes 10 m.
  • When entering, the ped will run toward a vehicle if it is less than 50 m away.
  • The ped reserves the seat he is trying to use. It means nobody can enter the respective seat while the ped is running toward it.
    • Exception: If the ped is forced to enter as a passenger and is going to use the front door, the ped can wait if someone is using it to go the driver seat.

Syntax

bool setPedEnterVehicle ( ped thePed [, vehicle theVehicle = nil, bool passenger = false ] )

Required Arguments

  • thePed: The player or ped to enter the vehicle.
    • Note: The player must be the local player.
    • Note: The ped must be synced by the client. Use isElementSyncer clientside to check if the client is syncing. Use setElementSyncer serverside to change the syncer manually.
  • vehicle: The vehicle to enter. If no vehicle is set, the ped will enter the nearest vehicle within 20 m.
  • passenger: If set to true, the ped will enter as passenger in the nearest available seat, otherwise he will enter as driver.

Returns

Returns true if the function was successful, false otherwise.

When this function returns true, the client will ask server for permission to enter a vehicle. Actually entering can still fail in the following cases

  • Another player or ped is already entering, exiting or jacking the same vehicle and seat.
  • Movement input or damage can interrupt the task. Use getPedTask to monitor what the ped is doing.

This function returns false in the following cases

  • Invalid arguments were parsed.
  • Time passed since last enter/exit for this ped is less than 1500 ms.
  • onClientVehicleStartEnter was cancelled by a script.
  • The ped has an active TASK_PRIMARY task. Use getPedTask to monitor what the ped is doing.

Example

Make ped Sweet enter his car:

Click to collapse [-]
Server
local sweet = createPed (270, 0, 0, 3)
setElementID (sweet, "sweet")

local sweetscar = createVehicle (492, 3, 0, 3)
setElementID (sweetscar, "sweetscar")
Click to collapse [-]
Client
-- Code works only if client is syncing ped Sweet
addCommandHandler ("sweetentercar",
function()
    local sweet = getElementByID ("sweet")

    if isElementSyncer (sweet) then
        setPedEnterVehicle (sweet, getElementByID("sweetscar"), true)
    end
end)

Requirements

Minimum server version 1.5.8-9.20740
Minimum client version 1.5.8-9.20740

Note: Using this feature requires the resource to have the above minimum version declared in the meta.xml <min_mta_version> section. e.g. <min_mta_version server="1.5.8-9.20740" client="1.5.8-9.20740" />

See Also