Универсальная команда на лайк / дизлайк поста

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

Сегодня мы научимся делать механику, которая позволяет ставить лайк только один раз под всеми постами и реагировать на дизлайк (снятие лайка)
Вы можете возразить: «Что там сложного? Событие «поставил лайк» с типом пост и указать идентификатор поста»

Пример события
Пример события

Да, а если у вас 10, 15 постов. Конечно, можно скопировать команду, заменив идентификаторы постов, добавить условие «Выполнена команда» 0 ровно 0 раз, но это не наш метод.

Пример условия
Пример условия

Для начала в разделе «Списки игроков для VK» делаем список для начисления баллов. В примере список с типом рейтинг и номером: 1604839

Важно! Номер события у вас будет другой, также вы можете сделать список этим событием в выключенной команде.
Список с баллами
Список с баллами

Команда «Начисление баллов за лайк поста»

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

Событие:

1) Для реакции на лайк поста используем событие «Поставил лайк» с типом пости любым идентификатором для реакции на лайк любого поста.

Пример события
Пример события

2) Для реакции только на те посты, на которые еще не было лайка, добавляем условие функция {json}%player.post_likes%|%object_id%{/json}содержит not found

Пример условия
Пример условия

т.е. в поле игрока post_likes (название может быть любым удобным вам), нет свойства с идентификатором поста %object_id%

Важно! На этапе тестирования вы можете в реакции на невыполнение можно выводить текст (для этого пользователь должен разрешить диалог с вашим сообществом, согласно Азбуке рассылок ВК)

Действия:

1) Для того, чтобы записать в поле игрока идентификатор поста под которым поставлен лайк, добавляем действие «Изменить поле профиля игрока» с названием post_likes.%object_id%и значением равным 1

Значение может быть любым нужным вам, хоть даже смайлики
Значение может быть любым нужным вам, хоть даже смайлики

2) Для начисления баллов добавим действие: «Добавлен в список» 1604839и уровень увеличен на 1т.е. за лайк поста мы будем давать один балл.

Увеличиваем количество баллов на 1
Увеличиваем количество баллов на 1

3) Для сохранения количества баллов запишем их во временную переменную %ball%= {level}1604839{/level}

Получаем количество баллов
Получаем количество баллов

4) Опционально действием: «Отправить сообщение» отправляем данные игроку:

%first_name%, у вас %ball% {case} %ball%|балл|балла|баллов{/case}
Пример действия
Пример действия

Здесь в зависимости от переменной %ball% выводит игроку текст с количеством баллов Подробности про функцию {case} есть в документации.

Команда «Дизлайк поста»

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

1) Для реакции на отмену лайка поста используем событие «Поставил лайк» с переключателем «Отменил лайк» типом пости любым идентификатором для реакции на отмену лайка любого поста.

Пример события
Пример события

2) Для реакции только на те посты, на которые был лайк, добавляем условие функция {json}%player.post_likes%|%object_id%{/json}содержит not foundи нажимаем «Если не», то есть, в поле игрока post_likes(название может быть любым удобным вам), есть свойство с идентификатором поста %object_id%

Пример условия
Пример условия

Действия:

1) Для того, чтобы записать в поле игрока идентификатор поста под которым снят лайк, добавляем действие «Изменить поле профиля игрока» с названием post_likes.%object_id%и значением равным 1

Значение может быть любым нужным вам, хоть даже смайлики
Значение может быть любым нужным вам, хоть даже смайлики

2) Опционально: для полного обнуления баллов добавим действие «Отменить событие / Команду (Удалить из списка)» со списком1604839т.е. за отмену лайка списываем все баллы.

Пример жесткого списывания баллов. За хейт и негатив ответственность несете вы.
Пример жесткого списывания баллов. За хейт и негатив ответственность несете вы.

3) Для уменьшения баллов добавим действие: «Добавлен в список» 1604839и уровень уменьшен на 1т.е. за снятия лайка поста мы будем снимать один балл.

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

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

4) Для сохранения количества баллов запишем их во временную переменную %ball%= {level}1604839{/level}

Получаем количество баллов
Получаем количество баллов

5) Опционально действием: «Отправить сообщение» отправляем данные игроку:

%first_name%, у вас %ball% {case} %ball%|балл|балла|баллов{/case}
Пример действия
Пример действия

Здесь в зависимости от переменной %ball% выводит игроку текст с количеством баллов Подробности про функцию {case} есть в документации.

Тестируем.

Лайк поставлен
Лайк поставлен
У нас 1 балл.
У нас 1 балл.
Снял лайк
Снял лайк
У меня 0 баллов
У меня 0 баллов
Важно! После снятия лайка даже если поставить его обратно баллы не начисляться, чтобы клиенты не баловались пытаяссь фармить баллы и вы не платили за лишние мили Автопилота.

Все отлично работает.

Творческих взлётов и успешного внедрения.

Вернуться к списку инструкций
530 views·29 shares
530 views