Skip to main content

Кликер бот (базовые механики)

Ищите как создать кликер бот в Телеграм? В этой статье мы расскажем как создать кликер бот с помощью @MenuBuilderBot. Мы раскроем БАЗОВЫЕ принципы игровой механики получения юзером прибыли от найма персонала с течением времени.

Надо понимать, что самих базовых принципов не достаточно для создания КАЧЕСТВЕННОЙ ИГРЫ "с погружением", однако понимая основы - вы можете приложить их к вашему конкретному проекту в той форме в которой вам это нужно. Для создания необходимого антуража, базовая игровая механика должна быть окружена и обоснована сюжетным сценарием, а также вспомогательным функционалом (пополнением баланса, наличием различных видов балансов для разных внутриигровых валют или предметов, присутствием различных способов оформить базовую механику в какой-то сценарно обоснованный вид, наличием возможности юзеру САМОМУ указывать или выбирать отдельные параметры).

❖ Необходимые навыки

ПРЕДУПРЕЖДЕНИЕ: Данное пособие НЕ ставит перед собой задачу обучения новичков и исходит из того что вы имеете базовые навыки работы с конструктором и УЖЕ ГОТОВЫ создавать более сложные проекты. Руководство раскрывает ПРИНЦИПИАЛЬНУЮ СХЕМУ работы отдельных игровых механик, в частности базовые ПРИНЦИПЫ РАБОТЫ СО ВРЕМЕНЕМ. Если в процессе изучения представленного материала ваших базовых знаний окажется не достаточно, советуем изучить основы прежде чем продолжать - обучать вас "как создавать кнопки" в этом руководстве мы не будем.

Несмотря на то что пособие рассчитано на подготовленных админов, для упрощения начального понимания приведённых схем - они приведены В САМОМ БАЗОВОМ СВОЁМ ВИДЕ. В дальнейшем, поняв принципы их работы, вы сможете усложнять их по мере необходимости - подобный подход позволит вам САМИ сформировать ПРАВИЛЬНЫЕ ПРИНЦИПЫ РАБОТЫ с новым функционалом и знаниями - даст понять, что НЕ НУЖНО БЕЗДУМНО КОПИРОВАТЬ приведённые подходы (а потом приходить в поддержку и говорить что ничего не работает и вы ничего не понимаете) - нужно понять их принцип на простых примерах и затем по мере роста понимания переходить к более сложным вариантам применения.

Список необходимых навыков:

Создание Кнопок и Сообщений
Переменные
Макросы
Баланс в боте
Условия
Action-ы
Выражения
Работа с Датой и Временем

❖ Принципиальная схема механики кликера в боте

В данной схеме:
• Юзер нанимает персонал разного уровня и получает фиксированную прибыль в час.
• Юзер может проверить накопленный объём и количество персонала.
• Юзер может забрать (вывести) сгенерированную прибыль на основной Баланс.

Подготовительные действия

На данном этапе мы подготавливаем функционал нашего бота для создания игровых механик.

● Числовая переменная «balance» у вас уже есть - там хранится Основной Баланс юзера.

● Создайте Числовую переменную «cl_type1» - в ней будет хранится количество персонала 1-го типа (Менеджеры).

● Создайте Числовую переменную «cl_type2» - в ней будет хранится количество персонала 2-го типа (Брокеры).

● Создайте Числовую переменную «cl_type3» - в ней будет хранится количество персонала 3-го типа (Торговые боты).

● Создайте Числовую переменную «cl_total» - в ней будет хранится общее количество прибыли за всё время созданное нанятым персоналом (для ТОП-а).

● Создайте переменную Даты и Времени «cl_collect» - в ней будет хранится время когда в последний раз была собрана прибыль.

Вход в игру

Инициализируем необходимые внутриигровые переменные.

● Добавьте «Action Чисел» (устанавливаем время "сейчас" если переменная не инициализирована)
Переменная для изменения: cl_collect
Тип операции: Задать Значение
Значение: {dt_now()} (время "сейчас")
Условие: {dt_passed("%cl_collect%") < 0.0003}
Сообщение о Неудаче: нет
Сообщение об Успехе: нет

● Добавьте Сообщение кнопке: «Добро пожаловать в офис!».

В этом сообщении, так же можно вывести основные данные игры (будет дублировать сообщение из кнопки «Статус» - см. ниже).

Проверка состояния

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

● Создайте кнопку «Статус» с сообщением например:

Вот ваш торговый Офис.
Ваш Баланс: %balance% монет
У вас:
%cl_type1% менеджеров (1 монет в день)
%cl_type2% брокеров (10 монет в день)
%cl_type3% роботов (100 монет в день)
Доступная прибыль:
{round((dt_passed("%cl_collect%")/24) * (%cl_type1%*1 + %cl_type2%*10 + %cl_type3%*100), 2)} монет.
Ваша общая прибыль за всё время:
%cl_total% монет.

Полученная прибыль рассчитывается по формуле. Вот как она работает:
1. Считаем сколько прошло дней с момента последнего сбора прибыли (в дробных днях):
dt_passed("%cl_collect%")/24) - прошедшее время в часах делим на количество часов сутках.
2. Считаем сколько всего зарабатывается в день каждым типом сотрудников:
(%cl_type1%*1 + %cl_type2%*10 + %cl_type3%*100) - количество сотрудников умножаем на их прибыль в день и суммируем результат.

Нанимаем персонал

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

● Создайте кнопку «Нанять Менеджера».

● Добавьте кнопке Сообщение с описанием характеристик типа нанимаемого персонала:

Тут вы можете нанять менеджера.
Стоимость: 10
Прибыль в день: 1

● Создайте кнопку «Нанять 1 Менеджера» с Условием «{%balance% >= 10}» и сообщением ошибки «Недостаточно средств».

Ниже представлен механизм найма одного сотрудника. Естественно, для удобства ваших пользователей вы можете создать несколько кнопок, которые позволят нанимать им разное количество персонала одним нажатием. И даже при помощи «Формы с Вводом Переменной» можете позволить им самим выбирать нужное количество.

● Добавьте «Action Чисел» (списываем средства с баланса - 10 условных монет)
Переменная для изменения: balance
Тип операции: Изменить Значение
Значение: -10 (минус десять)
Условие: нет
Сообщение о Неудаче: нет
Сообщение об Успехе: не обязательно

● Добавьте «Action Чисел» (добавляем сотрудника)
Переменная для изменения: cl_type1
Тип операции: Изменить Значение
Значение: 1 (один)
Условие: нет
Сообщение о Неудаче: нет
Сообщение об Успехе: не обязательно

● Добавьте Сообщение кнопке: «Поздравляем вы наняли 1 Менеджера!».

ВАЖНО: Надо понимать, что в данном случае описывается лишь общий (генерализированный) механизм и по хорошему (поскольку полученная прибыль рассчитывается по времени), при найме нового сотрудника надо бы пересчитывать уже полученную на данный момент прибыль в отдельную переменную и текущую (рассчитанную по формуле) прибыль показывать как сумму рассчитанной прибыли и зафиксированной. Потому что при найме нового сотрудника без фиксации суммы и обновления времени, общая прибыль будет рассчитываться по старому времени, однако с новым количеством сотрудников - в результате чего получится что новый сотрудник работал с того момента как игрок забирал прибыль последний раз (что не корректно и открывает простор для абьюза).

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

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

Сбор прибыли

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

● Создайте кнопку «Забрать Прибыль».

● Добавьте «Action Чисел» (выводим накопленное на основной баланс)
Переменная для изменения: balance
Тип операции: Изменить Значение
Значение: {round((dt_passed("%cl_collect%")/24) * (%cl_type1%*1 + %cl_type2%*10 + %cl_type3%*100), 2)}
Условие: нет
Сообщение о Неудаче: нет
Сообщение об Успехе: не обязательно

Механизм расчёта накопленной прибыли описан выше в разделе "Проверка состояния" кнопка «Статус».

● Добавьте «Action Чисел» (устанавливаем новое время отсчёта прибыли)
Переменная для изменения: cl_collect
Тип операции: Задать Значение
Значение: {dt_now()} (время "сейчас")
Условие: нет
Сообщение о Неудаче: нет
Сообщение об Успехе: не обязательно

● Добавьте «Action Чисел» (обновляем общую сумму прибыли для ТОП-а)
Переменная для изменения: cl_total
Тип операции: Изменить Значение
Значение: %balance_v% (сумма изменения Баланса)
Условие: нет
Сообщение о Неудаче: нет
Сообщение об Успехе: не обязательно

Данной кнопке можно добавить команду (без перехода) и дёргать её «Action-ом Команд», каждый раз при найме нового сотрудника - фиксируя прибыль и устанавливая новое время (см. выше).

● Добавьте Сообщение кнопке: «Накопленная прибыль перенесена на Баланс!».

ТОП игроков

Кнопка ТОП-а позволяет создавать списки лучших игроков по отдельным параметрам.

Для создания ТОП-а - вам понадобится функция (по количеству ТОП-ов):

«39. Базовый ТОП по Переменной»
Для подключения перейдите в свой бот:
☞ 🔐Админ | 🧩Расширения | 📂Переменные

● Создайте кнопку «ТОП Игроков».

● Добавьте Сообщение кнопке (для ТОП-а по Балансу):

Самые богатые люди:
1. %topbalance1u% - %topbalance1v%
2. %topbalance2u% - %topbalance2v%
3. %topbalance3u% - %topbalance3v%
4. %topbalance4u% - %topbalance4v%
5. %topbalance5u% - %topbalance5v%
6. %topbalance6u% - %topbalance6v%
7. %topbalance7u% - %topbalance7v%
8. %topbalance8u% - %topbalance8v%
9. %topbalance9u% - %topbalance9v%
10. %topbalance10u% - %topbalance10v%
Следующее обновление ТОП-а: %topbalanceh%:%topbalancem%

● (НЕ ОБЯЗАТЕЛЬНО) Добавьте Сообщение кнопке (для ТОП-а по общей сумме Заработка):

Лучшие трейдеры:
1. %topcl_total1u% - %topcl_total1v%
2. %topcl_total2u% - %topcl_total2v%
3. %topcl_total3u% - %topcl_total3v%
4. %topcl_total4u% - %topcl_total4v%
5. %topcl_total5u% - %topcl_total5v%
6. %topcl_total6u% - %topcl_total6v%
7. %topcl_total7u% - %topcl_total7v%
8. %topcl_total8u% - %topcl_total8v%
9. %topcl_total9u% - %topcl_total9v%
10. %topcl_total10u% - %topcl_total10v%
Следующее обновление ТОП-а: %topcl_totalh%:%topcl_totalm%

❖ Варианты улучшения базовой механики

ТОП игроков по прибыли в день

При помощи функции «ТОП по Переменной» можно создать ТОП игроков по прибыли в день. При найме юзером персонала, сохраняйте в отдельную переменную сумму генерации заданную для каждого типа.

Внутриигровой Баланс и налог на прибыль

Можно не выводить всю сумму на Основной Баланс сразу, а создать отдельный «Внутриигровой Баланс» позволяя с него нанимать новых сотрудников. Накопленная прибыль - по умолчанию - будет поступать на него, а при выводе на Основной Баланс - можно брать процент от прибыли или конвертировать внутриигровую валюту реальные средства Основного Баланса. В этом случае можно разделить финансы игрового мира и реальные средства.

Дополнительные типы персонала

HR-менеджер - позволяет уменьшать стоимость найма новых сотрудников. Создайте отдельную переменную с коэффициентом и рассчитывайте стоимость нового сотрудника, как стандартная стоимость помноженная на коэффициент. Например 0.95. Далее можно либо изменять данный коэффициент создав механику прокачки одного HR-менеджера, либо реализовать это через найм новых HR-менеджеров по количеству, по тому же принципу по которому нанимается основной персонал (что не совсем логично).