Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- alt.everyTick(() => {
- // Enter vehicle F
- native.disableControlAction(0, 23, true);
- if (native.isDisabledControlJustPressed(0, 23)) {
- enterVehicle();
- }
- });
- const seats = { handle_dside_f: -1, handle_pside_f: 0, handle_dside_r: 1, handle_pside_r: 2, seat_dside_r1: 3, seat_pside_r1: 4, seat_dside_r2: 5, seat_pside_r2: 6 };
- function enterVehicle() {
- if(alt.Player.local.vehicle == null && native.getVehiclePedIsEntering(alt.Player.local) == 0) {
- var closestVehicle = false;
- var closestVehicleDistance = 6;
- alt.Vehicle.all.forEach(vehicle => {
- const dist = alt.Utils.Distance(alt.Player.local.pos, vehicle.pos)*1000;
- if(dist < closestVehicleDistance) {
- closestVehicle = vehicle;
- closestVehicleDistance = dist;
- }
- });
- if(!closestVehicle || !closestVehicle.hasSyncedMeta('lockState')) return;
- const isVehicleOwner = closestVehicle.getSyncedMeta('ownerId') !== undefined && closestVehicle.getSyncedMeta('ownerId') === alt.Player.local.getSyncedMeta('dbId');
- // if not motorcycles
- if([8, 16].indexOf(native.getVehicleClass(closestVehicle)) === -1) {
- var closestSeat = false;
- var closestSeatDistance = 0;
- for(const door of Object.keys(seats)) {
- const doorPos = native.getWorldPositionOfEntityBone(closestVehicle, native.getEntityBoneIndexByName(closestVehicle, door));
- if(doorPos.x == 0 && doorPos.y == 0 && doorPos.z == 0) { continue; }
- const dist = alt.Utils.Distance(alt.Player.local.pos, doorPos)*1000;
- if(closestSeat === false || dist < closestSeatDistance && native.isVehicleSeatFree(closestVehicle, closestSeat, true)) {
- closestSeat = seats[door];
- closestSeatDistance = dist;
- }
- }
- if(closestSeat === false) return;
- native.setVehicleDoorsLocked(closestVehicle, isVehicleOwner ? 1 : closestVehicle.getSyncedMeta('lockState'));
- native.taskEnterVehicle(alt.Player.local, closestVehicle, 4000, closestSeat, 2, 1, 0);
- // clear vehicle window break animation
- if(closestVehicle.getSyncedMeta('lockState') == 2 && !isVehicleOwner) {
- var timeout = alt.setTimeout(() => {
- alt.clearInterval(check);
- return;
- }, 4000);
- var check = alt.setInterval(() => {
- if(closestVehicle.getSyncedMeta('lockState') == 1) {
- alt.clearTimeout(timeout);
- alt.clearInterval(check);
- native.clearPedTasksImmediately(alt.Player.local);
- }
- }, 500);
- }
- }
- else {
- // in any seat is free
- const freeSeat = native.isVehicleSeatFree(closestVehicle, -1, true) ? -1 : (native.isVehicleSeatFree(closestVehicle, 0, true) ? 0 : false);
- if(freeSeat !== false) {
- native.setVehicleDoorsLocked(closestVehicle, isVehicleOwner ? 1 : closestVehicle.getSyncedMeta('lockState'));
- native.taskEnterVehicle(alt.Player.local, closestVehicle, 4000, freeSeat, 2, 1, 0);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement