• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в 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/ru/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


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

skyElmax

Специалист
Автор темы
high coder
15 Сен 2020
151
96
85
Данный скрипт стоит у меня на сервере, никаких нареканий по его работе нет.
На клиентской стороне просто добавьте это:

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) // добавляем событие
});
 
Последнее редактирование:
  • Like
Реакции: OGNEMET4IK и Agressor

Agressor

Специалист
27 Окт 2020
373
54
93
Большое спасибо!
 
  • Like
Реакции: skyElmax

Harland David Sanders

Куратор портала
Команда форума
Куратор портала
VIP
high coder
media
10 Сен 2020
3,058
2,443
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);
};

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

Agressor

Специалист
27 Окт 2020
373
54
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);
};

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

skyElmax

Специалист
Автор темы
high coder
15 Сен 2020
151
96
85
Можно попроще сделать и поудобнее вариант :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 секунда пройдет до того момента когда сядет игрок в автомобиль. Мой способ полностью искореняет включение радио, даже если будут какие либо ошибки рейджа
 
  • Like
Реакции: Agressor

2pac

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

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

Agressor

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

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

skyElmax

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

UchihaMadara

Гуру
high coder
27 Окт 2020
512
225
101
Можно попроще сделать и поудобнее вариант :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

Куратор портала
Команда форума
Куратор портала
VIP
high coder
media
10 Сен 2020
3,058
2,443
219
Для такого есть setTimeout, когда нужно отложить вызов функции
И setTimeout(setInterval) ничем не лучше, он так же забивает стек, как и событие render
ТС так же предоставил негодный вариант
Ждем твоих мануалов и уроков. (y)
 
  • Like
Реакции: skyElmax

skyElmax

Специалист
Автор темы
high coder
15 Сен 2020
151
96
85

skyElmax

Специалист
Автор темы
high coder
15 Сен 2020
151
96
85

UchihaMadara

Гуру
high coder
27 Окт 2020
512
225
101
Лучший вариант по данной теме будет таков:

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) // добавляем событие
})
 
  • Like
Реакции: geneff

Etader

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

wearnings

Активный участник
12 Окт 2020
52
14
33
28
Ну на клиентской делаем так! Если помог то LIKE

1607879723230.png
 

skyElmax

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