Useful clientside snippets

From RAGE Multiplayer Wiki
Revision as of 07:16, 21 December 2018 by Flow (talk | contribs) (first commit)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Let's build a list with usesfull code snippets here.

Get closest vehicle to your player

Client-Side
exports.closestVehicle= closestVehicle;
function closestVehicle(radius) {
   let inRange = [];
   let target = false;
   mp.vehicles.forEach((_veh) => {
      if(!_veh.handle) return false;
      let distance = mp.game.gameplay.getDistanceBetweenCoords(_veh.position.x, _veh.position.y, _veh.position.z, mp.players.local.position.x, mp.players.local.position.y, mp.players.local.position.z, true);
      if(distance > parseFloat(radius)) return false;
      inRange.push({"remoteId": _veh.remoteId, "distance": distance});
   });
   if(inRange.length) {
      inRange.sort(function(a, b) {
      return a.distance-b.distance
   });
   target = mp.vehicles.atRemoteId(inRange[0].remoteId);
   }
   return target;
}

Return closest player to your local player position

Client-Side
exports.closestPlayer = closestPlayer;
function closestPlayer(radius) {
   let inRange = [];
   let target = false;
   mp.players.forEach((_player) => {
      if(_player == player) return false;
      if(!_player.handle) return false;
      let distance = mp.game.gameplay.getDistanceBetweenCoords(_player.position.x, _player.position.y, _player.position.z, mp.players.local.position.x, mp.players.local.position.y, mp.players.local.position.z, true);
      if(distance > parseFloat(radius)) return false;
      inRange.push({"remoteId": _player.remoteId, "distance": distance});
   });
   if(inRange.length) {
   inRange.sort(function(a, b) {
      return a.distance-b.distance
   });
   target = mp.players.atRemoteId(inRange[0].remoteId);
}
   return target;
}

Check if player is driver

Client-Side
if (mp.players.local.vehicle && mp.players.local.vehicle.getPedInSeat(-1) === mp.players.local.handle) {
// player is in vehicle and is driver
}}