• Из-за обновления 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) последний раз были обновлены:

skyElmax

Специалист
FrontEnd developer
15 Сен 2020
151
89
105
Данный скрипт стоит у меня на сервере, никаких нареканий по его работе нет.
На клиентской стороне просто добавьте это:

JavaScript:
let radioOffTimer = 0; // переменная в которую мы записываем время
mp.events.add('render', () => { // рендер каждого кадра
    if (mp.players.local.vehicle && new Date().getTime() - radioOffTimer < 15000) { // Где 15000 это время в МС
        mp.game.audio.setRadioToStationName("OFF"); // эта функция переводит стояние радио в "выключенное" (работает только в рендере)
    }
});
mp.events.add("playerEnterVehicle", (vehicle, seat) => {
    radioOffTimer = new Date().getTime(); // записываем время
});

Думаю норм разъяснил что за что отвечает.

Есть еще способ от Harland David Sanders, говорят что он работает, но я сомневаюсь что он будет четко работать :D
Он короче и практичнее.
JavaScript:
mp.events.add('playerEnterVehicle', (vehicle, seat) => {
    setTimeout(() => {
        mp.game.audio.setRadioToStationName("OFF");
    }, 1000);
});

Еще способ, оптимизированный!!! Спасибо UchihaMadara
JavaScript:
let radioOffTimer = 0 // переменная в которую мы записываем время
function onRender() {
    let vehicle = mp.players.local.vehicle // получаем vehicle
    let currentTime = new Date().getTime() - radioOffTimer
    if (vehicle && currentTime < 1500) { // В течении 1500мс будет выключать радио
        mp.game.audio.setRadioToStationName("OFF") // эта функция переводит состояние радио в "выключенное" (работает только в рендере)
    }
    if (currentTime > 1500) {
        mp.events.remove("render", onRender) // Удаляем обработчик события
    }
}

mp.events.add("playerEnterVehicle", (vehicle, seat) => {
    radioOffTimer = new Date().getTime() // записываем время
    mp.events.add('render', onRender) // добавляем событие
});
 
Последнее редактирование:
Реакции: OGNEMET4IK и Agressor

Agressor

Начинающий специалист
27 Окт 2020
371
51
93
Большое спасибо!
 
Реакции: skyElmax

Harland David Sanders

🍔 ChefBurger
Команда форума
High developer
10 Сен 2020
3,590
2,749
219
Можно попроще сделать и поудобнее вариант :cool:
Данный код каждый раз при посадке в машину, спустя 1 секунду выключает радио (задержка сделана потому что сам эвент playerEnterVehicle срабатывает при открытии двери), но при этом есть возможность включить радио и слушать пока не выйдешь из авто:

JavaScript:
mp.events.add('playerEnterVehicle', (vehicle, seat) => {
    radioTimerId = setInterval(() => {
        radio_sync();
    }, 1000);
});

function radio_sync() {
    mp.game.audio.setRadioToStationName("OFF");
    clearInterval(radioTimerId);
};

 
Последнее редактирование:
Реакции: skyElmax и Agressor

Agressor

Начинающий специалист
27 Окт 2020
371
51
93
Можно попроще сделать и поудобнее вариант :cool:
Данный код каждый раз при посадке в машину, спустя 1 секунду выключает радио (задержка сделана потому что сам эвент playerEnterVehicle срабатывает при открытии двери), но при этом есть возможность включить радио и слушать пока не выйдешь из авто:

JavaScript:
mp.events.add('playerEnterVehicle', (vehicle, seat) => {
    radioTimerId = setInterval(() => {
        radio_sync();
    }, 1000);
});

function radio_sync() {
    mp.game.audio.setRadioToStationName("OFF");
    clearInterval(radioTimerId);
};

Респуха бро)))
 
Реакции: skyElmax

skyElmax

Специалист
FrontEnd developer
15 Сен 2020
151
89
105
Можно попроще сделать и поудобнее вариант :cool:
Данный код каждый раз при посадке в машину, спустя 1 секунду выключает радио (задержка сделана потому что сам эвент playerEnterVehicle срабатывает при открытии двери), но при этом есть возможность включить радио и слушать пока не выйдешь из авто:

JavaScript:
mp.events.add('playerEnterVehicle', (vehicle, seat) => {
    radioTimerId = setInterval(() => {
        radio_sync();
    }, 1000);
});

function radio_sync() {
    mp.game.audio.setRadioToStationName("OFF");
    clearInterval(radioTimerId);
};

Пошла битва тогда... :D
Еще короче и удобнее:
JavaScript:
mp.events.add('playerEnterVehicle', (vehicle, seat) => {
    setTimeout(() => {
        mp.game.audio.setRadioToStationName("OFF");
    }, 1000);
});

Я не уверен что это будет работать, зная Rage может что то произойти и 1 секунда пройдет до того момента когда сядет игрок в автомобиль. Мой способ полностью искореняет включение радио, даже если будут какие либо ошибки рейджа
 
Реакции: Agressor

2pac

Профессиональный клоун
14 Сен 2020
152
79
89
Пошла битва тогда... :D
Еще короче и удобнее:
JavaScript:
mp.events.add('playerEnterVehicle', (vehicle, seat) => {
    setTimeout(() => {
        mp.game.audio.setRadioToStationName("OFF");
    }, 1000);
});

Я не уверен что это будет работать, зная Rage может что то произойти и 1 секунда пройдет до того момента когда сядет игрок в автомобиль. Мой способ полностью искореняет включение радио, даже если будут какие либо ошибки рейджа
Этот способ хорошо работает, месяца 2 назад так сделал, всё четко
 
Реакции: skyElmax

Agressor

Начинающий специалист
27 Окт 2020
371
51
93
Пошла битва тогда... :D
Еще короче и удобнее:
JavaScript:
mp.events.add('playerEnterVehicle', (vehicle, seat) => {
    setTimeout(() => {
        mp.game.audio.setRadioToStationName("OFF");
    }, 1000);
});

Я не уверен что это будет работать, зная Rage может что то произойти и 1 секунда пройдет до того момента когда сядет игрок в автомобиль. Мой способ полностью искореняет включение радио, даже если будут какие либо ошибки рейджа
Этот код действует так: садишься в машину, музон включается и сразу выключается... нужно так, чтобы он изначально не включался
 

skyElmax

Специалист
FrontEnd developer
15 Сен 2020
151
89
105
Этот код действует так: садишься в машину, музон включается и сразу выключается
Я сократил код харланда и не более, там же я написал про в этом методе могут быть ошибки разного рода. В моем методе если вы сядете в автомобиль то в течении 15ти секунд (настраивается) радио нельзя управлять.
 

UchihaMadara

Старожил
FrontEnd developer
27 Окт 2020
572
212
121
Можно попроще сделать и поудобнее вариант :cool:
Данный код каждый раз при посадке в машину, спустя 1 секунду выключает радио (задержка сделана потому что сам эвент playerEnterVehicle срабатывает при открытии двери), но при этом есть возможность включить радио и слушать пока не выйдешь из авто:

JavaScript:
mp.events.add('playerEnterVehicle', (vehicle, seat) => {
    radioTimerId = setInterval(() => {
        radio_sync();
    }, 1000);
});

function radio_sync() {
    mp.game.audio.setRadioToStationName("OFF");
    clearInterval(radioTimerId);
};

Для такого есть setTimeout, когда нужно отложить вызов функции
И setTimeout(setInterval) ничем не лучше, он так же забивает стек, как и событие render
ТС так же предоставил негодный вариант
 

Harland David Sanders

🍔 ChefBurger
Команда форума
High developer
10 Сен 2020
3,590
2,749
219
Для такого есть setTimeout, когда нужно отложить вызов функции
И setTimeout(setInterval) ничем не лучше, он так же забивает стек, как и событие render
ТС так же предоставил негодный вариант
Ждем твоих мануалов и уроков. (y)
 
Реакции: skyElmax

skyElmax

Специалист
FrontEnd developer
15 Сен 2020
151
89
105

skyElmax

Специалист
FrontEnd developer
15 Сен 2020
151
89
105

UchihaMadara

Старожил
FrontEnd developer
27 Окт 2020
572
212
121
Лучший вариант по данной теме будет таков:

JavaScript:
let radioOffTimer = 0 // переменная в которую мы записываем время
function onRender() {
    let vehicle = mp.players.local.vehicle // получаем vehicle
    let currentTime = new Date().getTime() - radioOffTimer
    if (vehicle && currentTime < 1500) { // В течении 1500мс будет выключать радио
        mp.game.audio.setRadioToStationName("OFF") // эта функция переводит состояние радио в "выключенное" (работает только в рендере)
    }
    if (currentTime > 1500) {
        mp.events.remove("render", onRender) // Удаляем обработчик события
    }
}
mp.events.add("playerEnterVehicle", (vehicle, seat) => {
    radioOffTimer = new Date().getTime() // записываем время
    mp.events.add('render', onRender) // добавляем событие
})
 
Реакции: geneff

Etader

Участник портала
15 Сен 2020
130
23
82
на 1.1 хреново работает первая версия кода (не четко)
плюс это клиентская часть так что у вас не играет а у другого будет играть и будет дискомфорт
 

wearnings

Участник портала
12 Окт 2020
51
10
33
29
Ну на клиентской делаем так! Если помог то LIKE

1607879723230.png
 

skyElmax

Специалист
FrontEnd developer
15 Сен 2020
151
89
105
на 1.1 хреново работает первая версия кода (не четко)
плюс это клиентская часть так что у вас не играет а у другого будет играть и будет дискомфорт
Так синхронизируйте это, в интернете есть достаточно скриптов которые синхронят радио, просто им никто не пользуется, и те кто хочет слушать пусть слушают, по умолчанию на сервере оно выключено.