________________________________________________
Чуть-чуть о TriggerBot’e :
TriggerBot как я уже написал будет пиксельным , в этом есть минусы и плюсы .
Минусы в том что такой триггер бот нужно будет тонко настроить чтобы он работал идеально.
А плюсы в том что он 100% не будет ловится античитами , так как он External(т.е без инжекта) .
Что такое «пиксельный»? Ответ :
Это цвет ; любая модель или текстура состоит из пикселей , они имеют определенный цветовой адрес определяющий
оттенок и т.п Мы будем в определенной облости искать цвет который есть на модельке в CS:S
и если наш чит его найдет он автоматически будет стрелять(т.е Триггер бот).
________________________________________________
Что нам понадобится :
Сам язык AutoIt — [ Ссылки могут видеть только зарегистрированные пользователи. ]
NomadMemory Plugin
(для того чтобы сделать WH) — [ Ссылки могут видеть только зарегистрированные пользователи. ]
Как делать КРУТЫХ БОТОВ для Minecraft на Python + mineflayer
Cheat Engine — [ Ссылки могут видеть только зарегистрированные пользователи. ]
И внимательное прочтение этой статьи .
_________________________________________________
Начнём с WallHack’a :
Установите всё что упомянуто выше.
Итак ! Запустим игру . После того как она загрузилась сверните её и
запустите Cheat Engine , нажмите на мигающий значок выбора процесса.
В списке найдите hl2.exe и выберите его.
Теперь разверните игру и введите туда :
sv_cheats 1;r_drawothermodel 333555
Сверните игру .
Откройте Cheat Engine и в поиск введите 333555 нажмите кнопку .Подождите .
Слева будет список найденых значений , лично у меня нашло одно , думаю у вас будет также .
Теперь посмотрите на ваше значение , слева написан адрес, а правее чему оно равно.
Откройте блокнот и в ручную перепишите туда адрес (у меня например получилось 1С307370)
Теперь Cheat Engine можно закрыть .
Нажмите правой кнопкой мышки на рабочий стол , там выберите создать->AutoIt V3 Script.
Назавите его например WH.au3 .
Откройте его блокнотом и впишите в него вот такой код :
#include HotKeySet(«»,»_Exit») $prozessID = ProcessExists(«hl2.exe») $open = _MemoryOpen($prozessID) _MemoryWrite(0x62E642F0,$open,2,»dword») While True Sleep(1000) WEnd Func _Exit() Exit EndFunc
В этом коде меняем » 62E642F0″ на свое , НО не удаляйте «0x».
Теперь нужно собрать этот скрипт в exe программу :
Нажимамем правой кнопкой по скрипту и видим «Compile Script» .
Получаем exe’шник.
Разворачиваем игру , ставим sv_cheats 0;r_drawothermodels 0 заходим в игру и запускаем exe.
У вас включается WH!
Для выключения и выхода из чита нажимаем F6.
_________________________________________________
Теперь Pixel Trigger Bot :
*Совет- лучше делать такой triggerbot с чамсами(цветными модельками)
Также как и выше создаем на рабочем столе скрипт AutoIt .
Открываем его блокнотом.
Вставляем туда :
HotKeySet(«»,»_Exit») While 1 $Variable = PixelSearch(956,546,965,552,0xCF3429) If IsArray($Variable) = True Then MouseClick(«LEFT») EndIf WEnd Func _Exit() Exit EndFunc
Запускаем игру и сворачиваем её. Заходим в папку с AutoIt находим там Au3Info.exe и запускаем .
Там вы найдете Finder Tool в виде такого прицела . Разворачиваете игру , запускаете игру с ботами.
Пишите в консоль : sv_cheats 1;bot_stop 1, чтобы боты стояли . Подходите к ним
и октрываете чат мышкой переключаетесь на AutoIt зажимаете Finder Tool .Представьте вокруг вашего прицела квадрат .
Так вот Finder Tool нужно перенести на левый , верхний угол этого квадрата . Квадрат должен быть чуть больше прицела .
И отпустите Finder Tool ,переключитесь на окно програмы найдите там вкладку Mouse (снизу) .
Там буду координаты(Pisition) поставленной вами точки, а также её цвет .
В данном мной коде замените «956,546» на то что получилось у вас(Position) .
Теперь снова зажмите Finder Tool и теперь перенесите его на правый нижний угол воображаемого квадрата.
Теперь замените «965,552» на полученные данные .
И теперь последний раз зажмите Finder Tool и наведите его на модель противника .
Замените «0xCF3429» в моем коде на Color который выбрали вы (он тоже находится в вкладке Mouse
Finder Tools’a).
Скрипт готов !
Компилируем его как я написал выше .
Запускаем .
Теперь когда цвет который вы нашли попадет в ваш воображаемый квадрат , чит автоматически выстрелит .
Теперь какие могут быть проблемы .
1)На расстояниях пиксели теряют цвет , поэтому нужно вбить несолько цветов с разных расстояний ,
для этого просто расскопируйте весь код(кроме HotKeySet(«»,»_Exit»)) в файле несколько раз , но поставьте разные цвета .
2)Мы сделали триггер бот только для одной команды , поэтому можно сделать сразу для двух или сделать переключаемый вариант
(может быть скоро выложу исходники).
3)Может подлагивать если вы выбрали слишком большую область (уменьшите её).
Наверное я описал все не очень понятно , за это простите ,но постарайтесь вникнуть в написанное .
Для того чтобы было хоть чуть-чуть понятней , вот несколько видео :
Видео
Видео #1
Источник: zhyk.org
# Триггеры
Триггеры предоставляют самый мощный функционал в боте. Вы можете настроить любую реакцию на любое сообщение пользователей.
Желать доброго утра админам (или любым конкретным пользователям), по утрам, если они зайдут в беседу? – Не вопрос.
При отправке пользователями gif’ок вежливо попросить её удалить в течение минуты, и если он это не сделает – удалить гифку и выдать предупреждение, а если сделает – написать «спасибо за понимание»? – Пожалуйста.
Отправлять в чат «Хозяин, вас звали!» с ссылкой на ваш профиль, когда вас упоминают в группе? – Да, и такое возможно.
Основная функция триггера – определенное УСЛОВИЕ, и при его выполнении, происходит определенное ДЕЙСТВИЕ, которое вы задаете сами.
# Тарифы на триггеры
Данная таблица рассказывает о различиях тарифов на триггеры. Лимита на группы условий/группы действий нет – вы можете создать 6 групп действий, в каждой из которой будет по одному действию, или 1 группу действий с шестью действиями для тарифа «Starter».
Если вы выйдете за лимиты триггера или истечет срок тарифа – (появится красная надпись, уведомляющая о том, что превышено количество триггеров или действий в них) триггеры будут работать, с ограничениями. Например, если вы создали 4 действия без тарифа, работать будут три. Также и количество триггеров – если будет больше, чем возможно, остальные просто не будут работать.
# Навигация по триггерам
Заходим в раздел «Триггеры чата», нажимаем на «+ Добавить новый»
Далее, выйдет окно с условиями создания триггера:
Задаем название триггеру.
Старайтесь назвать триггер так, чтобы его было легко найти и редактировать среди других.
# Тип выполнения триггера
«Выполнить все действие» — это значит, что за определенное условие, будет выполнены все указанные и заданные вами далее действия. (В том случае, если вы укажете несколько действий)
«Выполнить случайную группу действий» — в этом случае, за определенное условие, будет выбрана группа из нескольких выбранных вами действий в случайном порядке.
«Условия» — это определенные сообщения, слова, смайлы, после совершения которых применяются определенные действия.
«Действия» — это определенные реакции на заданные условия, действием может быть ограничение каких-либо действий участника чата, предупреждение, исключение из чата или удаление данного сообщения.
# Отработка триггеров
Отработка триггеров происходит поочередности. На картинке ниже выделен красным номер, по которым идет очередь срабатывания триггеров
Чтобы триггеры работали подряд по порядку необходимо включить тумблер «Продолжить выполнение цепи триггера по окончании текущего триггера» в расширенных настройках, доступных с тарифа «Advanced»
Если тумблер выключен, то сработает только один триггер, тот, который с меньшим номерком.
# Условия триггеров
Создаем условия с помощью «+», открывается отдельное окно «Группа условий» и снизу отдельная кнопка «+». Нажимая на отдельную кнопку, создается еще одна группа условий с отдельными функциями.
В инструменте «Действия» функционал такой же.
# Типы условия:
Всего 18 условий, 4 инициатора, 8 типов сообщений и 6 фильтров для условий на текст сообщения.
# Полное совпадение
Триггер сработает при полном совпадении сообщения с указанным Вами значением в условии. То есть, если укажете в условии «Привет», условие выполнится только при сообщении «Привет». Если будет «Привет. Знаешь…», или «Привет.», или «Привет)» условие НЕ выполнится. *Исключение в том случае, если включить фильтр «Не учитавать символы» ниже, тогда последние два варианта бот пропустит.
# Сообщение начинается с
Триггер сработает, если сообщение пользователя будет начинаться со строк (слов/выражений), указанных вами в значениях условия. Пример: в значених «Ты». Условие сработает на сообщения: «Ты – самый вредный!», «Тыквы полезные!», «Ты123абв»
# Сообщение заканчивается на
Триггер сработает, если сообщение пользователя будет заканчиваться строками (словами/выражениями), указанными вами в значениях условия, иначе триггер не сработает. Аналогично: если в условии «ейка», оно сработает на «лейка», «абвгдейка».
# Сообщение содержит
Триггер сработает, если в сообщении будет присутствовать хоть одна из строк (слов/выражений), указанных в значениях условий. Укажете «лето» — сработает на «Какое лето жаркое!», «В кассе билетов нет!»
# Регулярное выражение
Самое мощное условие, самое сложное. Однако если вы овладеете регулярными выражениями – получите нескончаемый функционал для вашего бота. С помощью этого инструмента можно составлять любые условия на текст пользователя! При должной настройке оно может заменить шесть условий в триггерах и в какой-то мере большинство текстовых фильтров.
Выполняет поиск на основе регулярного выражения языка Java. Тестер и краткий справочник по регулярным выражениям доступен по нажатию кнопки «Помощь» в верхней панели. Также есть небольшая статья, посвященная регулярным выражениям в инструкции.
# Длина сообщения меньше или равна
Триггер сработает, если длина сообщения будет меньше или равна указанному вами количеству символов. Можно включить/отключить подсчёт пробелов.
# Длина сообщения больше или равна
Триггер сработает, если длина сообщения будет больше или равна указанному вами количеству символов. Можно включить/отключить подсчёт пробелов.
# Тип сообщения
Доступно 13 видов сообщений, выберите те, на которые сработает триггер. Например, если поставить фото, то каждый раз когда участники будут присылать фото, условие будет выполняться.
# Регулярное выражение на меньшинах в сообщениях
# Регулярное выражение на текстовых меньшинах в сообщениях
# Регулярное выражение на номерах телефонов
Срабатывает на номер телефона (оформленный как регулярное выражение), на который был зарегистрирован аккаунт Telegram. Телефонный номер указывать в международном формате без плюса. Возможно использовать только когда пользователь отправил свои контакты боту.
# Язык клиента
Условие на основе выбранного языка клиента Telegram (установленный язык в приложении Telegram). Значения указывать по типу: ru, en, ua. Ввиду особенностей Telegram’а, если в приложении выставлен язык русский, срабатывает на значения en и ru, поэтому будьте аккуратны с этим. Со значениями, которые можно указывать в качестве языка клиента, Вы можете ознакомиться здесь.
# Регулярное выражение на логине пользователя
Возможность сделать срабатывание условия для конкретного пользователя по его юзернейму. Обычно работает в сочетаниях с другими условиями в одной группе действий. Значения указываются таким образом: ^(username1)$, ^(username2)$ ИЛИ ^(username1|username2)$, обязательно в нижнем регистре. О работе с регулярными выражениями можно ознакомиться в инструкции. Тестер и краткий справочник по регулярным выражениям доступен по нажатию кнопки «Помощь» в верхней панели.
# Минимальная длина логина
# Максимальная длина логина
Можете указать максимальное количество символов которое будет содержаться в логине пользователя. Если логин будет содержать больше символов что вы указали, то сработает действие. Минимально возможная длина логина в Telegram – 5, максимально возможная – 32.
# Регулярное выражение на имени пользователя
Возможность сделать условие для конкретного пользователя по его никнейму. Обычно работает в сочетаниях с другими условиями в одной группе действий. Значения указываются таким образом: ^(ник этого пользователя)$ ИЛИ ^(имя1 фамилия1|имя2 фамилия2)$, обязательно в нижнем регистре. О работе с регулярными выражениями можно ознакомиться в инструкции. Тестер и краткий справочник по регулярным выражениям доступен по нажатию кнопки «Помощь» в верхней панели.
# Минимальная длина имени
Можете указать минимальное количество символов, которое будет содержаться в имени пользователя. Если имя пользователя будет содержать меньше символов, чем было указано, то триггер сработает.
# Максимальная длина имени
Можете указать максимальное количество символов, которое будет содержаться в имени пользователя. Если имя пользователя будет содержать больше символов что вы указали, то триггер сработает.
# Ранг пользователя соответствует
Укажите желаемое количество рангов и на участника с соответствующими рангами сработает триггер.
# Ранг пользователя ниже
Задайте минимальное количество рангов, на участника с показателем рангов меньше указанных, сработает триггер.
# Ранг пользователя выше
Задайте максимальное количество рангов, на участника с показателем рангов больше указанных, сработает триггер.
Ранг – это текущий статус участника в чате. Ранги даются за выполнение определенных действий, которые устанавливает администратор чата.
# Следующий инструмент «Фильтр условия»
- Не учитывать пробелы в начале и в конце строки — вне зависимости от того, будут или нет пробелы в начале или в конце строки в сообщении пользователя, триггер сработает.
- Не учитывать пробелы и переносы строк — вне зависимости от того, как и где стоят пробелы и переносы в сообщении пользователя, триггер сработает. Например, с условием «Сообщение содержит», при включенном фильтре, если в значениях указать «громила», триггер сработает на: «Полный погроми ладно – потом уберу»
- Не учитывать все пробелы — условие выполнится вне зависимости от того, как и где стоят пробелы в сообщении пользователя. Например, с условием «Сообщение содержит», при включенном фильтре, если в значениях указать «перламутр», сработает на «Спер лам утром», но не будет работать с переносами, как в пункте (2)
- Не учитывать символы — условие сработает, даже если будут использованы символы, которые вы не указали в условии. Укажете в значениях «свет» — триггер сработает на «с()вет»
- Не учитывать цифры — триггер сработает даже если будут использованы цифры, которые вы не указали в условии. В значениях «пора» — сработает на «по95ра»
- Не учитывать регистр — триггер сработает вне зависимости от регистра (большие и маленькие буквы будут восприниматься одинаково). Пример: «Привет» в значениях сработает на «привет», «ПРИВЕТ», «пРиВеТ», и так далее.
# Инструмент «Инициатор триггера»
Инициатор триггера – участник группы, на которого будет срабатывать триггер.
- Кто угодно – условие сработает на всех участников группы
- Администраторы – условие сработает на всех администраторов, включая создателя
- Пользователи – условие сработает на всех пользователей, кроме администраторов
- Создатель – условие сработает только на создателя
Под администраторами понимаются участники группы, которые способны изменять настройки бота, а не администраторы чата.
# Инструмент «Тип сообщения»
Любое – условие сработает при любом сообщении;
Все реплаи – условие сработает только на реплаи (ответы);
Реплаи к боту – условие сработает только на ответы ботов;
Реплаи к пользователю – условие сработает только на ответы пользователей, кроме администраторов;
Реплаи к админу – условие сработает только на ответы администраторов;
Под администраторами понимаются участники группы, которые способны изменять настройки бота, а не администраторы чата.
Не реплай – условие сработает на сообщения, которые были отправлены не реплаем (ответом);
Первое сообщение пользователя – условие сработает при первом сообщении нового участника.
# Инструмент «Инвертирование»
# Действия триггеров
Источник: docs.chatkeeper.app
Конструктор триггеров в Telegram. Как мы сделали простейшего, но полезного бота
Пишем чат-бота в Telegram, который будет реагировать на триггеры в сообщениях и выполнять заданные действия.
Привет! Меня зовут Боровков Евгений, и я предприниматель. В этой статье я расскажу про свой pet-проект. Или как я решил проблему вечного поиска информации прямо в уютном Телеграммчике.
Скажу сразу: я не программист. Я скорее менеджер, который работает в команде с программистами. Поэтому прошу меня простить, если технической глубины в статье не будет хватать.
Бизнесовая часть и проблематика
Идея не нова. Скорее всего вы или уже пользовались такими ботами, или пробовали написать такого своего. Но в поиске оптимального решения своей проблемы, мы пришли именно к такой конфигурации.
Суть бота очень проста и видна на видео ниже:
Не олдскул, а перспективы: почему 1С по-прежнему отличный выбор для начинающих специалистов
Если смотреть не хочется, то вкратце:
Еду, значит, я в метротаксиавтобусе на работу. И тут новому подрядчикуколлегеклиенту срочно потребовалось скинуть наши реквизиты. Для счетадоговораактачего угодно.
Где мне их найти быстро? В закладках? В автозамене? В загрузках в телефоне? В «Избранном»? Думаю вы уловили, или сталкивались с таким сами
У нас даже в какой то момент появилось специальное удобное хранилище таких файлов и информации. Но достаточно быстро оно все равно забилось и проблему не решило. Пример с реквизитами тут взят исключительно как пример. Ведь всем вокруг постоянно нужны кроме реквизитов еще и логотип в «линиях», ссылки на какие-то сайты, или, в конце концов, смешные гифки.
В какой-то момент я пробовал подключить стороннего похожего бота. Но он то не работал, то как-то криво отвечал, то вообще слал рекламную рассылку. Пробовали других ботов: то же самое. Некоторых неудобно настраивать, где-то нет списка всех триггеров, где-то нет русского языка.
В итоге решили писать своего. Чат-ботов мы делаем уже больше 4 лет, видение уже ± сформировалось, на серверах место для еще одного бота найдется. Поехали!
Бизнесовая логика работы бота
Вторая гифка как продолжение первой:
Бот работает на столько просто, что разберется даже ребенок:
Больше бот не делает НИ-ЧЕ-ГО. И, тем самым, соблюдает две основные заповеди ботостроения: имеет простой функционал и молчит, когда его не спрашивают.
Количество чатов не ограничено, количество триггеров внутри чата тоже не ограничено.
Как это работает под капотом
Основной ЯП, который мы используем — это Java. По нему у нас накоплена самая большая компетенция. Поэтому бот построен на Spring boot стеке:
org.telegram telegrambots-spring-boot-starter 5.7.1
База — MongoDB. Бот не хранит сами сообщения и не скачивает файлы. Ему достаточно хранить только ссылки на них.
Теперь по пунктам
- Пишем сообщение: гифкуфайлвидео — что угодно
- Делаем реплай нужного сообщения и пишем команду /set_trigger ключевое слово (или триггер) например «/set_trigger реквизиты».
После этого бот:
1. Достает имя триггера из сообщения:
String command = userText.replace(«/set_trigger», «»).trim();
2. Достает ссылку на само сообщение, которое должно быть сохранено:
if (reply.hasText())
3. Собирает триггер и сохраняет его в БД:
Trigger trigger = Trigger.builder() .chatId(chatId) .commandName(command) .triggerMessage(triggerMessage) .triggerType(triggerType) .build(); triggerRepository.save(trigger);
4. Отправляет ответ, что все сделано:
Bot.send(new SendMessage( chatId.toString(), EmojiParser.parseToUnicode(«:white_check_mark:») + createdInfo + «n + triggerMessage));
Другие технические тонкости
Собирается проект с помощью Maven. Просто так вышло, не спрашивайте почему. Другие проекты мы собираем, как правило, с помощью Gradle.
Собранный jar запущен на vps как unix-сервис. Для комфортной работы бота хватает 512 мб памяти. Не смотря даже на количество пользователей и количество заведенных триггеров, этого пока вполне достаточно.
Кому нужны исходники, можете написать, мы готовы ими поделиться. В общий доступ выкладывать не хочется. Хотя и секрета там особого нет. И да, сидим мы на гитлабе в приватных репозиториях, а не на гитхабе.
Бот не требует никакого обслуживания и внимания. Единственное, что недавний переход телеги на 64-битный идентификатор заставил перелопатить некоторых наших ботов. Вкратце, там дело в хранении IDшников пользователей.
В отличие от других ботов, тут мы не использовали свою State машину. Но в других проектах, где используется более 5 стейтев бота рекомендуем уже использовать либо спринговскую State машину либо самописную. Иначе с развитием проекта, код быстро превращается в набор спагетти методов.
Что еще
На данный момент, мы думаем как улучшить бота, не уничтожив его «шарм минималистичности». Если есть идеи, пишите в комментарии.
Еще у нас есть вот такой чек-лист «Что учесть при разработке чат-бота». Забирайте — это бесплатно.
Чек-лист «Что учесть при разработке чат-бота»
Источник: tproger.ru