SetPedEnterVehicle: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
mNo edit summary
(Limits)
Line 5: Line 5:
{{Note|For this function to work on peds, the server and all clients are required to be on version '''1.5.8 r20740''' or newer.}}
{{Note|For this function to work on peds, the server and all clients are required to be on version '''1.5.8 r20740''' or newer.}}
{{Note|This function only works on synced peds and vehicles (ie. created serverside).}}
{{Note|This function only works on synced peds and vehicles (ie. created serverside).}}
{{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.
* If forced to enter as a driver, the ped can take off the vehicle's current driver.
** If the driver's door is blocked by something, the ped can use the oposite front door to reach the driver's seat, taking off the passenger which is using the oposite front seat.
* If the vehicle is not specified:
** The ped will search a vehicle's door within 20 m that can be used to enter the vehicle.
** If the vehicle have a driver, the limit becomes 10 m.
* If the vehicle is specified:
** The ped will search the vehicle within 50 m that can be entered. 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 have a driver, the limit becomes 10 m.
* The limit becomes 50 m after the ped found the vehicle and started to run toward it.
* The ped stops the animation if the distance from vehicle reaches 50 m while the ped is running towards it.
* The ped reserves the seat he is trying to use. It means nobody can use 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==  
==Syntax==  

Revision as of 00:13, 26 April 2021

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


[[{{{image}}}|link=|]] Note: For this function to work on peds, the server and all clients are required to be on version 1.5.8 r20740 or newer.
[[{{{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.
  • If forced to enter as a driver, the ped can take off the vehicle's current driver.
    • If the driver's door is blocked by something, the ped can use the oposite front door to reach the driver's seat, taking off the passenger which is using the oposite front seat.
  • If the vehicle is not specified:
    • The ped will search a vehicle's door within 20 m that can be used to enter the vehicle.
    • If the vehicle have a driver, the limit becomes 10 m.
  • If the vehicle is specified:
    • The ped will search the vehicle within 50 m that can be entered. 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 have a driver, the limit becomes 10 m.
  • The limit becomes 50 m after the ped found the vehicle and started to run toward it.
  • The ped stops the animation if the distance from vehicle reaches 50 m while the ped is running towards it.
  • The ped reserves the seat he is trying to use. It means nobody can use 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

  • The function is used on a ped, but another client is not on version 1.5.8 r20740 or newer.
  • 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.
  • The function is used on a ped, but the server is not on version 1.5.8 r20740 or newer.
  • 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 sweets_car = createVehicle(492, 3, 0, 3)
setElementID(sweets_car, 'sweets_car')
Click to collapse [-]
Client
-- Code works only if client is syncing ped Sweet
addCommandHandler('sweet_enter_car',
function()
    local sweet = getElementByID('sweet')

    if isElementSyncer(sweet) then
        setPedEnterVehicle(sweet, getElementByID('sweets_car'), true)
    end
end)

See Also