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

Вопрос Передача ивентов с клиента на CEF.

askjbdaksd

Участник портала
Автор темы
10 Май 2022
8
1
22
Всем привет. Недавно начал увлекаться разработкой на платформе RAGE:MP, и уже столкнулся с некоторыми трудностями.
Создал ивент на клиентской стороне, вот код:
JavaScript:
mp.events.add('showTestPage', () => {
    if (!testBrowser) {
        testBrowser = mp.browsers.new('http://localhost:3000/test');
        testBrowser.call('testEvent', [mp.players.length]);
    } else {
        testBrowser.destroy();
        testBrowser = null;
    }
});

А на CEF пробую сделать след. образом (в обычной html + js работало всё замечательно, а c реактом не хочет):
JSX:
import React from "react";
const Test = () => {
    const [test, setTest] = React.useState('');
    // @ts-ignore
    if (window.mp) {
        // @ts-ignore
        window.mp.events.add('testEvent', (inputValue: any) => {
            setTest(inputValue);
        });
    }
    return (
        <h1 style={{ "color": "red", "fontSize": "54px" }}>{test}</h1>
    )
}
export default Test;

Вызываю клиентский ивент через команду (на сервере, обычный player.call())
При вызове крашит клиент без ошибок, и записей в логи (логи-рейджа)
Может кто-то знает в чем может быть проблема?
Заранее спасибо.
 

og sofly

Специалист
29 Янв 2022
139
90
86
Всем привет. Недавно начал увлекаться разработкой на платформе RAGE:MP, и уже столкнулся с некоторыми трудностями.
Создал ивент на клиентской стороне, вот код:
JavaScript:
mp.events.add('showTestPage', () => {
    if (!testBrowser) {
        testBrowser = mp.browsers.new('http://localhost:3000/test');
        testBrowser.call('testEvent', [mp.players.length]);
    } else {
        testBrowser.destroy();
        testBrowser = null;
    }
});

А на CEF пробую сделать след. образом (в обычной html + js работало всё замечательно, а c реактом не хочет):
JSX:
import React from "react";
const Test = () => {
    const [test, setTest] = React.useState('');
    // @ts-ignore
    if (window.mp) {
        // @ts-ignore
        window.mp.events.add('testEvent', (inputValue: any) => {
            setTest(inputValue);
        });
    }
    return (
        <h1 style={{ "color": "red", "fontSize": "54px" }}>{test}</h1>
    )
}
export default Test;

Вызываю клиентский ивент через команду (на сервере, обычный player.call())
При вызове крашит клиент без ошибок, и записей в логи (логи-рейджа)
Может кто-то знает в чем может быть проблема?
Заранее спасибо.
JavaScript:
testBrowser = mp.browsers.new('http://localhost:3000/test'); //ссылка на веб. замени на packages://test/index.html т.е.
testBrowser = mp.browsers.new('packages://test/index.html');
 

dooj

Гуру
high coder
24 Мар 2022
459
166
100
Я делаю проверку на global.mp, вместо window.mp

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

P.S. обязательно отправлять массив нужно с серверной стороны, с клиентской стороны делать это не нужно
 

askjbdaksd

Участник портала
Автор темы
10 Май 2022
8
1
22
Я делаю проверку на global.mp, вместо window.mp

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

P.S. обязательно отправлять массив нужно с серверной стороны, с клиентской стороны делать это не нужно
Вместо window.mp -> global.mp? Попробую.
А по поводу массива, я сюда закинул такой вариант, но пробовал и просто параметром передать (без массива) :|
p.s Вариант с изменой url браузера не помог.

upd: Не сработало
 

askjbdaksd

Участник портала
Автор темы
10 Май 2022
8
1
22
По итогу решил проблему использованием rpc. Всем спасибо.
 
  • Like
Реакции: dooj