Затем добавляю цепочку сообщений, чтобы протестировать:



В настройках пишу: Результат и вывожу переменную:



Если я сейчас кликну на кнопку Получить бонус, то результат 0. Начислять баллы не буду. К этому тоже нужно быть готовым.

Для того чтобы отслеживать сколько у пользователя рефералов, я создаю блок Условие:



Кликаю на него, выбираю:



Ставлю: меньше 1:



Если Да, то пишу, что недостаточно рефералов:



Если у пользователя другое условие, больше 1, то по ветке Да создаю еще условие. Здесь буду проверять в первый раз он получает начисление или нет. Выбираю:



Пишу название:



Кликаю Enter. Если у пользователя нет этого тега, он идет по ветке Нет.

Здесь я добавляю блок Операция над переменной. Сразу сделаю Тэг, чтобы в следующий раз он пошел по другой ветке:



Кликаю на блок Операции над переменной, где переменная первый уровень. Здесь формируется число (любое) и с этим числом я должна произвести какие-то математические выражения. Если у меня 1 реферал, то я за него получу 100 рублей (баллов), а если 5 рефералов, то я должна получить 500 рублей.

Следовательно в блоке Операции над переменной, выбираю:



Здесь добавляю 2 локальные переменные:



А в значении пишу:



Затем заполняю:



После этого можно добавить блок Цепочка сообщений, где сообщаем о начислении баллов:



Затем добавлю кнопку Главное меню и добавлю сценарий, где выбираю Главный сценарий.

Теперь я продублирую блок Операции над переменной с переменной первый уровень и поменяю название на 1 уровень получено, а формула будет таже:



В тот момент, когда пользователь пройдет сквозь этот блок, здесь формируется число рефералов и попадет в переменную один уровень получено. Таким образом в эту переменную первый уровень получено, попадет то количество рефералов, за которые пользователь получил начисление. А когда он в следующий раз придет, я могу брать эту переменную и использовать как прошлое число.

После блока Условие, который проверяет наличие тега, он направит по ветке Да. Я могу сделать такую проверку. Добавлю блок Операция над переменной, выберу математическое выражение 2.0. Добавлю локальную переменную, которая называется 1 уровень получено, а также возьму еще 1 локальную переменную фактическое количество рефералов и сделаю вычисление:



В данной переменной будет разница между фактическим и полученным.

Далее поставлю блок Условие, чтобы лишний раз не назначать баллы:



Здесь я выбираю:



И делаю настройки:



Если хотите настроить не баллы, а рубли, то после имени переменной нужно написать слово – рублей. Например так: {{$ball}} рублей.

То здесь ему нет смысла чего – то начислять, так как у него нет рефералов. А ему отправлю сообщение, что у него нет новых рефералов.

Здесь меняю условия:



В боте это будет выглядеть так:



Если я войду в Главное меню и сразу кликну опять на кнопку Получить бонус, то мне бот ответит:



Но в случае, если у пользователя будет больше рефералов, то должны проделаться следующие вычисления.

У меня есть предыдущий блок, который знает новых рефералов. Он берет и вычитает, получает переменную 1 уровень новая. У пользователя если больше 1 рефералов, то он попадает сюда и я буду использовать переменную 1 уровень новая. это X и это буду умножать на 100 и прибавляю текущее значение переменной баллы:



Таким образом бот будет знать новое количество рефералов и данное число умножать на 100 и прибавлять к новым баллам. После всех этих вычислений я также буду использовать блок Операция над переменной, в которой формируется переменная получен 1 уровень с текущим количеством всех рефералов.

Можно добавить блок Цепочка сообщений:



И здесь написать: