Выдача случайного совета с фото из ресурса
Материалы для изучения
- Что такое ресурсы
- ЦИТАТНИК великих умов в беседе (пример настройки игры в беседе через интеграцию с простыми сервисами)
- Список всех строковых функций Автопилота.
Перед началом работы важно подготовить список советов. Вы можете написать его самостоятельно или нагуглить в интернете (выбирайте что удобнее). Но важен формат этих советов:
- По одному совету на строку.
- Без пропусков строк.
- Простым списком без левых символов (маркеров списка).
- Начиная с маленькой буквы.
- В примечании будут храниться изображения вида
photo-41103148_456239479(по одному на строку)
Важно! Я буду загружать изображения в открытый альбом, даже если пользователи увидят ваши изображения ничего страшного не произойдет (ну или можно всегда выключить раздел с Фотографиями)
Загрузка фотографий
Для загрузки фотографий нужно перейти в Управление → Разделы → Фотоальбомы, ставим галочку и нажимаем сохранить
После этого у вас в сообществе появится раздел для добавления фотографий. Добавлять фотографии очень просто, я уверен, вы справитесь
Создание ресурса
Далее переходим в базу данных вашего сообщества — раздел Ресурсы и создаем там новый ресурс с названием Советы
Чтобы при запуске команды достать поле «содержимое» этого ресурса, есть два способа:
- Точно скопировать название ресурса (
Советы).
В команде написать:{get}Советы|name|body{/get} - Точно скопировать номер ресурса (
XXXXX).
В команде написать:{get}XXXXX{/get}
Пример итогового результата для советов с картинками:
Настройка команды для выдачи случайной строчки с текстом и картинкой
Важно! В данной команде выдается случайная строка с изображением и соответствующий текст. Т.е. если выпала 1 строка в ресурса, то к ней в комплект идет первая строка с картинкой. Будьте внимательны.
Событие:
1) Сообщение: «Написал сообщение» с текстом содержащим: совет
Действия:
1) Временная переменная %resource% = {get}Советы|name|body{/get}
2) Временная переменная %pic% = {get}Советы|name|note{/get}
В переменную достаем все строки примечания из ресурсов
3) Временная переменная %string_count%= {array}%resource%|0|count|col{/array} В этой переменной храним количество строк из содержимого ресурса
4) Временная переменная %string_num% = {rand_range}1-%string_count%{/rand_range}В этой переменной случайным образом генерируем число от 1 до количества строк в ресурсе
5) Временная переменная %text%={array}%resource%|%string_num%|val|col{/array}В этой переменной храним строку с номером %string_num% из содержимого ресурса
6) Временная переменная %pic_note%= {array}%pic%|%string_num%|val|col{/array}В этой переменной храним строку с номером %string_num% из примечания ресурса
7) Действие: «Отправить сообщение» в ответ с текстом:
@id%vk_id% (%first_name%), %text%
и вложением: %pic_note%
Важно! На этапе тестирования всегда выводите себе переменные, как показано ↓. Иначе найти ошибку будет сложно
8) Опционально. Действие: «Отправить сообщение» сотруднику с текстом:
#переменные
string_count - %string_count%
string_num - %string_num%
pic_note - %pic_note%
text - %text%
Тестируем.
А как же сделать выдачу советов по номеру строки введенной от пользователя? Легко. Не верите? Зря.
Настройка команды для выдачи строки с текстом и картинкой по номеру строки введенному пользователем
Важно! В данной команде выдается строка с изображением и соответствующий текст по номеру введенному от пользователя. Т.е. если введено совет 1 то будет выдана 1 строка в ресурса, и к ней в комплект идет первая строка с картинкой.
Здесь будет использоваться копия команды с добавлением всего одного условия и заменой одного действия.
Событие:
Из предыдущей команды + к нему добавляем условие:
1) Числовая переменная %content%больше или равна 1и числовая переменная %content%меньше или равна 3, где 3 — количество строк в содержимом ресурса (мы договорились, что считается по умолчанию количество строк в содержимом и примечании равно), иначе в реакции поясняем пользователю, что совета с таким номером нет.
Действия:
Здесь все остается без изменений, только действие: %string_num%заменяем копией и в нем пишем функцию {num}%content%{/num}которая достает число из введенного пользователем сообщения.
Все, можно тестировать. Да и блок отправки сообщения администратору можно поставить на паузу. Он уже не нужен + предыдущую команду нужно выключить
Как видно, вообще ничего сложного. Творческих взлётов
