Универсальная команда с реакцией на опрос один раз
Сегодня мы научимся делать механику, которая позволяет реагировать на опрос только один раз.
Важно! При данной настройке не учитывается выбранный ответ пользователя, поэтому если нужна реакция на конкретный вариант ответа, то настройка не подойдет. Делайте отдельную команду.
Вы можете возразить: «Что там сложного? Событие «Оставил голос в публичном опросе» и скопировать текст опроса.
Да, а если у вас несколько разных опросов? Конечно, можно скопировать команду, заменив тексты опросов, добавить условие «Выполнена команда» 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т.е. за голос мы будем давать пять баллов.
3) Для сохранения количества баллов запишем их во временную переменную %ball%= {level}1875527{/level}
4) Опционально действием: «Отправить сообщение» отправляем данные игроку:
%first_name%, у вас %ball% {case} %ball%|балл|балла|баллов{/case}
Здесь в зависимости от переменной %ball% выводит игроку текст с количеством баллов. Подробности про функцию {case} есть в документации.
Тестируем.
