• Из-за обновления 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
82
15
25
Привет! Я разрабатываю телефонную систему с нуля и столкнулся с проблемой при создании приложения камеры. Чтобы сделать снимок, я пытаюсь использовать 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,593
250
100
Привет! Возможно, проблема заключается в неправильном вызове метода mp.gui.takeScreenshot. В вашем коде вызов метода должен быть mp.gui.takeScreenshot, а не mp.gui.takeScreenshot. Попробуйте исправить это и посмотреть, поможет ли это решить проблему.
 

Slash

Активный участник
BackEnd developer
10 Янв 2023
228
29
83
1759781234032.png

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

PercyBerkeley

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

Slash

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

Inoi

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

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

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

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

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

PercyBerkeley

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

Slash

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

PercyBerkeley

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

мне кажется ты немного неправильно просто понял, как это работает
у этой функции нет коллбека как такового вообще, она нихуя тебе и не отдаёт, ну и пятого аргумента нет
ты сам же пишешь как назвать файл, клиент кладёт его в 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