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

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

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

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

Вы можете возразить: «Что там сложного? Событие «Оставил голос в публичном опросе» и скопировать текст опроса.

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

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

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

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

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

Команда «Начисление баллов за голос в опросе»

Важно! Отправить сообщение с начислением баллов мы можете только если пользователь разрешил диалог с вашим сообществом, согласно Азбуке рассылок ВК

Событие:

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

Важно! В опросе не учитывается выбранный вариант, а только сам факт голосования. Будьте внимательны. Если нужно реагировать на конкретный вариант опроса делаете отдельные команды. Пример в видео.
Пример события
Пример события

2) Для реакции только на те опросы, в которых еще не было голоса, добавляем условие функция {json}{fields}%event_club_id%_poll{/fields}|%id_1%{/json}содержит not found

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

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

В примере универсальное поле игрока для каждого сообщества %event_club_id%_pollэто сделано для того, чтобы механика могла работать в разных сообществах, ведь что ID опроса могут совпадать, поэтому мы и дописываем идентификатор сообщества из переменной %event_club_id%

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

Действия:

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

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

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

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

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

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

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

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

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

Тестируем.

Все работает. Подробности в видео выше.
Все работает. Подробности в видео выше.
322 views·3 shares