Геймификация в Инстаграм* (Игра на активность)

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

*Принадлежит компании Meta, запрещенной в России и признанной экстремисткой.

Как установить шаблон

В разделе Шаблоны выбираем "Игра на активность в Инстаграм*" и нажимаем "Установить".

После установки мы видим схему шаблона геймификации:

Для того чтобы схема стала рабочей, необходимо сделать дополнительные настройки.

Для этого переходим в Настройки -> Константы проекта, где необходимо добавить поля:

comment_score=10

stories_score=15

stories_mention_score=20

min_comment_len=25

message_score=10

comment_max_actions=5

message_max_actions=1

stories_max_actions=5

stories_mention_max_actions=2

end_game_date=30.12.2021

post_mention_max_actions=3

post_mention_score=30

Чтобы не вбивать переменные по одной, воспользуйтесь видом "Старый стиль"

Значения константных переменных

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

Наименование переменной

Назначение переменной

comment_score

сколько начислять баллов за комментарии

comment_max_actions

максимальное количество комментарий в день

min_comment_len

минимальная длина комментария

stories_score

сколько начислять баллов за реакции на истории

stories_max_actions

максимальное количество действий в день

stories_mention_score

сколько начислять баллов за упоминания в сторис

stories_mention_max_actions

максимальное количество действий в день

post_mention_score

сколько начислять баллов за упоминания в посте

post_mention_max_actions

максимальное количество действий в день

end_game_date

дата завершения игры

Как работать с шаблоном

Функции для шаблона

В шаблоне доступны функции для дальнейшей доработки проекта (функции применяются в поле Калькулятор):

ФункцииЗначение

game_add_comment(text=None)

добавляет очки за комментарий в инстаграм* или вк, также можно передать любой текст

game_add_stories()

добавляет очки за реакции на истории

game_add_message()

добавляет очки за сообщения в директ

game_add_stories_mention()

добавляет очки за упоминание в истории

game_get_user_score()

возвращает очки пользователя

game_get_user_place()

показывает место пользователя в рейтинге

game_get_leader_score()

возвращает очки лидера в рейтинге

game_get_top(count=99999999, shift=0, humanize=False, delimiter=None, platform=None)

вызов без аргументов вернет отсортированный рейтинг с массивом пользователей. На вход принимает следующие 4 параметра: count - сколько пользователей вернуть, shift - с какого места рейтинга сделать выборку (0 - список начнется с лидера и так по нисходящей по очкам, т.е. 3 - выборка будет с 4-го места в рейтинге и ниже), humanize - 0 - вернет массив со словарями пользователей, 1 вернет список для вывода пользователю, delimiter - это разделитель между именем пользователя и его результатом (если предыдущий параметр humanize=1), platform - 1 - вместо имени выводит логин в инстаграм в формате @nik.

Пример 1: game_get_top(10, 0, 1, ' - ') вернет: Вася - 40 Маша - 30 Петя - 10 Пример 2: game_get_top(3, 0, 1, ' - ', 1) вернет: @vasya - 40 @masha - 30 @privet - 10

game_add_score(count=1, client_id=None)

добавляет пользователю очков

game_set_score(score, client_id=None)

задает пользователю количество очков

game_ban_player()

блокирует пользователя

game_unban_player()

разблокирует пользователя

game_user_banned()

возвращает статус блокировки пользователя, заблокирован - True, не заблокирован -False

# позволяет работать с произвольными значениями в турнирной таблице.

game_add_value(val_name, count=1, client_id=None)

game_set_value(val_name, value, client_id=None)

если не передавать client_id, то функция работает с текущим клиентом

game_minus_user_score(count =10)

отнимает очки у пользователя (count - сколько очков отнять)

game_get_today_user_comment_action()

количество комментариев от пользователя за сегодня

game_get_today_user_message_actions()

количество сообщений от пользователя за сегодня

game_get_today_user_stories_actions()

количество историй от пользователя за сегодня

game_get_today_user_mention_actions()

количество активностей от пользователя за сегодня

game_get_today_user_post_mention_actions()

количество постов с упоминаниями от пользователя за сегодня

game_get_total_comment_action()

количество комментариев за все время игры

game_get_total_message_actions()

количество сообщений за все время игры

game_get_total_stories_actions()

количество сториз за все время игры

game_get_total_stories_mention_actions()

количество упоминаний в истории за все время игры

game_get_total_post_mention_actions()

количество упоминаний в постах за все время игры

Основные блоки игры

Ниже представлены основные блоки игры и условия, по которым блоки срабатывают:

  • начало игры (условие - игра; ПРАВИЛА) Переменная game устанавливается в 1. Время вышло - в 0

  • остановки игры (условие - СТОП) Переменная game = 0, game_ban_player() - блокирует пользователя

  • возврата в игру (условие - вернуться) Функция game_unban_player() разблокирует пользователя, выполняется возвращение в игру game = 1 и метка stop обнуляется

  • процесса игры (условие - игра) Проверяется участие в игре game == 1, т.е. если игра уже началась, игрок попадает в этот блок

  • правила (условие - правила) Проверяется участие в игре game == 1 , если игра уже началась, игрок попадает в этот блок и может еще раз ознакомиться с правилами

  • рейтинг (условие - БАЛЛЫ) Проверяется участие в игре game == 1, если игра началась - выдаются рейтинги игры

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

Когда человек принимает правила, переменная game принимает значение 1 - это значит, что в игре будут участвовать только те, кто согласился играть. Остальным баллы начисляться не будут. Как только игра началась, ставится таймер на дату окончания игры. Как только таймер сработает, переменной game присвоится значение 0 и игра продолжаться больше не сможет.

Переменная game_data создается автоматически при первом действии в игре. в этой переменной хранятся все данные по игре. После того, как вы провели игру и подвели итоги (перед запуском новой игры) обязательно нужно удалить переменную game_data , при старте новой игры она создастся автоматически. Также необходимо задать новое значение end_game_date.

Перед каждой новой игрой ОБЯЗАТЕЛЬНО удалять переменную game_data (все данные текущей игры) и перепроверять дату end_game_date (дата окончания игры)

Блоки реакций на события

! Для работы с реакциями необходимо в подключении мессенджера включать все настройки:

Реакция на упоминание в сторис

В блоке "Упоминание в истории" выполняется проверка game == 1. Соответственно, если игра закончена и в поле game лежит 0, действия не выполняются. Если главное условие выполнено, в поле "Калькулятор" выполняются функции:

ms = game_add_stories_mention() - добавляет очки за упоминание в истории (внутри функции проверяются лимиты, лимиты превышены - очки не добавятся)

s = game_get_user_score() - возвращает очки пользователя

action = game_get_today_user_stories_mention_actions() - проверяет количество активностей от пользователя за сегодня

Реакция на сторис пользователя

Блок "Реакция на сторис" ловит реакцию по наличию ключевых слов с помощью условия https://lookaside.fbsbx.com. Именно с этой ссылки начинается сообщение в разделе "Клиенты", если пользователь отреагировал на сторис. В блоке также выполняется проверка game == 1. Соответственно, если игра закончена и в поле game лежит 0, действия не выполняются. Если главное условие выполнено, в поле "Калькулятор" выполняются функции:

bs = game_add_stories() - добавляет очки за реакции на сториз (внутри функции проверяются лимиты, лимиты превышены - очки не добавятся)

story = game_get_today_user_stories_actions() - количество сториз от пользователя за сегодня

s = game_get_user_score() - возвращает очки пользователя

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

Реакция на комментарий

Блок "Реакция на комментарий" ловит реакцию по наличию ключевых слов с помощью условия client_wall_reply_new.

В блоке также выполняется проверка game == 1. Соответственно, если игра закончена и в поле game лежит 0, действия не выполняются. Если главное условие выполнено, в поле "Калькулятор" выполняются функции:

s1 = game_get_user_score() - возвращает очки пользователя

a = game_add_comment() - добавляет очки за комментарий в инстаграм или вк, также можно передать любой текст

s = game_get_user_score() - возвращает очки пользователя

n = game_get_today_user_comment_action() - добавляет очки за комментарий в инстаграм или вк, также можно передать любой текст

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

Реакция на упоминание в посте

Блок "Реакция на упоминание в после" ловит отметку по наличию ключевых слов с помощью условия mention_in_media.

В блоке также выполняется проверка game == 1. Соответственно, если игра закончена и в поле game лежит 0, действия не выполняются. Если главное условие выполнено, в поле "Калькулятор" выполняются функции:

ms = game_add_post_mention() - добавляет очки за упоминание в посте

s = game_get_user_score() - возвращает очки пользователя

media = game_get_today_user_post_mention_actions() - количество постов с упоминаниями от пользователя за сегодня

В стрелках проверяется переменная media на установленные лимиты , если лимиты превышены, стрелка ведет вправо и пользователю выдается соответствующее сообщение. Если количество упоминаний меньше лимита, стрелка ведет вниз и выдается сообщение о начислении баллов.

Пошаговый разбор бота для Instagram с данным шаблоном можно посмотреть в теме 2 проекта Репетитор. Перейти к описанию

Last updated