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

Вопрос Интеграция React в RageMP на стороне клиента

ilhmjv

Новый участник
18 Июл 2021
75
2
45
Кто может помочь?
Создал сервер, добавил в packages index.js:

JavaScript:
mp.events.add("playerJoin", (player) => {

    player.call("join", [player]);

});

Потом обработчик события в client_packages:

JavaScript:
const client = "http://localhost:3000"

const uiVisibleChange = (toggle) => {

    mp.game.ui.displayRadar(toggle);

    mp.game.ui.displayHud(toggle);

    mp.gui.chat.show(toggle);

    setTimeout(() => {

        mp.gui.cursor.show(!toggle, !toggle);

    }, 500);

}

mp.events.add("join", () => {

    const camera = mp.cameras.new(

        'registerCamera',

        new mp.Vector3(1500.452, 1000.763, 500.758),

        new mp.Vector3(-8.885, 0, 300.716), 60

    );

    camera.setActive(true);

    mp.game.cam.renderScriptCams(true, false, 0, false, false);

    uiVisibleChange(false);

    mp.browsers.new([ICODE]${client}[/ICODE]);

});

создал проект на React с помощью npx create-react-app client --template typescript(react-router-dom, styled-components как доп. зависимости) в основной папке сервера:
1679921678733.png


в итоге "name mp is not defined", почему именно в React части приложения mp is not defined? Никаких зависимостей от ragemp для реакт которые можно скачать с интернета не нашёл. кроме rage-mp, хотя и то только для разработки самой основы сервера...
Вот общая директория проекта:
1679921861585.png
 

ready to massacre

Начинающий специалист
4 Мар 2023
153
58
40
HTML:
    <script>
      var mp = typeof mp !== 'undefined' ? mp : {
        trigger: () => {},
        events: { add: () => {}, call: () => {}, remove: () => {}, reset: () => {} },
        joaat: () => {},
        game: { joaat: () => {} }
      }
    </script>
вставь куда нибудь в index.html
и лучше юзать ивент "playerReady" вместо "playerJoin"
 

ilhmjv

Новый участник
18 Июл 2021
75
2
45
HTML:
    <script>
      var mp = typeof mp !== 'undefined' ? mp : {
        trigger: () => {},
        events: { add: () => {}, call: () => {}, remove: () => {}, reset: () => {} },
        joaat: () => {},
        game: { joaat: () => {} }
      }
    </script>
вставь куда нибудь в index.html
и лучше юзать ивент "playerReady" вместо "playerJoin"
уже давно стоит
1679923565233.png


И сам App.tsx файл:
1679923587659.png
 

ilhmjv

Новый участник
18 Июл 2021
75
2
45
похоже придется отказаться от typescript... надеюсь я об этом не пожелаю, ведь только так оно и работает
 

ilhmjv

Новый участник
18 Июл 2021
75
2
45
нет это нихрена не помогло, только теперь и без TS. Ошибка пропала при входе на сервер, но работает ли это...
 
Последнее редактирование:

ready to massacre

Начинающий специалист
4 Мар 2023
153
58
40
поменяй ивент с playerJoin на playerReady
 

ilhmjv

Новый участник
18 Июл 2021
75
2
45
<script>
var mp = typeof mp !== 'undefined' ? mp : {
trigger: () => {},
events: { add: () => {}, call: () => {}, remove: () => {}, reset: () => {} },
joaat: () => {},
game: { joaat: () => {} }
}
</script>

эта фигня просто уберает проблему ошибку но никак не решает её. Ты просто добавляешь пустую переменную в глобальный обьект window которая все время и остается пустой... Оно должно как то что то подгружать, но реакт даже после добавления package.json, globals: { "mp": true } все ещё не видит.
 

ready to massacre

Начинающий специалист
4 Мар 2023
153
58
40
поменял, это ни на что не влияет, на сколько я понимаю это просто устаревший ивент он мне в этом дерьме никак ведь не поможет
почитай описание ивента playerJoin и playerReady
 

ready to massacre

Начинающий специалист
4 Мар 2023
153
58
40

ilhmjv

Новый участник
18 Июл 2021
75
2
45
почитай описание ивента playerJoin и playerReady
чел какое отношение это имеет на данный момент? И c помощью playerJoin и с помощью playerReady один и тот же результат с не работающим клиентом, даже по названию и аналогии с другими библиотеками и API что я работал можно интуитивно понять что playerJoin это когда происходит соединение с сервером и человек входит а playerReady это когда человек полностью загрулися и готов к манипуляциям, но сути это на данный момент не имеет факт остается фактом что долбанный mp не хочет находится в реакт. Я уже не знаю че с этим делать, проектый планируется огромный, писать все это на ванильном HTML/CSS/JS это значит просто сдохнуть... Если у тебя уже готовый какой то проект который я мог себе запулить и прст посмотреть как работает на самом деле подключение React?
 

ilhmjv

Новый участник
18 Июл 2021
75
2
45
чел просто показал как использовать в этом и суть, я год на реакте проработал, я прекрасно понимаю как он работает. Я не понимаю как добавить в окружение разработки mp, которая существует в client_packages, но в файлах что глубже нет....
 

ready to massacre

Начинающий специалист
4 Мар 2023
153
58
40
похоже придется отказаться от typescript... надеюсь я об этом не пожелаю
это просто устаревший ивент он мне в этом дерьме никак ведь не поможет
чел какое отношение это имеет на данный момент?
чел просто показал как использовать в этом и суть
едрить ты токсичный, я тебе помогаю а ты чел, чел, дерьмо, фигня -- научись общаться для начала прежде чем помощи просить
Я не понимаю как добавить в окружение разработки mp
я год на реакте проработал
))
Bash:
$ yarn add -D @ragempcommunity/types-cef
JSON:
// tsconfig.json
{
  "compilerOptions": {
    "typeRoots": ["node_modules/@types", "node_modules/@ragempcommunity"],
  },
}
 

ilhmjv

Новый участник
18 Июл 2021
75
2
45
едрить ты токсичный, я тебе помогаю а ты чел, чел, дерьмо, фигня -- научись общаться для начала прежде чем помощи просить

))
Bash:
$ yarn add -D @ragempcommunity/types-cef
JSON:
// tsconfig.json
{
  "compilerOptions": {
    "typeRoots": ["node_modules/@types", "node_modules/@ragempcommunity"],
  },
}
1. "чел" для тебя оскорбительно? Не знаю, может у нас разные представления об этом слове но я ничего в этом такого не вижу.
2. Дерьмо, фигня опять же не к тебе адресовано ведь.
3. Я не правильно выразился, я не не знаю как добавить в окружение, а что добавить в окружение, на npm я ничего кроме ragemp не нашёл.. Спасибо. Попробую.
 

Mitsuba

Участник портала
2 Мар 2023
60
8
10
39
Если я правильно понял ты хочешь подключить к проекту реакт, и у тебя что то не так (Не сталкивался с реактом ни разу). Если я все таки правильно тебя понял то тебе нужно просто в корне с сервером через npm установить реакт, и как бы уже дальше работать с ним. Все должно прекрасно работать. Если я не о том подумал, поправь меня, может быть я смогу помочь тебе с твоей проблемой.
Кстати на счет ивента "playerReady", чел выше правильно подметил, лучше юзать его вместо "playerJoin", во избежание ошибок)
 
Последнее редактирование:

ilhmjv

Новый участник
18 Июл 2021
75
2
45
Если я правильно понял ты хочешь подключить к проекту реакт, и у тебя что то не так (Не сталкивался с реактом ни разу). Если я все таки правильно тебя понял то тебе нужно просто в корне с сервером через npm установить реакт, и как бы уже дальше работать с ним. Все должно прекрасно работать. Если я не о том подумал, поправь меня, может быть я смогу помочь тебе с твоей проблемой.
Кстати на счет ивента "playerReady", чел выше правильно подметил, лучше юзать его вместо "playerJoin", во избежание ошибок)
Привет. Да. В самом корне создаю проект client(соответственно создается папка клиент и там внутри уже все). Но ничего не работает, щас попробую то что написал тот чувак но хз. Отпишу.
 

Mitsuba

Участник портала
2 Мар 2023
60
8
10
39
Привет. Да. В самом корне создаю проект client(соответственно создается папка клиент и там внутри уже все). Но ничего не работает, щас попробую то что написал тот чувак но хз. Отпишу.
Да в теории должно все работать, можно так сильно не запариваться, и просто брать работать в ванильных папках, тогда уж точно ошибок не должно быть
 

ilhmjv

Новый участник
18 Июл 2021
75
2
45
Да в теории должно все работать, можно так сильно не запариваться, и просто брать работать в ванильных папках, тогда уж точно ошибок не должно быть
Да только из за этого при каждом запуске сервер начинает качать всю папку, а node_modules весит не мало... учитывая то что перезапускать сервак приходится очень часто.
 

Mitsuba

Участник портала
2 Мар 2023
60
8
10
39
Да только из за этого при каждом запуске сервер начинает качать всю папку, а node_modules весит не мало... учитывая то что перезапускать сервак приходится очень часто.
Да вроде быстро запускается сервер) Не знаю в чем у тебя проблема... даже редага грузится секунд 5-10 (не вижу проблем в перезагрузки сервера)
 

Wartime

Новый участник
6 Июн 2023
1
0
3
Логично, что typescript не знает ни про какой объект mp. Этот язык дает тебе возможность использовать строгую типизацию, этим нужно пользоваться. Чтобы ts знал, что объект mp все же есть, тебе нужно добавить новый интерфейс для этого объекта и объявить его в .d.ts файле. Например, интерфейс может выглядеть следующим образом:

Код:
interface MP {
  trigger: (eventName: string, ...props: any) => void;
}

declare const mp: MP;

Потом, файл .d.ts нужно добавить в tsconfig, чтобы typescript узнал о существовании этого объекта. Такая реализация будет работать в rage, но если ты запустишь проект локально и попробуешь вызвать mp.trigger, то получишь ошибку, так как в обычном браузере никакого объекта mp нет. Поэтому, в идеале, ты также должен добавить проверку на наличие объекта mp в window.
 
Последнее редактирование: