• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в RAGE Multiplayer.

    Ошибка: Ваша версия Grand Theft Auto V не поддерживается RAGE Multiplayer.
    ERROR: Your game version is not supported by RAGE Multiplayer.

    Данная ошибка говорит о том, что GTA V обновилась до новой версии (GTA Online тоже). Вам необходимо обновить саму игру в главном меню вашего приложения (Steam / Epic Games / Rockstar Games).
    Если после этого RAGE:MP все равно не работает - вам нужно дождаться выхода патча для самого мультиплеера (обычно это занимает от нескольких часов до нескольких дней).

    Новости и апдейты Rockstar Games - https://www.rockstargames.com/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

Вопрос Как сделать так, чтобы машина не теряла скорость

Кликни, чтобы узнать больше!

MrJagger

Участник портала
19 Янв 2025
102
20
55
Приветствую, написал функцию, которая меняет машину игрока на другую

Server-Side
JavaScript:
function changeDynamicVehiclePlayer(player, veh) {
    if(!player.vehicle) return console.log(`Player not vehicle`);

    const velocity = veh.velocity; // скорость
    const heading = veh.rotation;; // rotate
    const oldVeh = player.vehicle;

    //veh.destroy();
    
    if(player.carCurrent === 1) {
        const pos = player.position;
        const vehicle = alt.CreateVehicle("gt750", pos.x, pos.y, pos.z, heading, 52, 15, player.dimension, "admin", true);
        player.putIntoVehicle(vehicle, 0);
        player.carCurrent = 2;
        vehicle.engine = true;
        vehicle.rotation = heading;

        player.call('vehicle:applyVelocity', [velocity.x, velocity.y, velocity.z]);

        veh.destroy();
    } else {
        const pos = player.position;
        const vehicle = alt.CreateVehicle("bullet", pos.x, pos.y, pos.z, heading, 37, 15, player.dimension, "admin", true);
        player.putIntoVehicle(vehicle, 0);
        player.carCurrent = 1;
        vehicle.engine = true;
        vehicle.rotation = heading;

        player.call('vehicle:applyVelocity', [velocity.x, velocity.y, velocity.z]);
        veh.destroy();
    }
}

Все прекрасно работает, но после смены транспорта машина теряет скорость, как избежать это?

Client-Side
JavaScript:
mp.events.add('vehicle:applyVelocity', (x, y, z) => {
    const veh = mp.players.local.vehicle;
    if (!veh) return;

    veh.setVelocity(x, y, z);
});
 

ghostnuller

Мошенник
21 Июл 2025
78
-16
18
Приветствую, написал функцию, которая меняет машину игрока на другую

Server-Side
JavaScript:
function changeDynamicVehiclePlayer(player, veh) {
    if(!player.vehicle) return console.log(`Player not vehicle`);

    const velocity = veh.velocity; // скорость
    const heading = veh.rotation;; // rotate
    const oldVeh = player.vehicle;

    //veh.destroy();
   
    if(player.carCurrent === 1) {
        const pos = player.position;
        const vehicle = alt.CreateVehicle("gt750", pos.x, pos.y, pos.z, heading, 52, 15, player.dimension, "admin", true);
        player.putIntoVehicle(vehicle, 0);
        player.carCurrent = 2;
        vehicle.engine = true;
        vehicle.rotation = heading;

        player.call('vehicle:applyVelocity', [velocity.x, velocity.y, velocity.z]);

        veh.destroy();
    } else {
        const pos = player.position;
        const vehicle = alt.CreateVehicle("bullet", pos.x, pos.y, pos.z, heading, 37, 15, player.dimension, "admin", true);
        player.putIntoVehicle(vehicle, 0);
        player.carCurrent = 1;
        vehicle.engine = true;
        vehicle.rotation = heading;

        player.call('vehicle:applyVelocity', [velocity.x, velocity.y, velocity.z]);
        veh.destroy();
    }
}

Все прекрасно работает, но после смены транспорта машина теряет скорость, как избежать это?

Client-Side
JavaScript:
mp.events.add('vehicle:applyVelocity', (x, y, z) => {
    const veh = mp.players.local.vehicle;
    if (!veh) return;

    veh.setVelocity(x, y, z);
});
Тебе надо менять значения максимальной скорости машины тоже, через

let MaxSpeed = mp.game.vehicle.getVehicleModelMaxSpeed(veh.model);
и
veh.setMaxSpeed(MaxSpeed)
 
Реакции: jungledev

MrJagger

Участник портала
19 Янв 2025
102
20
55
В общем, решил задачу. Для тех, кому интересно:
Client-side

JavaScript:
let currentVelocity = null;

let changeCar = false;

mp.events.add('vehicle:applyVelocity', (x, y, z) => {
    const veh = mp.players.local.vehicle;
    if (!veh) return;
    
    currentVelocity =  { x, y, z };
    changeCar = true;
});

mp.events.add('render', () => {
    if(player.vehicle) {
        if(changeCar) {
            player.vehicle.setVelocity(currentVelocity.x, currentVelocity.y, currentVelocity.z);
            changeCar = false;
        }
    }
});

Если вкратце, с сервера получаем velocity, записываем координаты в переменную currentVelocity и с помощью клиентского тика изменяем velocity. Скорость чуть-чуть падает, но в глаза не бросается
 
Реакции: Inoi и XDeveluxe