Как сделать своего бота игрового в ВК

Привет, Хабр! Хочу вам рассказать о своём исследовательском проекте, в котором я создал игрового ботеца для ВКонтакте.

Ахтунг!

Я не являюсь профессиональным разработчиком, я обычный девятиклассник, любящий иногда покодить на совершенно разных языках. Здесь я просто рассказываю о своём проекте и опыте участия в конкурсе проектных работ.

Эта статья не является пошаговым руководством по созданию бота для ВКонтакте — их достаточно и на Хабре, и за его пределами.

Что за проект?

Я, как администратор немаленькой беседы во ВКонтакте (на тот момент это было ~670 человек), столкнулся с проблемой ужасной активности. Ну серьёзно, человек много, а не пишет никто, очень много незаинтересованных молчунов, которые лишь цифру создают для беседы. Подавляющее большинство пользователей из тех 670 человек просто входили и не появлялись в списке сообщений ни разу.

Создание бот игры в вк за 8 минут!

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

С ботом и своей темой я отправился прямиком на конкурс «Большие вызовы», съездил в лагерь, где с экспертами (а с одним из них мы общаемся до сих пор) я допиливал презентацию, чутка сменил цель, всё подкорректировал, успешно защитился. Сейчас меня ждёт только последний тур заключительного этапа, но это уже совсем другая история.

Что же за системы есть в боте?

В общем и целом, по сути я вдохновлялся другим ботом, в которого любил играть продолжительное время (и закончил только потому, что они его отрубили и делают сейчас игру в приложении ВК).

У меня бот намного проще, но подошёл для проекта в школе и для проекта в конкурсе. Основными характеристиками пользователя являются игровая валюта и опыт. Фактически, всё сводится к фарму опыта и денег ради фарма опыта и денег.

За опыт можно устроиться на работу, каждая последующая работа будет давать всё больше денег в 24 часа (без фарма, получение зарплаты только командой раз в сутки), в свою очередь за деньги можно купить машину получше, которая будет давать больший множитель к опыту. Опыт даётся за каждое сообщение кроме команд посимвольно, затем умножается на множитель от автомобиля. Это самое основное, чего я стал требовать от бота. Также есть выдача предупреждений (максимальное их количество — 4).

Да, такого бота я делал около 6 месяцев, постоянно что-то изменяя, добавляя и удаляя.

Давай о реализации уже!

Делал я бота на языке программирования Python с использованием асинхронной библиотеки для написания ботов vkbottle. Работает на CallBack API, в качестве сервера использую aiohttp.

Как сделать бота для вк через Smart Bot ? #1

Во входном файле bot.py происходит инициализация сервера, прописаны все роуты (их всего 4 и они очень маленькие), к основному боту добавляются blueprint’ы, о которых пойдёт речь позже.

Все конфиги хранятся в config.py, точнее, там инициализируются константы. Сами значения хранятся в файле .env и с помощью библиотеки dotenv берутся из виртуального окружения по ключу.

import os from dotenv import load_dotenv dotenv_path = os.path.join(os.path.dirname(__file__), ‘.env’) if os.path.exists(dotenv_path): load_dotenv(dotenv_path) # Loading token from .env ACCESS_TOKEN = os.getenv(«ACCESS_TOKEN») SECRET = os.getenv(«SECRET») USER_ACCESS_TOKEN = os.getenv(«USER_ACCESS_TOKEN») WEBHOOK_ACCEPT = bool(int(os.getenv(«WEBHOOK_ACCEPT», 0))) CONFIRMATION_TOKEN = os.getenv(«CONFIRMATION_TOKEN») NEW_START = bool(int(os.getenv(«NEW_START», 0))) ADMINS_IN_CONV = list(map(int, os.getenv(«ADMINS_IN_CONV»).split(‘,’)))

Теперь о том, где хранятся все обработчики команд.

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

Еще по теме:  Что такое сторис в ВК и как его сделать в контакте

Всё это хранится в пяти разных файлах в папке routes:

Вот пример команды покупки машины:

Все обработчики в пределах одного файла объединяются blueprint’ом, а все «чертежи» подключаются к боту во входном файле.

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

Все подобные функции хранятся в отдельно в папке utils в файле main.py. В этой же папке лежат файлы с константами, функциями для работы с БД, правила и ошибки, которые функции могут raise’ить иногда.

def status_on_buy_car(user: User, car: Car) -> BuyCarUserStatuses: if user.coins >= car.cost and user.exp >= car.exp_need and user.car is None: return BuyCarUserStatuses.APPROVED elif user.coins < car.cost: return BuyCarUserStatuses.NOT_ENOUGH_MONEY elif user.exp < car.exp_need: return BuyCarUserStatuses.NOT_ENOUGH_EXP else: return BuyCarUserStatuses.NOW_HAVE_CAR

В качестве ОРМки я использую Tortoise ORM, потому что асинхронно (а смысл в асинхронности фреймворка, если вся работа с БД синхронная?), потому что удобно лично для меня.

Что по итогу?

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

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

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

Постскриптум

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

Источник: habr.com

Создаем бота для любой игры в контакте своими руками!

  • Пользователи
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • Отправлено 01 февраля 2014 — 20:49

    Здравствуйте, сейчас я вам расскажу как я автоматизурую игры в контакте. После прочтения этой статьи вы и сами поймете что сложного в этом ничего нету.

    Рассказывать буду на примере тату мастера (но потом вы и сами поймете что это очень легко)
    Нам потребуется:
    И волшебная софтина xStarter (

    Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст

    Для начала нам нужно решить что мы хотим сделать. (В моем примере программа будет рисовать тату)
    1. Запускаем программу xStarter. И видим вот такое окно:

    Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст

    2. Включаем чарли и ваполняем действие которое хотим автоматизироать. Я рисую тату. А Чарлик в это время ловит запрос:

    Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст

    3. Жем на запрос правой кнопкой мыши и выбираем Copy URL:

    Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст

    4. В окне xStarter видим иконки папки и какогото текста с галочкой. Жмем сначала на папку потом на текст с галочкой:

    Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст

    Должны появиться Секция 1 и Задача 1

    5. Жем на Нашу первую задачу и видим в правой части экрана названи нашей задачи и какието значки (о них я расскажу позже). Выше находим вкладку Действия и жмем на неё. Далее жмем на зеленый плюс. И появляется от такое окно:

    Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст

    Еще по теме:  Как добавить группу в чат в ВК

    6. Жмем Интернет —> HTTP —>HTTPPost и ставляем в строчку UPL наш скопированый из Charles URL.
    7. Возвращаемся к чарлику переходим во вкладку Request —> Text. Копируем все что там написано:

    Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст

    8. И ставляем это в строку параметры. И жмем Ок

    9. Так как я пишу это пост на примере тату мастера, а ведь я не могу делать тату в одном и том же месте. Мне предется свести тату. И повторить 5-7 пункты только уже с другим запросом.

    10. После того как я это сделал мне нужно сделать что эти запросы повторялись переодически. Для этого мы переходим в вкладку Расписание и Информация в окне xStarter. И жмем на значек часов:

    Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст

    и выставляю время, за которое у меня становится энергия. И жму принять.
    Теперь тогда когда компьютер будет работать татуировки будут добавляться сами.
    Кому не понятно, вот видео:

    Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст

    #2 Mr.BosS

  • Пользователи
  • PipPipPipPip
  • Отправлено 02 февраля 2014 — 11:24

    Норм помагло + в репу мне ставте тоже а я вам

    #3 addda

  • Пользователи
  • Pip
  • Отправлено 02 февраля 2014 — 11:26

    #4 MicroPulse

    MicroPulse

  • Пользователи
  • PipPipPipPipPipPipPipPipPipPipPipPip
  • Отправлено 02 февраля 2014 — 11:39

    #5 ~<0(_eg>~

  • Пользователи
  • PipPipPipPipPip
  • Отправлено 02 февраля 2014 — 11:50

    Тоже когда то писал бот для уличных гонок.Очень функционален,и продуман только на победу.

    reibhr04.ntf_52ee06502d58f.png

    #6 Артур12344

    Артур12344

  • Пользователи
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • Отправлено 02 февраля 2014 — 14:02

    Буду знать

    #7 саня121

  • Пользователи
  • PipPipPipPipPipPipPipPipPipPipPip
  • Отправлено 06 февраля 2014 — 21:00

    А это только для игр вк??просто я ещё на одну браузерную игру попробовать!

    + В Репу мне отвечу тем же!

    #8 stasitto

  • Пользователи
  • PipPip
  • Отправлено 18 февраля 2014 — 01:55

    Всем привет,как можно исправить данную ситуацию,если у меня в параметрах вот такие символы.

    Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст

    Источник: hack-games-vk.ru

    Activebot – сервис геймификации Вконтакте: подробный обзор

    Activebot – сервис геймификации Вконтакте

    ВКонтакте

    Автор Jurij Kovalenko На чтение 5 мин Просмотров 983 Опубликовано 18 мая, 2020

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

    Что такое Activebot?

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

    Сервис является верифицированным партнером Вконтакте, а значит, Vk полностью одобряет действия этого приложения. При использование сервиса ваша группа получит больше репостов, комментариев и подписок на рассылку.

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

    Activebot - сервис создания геймификации Вконтакте

    Как зарегистрироваться?

    Для регистрации переходите по сайт сервиса.

    На главной станице находите в правом верхнему углу кнопку «Войти» и нажимаете на неё.

    Activebot - сервис создания геймификации Вконтакте

    Далее перед вами открывается окно авторизации через Вконтакте, в нем вам нужно дать доступ приложению к вашему аккаунту, нажав на кнопку «Разрешить».

    Подтверждение доступа приложения Activebot к аккаунту в Vk

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

    Поздравление с регистрацией на Activebot

    Конкурсы для VK на Activebot

    Конкурсы для Вконтакте — это одно из тех направлений, которое в последнее время активно развивается. Пользователей уже сильно не удивляют розыгрыши, и они стали гораздо меньше в них участвовать. Но есть направления, которые только начинают, развиваются в Рунете, и одно из них предлагает сервис Activebot.

    Как запустить?

    После того как вы зарегистрировались, в личном кабинете перед вами предстанет большое количество всевозможных конкурсов, которые вы можете запустить в своей группе. Выбираете тот, который вам приглянулся, и нажимаете радом с ним на кнопку «Подробнее».

    Внутренний кабинет Activebot

    Далее перед вами с правой стороны высвечивается визуальный пример конкурса, а с левой кратное описание его возможностей. Если это именно то, что вам нужно, то просто нажимаете на кнопку «Перейти к настройкам».

    Еще по теме:  Как поменять html в ВК

    Создаем первый конкурс на Activebot

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

    Настройка первого конкурса на Activebot

    Далее вам высветится сообщение, в котором вас попросят дать доступ приложению к вашему сообществу. В нем вам достаточно нажать на кнопку «Разрешить».

    Даём доступ приложению Activebot к группе

    После чего возвращаетесь к окну настроек и поочередно настраиваете: призы, правила конкурса и сам пост. В этих пунктах настраиваете, так как нужно именно вам.

    Настройка первого конкурса на Activebot

    В пункте настроек уведомлений вам необходимо подключить бота Activebot к вашему сообществу. Для того чтобы это сделать с правой стороны найдите активную ссылку «Нашему боту» и нажмите на неё.

    Настройка уведомлений Activebot к вашему профилю Вконтакте

    Далее у вас появится окно Вконтакте, в котором вам необходимо написать фразу «Подключить» и нажать на значок «Отправить».

    Подключаем Activebot к вашему профилю Вконтакте

    После чего вам выйдет сообщение о том, что бот успешно подключен в группе. Далее вам необходимо вернуться в окно настроек конкурса, выставить дату отложенного постинга, если это необходимо. И уже после этого нажать на кнопку «Запустить сейчас».

    Настройка первого конкурса на Activebot запуск

    В следующий момент перед вами появится окно подтверждения запуска конкурса, просто нажимаете «Подтвердить».

    Подтверждаем запуск конкурса на Activebot

    Все после этих действий конкурс будет успешно запущен, о чем бот Activebot так же сообщит вам в соцсети Вконтакте.

    Конкурс на Activebot успешно запущен

    Как остановить?

    Иногда бывает необходимо самому остановить конкурс. Сделать это можно нажав на свой ник и выпадающем меню выбрав вкладку «Мои группы».

    Выпадаюзщее меню Activebot пункт Мои группы

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

    Завершаем конкурс на Activebot

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

    Конкурс на Activebot завершен

    Как пополнит баланс?

    Для пополнения баланса нажимаете на ваш ник, и в выпадающем меню нажимаете на баланс.

    Пополняем баланс на Activebot

    После чего в открывшемся окне перемешаете шильдик в сторону той суммы, на которую вы хотите пополнить баланс. При этом, чем больше сумма, на которую вы хотите пополнить баланс на сервисе геймификации Activebot, тем выше будет сумма подарочных рублей, на которую вы так же сможете проводить конкурсы. После выбора суммы нажимаете на кнопку «Пополнить».

    Пополняем баланс на Activebot

    Далее вы попадаете на стандартное окно Яндекс Кассы, в котором вам необходимо выбрать платежную систему, через которую вы хотите пополнить баланс, ввести e-mail, и нажать на кнопку «Заплатить».

    Совершаем оплату на Activebot

    После этого действия будут стандартные — как и везде. Вам будет необходимо подтвердить перевод посредством SMS кода, и завершить оплату. Далее вы вернетесь на сервис, и ваш баланс на Activebot изменится.

    Отзыв о Activebot

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

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

    Итог

    Activebot – это крутой сервис и приложение для Вконтакте, которое позволяет использовать геймификацию в своем сообществе. Её использование поможет вам увеличить активность в вашей группе, а это в свою очередь поспособствует повышению продаж.

    Если данная информация была полезна для вас и вам понравилась статья про сервис геймификации для Вконтакте — Activebot. Пишите свои комментарии и предложения. С уважением Юрий, до встречи на страницах блога Iprodvinem.

    Jurij Kovalenko

    Более 5 лет я работаю удаленно, занимаюсь рекламой и продвижением в интернете, создаю источники дохода онлайн. Люблю путешествовать, автоматизировать процессы и генерировать новые идеи. Изучаю иностранные языки, инвестирование, блогинг и продажу инфо-товаров.

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

    Источник: iprodvinem.com

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...