Телеграм боты, которые работают на Garry's Mod сервере

Опубликовал библиотеку, при помощи которой можно создавать ботов в Telegram. Упомянутые ниже боты созданы именно на ее основе. С навыками разработки вы можете создать такие же

Если вас заинтересовал какой-то из функционала, то напишите в ЛС. Я готов делиться некоторыми из них даже бесплатно с некоторыми условиями, в т.ч. “как есть” (т.е. без инструкций и оказания какой-либо поддержки по коду)

Disclaimer

Это тема не для скачивания ботов или обучению их написания. Это лишь сборник идей для ботов и демонстрация возможностей, которые вы сможете реализовать, используя библиотеку


:link: Привязка Telegram > Игрок сервера

Чтобы использовать описанные ниже штучки-дрючки, вашему боту нужно будет понимать, что определенный пользователь Telegram – такой-то ваш игрок. Для этого нужен бот привязки. Мой работал так: пишешь боту привязки /start или /tlgconnect и он просит ввести в чат на игровом сервере определенный набор символов (хеш). Когда игрок вводит хеш в чат, бот понимает, что этот игрок как раз только что писал в Telegram боте

:left_speech_bubble: Читаем И ПИШЕМ в игровой чат через Telegram

Когда мой проект еще жил, мне было интересно наблюдать за тем, что происходит на сервере без входа на сам сервер. А чтобы было еще интереснее, я сделал возможность отвечать на сообщения в игровом чате через бот. Выглядело это вот так:

Поскольку серверов было несколько, то бот умел читать и писать сразу в несколько чатов. Код был написан еще в далеком 2018 году, а качество кода мне до сих пор ± по душе :slight_smile:

:framed_picture: Stories

Любой игрок мог сделать фото на сервере и опубликовать его в специальном Telegram канале. И все это без сторонних PHP/Python скриптов и .dll библиотек. Если у тебя привязан Telegram к игре, то ты мог постить 3 скрина в сутки вместо 1

image

:file_folder: Logger

Логгеры на сервере это обычно целый отдельный аддон с кучей кода. Логгер со скриншота это один единственный файл на ± 200 строк, где большая половина - хуки событий. Прелесть такого способа в том, что вместо самописного интерфейса выступал сам Telegram, таким образом поиск логов был очень простым даже с телефона, без входа на сервер.

Вот тут можно ознакомиться с кодом скрипта, но без знания программирования запустить его просто так не получится. Я мог бы помочь запустить его за доплату, если будет интересно

image

Кстати, канал со скриншота публичный. Если вы до сих пор храните логи в тайне, то задайтесь вопросом, есть ли в этом смысл? Публичные логи помогают игрокам собирать доказательства на нарушителей, а вам проще их сопоставлять. Публичные логи в телеге – лучшее из быстрого, что вы можете сделать

:star_struck: Ачивки

На моем проекте были ачивки, которые можно было просматривать в Telegram. Подробнее я уже рассказывал в этой теме: А кто сказал, что автодонат только для донатов?

Система ачивок для Garry's Mod в Telegram

Для игрока это дополнительный повод привязать Telegram к серверу, а для вас это удержание игрока при помощи ачивок, избавление от мороки написания кода для менюшки ачивок на сервере, а также возможность отображать эти ачивки где-то в том же телеграме. Например, когда игрок заходит на сервер, то всех в чате с ботом оповещать, что вошел такой-то важный чел с кучей ачивок

:gun: Этот чел читер?

image

Изначально шуточная идея, которая в итоге превратилась практически в полноценный античит. К слову, мы противники античитов как таковых, но это было забавной развлекаловкой. Иногда тебе в чатик просто приходили скрины игроков и ты смотрел, чем они занимаются.

:game_die: Кости – игра

10 часов вечера. Завтра в школу. Родители заставили закрывать Garry’s Mod, выключать компьютер и ложиться спать, а вам еще так хочется хоть минутку поиграть… Не беда! Прячемся под одеяло, открываем Telegram, заходим в чат проекта и вводим /dice

В эту штуку можно играть до посинения. Баланс связан с балансом на сервере. Я вам отвечаю, мы в чате несколько часов подряд кубики бросали. Для особо острых ощущений можно использовать бот для чтения сообщений с сервера, убив 2 зайца одним выстрелом: общаетесь с онлайн игроками и кидаете кубики, сами при этом будучи оффлайн

:hammer: Админ. команды

/login, /lua, /cmd, /players, /ping и некоторые другие, которые позволяли выполнять административные действия с любого места и любого устройства, где есть Telegram и все это без необходимости лезть в консоль. Сейчас это воспринимается нормально, но в 2016 году, когда о ботах слышали только красноглазики и первые пользователи Telegram, я впервые сделал такой функционал и это было реально круто

:video_game: На сервере столько-то игроков

Мимолетная разработка просто, чтобы знать, когда на сервере появляются игроки. Если некоторые из них привязал Telegram, то они упоминаются прямо в сообщении. На ник можно кликнуть и при желании сразу написать сообщение

image

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

:speech_balloon: Упоминания в чате

Если в Telegram чате упомянуть того, кто привязал свой Telegram аккаунт к серверу, то в сообщении укажет ранг игрока и ссылку на Steam профиль. Да, при упоминании Telegram ника ссылку на Steam профиль

image


Выше идеи ботов, которые так или иначе работают с самим gmod сервером, но это не ограничивает применение библиотеки для написания только таких ботов

Например, на этой же библиотеке были написаны такие боты:

:man_superhero: GMD Support bot

Когда вы пишете что-то в группу VK, то сообщение приходит нам в чат поддержки в Telegram. Далее любой из нас может сделать reply и ответить на ваше обращение без входа в VK. Кроме того в Telegram боте нам сразу отображается некоторая информация о вас, например, ваш SteamID, который нам часто приходилось выискивать в истории диалога, чтобы выполнить какое-то действие

скриншот

image

И такого характера бот тоже может работать прямо на Garry’s Mod сервере :slight_smile:

:label: @steam_code_bot

Бот генерации кодов авторизации для Steam. Генерирует буковки, которые с Steam Guard нужно брать в мобильном приложении. Для работы не требует логин и пароль от Steam аккаунта, поэтому боту доверяют многие люди, а множество даже не подозревает, что он работает на Garry’s Mod сервере!

скриншот

image

:heart: @vk_reposter_bot

Изначально создан для сбора порнокартинок, но в итоге был доделан, стал публичным и смог применяться кем угодно для того, чтобы собирать лучшие посты с публичных стен VK. Помог мне проще перейти с VK на Telegram

скриншоты


:diamond_shape_with_a_dot_inside: @hokthebot

Создал, чтобы учитывать, сколько мне должны денег или сколько должен я. Но этот бот не столько о деньгах, сколько о цифрах. Он может применяться для подсчетов остатков товара, записей об изменении своего веса и тд. В нем есть полезная команда /practice, которая быстро вводит в курс дела

скриншот

На скриншоте выше мама в общем чате показывает, куда тратит мои запасы :slight_smile:

Прочие боты

  • @monoalertsbot – банковский бот, присылающий транзакции членов моей семьи в семейный чат. Иногда кекаем с трат друг друга
  • @encrbot – бот-шифровальщик текстовых сообщений. Может работать в inline режиме (т.е. в любом чате, где он даже не добавлен). Шифрует не по-настоящему, но штука просто рофельная. Введите где угодно в Telegram @encrbot я редиско
  • @jsonson_bot – отображает JSON содержимое любого сообщение, которое он получит. В основном применялось мною, чтобы узнать user_id какого-то пользователя в Telegram или вспомнить формат того или иного сообщения
  • @CommitsBot - присылает коммиты из всех моих репозиториев в определенный чат или канал.
  • “Торговый терминал” – бот, которым я терял деньги на биржах :slight_smile:
  • “Нажми кнопку, иначе ты типа бот” – бот-антибот для чатов
  • “Киви” – управление несколькими киви кошельками без входа на них
  • “Судья” – через него игроки могли написать персоналу вместо форума для бана\разбана

Фух, спустя много часов наконец-то закончил этот пост. Когда выйдет библиотека для создания ботов, то я опубликую ссылку на нее здесь. Подпишитесь на тему, чтобы не пропустить :bell: :wink:

2 лайка

Фреймворк стал публичным!

Теперь любой glua разработчик может написать своего Telegram бота внутри Garry’s Mod!

Скачать

крутямбова :+1:

1 лайк

А как это всё сделать?

код писать :confused:

Подскажите пожалуйста, как в тему(topic) группы отправлять сообщение с помощью данной библиотеки?

Привет. У меня нет групп с топиками, чтобы проверить как они даже работают. Я никогда в таких еще не сидел и не представляю как там все работает.

Если сможешь выдать мне права в такой группе на время тестов или добавить туда моего бота, то я смогу подсказать

UPD. Если я правильно понял, то для ответа в топик, нужно просто указать параметр message_thread_id = id

Если так, то сделать это можно вот так:

bot.command("test", function(ctx)
    ctx.reply.setParameter("message_thread_id", ctx.message_thread_id).text("Hello")
end)

Отвечает на команду /test внутри топика словом Hello

1 лайк

Написал бота, который позволит создавать выплаты в панели через телеграм бот.

1 лайк