• Из-за обновления 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
519
252
126
Добрый вечер! Возникла проблема, которую никак не могу решить уже на протяжении довольно долгого времени.
Версия 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
519
252
126
Потому что у тебя все наоборот,
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
519
252
126
Ты когда переподключаешься к серверу у тебя 1 раз выдает алерт? или он выстреливает каждый раз когда вызываешь этот эвент?
Я с клиента сразу запускаю browser.call().
При первом запуске клиента вообще не выдаёт алерт, при повторных - один раз, как и должно.
 

artemsiberian

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

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

Similar threads