Player::putIntoVehicle: Difference between revisions

From RAGE Multiplayer Wiki
No edit summary
No edit summary
 
(9 intermediate revisions by 7 users 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>
player.putIntoVehicle(vehicle, seat)
</pre>
Seats:
* 0 - driver seat
* 1 - passenger seat 1
* 2 - passenger seat 2
* 3 - passenger seat 3
==Example==
<syntaxhighlight lang="javascript">
//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.
})
</syntaxhighlight>
==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);
});
</syntaxhighlight>
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
player.putIntoVehicle(Vehicle vehicle, Number seat)
//Client side
mp.events.add('entityStreamIn', (entity) => {
if (entity.type === 'vehicle') {
mp.events.callRemote('server::vehicleStreamIn', entity.remoteId);
}
});
</syntaxhighlight>
</syntaxhighlight>
Seats:
* -1 - driver seat
* 0 - passenger seat 1
* 1 - passenger seat 2
* 2 - passenger seat 3


}}
==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