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

Проблема Не передаются данные с сервера на клиент

youngBeaver

Мастер
high coder
24 Янв 2023
1,146
692
171
24
И почему ты такой бред пишешь?)
Если у тебя будет try, catch - фатального краша не будет.
Никто не отменял сохранение в потоках делать, а получение данных кэшировать
А давай ты продолжишь трогать js и не будешь лезть глубже? Я раскрою тебе прикол, что среда выполнения приложения может его закрыть по любой причине, которую ты не отловишь в блоке try
 

projectx

Участник портала
9 Май 2024
34
9
20
А давай ты продолжишь трогать js и не будешь лезть глубже? Я раскрою тебе прикол, что среда выполнения приложения может его закрыть по любой причине, которую ты не отловишь в блоке try
Ровно 15 минут гуглил, красавец
 

Fumarie

Активный участник
27 Июн 2024
81
29
40
23
Если сервер крашнется, есть процесс отслеживающий processexit, хих кодир потоковый)
К сожалению, это так не работает. Некому будет отслеживать экзит евенты и что-то с этим делать, когда, допустим, компьютер выключился. И даже если умрет только процесс сервера, массив аккаунтов умрет вместе с ним. Чтобы что-то с этим сделать, как минимум придется кешировать в условный редис, а это не так уж и сильно поможет с уменьшением нагрузки

В общем, имхо куда лучше базу данных шардировать, если есть проблемы с нагрузкой
 
  • Like
Реакции: X-Clusiv и youngBeaver

denybmp

Новый участник
27 Июл 2024
7
0
3
Нужно сделать систему, которая берет информацию с базы данных, пересылает на клиент, а с клиента уже на cef. Все работает прекрасно, кроме момента, когда данные пересылаются на клиентскую часть. Event просто не вызывается. Все файлы подключены и работают правильно, никаких ошибок нету

Команда для выдачи денег на серверной части

JavaScript:
mp.events.addCommand('givemoney', (player, fullText, amount) => {
        mp.events.call('getCash', amount)
        console.log(`givemoney ${amount}`)
});

Server-side

JavaScript:
mp.events.add('onUpdateCash', (player) => {
    pool.query('SELECT cash FROM accounts WHERE login = ?', [playerLogin], (err, results) => {
        console.log(`player money ${results[0].cash}`)
        player.call("updateCashEvent", results[0].cash)
    })
})

mp.events.add('getCash', (amount) => {
    pool.query('UPDATE accounts SET cash = cash + ? WHERE login = ?', [amount, playerLogin], (err, results) => {
        console.log(`added cash ${amount}`)
        mp.events.call('onUpdateCash')
    })
})

Client side

JavaScript:
mp.events.add('updateCashEvent', (cashAmount) => {
    console.log('browser executed')
    hudBrowser.execute(`updateCash(${cashAmount})`)
})

CEF

JavaScript:
const updateCash = (cashAmount) => {
    moneyCashText.innerText = `${cashAmount}`;
}
Получилось исправить.
Как оказалось еще с момента ввода команды нужно было постоянно передавать player вплоть до onUpdateCash. Итоговый код выглядит так:


Команда для выдачи денег на серверной части

JavaScript:
mp.events.addCommand('givemoney', (player, fullText, amount) => {
        mp.events.call('getCash', player, amount)
});

Server-side

JavaScript:
mp.events.add('onUpdateCash', (player) => {
    pool.query('SELECT cash FROM accounts WHERE login = ?', [playerLogin], (err, results) => {
        player.call('updateCashEvent', [results[0].cash])
    })
})
mp.events.add('getCash', (player, amount) => {
    pool.query('UPDATE accounts SET cash = cash + ? WHERE login = ?', [amount, playerLogin], (err, results) => {
        mp.events.call('onUpdateCash', player)
    })
})

Client side

JavaScript:
mp.events.add('updateCashEvent', (cashAmount) => {
    mp.console.logInfo(`client ${cashAmount}`)
    hudBrowser.execute(`updateCash(${cashAmount})`)
})

CEF

JavaScript:
const updateCash = (cashAmount) => {
    moneyCashText.innerText = `${cashAmount}`;
}