• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в 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/ru/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

Мануал [JS] Интеграция бота на DiscordJS в RAGE MP на примере чата

faceplant

Начинающий специалист
Автор темы
29 Май 2021
67
20
72
Так как не нашел на данном форуме маунал/урок/пример кода(на JS), с помощью которого можно было бы интегрировать бота Discord, напишу мануал.

Перед началом работы, нужно создать самого "бота":

1. Переходим на Discord Developers App, авторизируемся.

2. Создание бота
Для создания приложения - нажимаем на "New Application"
newapp.png

Вводим название, выбираем команду разработки если таковая у вас имеется.
newapp1.png

После создания, в левом меню выбираем Bot

newa1pp.png


Создаем бота нажатием на add bot

newa1p2p.png


После создания, копируем токен бота
ne1wa1p2p.png

Приглашаем бота
2212p.png

3. Открываем среду разработки(WebStorm || Visual Code и т.п).
4. Через среду разработки открываем папку server-files в директории RAGEMP
5. В терминале, либо в cmd, загружаем автокомплит rage mp в папку с сервером, любая ссылка(взято с wiki.rage.mp)
Не забываем сначала инициализировать проект с помощью npm init -y
Install the following Node.js packages with NPM:
6. Дополнительно загружаем discord.js:
7. После успешной установки компонентов, переходим в папку packages и создаем там файл index.js
8. В папке packages так же для удобства создадим папку discord, а в ней еще один index.js
ne1wa1p21p.png

9.В index, созданный на 7 шаге, вписываем
require('./discord/index')
10. В Index.js, созданном на 8 шаге, вписываем следующее
JavaScript:
    const Discord = require('discord.js')
    const client = new Discord.Client()
    const webHook = new Discord.WebhookClient('id', 'token') // Не нужно, если вы хотите выводить просто сообщение от бота
    // Задаем webhook и присваиваем id и токен созданного вебхука: https://discord.com/api/webhooks/id/token

    client.on('ready', () => { // Событие при запуске бота
        console.log('Дискорд бот запущен') // В моем случае - выведется в консоль данная строка
    })
Вывод сообщения из игры в дискорд
JavaScript:
    mp.events.addCommand('a', (player, fullText) => { // Создаем команду /a, которая принимает в себя обязательно player и полный текст сообщения.
        if(!fullText) return player.notify('~r~Для отправки сообщения, введите текст!') // Проверка, имеется ли текст после ввода команды
        // client.channels.cache.get('843538101938290728').send(fullText)  - Используем для того что бы отправить просто текст в чат discord
        webHook.send('rudepohui', { // Задействуем вебхук и отправляем сообщение
            username: player.name, // Имя вебхука, в моем случае - никнейм игрока
            avatarURL: `https://a.rsg.sc/n/${player.socialClub}`, // Картинка вебхука, в моем случае, аватарка игрока в SoicalClub
            content: fullText // Собственно сам текст, который выведется
        })
    })
Вывод сообщения из дискорд в игру
JavaScript:
    client.on('message', (message) => { // Событие, когда кто то отправляет в канал дискорд сообщение
        if(message.author.bot) return // Проверяем, является ли автор сообщения ботом
        if(message.channel.id != '843538101938290728') return // Проверяем, находится ли сообщение в нужном нам канале
        mp.players.forEach((player) => { // Отправляем игроку в чат сообщение, с любым условием, например if(player.adminLevel >= 1).
            player.outputChatBox(`${message.author.username}: ${message.content}`); // Сам вывод сообщения, в моем случае без условия
        })
    })
    client.login('token') // Токен бота, который мы скопировали
11. Проверяем
ne1wa1p21321p.png


Пишем сообщение в дискорде - получаем сообщение в чате
ne1wa212p21321p.png



Пишем в игре команду - получаем сообщение в дискорде
ne1wa212p22221321p.png


Надеюсь расписал все понятно! Удачного кодинга. Жду комментарии с критикой.
 

Moretti

Специалист
high coder
19 Янв 2021
83
31
92
В использовании вебхука нет смысла, почему бы простой ембед не использовать?
 

faceplant

Начинающий специалист
Автор темы
29 Май 2021
67
20
72
В использовании вебхука нет смысла, почему бы простой ембед не использовать?
Кому как лучше, потому что используя embed, мы теряем возможность менять аватарку и никнейм бота, под игрока сервера.

На мой взгляд, аккуратнее и эстетичнее смотрится через webHook.
Безымя123нный.png
 

Lavanda

Начинающий специалист
25 Авг 2021
167
29
65
у него проблема с мозгом что то 🦀
 

TripleBoom

Активный участник
22 Янв 2023
79
9
31
1675456091880.png
Вроде одно решил, и появилось второе :(