This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Проблема 0 Stack trace: bootstrapper:1:1

ilhmjv

Новый участник
18 Июл 2021
75
2
45
Кто то сталкивался с таким? Ладно бы оно говорило что проблема в конкретно моем коде но вместо этого оно просто спамит меня этими ошибками не обьясняя особо причины и ссылаясь на библиотеку для клиента.. В чём может быть проблема? Иногда выскакивает иногда нет, появилось как только я добавил асинхронный addProc и начал его вызывать, для заведения двигателя и так далее.Везде попрокидовал try/catch ничего не срабатывает но зато ошибки эти вылазят на ура. Думал что может проблема в том что не везде я делаю return и таким образом не даю ответа на CEF, но ничего подобного.. Везде возвращаю пустой return;
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
3,816
1,869
208
35
Покажи свой асинхронный метод, в котором появляются ошибки и как ты используешь его
В который раз когда я вижу темы с ошибками после использования асинхрона - возникает стабильный вопрос - вы точно понимаете, как и для чего нужно использовать асинк\авейт?

Ну типа, зачем?
Зачем делать метод, который на клиенте заводит двигатель - асинхронным?
Асинк ведь для каких-то в первую очередь внешних процессов и взаимодействий с источниками данных. Зачем асинхронно заводить автомобиль? В чём смысл?
 

ilhmjv

Новый участник
18 Июл 2021
75
2
45
разве есть метод с помощью которого можно вызвать CEF с client_packages? Кроме addProc и callProc? Я прекрасно понимаю для чего сделан async/await. Если есть синхронный метод было бы как раз кстати, других способов как вызвать CEF я не нашёл.
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
3,816
1,869
208
35
ну это если ты хочешь получишь ответ в процедуре от клиента на сервер, ВИДИМО
я могу ошибаться, потому что честно говоря я никогда так не делал
но я абсолютно точно видел где-то подобие готового апи для таких вещей, чтобы взаимодействуя с клиентом получать ответ
кроме addProc, были какие-то более оптимальные решения

я не очень понял, что ты имеешь ввиду под "вызвать цеф". есть же обычные синхронные браузер коллы, для большинства таких операций
они не подходят, потому что ты хочешь получить ответ обратно в клиентку от браузера?
для того чтобы получить ответ - можно наверное использовать какой-то евент_лисенер, который вызовет после выполнения твоей функции на цефке - клиентскую функцию
не уверен как это выглядит правильно, но ну типа можно же просто из цефки потом вызвать другую клиентскую функцию через mp.trigger

я в основном занимаюсь .нет, поэтому могу наверное ошибаться, но когда я сталкивался с жсом на клиентсайде - я делал это именно так


на твой код бы наверное всё равно было полезно посмотреть, мб ты вообще пытаешься сделать что-то другое, а я не понимаю
 

ilhmjv

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


JavaScript:
        "playerEnterVehicle": async (vehicle, seat) => {
            try {
                if (mp.browsers.at(0)) {
                    await mp.browsers.at(0).callProc("enterVehicle", vehicle);
                    mp.game.audio.setRadioToStationIndex(255)
                }
                return "1";
            } catch(e) {
                mp.events.callRemote("writeToConsole", "PLAYER ENTER VEHICLE ERROR");
            }
        },
И я добавляю в CEF addProc:

JavaScript:
            mp.events.addProc("enterVehicle", async (vehicle, seat) => {
                console.log("enterVehicle", vehicle, seat);
                setSpeedometr(true);
                return;
            });
Есть ли синхронный способ, как сообщать с client_packages инфу о том что пользователь сел в машину в CEF?
 

ilhmjv

Новый участник
18 Июл 2021
75
2
45
ответ от браузера мне не нужен, мне нужно просто сообщить браузеру о том что просто сработало событие, если добавлять обычный mp.events.add() в CEF и вызывать с помощью player.call() события как будто не существует, оно тупо не срабатывает
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
3,816
1,869
208
35
чувствую себя долбоёбом, который всё ещё чего то не понимает

ну есть же
https://wiki.rage.mp/index.php?title=Browser::execute ?



Который ты обрабатываешь на цефке, и дальше если тебе нужно делаешь что хочешь, используя mp.trigger если тебе нужно вызвать обратно метод на клиенте

В нём ты можешь отобразить спидометр уже, после того как попал сюда с клиента или сделать ещё что-то что тебе нужно
 

ilhmjv

Новый участник
18 Июл 2021
75
2
45
попробую, но вроде ошибка исправилась. Но в другие разы когда я так вызыва mp.browsers.execute() то функция созданная в CEF не вызывалась.. может дело в реакте, так как я запускаю CEF с помощью роутинга и http://localhost:3000
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
3,816
1,869
208
35
ну есть componentDidMount, ы
 

ilhmjv

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

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
3,816
1,869
208
35

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
3,816
1,869
208
35
да не, я не особо силён в реакте и вообще во всем что касается цефок, и обычно заказываю вёрстку, поэтому скорее просто пытаюсь подсказывать так, как понимаю это сам
пушо у меня все работает на реакте

есть хороший гайдик по использованию реакта в рейдже
https://rage.mp/forums/topic/2571-guide-creating-ui-with-react/
 

ilhmjv

Новый участник
18 Июл 2021
75
2
45
Это я уже исправил, но иногда вылазит, может багается сам реакт и не хочет нормально принимать mp.browsers.execute, но вообще работает, даже если не смотреть на эту ошибку то функционал работает, я думаю что при билде такого вообще не будет..
 
Реакции: Inoi