И так — проверка работы бота-модератора. По плану сообщение не должно быть удалено из чата, и можно будет оставить пару комментариев.
🎉7⚡1👍1🔥1
Переменные бота сейчас поддерживают несколько скоупов:
USER - относится только к игроку, не привязана к чату (например скорость чтения квестов или настройка упоминания)
CHAT - относится только к чату (уровень приманок, действия феромона)
CHAT_USER - работает для юзера в чате (деньги, количество колокольчиков)
LOCAL - существуют только пока жива сессия квеста, нужны для того чтобы, например, запоминать выбор игрока в квесте
QUEST - нужны для сохранения прогресса в квесте
QUEST_CHAT - нужны для сохранения прогресса в квесте для чата
И вот теперь, когда вы ознакомились с типами скоупов переменных я могу торжественно объявить о добавлении новом типе - WORLD. Такие переменные нужны для того чтобы хранить информацию о мире, которая сразу относится ко всем чатам и игрокам.
Please open Telegram to view this post
VIEW IN TELEGRAM
Все 7 лет, что я разрабатываю Котобота я страдал. Страдал от необходимости закрывать опросы перед деплоем. Сейчас объясню!
Когда пользователь присылает картинку и бот создаёт опрос "Это кот?", информация об этом опросе помещается в оперативную память. И при перезагрузке приложения эта информация терялась. И, конечно же, опросы, созданные игроками, терялись, становясь неактивными. Позорише короче.
А установка каждого обновления требовала перезагрузки. Вы понимаете, да? Чем больше обновлений и фиксов, тем больше позора.
В какой-то момент я написал команду для форсированного закрытия опросов, для закрытия было достаточно хотя бы одного голоса, а если голосов нет - то результат нулевой.
Это было чуть удобнее, но не слишком. Каждый деплой надо было не забыть вызвать команду, плюс дождаться её выполнения. И чтобы телега не наказала бота за слишком частую отправку сообщений, приходилось добавлять паузу в секунду между закрытиями опросов. И приходилось ждать, иногда очень долго ждать. Не знаю, кто это люди, что открывают по 300 опросов в день, и сильно сомневаюсь, что там везде уличные котики, но это их право.
К чем я всё это? Вчера я реализовал персистентное хранение данных опроса🎉 Чуть меньше страданий, чуть меньше позора 😄
Когда пользователь присылает картинку и бот создаёт опрос "Это кот?", информация об этом опросе помещается в оперативную память. И при перезагрузке приложения эта информация терялась. И, конечно же, опросы, созданные игроками, терялись, становясь неактивными. Позорише короче.
А установка каждого обновления требовала перезагрузки. Вы понимаете, да? Чем больше обновлений и фиксов, тем больше позора.
В какой-то момент я написал команду для форсированного закрытия опросов, для закрытия было достаточно хотя бы одного голоса, а если голосов нет - то результат нулевой.
Это было чуть удобнее, но не слишком. Каждый деплой надо было не забыть вызвать команду, плюс дождаться её выполнения. И чтобы телега не наказала бота за слишком частую отправку сообщений, приходилось добавлять паузу в секунду между закрытиями опросов. И приходилось ждать, иногда очень долго ждать. Не знаю, кто это люди, что открывают по 300 опросов в день, и сильно сомневаюсь, что там везде уличные котики, но это их право.
К чем я всё это? Вчера я реализовал персистентное хранение данных опроса
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡3
Любопытный Код
Вы уже могли видеть пару примеров использования переменных скоупа WORLD (общие для всех, не привязаны ни к чату, ни к игроку).
1. Общие усилия - перед тем как получить бонус, суммарно 300 игроков должны были совершить действия
2. Бонус доступен в определенное время суток, в другое предлагает вернуться позже
На счёт второго немного сомневался, т.к. это ограничивает контент. Но мне очень нравится идея, и то, что картинка меняет в зависимости от времени суток. Так что я оставил и горжусь.
Так вот. Я что, зря создавал технический канал для самых умных игроков? Давайте, набрасывайте идеи в комментариях🤪
1. Общие усилия - перед тем как получить бонус, суммарно 300 игроков должны были совершить действия
2. Бонус доступен в определенное время суток, в другое предлагает вернуться позже
На счёт второго немного сомневался, т.к. это ограничивает контент. Но мне очень нравится идея, и то, что картинка меняет в зависимости от времени суток. Так что я оставил и горжусь.
Так вот. Я что, зря создавал технический канал для самых умных игроков? Давайте, набрасывайте идеи в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Котобот
DAU 962 (Δd −707 / Δw +148) · DAC 628 · stickiness 14% · w/m 47%
New users: 100 · Returning: 862
Quests: 725 plays / 453 users · timeout 0% · 👍283 🤔41 👎37 ⏳171
Story: HouseOnTreeCatPhase 24, long_train_journey 23, TheeCatInWindowPhase 22
Routine: FishingPhase 30, VladimirWorkshopVisitPhase 4, caffe_visit_stub 3
Real: 13 polls · 0.5 votes/poll
Promo: waiting 0 → used 0
Chats: +19 new active · 332 went quiet (7d)
#daily_stats
New users: 100 · Returning: 862
Quests: 725 plays / 453 users · timeout 0% · 👍283 🤔41 👎37 ⏳171
Story: HouseOnTreeCatPhase 24, long_train_journey 23, TheeCatInWindowPhase 22
Routine: FishingPhase 30, VladimirWorkshopVisitPhase 4, caffe_visit_stub 3
Real: 13 polls · 0.5 votes/poll
Promo: waiting 0 → used 0
Chats: +19 new active · 332 went quiet (7d)
#daily_stats
⚡2👀2
Котобот
DAU 962 (Δd −707 / Δw +148) · DAC 628 · stickiness 14% · w/m 47% New users: 100 · Returning: 862 Quests: 725 plays / 453 users · timeout 0% · 👍283 🤔41 👎37 ⏳171 Story: HouseOnTreeCatPhase 24, long_train_journey 23, TheeCatInWindowPhase 22 Routine: FishingPhase…
Вот такую ежедневную выжимку получаю от бота для анализа игровой активности.
Жду ваш глубокий анализ и вопросы в комментариях🤓
Жду ваш глубокий анализ и вопросы в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Делюсь интересным фактом.
Все пользователи бота за все время скопили 6 591 805💰
Т.е. 6.5 миллионов золотых😎
Все пользователи бота за все время скопили 6 591 805
Т.е. 6.5 миллионов золотых
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡9
Наконец дозрел до прикручивания доната к боту. Угадайте с чего я начал? Думаете с удочки? А вот и нет.
После того как пользователь проходит новый квест, ему предлагается его оценить. Теперь после положительной оценки, ему предлагается сделать донат на корм Любопытному Коту. Если он отказывается, то следующее предложение ему будет показано только через месяц. Таким образом и ненавязчиво, но в целом понятно за что, Кот начнёт зарабатывать.
А вы пожертвуете Коту на корм?😮
После того как пользователь проходит новый квест, ему предлагается его оценить. Теперь после положительной оценки, ему предлагается сделать донат на корм Любопытному Коту. Если он отказывается, то следующее предложение ему будет показано только через месяц. Таким образом и ненавязчиво, но в целом понятно за что, Кот начнёт зарабатывать.
А вы пожертвуете Коту на корм?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤2⚡1
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉9🌭2
Уже довольно давно для ботов добавили возможность присылать премиум эмодзи. И сегодня у меня, наконец, сформировалась идея, как это можно прикрутить к боту, пройдя "путём лени".
Немного контекста для тех, кто пока этого не делал. В зависимости от того, какой формат для сообщения вы используете, кастомный эмодзи можно прислать одним из двух вариантов
или
Решение в лоб - создание констант, внесение правок в код или квесты. Но это долго, тяжело, ухудшает читаемость.
Поэтому я создал файл, в который сложил айдишники и эмодзи для них:
При этом для эмодзи может быть несколько id'шников.
Ну и в самом конце прикручиваем постобработку сообщений - если эмодзи в отправляемом текстом не окружен >< или ][ (в зависимости от формата), подставляем один из кастомных эмодзи случайным образом.
Немного контекста для тех, кто пока этого не делал. В зависимости от того, какой формат для сообщения вы используете, кастомный эмодзи можно прислать одним из двух вариантов
или
<tg-emoji emoji-id="${CUSTOM_EMOJI_ID}">👍</tg-emoji>Решение в лоб - создание констант, внесение правок в код или квесты. Но это долго, тяжело, ухудшает читаемость.
Поэтому я создал файл, в который сложил айдишники и эмодзи для них:
🍁;5193012603605001210
🍃;5192741668478035175
🌰;5192803812359842091
При этом для эмодзи может быть несколько id'шников.
Ну и в самом конце прикручиваем постобработку сообщений - если эмодзи в отправляемом текстом не окружен >< или ][ (в зависимости от формата), подставляем один из кастомных эмодзи случайным образом.
⚡9❤4💘1