Выдача случайного совета с фото из ресурса
Материалы для изучения
- Что такое ресурсы
- ЦИТАТНИК великих умов в беседе (пример настройки игры в беседе через интеграцию с простыми сервисами)
- Список всех строковых функций Автопилота.
Перед началом работы важно подготовить список советов. Вы можете написать его самостоятельно или нагуглить в интернете (выбирайте что удобнее). Но важен формат этих советов:
- По одному совету на строку.
- Без пропусков строк.
- Простым списком без левых символов (маркеров списка).
- Начиная с маленькой буквы.
- В примечании будут храниться изображения вида
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}
которая достает число из введенного пользователем сообщения.

Все, можно тестировать. Да и блок отправки сообщения администратору можно поставить на паузу. Он уже не нужен + предыдущую команду нужно выключить

Как видно, вообще ничего сложного. Творческих взлётов