EnotPRO Logo EnotPRO

AddVarCloud

AddVarCloud — изменяет значение облачной переменной, не заменяя его полностью.

📝 Назначение

Используется для накопления данных: счётчиков, списков, истории действий. В отличие от SetVarCloud, эта реакция изменяет существующее значение, а не перезаписывает.

💡 Совет: Это идеальный выбор для:

  • Счётчиков нажатий (+1 каждый раз)
  • Накопления суммы покупок
  • Добавления элементов в массив (история заказов)
  • Объединения объектов (дополнение профиля)

🟢 Важно: Если переменная не существует, AddVarCloud создаст её с указанным значением (как SetVarCloud).

🔄 Поведение в зависимости от типа

Тип переменной Что делает Пример
number (целое) Прибавляет значение Было 10, добавить 3 → стало 13
float (дробное) Прибавляет значение Было 10.5, добавить 2.3 → стало 12.8
string (строка) Добавляет текст в конец Было "Привет", добавить ", мир""Привет, мир"
array (массив) Добавляет элемент в конец Было [1,2], добавить 3[1,2,3]
object (JSON/YAML) Объединяет объекты (поверхностно) {"a":1} + {"b":2}{"a":1, "b":2}
bool (логический) Заменяет (как SetVarCloud) true + falsefalse

⚠️ Особенность: Для bool типа AddVarCloud работает как SetVarCloud (замена, а не логическая операция).

⚙️ Параметры

Параметр Тип Обязательный Описание
Тип переменной Выбор ✅ Да person, member, chat, global, dynamic
Название Строка ✅ Да Имя переменной (только латиница, цифры, нижнее подчеркивание)
Значение Зависит от типа ✅ Да Значение для добавления/прибавления
ID пользователя Integer ❌ Нет Для типа person. По умолчанию — текущий пользователь
ID чата Integer ❌ Нет Для типов member и chat. По умолчанию — текущий чат

🧪 Примеры

Пример 1: Счётчик нажатий кнопки

Задача: При каждом нажатии на кнопку увеличивать счётчик.

Реакция AddVarCloud:

  • Тип: person
  • Название: button_clicks
  • Значение: 1

Результат:

  • Первое нажатие → переменная создана, значение 1
  • Второе нажатие → было 1, стало 2
  • Третье нажатие → было 2, стало 3

Отображение пользователю:

Вы нажали кнопку !{varcloud|name: button_clicks|default: 0} раз

Пример 2: Накопление суммы покупок

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

Реакция AddVarCloud:

  • Тип: person
  • Название: total_spent
  • Значение: ${purchase_amount} (например, 150.50)

Результат:

  • Было 1000.00, добавить 150.50 → стало 1150.50

Пример 3: Добавление элемента в массив (история заказов)

Задача: Сохранять ID всех заказов пользователя в массиве.

Реакция AddVarCloud:

  • Тип: person
  • Название: orders
  • Значение: ${order_id} (число, например, 12345)

Результат:

  • Первый заказ → переменная создана, значение [12345]
  • Второй заказ → было [12345], стало [12345, 12346]
  • Третий заказ → было [12345, 12346], стало [12345, 12346, 12347]

Проверка количества заказов:

У вас !{list.len|list: !{varcloud|name: orders|default: []}} заказов

Пример 4: Добавление текста в конец строки (лог действий)

Задача: Вести лог действий пользователя.

Реакция AddVarCloud:

  • Тип: person
  • Название: action_log
  • Значение: \n!{time|output_format: DD.MM.YYYY hh:mm} - Нажата кнопка "Помощь"

Результат:

  • Первое действие → 2026.06.02 14:30 - Нажата кнопка "Помощь"
  • Второе действие → 2026.06.02 14:30 - Нажата кнопка "Помощь"\n2026.06.02 14:35 - Запрошен баланс

Пример 5: Объединение JSON-объектов (дополнение профиля)

Задача: Постепенно собирать профиль пользователя из разных форм.

Шаг 1 (форма «Имя и возраст»):

  • Тип: person
  • Название: profile
  • Значение: {"name": "Иван", "age": 30}

Шаг 2 (форма «Город и телефон»):

  • Тип: person
  • Название: profile
  • Значение: {"city": "Москва", "phone": "+79991234567"}

Результат:

{
  "name": "Иван",
  "age": 30,
  "city": "Москва",
  "phone": "+79991234567"
}

Пример 6: Добавление для другого пользователя (администратор)

Задача: Администратор начисляет бонус пользователю.

Реакция AddVarCloud:

  • Тип: person
  • Название: bonus
  • Значение: 100
  • ID пользователя: ${target_user.id}

Результат: У пользователя target_user переменная bonus увеличилась на 100.

🔄 Разница между AddVarCloud и SetVarCloud

Операция AddVarCloud SetVarCloud
Число 10 → добавить 5 Будет 15 (прибавит) Будет 5 (заменит)
Строка "A" → добавить "B" Будет "AB" (добавит в конец) Будет "B" (заменит)
Массив [1,2] → добавить 3 Будет [1,2,3] (добавит элемент) Будет [3] (заменит)
Объект {"a":1} → добавить {"b":2} Будет {"a":1, "b":2} (объединит) Будет {"b":2} (заменит)

🔗 Связанные реакции

🔗 Связанные разделы

© 2025 EnotPRO. Все права защищены.