Как пропустить первых 30 пользователей в бота, ограничив доступ остальным

Используйте этот кейс, чтобы ограничивать число участников бота или например, вручить призы тем, кто попал в число первых написавших.

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

1. Создайте экран отдельный от основного сценария и добавьте на него Запись общей переменной. Имя переменой может быть любым, Тип данных — Число, Значение — 0

Этот экран администратор бота должен будет запустить один раз — так начнётся отсчёт пользователей.

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

3. Создайте еще три новых экрана:

  • для первых 30 человек, которые успели стать участниками — выведите на этом экране порядковый номер участника: {{stringify nums.Var1}} и добавьте Запись переменной ban со значением 1,
  • для первых 30 человек, которые уже стали участниками и повторно запустили бота — на этом экране пользователю можно сообщить о том, что он уже участвует,
  • для тех, кто запустил бота после того, как 30 участников уже набралось — можно добавить сообщение о том, что пользователь не успел принять участие.

4. На Стартовый экран или на экран, который должен стать для пользователя первым в этом сценарии, добавьте Развилку с одной Целью. Добавьте Имя переменной, откуда Развилка берет значение: ban. С помощью проверки переменной ban Развилка будет перенаправлять на отдельный экран тех, кто зашел повторно.

5. В Цели развилки добавьте Значение 1 и переход на экран для участников, которые зашли повторно.

6. Сразу после Развилки добавьте Запись общей переменной. Имя переменной должно быть точно такое же, как на экране для администратора. В примере это Var1. Тип выберите Увеличить число на, значение 1.

7. Следом добавьте компонент Прочитать общие переменные. Имя переменной куда записать результат: nums, Имена переменных, которые нужно прочитать: Var1

8. На тот же самый экран добавьте еще одну Развилку. Имя переменной откуда развилка возьмет значение: nums.Var1

9. В Развилку добавьте одну цель, поменяйте тип на Регулярное выражение и добавьте регулярное выражение для первых 30 пользователей: ^([0-9]|([1-2][0-9]|30))$

Переход этой Цели должен вести на экран для первых 30 человек.

10. В Переход по умолчанию добавьте экран для перехода для остальных — тех, кто не успел попасть в число первых.

11. Сохраните изменения.

Готово.