Инвест бот (базовые механики)
Ищите как создать инвестиционный бот в Телеграм. В этой статье мы расскажем как создать инвест бот с помощью @MenuBuilderBot. Мы раскроем БАЗОВЫЕ принципы игровой механики получения юзером прибыли по его вкладу с течением времени.
Надо понимать, что самих базовых принципов не достаточно для создания КАЧЕСТВЕННОЙ ИГРЫ "с погружением", однако понимая основы - вы можете приложить их к вашему конкретному проекту в той форме в которой вам это нужно. Для создания необходимого антуража, базовая игровая механика должна быть окружена и обоснована сюжетным сценарием, а также вспомогательным функционалом (пополнением баланса, наличием различных видов балансов для разных внутриигровых валют или предметов, присутствием различных способов оформить базовую механику в какой-то сценарно обоснованный вид, наличием возможности юзеру САМОМУ указывать или выбирать отдельные параметры).
❖ Необходимые навыки
ПРЕДУПРЕЖДЕНИЕ: Данное пособие НЕ ставит перед собой задачу обучения новичков и исходит из того что вы имеете базовые навыки работы с конструктором и УЖЕ ГОТОВЫ создавать более сложные проекты. Руководство раскрывает ПРИНЦИПИАЛЬНУЮ СХЕМУ работы отдельных игровых механик, в частности базовые ПРИНЦИПЫ РАБОТЫ СО ВРЕМЕНЕМ. Если в процессе изучения представленного материала ваших базовых знаний окажется не достаточно, советуем изучить основы прежде чем продолжать - обучать вас "как создавать кнопки" в этом руководстве мы не будем.
Список навыков:
• Создание Кнопок и Сообщений
• Переменные
• Макросы
• Баланс в боте
• Условия
• Action-ы
• Выражения
• Работа со временем
❖ Принципиальная схема механики инвеста в боте
В данной схеме:
• Юзер инвестирует фиксированную сумму (заданную админом) и получает фиксированную прибыль в день.
• Юзер может проверить накопленный объём.
• Юзер может РЕинвестировать накопленное для увеличения прибыли в день.
• Юзер может вывести накопленные средства завершив тем самым процесс инвестирования.
Механизм инвестирования
Кнопка инвестирования - позволяет юзеру списать средства с его внутриигрового Баланса на отдельный Баланс инвеста и запустить процесс накопления средств.
● Числовая переменная «balance» у вас уже есть - там хранятся внутриигровые средства юзера.
● Создайте Числовую переменную «inv_balance» - в ней будет хранится сумма инвеста.
● Создайте переменную Даты и Времени «inv_start» - в ней будет хранится время начала инвеста.
● Создайте кнопку «Инвестировать» с Условием «{%inv_balance% == 0}» и сообщением ошибки «Вы уже инвестировали».
● Добавьте «Action Чисел» (списываем средства с баланса)
Переменная для изменения: balance
Тип операции: Изменить Значение
Значение: -10 (минус десять)
Условие: {%balance% >= 10}
Сообщение о Неудаче: «Недостаточно средств»
Сообщение об Успехе: не обязательно
● Добавьте «Action Чисел» (зачисляем средства на инвест)
Переменная для изменения: inv_balance
Тип операции: Задать Значение
Значение: 10 (десять)
Условие: нет
Сообщение о Неудаче: нет
Сообщение об Успехе: не обязательно
● Добавьте «Action Чисел» (устанавливаем время начала инвета)
Переменная для изменения: inv_start
Тип операции: Задать Значение
Значение: {dt_now()} (время "сейчас")
Условие: нет
Сообщение о Неудаче: нет
Сообщение об Успехе: не обязательно
● Добавьте Сообщение кнопке: «Поздравляем вы инвестировали %inv_balance%!».
Проверка объёма накопленных средств
Кнопка проверки - позволит юзеру узнать статус инвестирования (активен или нет), а также основные параметры инвеста (дату начала, сумму инвеста, продолжительность, объем накопленных средств) - если инвест активен.
Надо понимать, что приведённый список параметров представлен лишь для демонстрации возможностей - по факту, вы можете использовать любые математические производные какие вам нужны.
● Создайте кнопку «Проверить» с Условием «{%inv_balance% != 0}» и сообщением ошибки «Вы ещё не инвестировали».
● Добавьте Сообщение кнопке:
Данные инвеста
Начат: %inv_start%.
Инвестировано: %inv_balance% монет.
Продолжительность: {dt_passed_hm("%inv_start%")} часов.
Прибыль: {round(%inv_balance% * 0.1 * dt_passed("%inv_start%")/24,2)} монет.
Надо понимать что ФАКТИЧЕСКОГО ИЗМЕНЕНИЯ ДАННЫХ ПЕРЕМЕННОЙ НЕ ПРОИСХОДИТ. В сообщении, зная сумму инвеста и объём прибыли в час, мы каждый раз рассчитываем накопленную прибыль, отсчитывая её В ЧАСАХ от даты начала инвеста, Технически - сумму инвеста мы умножаем на процент в час (выраженный дробным числом) и умножаем на количество прошедших часов (так же выраженное дробным числом).
Не будем отдельно пояснять, что если вы освоили базовый принцип расчёта накопленной прибыли по времени, то выражать накопления вы можете не только через ЧАСЫ, но и через ДНИ, указывая процент в день, а не в час. Кроме того вы также будете иметь возможность задавать свой собственный процент.
Сбор прибыли и продолжение инвеста
Кнопка сбора прибыли - позволит юзеру вывести накопленную прибыль на основной Баланс, не трогая первоначальную сумму инвестирования.
● Создайте кнопку «Забрать прибыль» с Условием «{%inv_balance% != 0}» и сообщением ошибки «Вы ещё не инвестировали».
● Добавьте «Action Чисел» (выводим накопленное на основной баланс)
Переменная для изменения: balance
Тип операции: Изменить Значение
Значение: {round(%inv_balance% * 0.1 * dt_passed("%inv_start%")/24,2)}
Условие: нет
Сообщение о Неудаче: нет
Сообщение об Успехе: не обязательно
● Добавьте «Action Чисел» (устанавливаем новое время начала инвета)
Переменная для изменения: inv_start
Тип операции: Задать Значение
Значение: {dt_now()} (время "сейчас")
Условие: нет
Сообщение о Неудаче: нет
Сообщение об Успехе: не обязательно
● Добавьте Сообщение кнопке: «Инвест продолжен - сумма %inv_balance%!».
Сбор прибыли и её автоматический реинвест
Кнопка автоматического реинвеста - позволит юзеру зафиксировать прибыль и сразу же добавить её в полном объёме на баланс инвеста с целью получения большей прибыли в единицу времени.
● Создайте кнопку «Реинвестировать» с Условием «{%inv_balance% != 0}» и сообщением ошибки «Вы ещё не инвестировали».
● Добавьте «Action Чисел» (зачисляем накопленные средства на инвест)
Переменная для изменения: inv_balance
Тип операции: Задать Значение
Значение: {%inv_balance% + round(%inv_balance% * 0.1 * dt_passed("%inv_start%")/24,2)}
Условие: нет
Сообщение о Неудаче: нет
Сообщение об Успехе: не обязательно
● Добавьте «Action Чисел» (устанавливаем новое время начала инвета)
Переменная для изменения: inv_start
Тип операции: Задать Значение
Значение: {dt_now()} (время "сейчас")
Условие: нет
Сообщение о Неудаче: нет
Сообщение об Успехе: не обязательно
● Добавьте Сообщение кнопке: «Поздравляем вы инвестировали %inv_balance%!».
Сбор прибыли и завершение инвеста
Кнопка завершения инвеста позволяет юзеру зафиксировать прибыль и забрать основное тело инвеста - переведя их общую сумму на основной Баланс.
● Создайте кнопку «Завершить Инвест» с Условием «{%inv_balance% != 0}» и сообщением ошибки «Вы ещё не инвестировали».
● Добавьте «Action Чисел» (выводим накопленное на основной баланс)
Переменная для изменения: balance
Тип операции: Изменить Значение
Значение: {%inv_balance% + round(%inv_balance% * 0.1 * dt_passed("%inv_start%")/24,2)}
Условие: нет
Сообщение о Неудаче: нет
Сообщение об Успехе: не обязательно
● Добавьте «Action Чисел» (обнуляем баланс инвеста)
Переменная для изменения: inv_balance
Тип операции: Задать Значение
Значение: 0 (ноль)
Условие: нет
Сообщение о Неудаче: нет
Сообщение об Успехе: не обязательно
● Добавьте Сообщение кнопке: «Инвест завершён».
Ещё раз напоминаем представленные выше механики являются лишь принципиальной схемой описываемого функционала. Для создания полноценного проекта вам нужно будет вписать эти механики в ваш уникальный сценарий взаимодействия с юзером.