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

Мануал FAQ Хранение логов при помощи бота Telegram (JavaScript)

dooj

Гуру
Автор темы
high coder
24 Мар 2022
459
166
100
Всех приветствую! Это мой первый мануал и хотелось бы рассказать о хранение логов, в удобном и привычном для всех месте - это мессенджер Telegram. Бот будет написан на языке JavaScript.

Для начала всего, необходимо создать бота. Делать мы это будем через другого телеграмм бота :j3r:

Переходим по этой ссылке и создаем бота командой /newbot. После команды следуйте инструкции (придумайте имя боту и его логин). На выходе вы получите токен, который нам совсем скоро понадобится. НЕ В КОЕМ СЛУЧАЕ НЕ ПЕРЕДАВАЙТЕ ТОКЕН 3-М ЛИЦАМ!

Для начала самой разработки, откроем любой IDE. Я буду использовать WebStorm, разницы от того какой будете использовать - нету.
Создадим папку и назовем ее rage_logs. Открываем терминал, переходим в эту папку и пишем команду
Bash:
npm init && npm i dotenv && npm i node-telegram-bot-api
Данные команды помогут нам инициализировать проект (npm init) и установить несколько зависимостей (dotenv и node-telegram-bot-api)
При инициализации проекта вам нужно будет заполнить некоторые данные в терминале.

Пока устанавливаются зависимости мы создаем два файла. Первый файл будет называться .env и второй index.js
vJmjXqf.png


В файлике .env пропишем некоторые данные с которыми будем работать. Тут то как раз нам и понадобится наш токен, который мы получали у бота

Вставляем в данный файл данные - TELEGRAM_BOT_TOKEN=<TOKEN>
<TOKEN> - заменяем на ваш токен


Теперь, открываем второй файл - index.js и первым делом импортируем наши ранее установленные зависимости в проект.

JavaScript:
require('dotenv').config(); // получаем доступ к .env файлу
const TelegramBot = require('node-telegram-bot-api'); // зависимость для работы с ботом TG

После этого нам нужно создать самого бота из забинденного нами ранее токена в файле .env и прописать ему некоторый конфиг, а именно polling для получения новых обновлений.

JavaScript:
const bot = new TelegramBot(process.env.TELEGRAM_BOT_TOKEN, {polling: true});

Обращаемся к файлу .env через process.env и забираем от туда наш токен.

Дальше работаем с API node-telegram-bot-api. В данном мануале я не буду разжевывать все ивенты которые присутствуют в данном API, рассмотрим минимальные ресурсы, которые нам понядобятся.
Нам нужно создать переменную, которая будет отвечать за чат, в который будут идти логи. Назовем ее chatId и пропишем функцию, которая при отправке сообщения будет присваивать этой переменной ее ID.

JavaScript:
let chatId;

bot.on('message', (msg) => {
    chatId = msg.chat.id
})

Сейчас нам нужно запустить бота. Пропишем команду
Bash:
node index.js

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

Если вас не устраивает динамический chatId, то возьмем статик и присвоим его переменной вручную, чтобы логи шли только к вам. (в будущем, если понадобится, обновлю мануал и расскажу как сделать так, чтобы можно было добавлять разные chatId, для отправки логов сразу в несколько чатов)

Приступим! Сразу создадим переменную chatId и пропишем функцию которая будет писать нам в чат с ботом наш chatId.

JavaScript:
let chatId;

bot.on('message', (msg) => {
    bot.sendMessage(
        chatId,
        chatId,
    )
})

После отправки любого сообщения, к вам в чат придет ваш chatId с данным ботом. Теперь присвоим его к переменной и в результате получаем это:

JavaScript:
let chatId = 2135154329;

bot.on('message', (msg) => {
    chatId = msg.chat.id

    bot.sendMessage(
        chatId,
        chatId,
    )
})

Можно удалить функцию которая отправляет вам в чат ваш ID.

Основа положена, поздравляю! Не забываем включать бота, при работе с ним

Пропишем ивент, для проверки работоспособности бота.
JavaScript:
mp.events.add('packagesLoaded', () => {
    bot.sendMessage(
        chatId,
        `Сервер был запущен!`,
    )
})

Данная команда отправит сообщение через бота Telegram при включении сервера (загрузки пакетов).
Теперь создадим/откроем RageMP проект, перейдем по пути server-files\packages\gamemode и перенесем папку rage_logs туда.

(папка может называться не gamemode, а по другому, на всех проектах название индивидуальное)

Советую удалить node_modules перед переносом. Если удалили данную папку, то после переноса через терминал переходим по пути server-files\packages\gamemode/rage_logs и прописываем команду
Bash:
npm install

Через терминал переходим по пути server-files\packages\gamemode/rage_logs и прописываем команду
Bash:
node index.js

Теперь если это пустой проект, в папке gamemode создаем еще один файл index.js и пишем там:

JavaScript:
require('./rage_logs/index')

Данная команда импортирует бота к нам в проект.

Дело за малым! Запустите бота, а после сервер.

Поздравляю, вы смогли выписать лог о запуске сервера к себе в дискорд через собственного бота. С остальными логами поступаем так-же, прислать туда можно все что угодно.
Если вам понравилась статья/мануал, прошу оценить его.

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

gYwsWnT.png
Зайдите в терминал где у вас запущен бот и нажмите сочетание клавиш CTRL + C 1 - 2 раза.
JavaScript:
require('dotenv').config();
const TelegramBot = require('node-telegram-bot-api');

const bot = new TelegramBot(process.env.TELEGRAM_BOT_TOKEN, {polling: true});

let chatId = 12343243212;

mp.events.add('packagesLoaded', () => {
    bot.sendMessage(
        chatId,
        `Сервер был запущен!`,
    )
})
6H5ZOXR.png
 

dooj

Гуру
Автор темы
high coder
24 Мар 2022
459
166
100
Последнее редактирование:
  • Haha
Реакции: Harland David Sanders