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

Проблема Проблемы с Gui.takeScreenshot

PercyBerkeley

Участник портала
16 Ноя 2024
214
5
62
Привет! Я разрабатываю телефонную систему с нуля и столкнулся с проблемой при создании приложения камеры. Чтобы сделать снимок, я пытаюсь использовать Gui.takeScreenshot, но по какой-то причине это не работает. Событие выполняется, но '.callback' для Gui.takeScreenshot не выполняется.


JavaScript:
mp.events.add('smartphone:captureScreenshotClient', (photoID) => {
    mp.gui.chat.push(`Intentando captura: ${photoID}`);
    
    try {
        mp.gui.takeScreenshot(
            `screenshot_${photoID}.png`,
            1, // tipo: 0 = full quality, 1 = compressed
            50, // calidad JPEG (0-100)
            (base64Data) => {
                mp.gui.chat.push(`Screenshot capturado, tamaño: ${base64Data.length}`);
                mp.events.callRemote('smartphone:receiveScreenshot', photoID, base64Data);
            }
        );
        
        mp.gui.chat.push(`Llamada a takeScreenshot ejecutada`);
        
    } catch (error) {
        mp.gui.chat.push(`Error: ${error.message}`);
        mp.events.callRemote('smartphone:screenshotFailed', photoID);
    }
});
    } catch (error) {
        mp.gui.chat.push(`Error: ${error.message}`);
        mp.events.callRemote('smartphone:screenshotFailed', photoID);
    }
});



Я следую всему синтаксису метода: https://wiki.rage.mp/wiki/Gui.takeScreenshot
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
2,878
290
100
Привет! Возможно, проблема заключается в неправильном вызове метода mp.gui.takeScreenshot. В вашем коде вызов метода должен быть mp.gui.takeScreenshot, а не mp.gui.takeScreenshot. Попробуйте исправить это и посмотреть, поможет ли это решить проблему.
 

Slash

Начинающий специалист
BackEnd developer
10 Янв 2023
306
47
83
1759781234032.png

если я правильно понял, то тебе нужно конвертировать в base64 на cef, а не клиенте
 

PercyBerkeley

Участник портала
16 Ноя 2024
214
5
62
Посмотреть вложение 22226
если я правильно понял, то тебе нужно конвертировать в base64 на cef, а не клиенте
Если я понимаю, это работает, чтобы преобразовать изображение, которое уже существует в URL -базе64. Это не служит для захвата визуализации игры, что мне нужно.
 

Slash

Начинающий специалист
BackEnd developer
10 Янв 2023
306
47
83
Если я понимаю, это работает, чтобы преобразовать изображение, которое уже существует в URL -базе64. Это не служит для захвата визуализации игры, что мне нужно.
судя по твоему коду ты вроде как и хотел преобразовать изображение в base64. Или какая у тебя цель?
 

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
4,823
2,418
208
36
Привет! Возможно, проблема заключается в неправильном вызове метода mp.gui.takeScreenshot. В вашем коде вызов метода должен быть mp.gui.takeScreenshot, а не mp.gui.takeScreenshot. Попробуйте исправить это и посмотреть, поможет ли это решить проблему.
типичный ответ от нейросети кстати
неиронично буквально дня три назад такой получал

мне кажется ты немного неправильно просто понял, как это работает
у этой функции нет коллбека как такового вообще, она нихуя тебе и не отдаёт, ну и пятого аргумента нет
ты сам же пишешь как назвать файл, клиент кладёт его в screenshots и ты вытаскиваешь его потом сам по GET http://screenshots/filename

toDataUrl это в примере и делает превращая его в блоб

собственно это даж в описании написано

1759781765407.png
 
Реакции: PercyBerkeley

PercyBerkeley

Участник портала
16 Ноя 2024
214
5
62
судя по твоему коду ты вроде как и хотел преобразовать изображение в base64. Или какая у тебя цель?
Конечно, я конвертирую его на base64Data, чтобы передать его на сервер и сохранить фотографию в базе данных. Но этого не происходит, потому что mp.gui.takescreenshot не выполняется
 

Slash

Начинающий специалист
BackEnd developer
10 Янв 2023
306
47
83
Конечно, я конвертирую его на base64Data, чтобы передать его на сервер и сохранить фотографию в базе данных. Но этого не происходит, потому что mp.gui.takescreenshot не выполняется
тебе выше всё описали. Ты сохраняешь скриншот на клиенте, а переводишь его в base64 на CEF и от туда отправляешь на сервер
 
Реакции: PercyBerkeley

PercyBerkeley

Участник портала
16 Ноя 2024
214
5
62
типичный ответ от нейросети кстати
неиронично буквально дня три назад такой получал

мне кажется ты немного неправильно просто понял, как это работает
у этой функции нет коллбека как такового вообще, она нихуя тебе и не отдаёт, ну и пятого аргумента нет
ты сам же пишешь как назвать файл, клиент кладёт его в screenshots и ты вытаскиваешь его потом сам по GET http://screenshots/filename

toDataUrl это в примере и делает превращая его в блоб

собственно это даж в описании написано

Посмотреть вложение 22227
Я не буду отрицать, что это заставило меня смеяться.

У тебя есть право, я сам создал проблему:rolleyes: Это было так же, как:
JavaScript:
mp.events.add('smartphone:captureScreenshotClient', (photoID) => {
    
    try {
        const filename = `screenshot_${photoID}.jpg`;
        
        mp.gui.takeScreenshot(filename, 1, 75);
        
        mp.gui.chat.push(`FUNCIONA`);
        
        // Esperar y notificar al CEF del smartphone para que lo procese
        setTimeout(() => {
            if (phoneBrowser) {
                phoneBrowser.execute(`
                    if (window.processScreenshot) {
                        window.processScreenshot('${photoID}', '${filename}');
                    }
                `);
            }
        }, 500);
        
    } catch (error) {
        mp.gui.chat.push(`NO FUNCIOOOONA ${error.message}`);
        mp.events.callRemote('smartphone:screenshotFailed', photoID);
    }
});


Кстати, Haaland должен реализовать возможность отправлять звезды, как на Facebook:p
 
  • RoflanEbalo
Реакции: Inoi