Карма-бот в вашей беседе ВКонтакте
- Результат урока: в вашей беседе появится бот, который будет давать баллы («спасибо-коины», «шоколадки», «конфетки» и прочую игровую валюту) человеку, которому сказал «спасибо» другой участник беседы.
- Сложность урока: 2/5
- Время внедрения: 10 минут
- Время изучения: 30 минут
Задача карма-бота — мотивировать участников помогать друг другу. Когда участнику говорят «спасибо» за качественную помощь, растут его карма-баллы.
— Привет! Не ждали? Я Тёмный Властелин, и я даю шоколадки за «спасибо» в чате взаимопомощи Автопилота.
Не верите? Заходите в чат, скажите кому-нибудь «спасибо» и проверьте.
Сегодня я научу делать таких же ботов, как я. А кто не справится с инструкцией — отшлёпаю!
БАЗОВАЯ ВЕРСИЯ: ПРОЕКТИРУЕМ
Опишем задачу — что хотим от нашего карма-бота.
- Человек получит баллы, если:
— Кто-то напишет сообщение со словами благодарности: СПАСИБО, БЛАГОДАРЮ, МЕРСИ, ДАНКЕ и т.п. и упоминанием человека через «звёздочку» или «собаку» либо ссылкой на человека. Все возможные способы перечислены ниже.
@id12345
*id12345
@son_of_sky
*son_of_sky
https://vk.com/id12345
https://vk.com/son_of_sky
— Кто-то напишет сообщение с этими же словами в ответ на сообщение человека.
Внимание! Если при этом сообщение содержит упоминание одного человека, а отвечает другому человеку, то баллы получит только первый человек (кого упомянули).
- Нельзя поблагодарить самого себя — бот либо не сработает, либо скажет, что давать самому себе баллы запрещено.
- Участники смогут смотреть баллы в рейтинге.
- Бот будет реагировать одинаково во всех беседах, к которым он подключен. Карма тоже будет общая на все беседы. Например, это запуски одного проекта.
Внимание! Настройки для конкретной беседы или нескольких бесед смотрите в разделе «Продвинутые версии» (будет опубликован позже).
БАЗОВАЯ ВЕРСИЯ: НАСТРАИВАЕМ
ВИДЕОИНСТРУКЦИЯ
Подробный текстовый вариант смотрите ниже ↓
СПИСОК ШАГОВ
Шаг №2. Создаём список карма-баллов
Шаг №2а. Добавляем картинку на страницу с рейтингом
Шаг 3. Обучаем бота реагировать на СПАСИБО
Шаг №1. Подготовка
Подключите бота к беседе ВКонтакте и узнайте ID беседы.
Это можно сделать по следующей инструкции.
Чтобы выводить рейтинг карма-баллов, нужно установить приложение Автопилота в ваше сообщество. Если вы этого не делали → инструкция.
Шаг №2. Создаём список карма-баллов
В Автопилоте настройте следующую команду.
КОМАНДА 1. Карма-бот — список баллов
СОБЫТИЕ. Добавлен в список подписчиков
- Запишите номер события (из правого нижнего угла).
- Выберите режим: Публичный рейтинг.
- Дайте название списку. Это будет заголовок рейтинга, его увидят участники.
- Нажмите «Сохранить» и переоткройте команду. Без переоткрытия ссылка на рейтинг будет работать неверно.
- Нажмите на «откр» — откроется страничка рейтинга.
Пока в нём никого нет. - Скопируйте содержимое строки браузера. Это ссылка на рейтинг. Её уже можно давать участникам
Шаг №2а. Добавляем картинку на страницу с рейтингом
Внимание! Сейчас это делается неоптимальным способом. Данный раздел может устареть при выходе обновления.
- Загрузите картинку в любое место. Например, зайдите в переписку от сообщества и отправьте картинку самому себе.
- Щёлкните правой кнопкой по картинке и выберите «Открыть картинку в новой вкладке».
- В строке браузера вырежьте из ссылки текст
impf/и всё, что стоит после.jpg. Эту ссылку скопируйте — это ссылка на картинку. - Для теста перейдите по этой ссылке и убедитесь, что картинка открывается.
- Возьмите ссылку на рейтинг и допишите:
&i=ссылка_на_картинку
Полученную ссылку рекомендуем сократить через vk.cc, т.к. она получилась довольно длинной. Теперь её можно выкладывать в посты, отправлять в сообщениях и т.п.
Вариант 2 — Более оптимальный - Поскольку в бот у нас является отдельным сообществом-персонажем, то других страниц рейтингов там скорее всего не будет. Поэтому полученную ссылку можно просто вставить в настройки приложения сообщества.
Шаг 3. Обучаем бота реагировать на СПАСИБО
В Автопилоте настройте команду:
КОМАНДА 2. Карма-бот — реакция на СПАСИБО
Реагируем на сообщение-благодарность в беседе
- СОБЫТИЕ. Написал сообщение
- С текстом, содержащим:
пасиб,благодар,мерси,данке,секнс,спс - Флаги: «с любым вложением», «в беседе»
- Если бот должен реагировать только в одной конкретной беседе, вставьте ID беседы в третье поле. В противном случае, оставьте его пустым
…если человеку ответили на сообщение или упомянули через * или @
- УСЛОВИЕ Числовая переменная
%mention%больше:0
Матчасть для продвинутых.
- В переменной
%mention%будет содержаться VK ID того человека, которому написали СПАСИБО. - Если написали СПАСИБО, но не в ответ и без упоминания, то
%mention%= 0. На такие случаи бот не будет реагировать.
…не начисляем баллы, если человек благодарит сам себя
- УСЛОВИЕ Числовая переменная
%mention%равна%vk_id%- + нажмите кнопку «ЕСЛИ НЕ» - условие станет негативным (красным)
Если хочется поругать пользователя, то настроим «реакцию на невыполнение» — написать сообщение с текстом:
Нельзя начислять баллы самому себе.
…объясняем Автопилоту, кого будем благодарить
- ДЕЙСТВИЕ. Сменить исполнителя на пользователя с VK ID
- В первое поле действия вводим значение:
%mention%
Матчасть для продвинутых.
После этого действия в переменных %vk_id%, %vk_link%, %first_name%, %last_name% будут записаны данные того человека, кому адресована благодарность (а не того, кто поблагодарил и запустил команду).
…начисляем баллы
- ДЕЙСТВИЕ. Добавить в список
- Номер списка:
XXXXX,
гдеXXXXX— это номер списка с карма-баллами, посмотрите его ↑ в шаге 2 - Увеличить на
1
…записываем, сколько у человека карма-баллов сейчас
- ДЕЙСТВИЕ. Временная переменная
- Название:
%points% - Значение:
{level}XXXXX{/level},
гдеXXXXX— номер списка с карма-баллами
…выносим благодарность
- ДЕЙСТВИЕ. Написать сообщение
- Режим: в беседу с номером
%peer_id% - Текст:
Кто у нас тут такой сладенький? А, это @id%vk_id% (%first_name%)!
Держи шоколадку!
У тебя сейчас %points% шоколад{case}%points%|ка|ки|ок{/case}
Матчасть для продвинутых.
Функция {case}{/case} позволяет склонять название переменной (подставлять разные окончания) в зависимости от числа, записанного в первом параметре.
Как правильно заполнять?
- Второй параметр — слово, если число = 1: (одна) шоколадка.
- Третий параметр — слово, если число = 2: (две) шоколадки.
- Четвёртый параметр — слово, если множественное число: (много) шоколадок.
Результат: %points% {case}%points%|шоколадка|шоколадки|шоколадок{/case}
Можно вынести общую часть слова за функцию, а в функции оставить только изменяемую часть. Тогда получится более компактная запись:%points% шоколад{case}%points%|ка|ки|ок{/case}
Шаг 4. Проводим тестирование
Включите команду и обязательно проведите тестирование настройки.
Тестировать надо на двух разных аккаунтах. Один пишет СПАСИБО, другой получает баллы.
УСТРАНЕНИЕ НЕПОЛАДОК
Бот не пишет, что даёт баллы?
Проверьте, что бот реагирует на другие команды в беседе.
Например, на КАКАЯ БЕСЕДА (см. инструкцию).
Ваши вопросы вы можете задать в Чат взаимопомощи АвтопилотаВернуться на главную страницу инструкций
или в техподдержку.
