Player::putIntoVehicle: Difference between revisions

From RAGE Multiplayer Wiki
(Information about timeout)
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
This function puts player into vehicle.
{{ServersideJsFunction}}
{{JSContainer|
This method puts player into vehicle.
 
'''The vehicle must be streamed-in for this method to work as intended.'''
 
For client side head to [[https://wiki.rage.mp/index.php?title=Player::setIntoVehicle Player::setIntoVehicle]]
== Syntax ==
== Syntax ==
<pre>
<pre>
player.putIntoVehicle(Vehicle vehicle, Number seat)
player.putIntoVehicle(vehicle, seat)
</pre>
</pre>
Seats:
Seats:
* -1 - driver seat
* 0 - passenger seat 1
* 1 - passenger seat 2
* 2 - passenger seat 3
In version >1.0 Seats:
* 0 - driver seat
* 0 - driver seat
* 1 - passenger seat 1
* 1 - passenger seat 1
Line 16: Line 17:
* 3 - passenger seat 3
* 3 - passenger seat 3


'''NOTE''': You can't put player in vehicle immediately after creating vehicle, use timeout (200 ms will be fine)
==Example==
<syntaxhighlight lang="javascript">
//Server side


==Examples==
mp.events.addCommand("spawncar", (player, _, model = "sultanrs") => {
{{ServersideCode|
const position = player.position;
<pre>
const vehicle = mp.vehicles.new(mp.joaat(model), position); //Creating the vehicle
// 0.3.7
    player.putIntoVehicle(vehicle, 0); //we put the player into the vehicle as soon as the vehicle is streamed in.
mp.events.addCommand('veh', (player, vehicle = "T20") => {
 
  const veh = mp.vehicles.new(mp.joaat(vehicle), player.position, {
})
    dimension: player.dimension
 
  });
</syntaxhighlight>
  player.putIntoVehicle(veh, -1);
==Quick Snippet==
Making a custom vehicle stream in handler for server side.
<syntaxhighlight lang="typescript">
//Server side
 
mp.events.addCommand("spawncar", (player, _) => {
const position = new mp.Vector3(573.07, -352.55, 43.21); //A random position to spawn the vehicle at
 
const vehicle = mp.vehicles.new(mp.joaat("sultanrs"), position); //Creating the vehicle
 
//Adding a custom method to the vehicle which will handle the stream in (will be called from the client).
vehicle.onStreamIn = (veh) => { //supports async as well
 
  if (!player || !mp.players.exists(player)) return; //if the player is no longer available when this method is called we return here.
 
  player.putIntoVehicle(veh, 0); //we put the player into the vehicle as soon as the vehicle is streamed in.
}
 
player.position = vehicle.position; //setting player position to the vehicle position
 
})
 
//Adding a event which will be called from client when the vehicle streams in
mp.events.add('server::vehicleStreamIn', async (player, remoteid) => {
const vehicle = mp.vehicles.at(remoteid);
 
if (!vehicle || !mp.vehicles.exists(vehicle)) return;
if (!vehicle.onStreamIn || typeof vehicle.onStreamIn === 'undefined') return;
vehicle.onStreamIn.constructor.name === 'AsyncFunction' ? await vehicle.onStreamIn(vehicle) : vehicle.onStreamIn(vehicle);
});
});


// 1.0 +
</syntaxhighlight>
mp.events.addCommand('veh', (player, vehicle = "T20") => {
 
  const veh = mp.vehicles.new(mp.joaat(vehicle), player.position, {
 
    dimension: player.dimension
<syntaxhighlight lang="javascript">
  });
//Client side
  player.putIntoVehicle(veh, 0);
mp.events.add('entityStreamIn', (entity) => {
if (entity.type === 'vehicle') {
mp.events.callRemote('server::vehicleStreamIn', entity.remoteId);
}
});
});
</pre>
</syntaxhighlight>
 
}}
}}
==See Also==
==See Also==
{{Player_block}}
{{Player_block}}

Latest revision as of 11:59, 28 April 2024

Server-Side
Function

 JavaScript



JavaScript Syntax

This method puts player into vehicle.

The vehicle must be streamed-in for this method to work as intended.

For client side head to [Player::setIntoVehicle]

Syntax

player.putIntoVehicle(vehicle, seat)

Seats:

  • 0 - driver seat
  • 1 - passenger seat 1
  • 2 - passenger seat 2
  • 3 - passenger seat 3

Example

//Server side

mp.events.addCommand("spawncar", (player, _, model = "sultanrs") => {
	const position = player.position;
	const vehicle = mp.vehicles.new(mp.joaat(model), position); //Creating the vehicle
    player.putIntoVehicle(vehicle, 0); //we put the player into the vehicle as soon as the vehicle is streamed in.

})

Quick Snippet

Making a custom vehicle stream in handler for server side.

//Server side

mp.events.addCommand("spawncar", (player, _) => {
	const position = new mp.Vector3(573.07, -352.55, 43.21); //A random position to spawn the vehicle at

	const vehicle = mp.vehicles.new(mp.joaat("sultanrs"), position); //Creating the vehicle

	//Adding a custom method to the vehicle which will handle the stream in (will be called from the client).
	vehicle.onStreamIn = (veh) => { //supports async as well

	  if (!player || !mp.players.exists(player)) return; //if the player is no longer available when this method is called we return here.

	  player.putIntoVehicle(veh, 0); //we put the player into the vehicle as soon as the vehicle is streamed in.
	}

	player.position = vehicle.position; //setting player position to the vehicle position

})

//Adding a event which will be called from client when the vehicle streams in
mp.events.add('server::vehicleStreamIn', async (player, remoteid) => {
	const vehicle = mp.vehicles.at(remoteid);

	if (!vehicle || !mp.vehicles.exists(vehicle)) return;
	if (!vehicle.onStreamIn || typeof vehicle.onStreamIn === 'undefined') return;
	vehicle.onStreamIn.constructor.name === 'AsyncFunction' ? await vehicle.onStreamIn(vehicle) : vehicle.onStreamIn(vehicle);
});


//Client side
mp.events.add('entityStreamIn', (entity) => {
	if (entity.type === 'vehicle') {
		mp.events.callRemote('server::vehicleStreamIn', entity.remoteId);
	}
});



See Also