Переменные в @MenuBuilderBot

Переменные в @MenuBuilderBot

MegaHubTelegram

Данное руководство расскажет о том что такое переменные, какие принципы и механики заложенные в их основу, а также опишет все возможные способы работы с ними в @MenuBuilderBot.


📜 Перевод представленных материалов на ваш родной язык может быть автоматически осуществлен при помощи переводчика Google. Перейдите по ссылке и выберите нужный язык в заголовке:
https://translate.googleusercontent.com/translate_c?depth=1&sl=ru&tl=es&u=https://telegra.ph/Variables-and-How-to-Use-them-in-MenuBuilderBot-RU-09-01


⬛ Содержание

Переменные - что это такое

Управление переменными

Переменные в выражениях и условиях

Работа со значениями переменных

Пособие по работе с переменными



⬛ Переменные - что это такое?


Переменная - (в @MenuBuilderBot) это некий контейнер для хранения данных (текстовых или числовых).


ИНФОРМАЦИЯ: Если вы не знакомы с концепцией переменных в программировании, то узнать чуть больше о переменных можно в
"Терминах и Определениях".


Для того чтобы добавить в свой проект больше переменных перейдите в вашем боте:
☞ 🔐Админ | 🧩Расширения | 📂Переменные
и приобретите нужное количество.

После чего перейдите:
☞ 🔐Админ |🗄Переменные
и выбрав нужный Вид переменной добавьте её указав Имя - только после этого новая переменная может считаться полностью созданной.

Для редактирования переменной перейдите внутрь кнопки с ее именем. Переменной можно:

Изменить имя (соответственно ее макрос)

Изменить отображаемое имя (используется в системных сообщениях которые нельзя редактировать).

Включить уведомление юзера об изменении данных в переменной.

Включить "Топ по переменной" (если данная функция активирована в боте).

Добавить комментарий (бывает полезно при большом количестве переменных в боте).


Виды переменных

На сегодня в МБ есть 4 вида переменных:

Текстовая переменная - это контейнер для текста. Она может содержать как Буквы, Эмодзи, так и Цифры (как текст). Эта переменая может содержать индивидуальные данные юзера (например адрес его кошелька)

Цифровая переменная - может содержать только числа. Благодаря этому содержимым этой переменной можно манипулировать как обычным числом. (Принимая значение такая переменная проверяет - является ли значение цифровым). Баланс - является примером цифровой переменной.

Глобальная переменная - главная особенность в том что у нее одинаковое значение для всех юзеров. Таким образом изменив ее значение один раз, значение сменится одновременно у всех юзеров бота.

Переменная (Даты) Времени - содержит данные о дате-времени записанные в определенном (текстовом) формате. Формат записи: "17.05.2020 19:45:05".


Чисто технически, Время в таком формате можно сохранять и в Текстовых Переменных, но полноценно работать с такими переменными у вас не получится. В Текстовой переменной Время можно только хранить, но не выполнять с ним каких-либо действий.


 • Данные в переменных могут быть индивидуальными для каждого юзера, а так же глобальными - общими для всех.

  • Данные в переменной могут изменяться: Только Админом, Админом и Юзером вместе, Кнопками по нажатию.

  • Каждая переменная имеет Имя для обращения к её данным.

  • Каждая переменная имеет макрос для вывода ее значения (юзеру или админу, использования в Выражениях и Условиях) основанный на ее имени.

  • Размер текстовой переменной 200 символов.


⬛ Управление переменными


Для управления переменными существует несколько способов.

1. Команды Админа

2. Ввод пользователем

3. Редактор Переменных

4. Кнопки и Action-ы


Использование Команд для работы с переменными.

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


В общем случае, команда имеет такой вид:

➠ /Command var_name user_id value

Где:

/ (Slash, Слеш) - Любая команда начинается со знакака "/".
Command - Это сама команда
var_name - Имя переменной
user_id - Telegram ID или UserCode пользователя бота.
value или delta - Это значение которое нужно использовать


❗️ВАЖНО: Все аргументы составной команды, должны идти через ПРОБЕЛ (а не с новой строки).
❗️ВАЖНО: Команды работают без подтверждения и их действие необратимо.


Пакет команд для индивидуальной обработки переменных:


ЗАПРОСИТЬ значение переменной. Бот просто пришлет значение переменной. Никаких изменений внесено не будет.


УСТАНОВИТЬ значение переменной. Бот перезапишет старое значение в переменной в не зависимости от состояния.


ДОБАВИТЬ значение к переменной (чтобы вычесть - используйте отрицательное число). Бот прибавит указанное в команде значение к существующему в переменной. Работает естественно только с Числовыми переменными.


УДАЛИТЬ значение переменной указанному юзеру. Удалит любое имеющееся значение в переменной приведя ее в исходное состояние для одного юзера.


ОБЩАЯ СУММА данных переменной у всех юзеров бота. Работает естественно только с Числовыми переменными.


Пакет команд для массовой обработки переменных:


ОЧИСТИТЬ ДАННЫЕ этой переменной у ВСЕХ юзеров.

❗️ВАЖНО: Будьте внимательны действие не обратимо и срабатывает без подтверждения.


СКОЛЬКО ВСЕГО ЗНАЧЕНИЙ в данной переменной (у скольких юзеров переменная инициализирована)


ПРИБАВЛЯЕТ "value" КО ВСЕМ ЗНАЧЕНИЯМ ВСЕХ юзеров, у кого эта переменная инициализирована (для вычитания используйте отрицательное значение в качестве value).

❗️ВАЖНО: Команда потребляет "Токены Функций". Количество потребляемых токенов равно количеству значений, которые будут изменены. Для того, чтобы количество списанных токенов не стало сюрпризом - количество значений перед этим можно (и нужно) узнать командой /varcountall. Она, в первую очередь, для этого и нужна.


УМНОЖАЕТ ВСЕ ЗНАЧЕНИЯ ВСЕХ юзеров, у кого эта переменная инициализирована, на "value".

❗️ВАЖНО: Команда потребляет "Токены Функций". Количество потребляемых токенов равно количеству значений, которые будут изменены. Для того, чтобы количество списанных токенов не стало сюрпризом - количество значений перед этим можно (и нужно) узнать командой /varcountall. Она, в первую очередь, для этого и нужна.


Для тех, кто не в математику: для прибавления процента используйте /varmultall, а value считайте так:
1 + процент/100.

Например, добавить 10% к балансу:
/varmultall balance 1.1


❗️ЕЩЁ РАЗ: ВСЕ команды пакета работают ТОЛЬКО С ТЕМИ ЮЗЕРАМИ, У КОГО ЭТА ПЕРЕМЕННАЯ ИНИЦИАЛИЗИРОВАНА. Если у вас тысяча юзеров, а баланс инициализирован у трех из них - сработает для этих трех.
❗️ЕЩЁ РАЗ: НЕТ, с помощью этих коман НЕЛЬЗЯ присвоить ВСЕМ юзерам какое-то значение. До тех пор, пока переменная у них не будет инициализирована.


❗️ВАЖНО: Массовые изменения НЕ фиксируются в логах изменения переменных.


Пример команды:
• Имя текстовой переменной - rank
• ID (UserCode) юзера - 111222333
• Данные переменной - "Редактор"

Команда /varset будет выглядеть так:


❗️ Каждый параметр в команде должен идти через ПРОБЕЛ, в ОДНУ СТРОКУ, а не с новой строки.


Пользователь задаёт значение.

Можно позволить юзеру самому задавать значение отдельной переменной. Другими словами: принимать данные от пользователя и сохранять их в переменной. Например для ввода адреса своего крипто-кошелька, адреса eMail или других личных данных.


Работает это как и Вопрос в QnA чат, только ответ юзера поступает сразу в переменную, а не админу (подробнее по ссылке).

Осуществляется через
☞ 📝 Редактор Постов - Добавить ввод Переменной

Подробнее в руководстве по "Формам Обратной Связи".


❗️ВАЖНО: Кнопка добавления появится только при наличии хотя бы одной переменной, кроме "balance".


Изменение значения переменной при помощи Редактора.

Значение любой необходимой переменной можно менять при помощи редактора идентичного редактору Баланса. Данный редактор можно назначить любой кнопке в любом месте меню.

Чтобы "прицепить" редактор к кнопке зайдите в вашем боте:
☞ 🎛 Редактор Кнопок > Настройки кнопки (*️⃣)
«Назначить Редактор»
и укажите переменную, выбрав её из списка.


ИНФО: Редакторов для одной переменной может быть несколько.
Желательно переключить такую кнопку в режим "Только админ". Пользователей туда, конечно, и так не пустит, но и видеть им ее незачем.


Изменение значений при помощи Кнопок и Action-ов

В @MenuBuilderBot существует целый список узкоспециализированных кнопок для работы с переменными, а так же Action-ы представляющие собой наиболее гибкий инструмент создания функционала вашего бота, в некоторым смысле являющийся одним из видов визуального программирования.

Для подключения Кнопок перейдите в свой бот:
☞ 🔐Админ | 🧩Расширения | 📂Кнопки

Для покупки Action-ов перейдите в вашем боте:
☞ 🔐Админ | 🧩Расширения | 📂Action-ы


Кнопка Бонус

Кнопка Бонус - позволяет начислять юзерам бонус (указанное админом количество условных единиц) на выбранную переменную (например Баланс).

Особенностью данной кнопки является то что Админ может задавать Период для получения бонуса юзером (время между бонусами если желаете). То есть ту частоту с которой Юзер может получать Бонус нажимая на кнопку. Переменная для начисления, Сумма и Частота (в часах - целыми или дробными числами) указывается админом при создании самой кнопки. Все параметры могут задаваться Макросами.

Кнопка Бонус может изменить ОДНУ переменную за одно одно нажатие.


Кнопка Фикс. Обмен 1

Позволяет юзерам осуществлять обмен фиксированной суммы в условных единицах внутри бота, переводя заранее заданную админом сумму с одной переменной на другую. Кнопка ОТНИМАЕТ заданную сумму от одной переменной и ДОБАВЛЯЕТ в другую - тем самым осуществляя обмен средств. Все параметры могут задаваться Макросами.

Кнопка "Фикс. Обмен 1" изменяет ДВЕ переменные за одно одно нажатие.

ИНФО: Данная кнопка может использоваться и не по прямому значению. Например, не смотря на то что одно из чисел всегда отниматься, можно добавить два числа в разные переменные. Если отнять отрицательное число, то фактически оно будет прибавлено. На этом можно строить разные механики.


Кнопка Курс Обмен 2

Позволяют юзерам осуществлять обмен суммы по курсу в условных единицах внутри бота, переводя сумму с одной переменной на другую с учетом курса обмена указанного Админом. Кнопка ОТНИМАЕТ заданную сумму от одной переменной и после вычисления ДОБАВЛЯЕТ в другую - тем самым осуществляя обмен средств. Для вычислений используется указанный курс обмена который тоже может браться из переменной (курс обмена может обновляться автоматически и модифицироваться при помощи Выражений). Все параметры могут задаваться Макросами.

Кнопка "Курс Обмен 2" изменяет ДВЕ переменные за одно одно нажатие.


Action-ы и переменные

Action (Действие — англ.) в @MenuBuilderBot — это способ выполнить одно действие. Один Action – одно действие. Действия могут быть разными — изменить значение переменной, проверить условие, отправить процент рефералу и т.п. Action-ы в кнопках можно комбинировать создавая уникальные алгоритмы и последовательности действий, получая тем самым нужный функционал. Руководство по Action-ам объёмно, но оно того стоит.

Кнопка с Action-ам не имеет ограничений в применении и за одно нажатие может изменять столько переменных сколько нужно.


⬛ Переменные в выражениях и условиях


Значения переменных при помощи макросов можно использовать в вычислениях подставляя их в выражения, а так же в условиях кнопок и Action-ов. Подробные описания каждого из случаев по ссылкам в тексте. Выражения могут использоваться как в сообщениях бота, так и в функциях кнопок.

Напоминаем что имена переменных являются регистрозависимыми. То есть переменные с именами "Var" и "var" - это две разные переменные.


⬛ Работа со значениями переменных


Вывод значений юзеру.

Для того чтобы показать юзеру значение его переменной достаточно в нужном сообщении вставить макрос с именем переменной. Макрос это имя переменной окруженное знаками "%".

Например макрос %wallet%
Покажет значение переменной «wallet».

В тексте одной переменной можно использовать макросы других переменных.


Экспорт значений переменных.

Данные переменных можно экспортировать в .csv файл. Для экспорта нужно чтобы у юзера были рефералы, баланс либо ещё что-нибудь - бонусы например.


❗️ВАЖНО: Данные тех кто просто зашёл посмотреть и понажимать кнопки меню - экспортироваться не будут - потому что не сохраняются.
❗️ ВНИМАНИЕ: один экспортированный файл будет содержать ВСЕ доступные данные ВСЕХ доступных пользователей.
ЗА ИСКЛЮЧЕНИЕМ ТЕХ ЧТО УКАЗАНЫ ВЫШЕ!!!!!!!!!!!!!


Для подключения перейдите в свой бот:
☞ 🔐Админ | 🧩Расширения | 📂Логи и Данные

Экспорт подключается на 1 бот.

Пример файла экспорта в нашем новостном канале:
https://t.me/MenuBuilderNews/294


Лог транзакций Баланса.

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


Подробности и условия подключения смотрите в своем боте:
☞ 🔐Админ | 🧩Расширения | 📂Логи и Данные

Логирование подключается на 1 бот.

Пример файла экспорта Лога в нашем новостном канале:
https://t.me/MenuBuilderNews/295


⬛ Пособие по работе с переменными


https://telegra.ph/Menu-Builder---All-Help-Materials-02-22

Report Page