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

Проблема Ошибка в приложении с использованием mp

K me

Новый участник
Автор темы
21 Июл 2022
2
0
1
Создал приложение на реакте (уже даже не с TS), пытаюсь создать ивент, но пишет Cannot read properties of undefined (reading 'events'):
Vuw45pR.png

Пишу так:
JavaScript:
window.mp.events.add('player:join', setLog(true))

Знаю про rage-rpc и использовал его, но получаю так же ошибку об Uncaught ReferenceError: mp is not defined:
y7PpgK1.png

Такое написание:

JavaScript:
const rpc = require('rage-rpc');
// ...
rpc.register('player:join', setLog(true))

Как решить? Помогите, пожалуйста
 

NKondr

Гуру
high coder
5 Янв 2022
121
159
101
25
Хей, кто то решил все таки эту проблему? При использование rage-rpc

🙃
 

NKondr

Гуру
high coder
5 Янв 2022
121
159
101
25
А чем не подходит rpc в самом rage?
В самом rage нормально, но к примеру в react ошибка вылезает что mp не найден, а mp используется в этой библиотеке и интересно кто и как решил эту проблему.
С этой ошибкой у тебя интерфейс крашится...
 

NKondr

Гуру
high coder
5 Янв 2022
121
159
101
25
поднимись!
 

челавек паук

Специалист
7 Ноя 2020
158
43
95
Если юзаете тайп-скрипт то добавьте его в тс-игноре или опишите его в index.d.ts
 

челавек паук

Специалист
7 Ноя 2020
158
43
95
Либо если это JS и установлен eslint, то добавьте следующую конфигурацию в конфиг eslint


JSON:
"globals": {
   "mp": "readonly"
}
 

wholinc

Специалист
24 Янв 2023
778
457
95
24
Либо если это JS и установлен eslint, то добавьте следующую конфигурацию в конфиг eslint


JSON:
"globals": {
   "mp": "readonly"
}
На сколько я знаю, это ошибка от вебпака, который билдит проект и отлавливает ошибки. Так вот, как изменение конфига плагина поможет?
 

челавек паук

Специалист
7 Ноя 2020
158
43
95
Там, нужно в вебпаке указать просто глобал дефайн вроде или в игнор кинуть, и все будет окей.
На сколько я знаю, это ошибка от вебпака, который билдит проект и отлавливает ошибки. Так вот, как изменение конфига плагина поможет?
 

NKondr

Гуру
high coder
5 Янв 2022
121
159
101
25
Либо если это JS и установлен eslint, то добавьте следующую конфигурацию в конфиг eslint


JSON:
"globals": {
   "mp": "readonly"
}
это все понятное дело:) но не тот случай..
ошибка то отправляет не в твоей проект, а в сам rage-rpc и пишет что он не понимает mp.
Я как вижу, на форуме никто не использует у себя в cef это??? Или если используете, то как вы с этим работаете?
 

mippoosedev

Гуру
2 Мар 2021
294
139
100
У себя использую вот так, билдит сеф отлично. Спасибо Axe(roxland) за такой плагин

JavaScript:
const mp = window.mp || {
    events: {
        remove: (...args) => {
            console.log("events.remove", args[0]);
        },
        add: (...args) => {
            console.log("events.add", args[0]);
        },
        addProc: (...args) => {
            console.log("events.addProc", args[0]);
        },
        call: (...args) => {
            console.log("events.call", ...args);
        },
        callProc: (...args) => {
            console.log("events.callProc", ...args);
        },
        callLocal: (...args) => {
            console.log("events.callLocal", ...args);
        },
    },
    invoke: (...args) => {
        console.log("mp.invoke", ...args);
    },
};

const eventNameCallbacks = {};

let oldCall = mp.events.call;
let oldAdd = mp.events.add;
let oldRemove = mp.events.remove;
// let oldCallLocal = global.mp.events.callLocal;

mp.events.call = function (...args) {
    // global?.app?.$store?.commit("outcome", args);

    oldCall(...args);
};

mp.events.callLocal = function (eventName, ...args) {
    // oldCallLocal(eventName, ...args);

    if (!(eventName in eventNameCallbacks)) {
        return;
    }

    const callbacks = eventNameCallbacks[eventName];

    for (let callback of callbacks) {
        callback(...args);
    }
};

mp.events.add = function (eventName, callback) {
    oldAdd(eventName, (...args) => {
        // global?.app?.$store?.commit("income", args);

        callback(...args);
    });

    if (!(eventName in eventNameCallbacks)) {
        eventNameCallbacks[eventName] = [];
    }
    const callbacks = eventNameCallbacks[eventName];
    callbacks.push(callback);
};

mp.events.remove = function (eventName, callback) {
    oldRemove(eventName, callback);

    if (!(eventName in eventNameCallbacks)) {
        return;
    }
    eventNameCallbacks[eventName] = eventNameCallbacks[eventName].filter(c => c !== callback);
};

export default mp;

export const $isInGame = computed(() => {
    return mp.isALauncher !== undefined;
});
 
  • Like
Реакции: wholinc