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

Вызов функции vue.js в CEF из клиента

akudinov28

Мастер
24 Фев 2021
343
156
106
Добрый вечер! Возникла проблема, которую никак не могу решить уже на протяжении довольно долгого времени.
Версия RageMP 1.1. В браузере используется Vue.js 2 (with vue-cli). По совету других использую следующие функции:

На клиенте:
JavaScript:
browser.call('eventName');

в CEF:
JavaScript:
// В корневом компоненте App экземпляря Vue
    export default {
        // Здесь другие настройки компонента
        mounted() {
            window.mp.events.add('eventName', () => {
                alert('123');
            });
        }
    }

Проблема в том, что обработчик eventName в CEF не работает, когда запускаешь клиент с нуля. При этом сам браузер отрабатывается и показывается, но событие eventName не обрабатывается. При этом, если тут же просто через F1 перезайти на сервер, то событие начинает работать.

Воспроизведение проблемы по шагам:
  • Запускаем сервер
  • Запускаем клиент RageMP
  • Коннектимся к серверу
-- Браузер работает, страницу показывает, но событие eventName не выстреливает, alert не показывает --
- Через F1 реконнектимся к серверу
-- Браузер работает, вновь показывает страницу, но eventName уже начинает работать (выдает alert) --

Собственно, почему при запуске клиента с нуля не работает обработчик события eventName?
 

artemsiberian

Участник портала
22 Май 2021
59
10
50
Потому что у тебя все наоборот,
mounted метод инскапусулирован, он только выполняется, его можно вызвать только внутри маунта, mp.events.add это слушатель, он принимать должен вызовы с сервера или CEF, а не создавать их, то есть у тебя внутри маунта должен быть mp.trigger по идее, в общем у тебя там кампот какой то :D

плюс почитай в каком порядке хуки монтируются во вью, маунтед один из самых последних
 

akudinov28

Мастер
24 Фев 2021
343
156
106
Потому что у тебя все наоборот,
mounted метод инскапусулирован, он только выполняется, его можно вызвать только внутри маунта, mp.events.add это слушатель, он принимать должен вызовы с сервера или CEF, а не создавать их, то есть у тебя внутри маунта должен быть mp.trigger по идее, в общем у тебя там кампот какой то :D

плюс почитай в каком порядке хуки монтируются во вью, маунтед один из самых последних

Из документации:
In 1.1 version:
Added: CEF: mp.events.add(string eventName, function handler)
Added: CEF: mp.events.reset()
Added: CEF: mp.events.remove(string eventName)
Added: CEF: mp.events.call(string eventName) (псевдоним к mp.trigger)
Added: Client-side: Browser.call(eventName, arguments...)

Соответственно, такие методы имеют право на существование. Зачем мне mp.trigger, если я хочу вызвать из клиента CEF, а не наоборот?
Mounted метод выстреливает и запускает прослушиватель события с клиента. То есть то, что мне и нужно.

Что касается того, что mounted монтируется одним из последних - так мне оно и нужно. Я же собираюсь работать с экземпляром vue, зачем мне прослушивать событие до загрузки vue?

Повторюсь, при повторном подключении к серверу всё работает так, как и должно. Не работает только при первом запуске клиента. Такое ощущение, что на клиенте browser.call() срабатывает раньше, чем браузер полностью прогрузится.
 

artemsiberian

Участник портала
22 Май 2021
59
10
50
Ты когда переподключаешься к серверу у тебя 1 раз выдает алерт? или он выстреливает каждый раз когда вызываешь этот эвент?

Попробуй еще так вызвать, mp.events.call
browser.call сомнительная функция
 
Последнее редактирование:

akudinov28

Мастер
24 Фев 2021
343
156
106
Ты когда переподключаешься к серверу у тебя 1 раз выдает алерт? или он выстреливает каждый раз когда вызываешь этот эвент?
Я с клиента сразу запускаю browser.call().
При первом запуске клиента вообще не выдаёт алерт, при повторных - один раз, как и должно.
 

artemsiberian

Участник портала
22 Май 2021
59
10
50
Я с клиента сразу запускаю browser.call().
При первом запуске клиента вообще не выдаёт алерт, при повторных - один раз, как и должно.
Попробуй несолько раз вызвать у меня есть какие то сомнения, что это именно browser.call вызывает,сделай например два вызова подрят, вылетит ли два алерта

Попробуй еще так вызвать, mp.events.call
browser.call сомнительная функция