Условия
❖ Что такое Условия
Условия - это частный случай Выражений (руководство по выражениям здесь) с дополнительными символами и логическими операторами. Вы можете использовать всю мощь Выражений в Условиях.
Условие должно возвращать
True
илиFalse
в качестве результата (1
или0
).
Синтаксис Условий
Синтаксис Условий унаследован от Выражений. По этой причине, Условия должны быть взяты в фигурные скобки "{}
", внутри, помимо Операторов свойственных только Условиям, можно использовать выражения в круглых скобках, вычисления и макросы.
В общем виде шаблон Условия может выглядеть примерно так:{(...) and (...)}
{(...) or (...)}
{(...) or not(...)}
{(...) and not(...)}
{(...) and (...) or (...) or not(...)}
{(...) and (...) or (...) and not(...)}
ВАЖНО: в отдельных случаях, в частности, в условиях кнопок, Action-ов и тому подобного, если в Условии для сравнения используется текст, то данный текст может быть, и чаще всего будет, переведён в нижний регистр - то есть все заглавные буквы в тексте станут строчными. Как-то более конкретно обозначать возможные случаи - нет необходимости, просто имейте это в виду при работе с условиями.
Другими словами Условия сделаны регистронезависимыми. Это упрощает работу с ними для среднестатистического админа бота.
Операторы сравнения
При помощи этих операторов сравниваются две части выражения.
>
,>=
(больше, больше или равно)<
,<=
(меньше, меньше или равно)==
(равно) Заметьте! Не один знак "=", а два!!=
(не равно)
Пример:{1 < %refcount% < 10}
TRUE если количество рефералов у пользователя больше 1 и меньше 10.
Логические операторы
Логические операторы объединяют результаты нескольких логических выражений. Каждое логическое выражение должно возвращать True
/ False
. Настоятельно рекомендуется использовать круглые скобки "( )
" для выделения каждого логического выражения.
and
(логическое "и")or
(логическое "или")not
(логическое "не")
Примеры:{(%balance% > 0) and (%refcount1% > 0)}
TRUE если у пользователя есть деньги на его балансе и (and
) один или нескольких рефералов.
{(%balance% > 0) or (%usd% > 0)}
TRUE если у пользователя есть деньги на балансе или (or
) средства на его USD переменной.
{((%balance% > %vip_price%) and (%manual_ban% == 0)) or (%vip% == 1)}
TRUE если Баланс пользователя больше чем стоимость VIP и (and
) он не забанен или (or
) это VIP пользователь.
{not(%balance% > 0)}
TRUE если баланс пользователя не (not
) больше нуля (меньше или равен нулю). В основном используется в сложных выражениях.
Возможны и более сложные варианты {(xxx) and ((yyy) or (zzz))}
:{(%balance% > 100) and ((%refcount% > 10) or (%invest% > 500))}
В примере выше два условия должны быть выполнены - первое точно и любое из двух последних. Таким образом юзер обязан иметь %balance%
более 100
И либо более 10
на %refcount%
ИЛИ более 500
на %invest%
.
Типизация в Условиях
В общем случае данные с которыми работают Условия могут быть текстовыми или числовыми.
ВАЖНО: в Условиях, для корректной работы с текстовыми данными их нужно брать в ""
(кавычки).
Тип данных определяется в самом Условии, либо типом данных используемой в условии Переменной. Иногда, в Условии есть необходимость с изначально числовыми данными, работать как с текстовыми.
Подробнее о Переменных и их типах.
Проверка наличия данных в переменной
Иногда в условии нужно проверить - присутствуют ли вообще какие-либо данные в Переменной (актуально в основном для Текстовых переменных).
Пример 1.1 (текстовая переменная):{"%text_var%" == ""}
(в условии использованы кавычки)
Условие вернёт true
если Текстовая переменная text_var
- пуста.
Пример 1.2 (числовая переменная){%num_var% == 0}
(значение по умолчанию для Числовой переменной это "0" (ноль); условие без кавычек)
Условие вернёт true
если Числовая переменная num_var
- пуста.
Пример 2.1 (текстовая переменная){"%text_var%" != ""}
(в условии использованы кавычки)
Условие вернёт true
если Текстовая переменная text_var
- НЕ пуста - в ней есть данные.
Пример 2.2 (числовая переменная){%num_var% != 0}
(значение по умолчанию для Числовой переменной это "0" (ноль); условие без кавычек)
Условие вернёт true
если Числовая переменная num_var
- НЕ равна нулю.
Использование Условий
При добавлении Условия на кнопку или в Action, иногда возникают затруднения в определении того как и в какой именно момент сработает добавленное Условие.
Важно помнить - что во всех случаях добавленное вами Условие описывает нормальное состояние системы, то состояние, в котором система работает обычно. То есть - пока система находится в границах описанных условиями - никаких дополнительных действий Условием предприниматься не будет. Как только, при очередной проверке, Условие окажется "не верно" (False
или 0
) - сработает механизм ограничения заложенный в Условии и действие функции закрытой этим условием - будет прервано. Тоже самое относится и к "Action-у Условий" - в этом случае, НЕвыполнение его Условия прервёт дальнейшую цепочку Action-ов.
ЛОГИКА УСЛОВИЙ: Таким образом, всегда при возникновении затруднений с Условиями размышляйте следующим образом: "До тех пор пока - (тут ваше условие) - ничего не предпринимать, в противном случае прервать".
ВАЖНО: все тексты в условиях переводятся с НИЖНИЙ РЕГИСТР и все сравнения проходят в НИЖНЕМ РЕГИСТРЕ. Сделано это для упрощения использования и большей предсказуемости поведения условий.
СОВЕТ: При создании сложных Условий всегда начинайте с их структуры и только потом вставляйте необходимые выражения.
Например:
● Шаг 1 (основа):{(...) or (...)}
● Шаг 2 (усложнение):{( (...) and (...) ) or ( (...) and (...) )}
● Шаг 3 (общая структура):{( ((...)or(...)) and (...) ) or ( (...) and (...) )}
● Шаг 4: Заменяем ...
необходимыми выражениями.
❖ Условия в кнопках
Условия, будучи добавленными в кнопку, определяют, имеет ли право конкретный пользователь получить доступ к конкретной кнопке.
Прежде чем вы сможете использовать Условия в кнопках вашего бота, их необходимо активировать.
Условия.
Для этого перейдите в свой бот:☞ 🔐Админ | 🧩Расширения | 📂Кнопки
Перейдите к настройкам кнопки:
Нажмите "Назначить Условие":
И... Назначьте Условие:
После отправки боту самого Условия вам будет предложено добавить сообщение которое будет показано пользователю если условие не выполнено (сообщение об ошибке). Это действие не обязательно.
Три варианта действий:
1. Добавить новое сообщение (доступен «Продвинутый Режим» - позволяющий добавить Инлайн Кнопки и Медиа Переменную к сообщению ошибки)
2. Оставить как есть - если сообщение было добавлено ранее
3. Оставить пустым (кнопка «Задать Пустым» очистит текст сообщения если оно было добавлено ранее).
После выбора одного из вариантов Условие для кнопки будет создано.
Таким образом созданная кнопка сработает для юзера, только если его баланс больше 100
. В противном случае кнопка покажет сообщение об ошибке, если оно было добавлено админом.
❖ Условия для рассылки
Условия можно использовать при рассылке сообщений пользователям вашего бота. При помощи Условий мы можете определять какие именно пользователи получат рассылаемое сообщение.
Прежде чем вы сможете использовать Условия в рассылке их необходимо активировать.
Условия для Рассылки.
Для этого перейдите в свой бот:☞ 🔐Админ | 🧩Расширения | 📂Рассылка
Вы можете установить любые приемлемые условия.
Например:{%balance% > 0}
Сообщение будет отправлено только пользователям, которые имеют что-либо на своем балансе (у кого баланс больше нуля).
❖ Дополнительная Информация
Условия также используются в Action-ах
Подробнее о видах Action-ов и использовании Условий в них, читайте в отдельном "Руководстве по Action-ам".
Условия можно использовать в Формах обратной связи
Подробнее смотри в "Руководстве по Формам".