Advertisement
Guest User

Untitled

a guest
Feb 1st, 2024
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import alt from "alt-client";
  2. import native from "natives";
  3.  
  4. let enterSeat = alt.everyTick(() => {
  5.     native.disableControlAction(0, 58, true);
  6.     if (native.isDisabledControlJustPressed(0, 58)) {
  7.         enterVehicleAsPassenger();
  8.         return;
  9.     }
  10.     native.disableControlAction(0, 23, true);
  11.     if (native.isDisabledControlJustPressed(0, 23)) {
  12.         enterVehicleAsDriver();
  13.         return;
  14.     }
  15. });
  16.  
  17. function enterVehicleAsDriver() {
  18.     if (alt.Player.local.vehicle == null) {
  19.         const player = alt.Player.local;
  20.  
  21.         var vehicles = alt.Vehicle.all;
  22.         var closestVehicle;
  23.         var playerPos = alt.Player.local.pos;
  24.  
  25.         var lastDistance = 5;
  26.      
  27.         vehicles.forEach(vehicle => {
  28.             var vehiclePosition = vehicle.pos;
  29.             var distance = playerPos.distanceTo(vehiclePosition);
  30.             if (distance < lastDistance) {
  31.                 closestVehicle = vehicle;
  32.                 lastDistance = distance;
  33.             }
  34.         });
  35.        
  36.         if (closestVehicle == undefined) return;
  37.         var vehicle = closestVehicle.scriptID;
  38.  
  39.         let boneFLDoor = native.getEntityBoneIndexByName(vehicle, 'door_dside_f');
  40.         const posFLDoor = native.getWorldPositionOfEntityBone(vehicle, boneFLDoor);
  41.         const distFLDoor = distance({ x: posFLDoor.x, y: posFLDoor.y, z: posFLDoor.z }, alt.Player.local.pos);
  42.  
  43.         let boneFRDoor = native.getEntityBoneIndexByName(vehicle, 'door_pside_f');
  44.         const posFRDoor = native.getWorldPositionOfEntityBone(vehicle, boneFRDoor);
  45.         const distFRDoor = distance({ x: posFRDoor.x, y: posFRDoor.y, z: posFRDoor.z }, alt.Player.local.pos);
  46.  
  47.         if (native.isVehicleSeatFree(vehicle, -1, false)) {
  48.             let vehicleClass = native.getVehicleClass(vehicle);
  49.             if (vehicleClass == 14) {
  50.                 native.setPedIntoVehicle(player.scriptID, vehicle, -1);
  51.             } else {
  52.                 native.taskEnterVehicle(alt.Player.local.scriptID, vehicle, 5000, -1, 2, 1, 0,0);
  53.             }
  54.         } else {
  55.             if (distFRDoor < distFLDoor) return;
  56.  
  57.             native.taskEnterVehicle(alt.Player.local.scriptID, vehicle, 5000, -1, 2, 1, 0,0);
  58.         }
  59.     }
  60. }
  61.  
  62.  
  63. function enterVehicleAsPassenger() {
  64.     if (alt.Player.local.vehicle) return;
  65.  
  66.     var vehicles = alt.Vehicle.all;
  67.     var closestVehicle;
  68.     var playerPos = alt.Player.local.pos;
  69.  
  70.     var lastDistance = 5;
  71.  
  72.     vehicles.forEach(vehicle => {
  73.         var vehiclePosition = vehicle.pos;
  74.         var distance = playerPos.distanceTo(vehiclePosition);
  75.         if (distance < lastDistance) {
  76.             closestVehicle = vehicle;
  77.             lastDistance = distance;
  78.         }
  79.     });
  80.  
  81.     if (closestVehicle == undefined) return;
  82.     var vehicle = closestVehicle.scriptID;
  83.  
  84.     if (!native.isVehicleSeatFree(vehicle, 0, false) && !native.isVehicleSeatFree(vehicle, 1, false) && !native.isVehicleSeatFree(vehicle, 2, false)) return;
  85.  
  86.     let boneFRDoor = native.getEntityBoneIndexByName(vehicle, 'door_pside_f');
  87.     const posFRDoor = native.getWorldPositionOfEntityBone(vehicle, boneFRDoor);
  88.     const distFRDoor = distance({ x: posFRDoor.x, y: posFRDoor.y, z: posFRDoor.z }, alt.Player.local.pos);
  89.  
  90.     let boneBLDoor = native.getEntityBoneIndexByName(vehicle, 'door_dside_r');
  91.     const posBLDoor = native.getWorldPositionOfEntityBone(vehicle, boneBLDoor);
  92.     const distBLDoor = distance({ x: posBLDoor.x, y: posBLDoor.y, z: posBLDoor.z }, alt.Player.local.pos);
  93.  
  94.     let boneBRDoor = native.getEntityBoneIndexByName(vehicle, 'door_pside_r');
  95.     const posBRDoor = native.getWorldPositionOfEntityBone(vehicle, boneBRDoor);
  96.     const distBRDoor = distance({ x: posBRDoor.x, y: posBRDoor.y, z: posBRDoor.z }, alt.Player.local.pos);
  97.  
  98.     let minDist = Math.min(distFRDoor, distBLDoor, distBRDoor);
  99.  
  100.     if (minDist == distFRDoor) {
  101.         if (minDist > 1.8) return;
  102.  
  103.         if (native.isVehicleSeatFree(vehicle, 0, false)) {
  104.             native.taskEnterVehicle(alt.Player.local.scriptID, vehicle, 5000, 0, 2, 1, 0,0);
  105.         } else if (native.isVehicleSeatFree(vehicle, 2, false)) {
  106.             native.taskEnterVehicle(alt.Player.local.scriptID, vehicle, 5000, 2, 2, 1, 0,0);
  107.         }
  108.         else {
  109.             return;
  110.         }
  111.     }
  112.     if (minDist == distBLDoor) {
  113.         if (minDist > 1.8) return;
  114.  
  115.         if (native.isVehicleSeatFree(vehicle, 1, false)) {
  116.             native.taskEnterVehicle(alt.Player.local.scriptID, vehicle, 5000, 1, 2, 1, 0,0);
  117.         } else {
  118.             return;
  119.         }
  120.     }
  121.     if (minDist == distBRDoor) {
  122.         if (minDist > 1.8) return;
  123.  
  124.         if (native.isVehicleSeatFree(vehicle, 2, false)) {
  125.             native.taskEnterVehicle(alt.Player.local.scriptID, vehicle, 5000, 2, 2, 1, 0,0);
  126.         } else if (native.isVehicleSeatFree(vehicle, 0, false)) {
  127.             native.taskEnterVehicle(alt.Player.local.scriptID, vehicle, 5000, 0, 2, 1, 0,0);
  128.         } else {
  129.             return;
  130.         }
  131.     }
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement