Подпольный бар-казино в вашем групповом чате.
Валюта: фишки. Игры: кости, слоты, рулетка, блэкджек.
- Открой Telegram → @BotFather →
/newbot - Дай боту имя (например
Крыс) и username (напримерkrys_casino_bot) - Скопируй токен вида
123456:ABC-DEF...
cp .env.example .env
# Вставь токен в .env:
# BOT_TOKEN=123456:ABC-DEF...
# DB_PATH=krys.dbpython -m venv .venv
# Windows:
.venv\Scripts\activate
# Linux/macOS:
source .venv/bin/activate
pip install -r requirements.txt
python -m bot- Добавь бота в групповой чат.
- Права бота: права администратора не нужны.
- Privacy mode — обязательно выключить: @BotFather →
/setprivacy→ выбери бота → Disable. Без этого бот видит только команды и не может считать активность игроков в чате. - Каждый игрок должен один раз написать боту
/startв личку — это нужно для рулетки (сборка корзины) и блэкджека (игра в личке).
Если игрок не писал боту в личку, при попытке открыть рулетку/блэкджек в группе он получит подсказку.
| Команда | Описание |
|---|---|
/start |
Регистрация; при первом запуске +1000 фишек |
/balance |
Баланс и долг (+ фишки за активность) |
/bonus |
Ежедневная подачка 100 фишек (раз в 24 часа) |
/loan <сумма> |
Кредит до 500 фишек (+30% долг) |
/dice <ставка> |
Открыть стол костей (в группе) |
/slots |
Слот-машина |
/roulette |
Рулетка (стол в группе, ставки в личке) |
/blackjack |
Блэкджек (в личке, итог в группе) |
/help |
Правила заведения |
Игроки автоматически получают фишки за присутствие в групповом чате — без спама:
- Первое обычное текстовое сообщение в 30-минутном окне приносит 5 фишек.
- Все последующие сообщения в том же окне — ничего.
- Дневной потолок: 50 фишек с активности (≈10 разных полчасов).
- Начисление молчаливое: бот никак не реагирует в чат.
- Накопленное за день отображается при
/balanceв стиле Крыса.
Числа (INCOME_PER_WINDOW, INCOME_WINDOW_SEC, INCOME_DAILY_CAP) — модульные константы в bot/economy.py, легко подстраиваются.
Требование: у бота должен быть выключен privacy mode (см. «Добавление бота в группу»).
- Работает в группе.
- Хозяин открывает стол, остальные садятся кнопкой.
- Каждый бросает свой кубик 🎲; наибольший результат забирает банк − 5% комиссии.
- Если никто не присел — Крыс может войти сам (шанс зависит от баланса хозяина).
- Работает везде.
- Ставки: 10 / 20 / 50 / своя сумма / ва-банк.
- Нативная слот-машина Telegram 🎰.
Важно: декодирование барабанов слотов (
decode_slotsвbot/games/slots.py) реализовано по неофициальному маппингу Telegram. При первом запуске обязательно проверь визуально, что выплата совпадает с тем, что отображается в анимации. Если расхождение — скорректируй таблицу символов вREEL_DISPLAY.
- Стол открывается в группе.
- Ставки собираются в личке (нужен предварительный
/startв личке). - Поддерживаемые ставки: красное/чёрное, чёт/нечет, дюжины (1–12 / 13–24 / 25–36), на число.
- Европейское колесо 0–36, edge 2.70%.
- Команда из группы → бот открывает личку для игры; итог постится в группу.
- Команда из лички → играть прямо там.
- Правила: S17, блэкджек 3:2, Hit/Stand/Double. Без сплита и страховки.
# Создай пользователя
sudo useradd -r -m -d /opt/krysbot krysbot
# Скопируй файлы
sudo cp -r . /opt/krysbot/
sudo chown -R krysbot:krysbot /opt/krysbot
# Настрой .env
sudo -u krysbot nano /opt/krysbot/.env
# Создай venv и установи зависимости
sudo -u krysbot python3 -m venv /opt/krysbot/.venv
sudo -u krysbot /opt/krysbot/.venv/bin/pip install -r /opt/krysbot/requirements.txt
# Установи и запусти сервис
sudo cp deploy/krys-bot.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable krys-bot
sudo systemctl start krys-bot
# Проверка
sudo systemctl status krys-bot
sudo journalctl -u krys-bot -fbot/
__main__.py — точка входа
config.py — загрузка env
db.py — aiosqlite, инициализация схемы
economy.py — балансы, долги, кредиты (атомарно); константы INCOME_*
persona.py — банки фраз Крыса
keyboards.py — CallbackData + клавиатуры
bets.py — общий поток ввода ставки (FSM)
sessions.py — реестр живых столов в памяти
activity.py — пассивный доход за активность (in-memory, batch flush)
games/
dice.py — логика костей
slots.py — декод 🎰 + таблица выплат
roulette.py — европейское колесо
blackjack.py — колода, подсчёт руки, S17
handlers/
common.py — /start /balance /bonus /loan /help
dice.py — стол костей
slots.py — слоты
roulette.py — рулетка
blackjack.py — блэкджек
activity.py — catch-all: учёт активности (регистрируется последним)