Как пропустить первых 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. Сохраните изменения.
Готово.