2.1 Условия

Условия проверяют данные, полученные от группы на соответствие заданным критериям. В зависимости от типа события в группе, у него могут быть разные данные. Например, у события вступления в группу есть ID пользователя и время, а у комментария в группе - ещё текст, ссылка на пост и кому в ответ написан этот комментарий.

Типы условий

время, попадает в промежуток - действие совершено в выбранном временном промежутке, например 1 сентября, 8 часов утра до 10 сентября 23:55. Используйте, если ваша игра или действия в ней ограничены по времени.

время суток - задайте начало и конец ежедневного периода, когда будет срабатывать условие. Например, с 23 часов до 8 утра бот в вашей группе на любое сообщение в группу отвечает "Сейчас никого нет на связи, но мы вам напишем в рабочее время."

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

за активность НЕ начислен ресурс - то же самое, что и выше, только наоборот. Условие добавлено для удобства чтения БС и составления, хотя можно было просто вывести стрелку из выхода НЕТ предыдущего условия.

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

список, юзера нет - в списке пользователя нет, условие добавлено для удобства.

количество ресурсов - проверяет выбранный ресурс у пользователя, равно значению, больше или меньше значения. Например, вы проверяете есть ли у пользователя лотерейный билетик для участия в лотерее. Или достаточно ли у него баллов, чтобы перейти на следующий уровень.

валидатор - проверяет введённый пользователем текст на соответствие определённому типу. Например, вам важно, чтобы в ответе содержалось именно число и ничего больше (условие в разработке). Может проверять, является ли ввод числовым, соответствует ли регулярному выражению, делать простую проверку на номер телефона.

выражение - тут могут быть сложные условия с использованием переменных, скобок, некоторых функций. Например: ($res_2 + $res_10) > rand(10, 20) - что означает "сумма ресурсов с ID 2 и ID 10 у пользователя больше случайного числа в промежутке от 10 до 20". Условие используется в сложных игровых механиках. 

проверить репост - медленное и ресурсоёмкое условие проверки репоста у пользователя. Используйте его только когда вы уже точно знаете, что пользователь сделал репост (например, вы ему дали за репост какой-то скрытый ресурс и проверили наличие этого ресурса) и надо узнать, не удалил ли пользователь пост у себя не стене. Если страница пользователя закрыта настройками приватности - проверка репоста не пройдёт. 

случайность - условие срабатывает с заданным процентом вероятности, от 1 до 99.

случайность 2 - усовершенствованное условие вероятности, работающее с учётом наличия ресурса. Описано в статье.

дождались действия пользователя - ОСОБОЕ условие, останавливающее БС и ожидающее ввода данных пользователем. Важно помнить, что обычно условия срабатывают все сразу, одно за другим, проверяя данные, полученные от первоначального события. А это - даёт возможность пользователю ввести дополнительные данные, которые будут проверяться блоками, идущими после выхода ДА этого условия.

сообщение прочитано - проверяем, было ли это сообщение отправлено пользователю текущей группой и если да - было ли оно прочитано. Не 100% всегда верно, потому что не все клиенты ВК правильно работают с этой функцией. И наоборот, если прочитано - не факт, что адресат что-то понял. Используйте это условие только когда без него не обойтись.

условие срабатывает не чаще раза в N секунд - используйте, если нужно ограничить частоту срабатывания активности. Например, собирать урожай в огороде можно только раз в день - 86400 секунд. Иначе, отправляем пользователю сообщение, что урожай ещё не созрел, будет невкусно.

есть данные в массиве - условие проверяет наличие данных в хранилище (большая отдельная тема, раскроем позднее)

значение в хранилище - сравнивает значение из хранилища, можно выбрать какого.

дедлайн со времени публикации родителя - проверяет время, которое прошло со времени публикации поста, если речь идёт о комментарии на стене под постом. Родитель - это само видео, если мы говорим о комментарии видео. Не у всех видов событий есть родитель, например у вступления в группу его нет. Используйте это условие, если вам нужно награждать за комментарии под свежими постами, например, в течение 1 суток с момента публикации - так вы промотивируете активных комментаторов.

ключевые слова у родителя - мы получили комментарий под постом, в котором есть ключевое слово "#игра". А за комментарии под другими постами награждать на надо. Выбирайте ключевые слова так, чтобы не было ложных срабатываний, чтобы их точно не было в других постах. Внимание! Используйте это условие только если вам необходимо, чтобы ОДНА активность срабатывала на несколько разных постов. Если активность должна срабатывать только на какой-то один определённый пост - лучше использовать условие "ссылка на родителя", оно работает быстрее и точнее.

ссылка на родителя - ссылка на пост в виде "wall-164338148_183" или вся целиком. Если активность срабатывает на обсуждения - то ссылка на обсуждение. Используйте, когда нужно настроить на один определённый пост. Внимание! Это условие не работает для тредов-подкомментариев! 

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

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

текст, минимальная длина - проверяет чтобы текст не был слишком коротким, если вам, например, нужны развёрнутые комментарии и ответ на ваш вопрос не предполагает тексты короче 50 символов.

ключевые слова в тексте - в тексте содержатся ключевые слова, перечисленные через запятую. Одно из слов, или обязательно все. Здесь и во всех прочих функциях сервиса - ключевые слова проверяются регистронезависимо (СлОво = слово = СЛОВО), буквы "е" и "ё" считается одной, повторяющиеся пробелы считаются одним пробелом. 

входит в число первых N у родителя - награда будет выдана, например, за первые 10 комментариев, соответствующих прочим условиям в цепочке. 

не больше N раз от одного пользователя (относительно родителя) - позволяет наградить пользователя только за его первые три комментария под постом. Используйте, чтобы управлять наградами, если хотите дать больше одной, но чтобы ситуация не вышла из под контроля, ведь комментариев можно написать много.