RuGram — RPG-фреймворк для Telegram на русском языке
Project description
# 🎮 RPGRam — RPG-фреймворк для Telegram
**Полноценный RPG-движок на русском языке для создания игровых ботов в Telegram.**
RPGRam объединяет 16 модулей в одной библиотеке: от бросков кубиков и боёвки до экономики, квестов и погоды.
---
## 📦 Установка
```bash
pip install rpggram
🚀 Быстрый старт (30 секунд)
from rpggram import RPGRam, Клавиатура, Кнопка
бот = RPGRam("ТОКЕН_БОТА")
клава = Клавиатура(изменяемая=True)
клава.строка(Кнопка("⚔️ Битва"), Кнопка("🎒 Инвентарь"))
клава.строка(Кнопка("✨ Герой"))
@бот.обработать(команда="start")
def старт(сообщение, контекст):
бот.отправить(сообщение.чат.ид, "Добро пожаловать в RPG!", клавиатура=клава)
@бот.обработать(текст="⚔️ Битва")
def битва(сообщение, контекст):
бот.отправить(сообщение.чат.ид, "Ты вступил в бой!")
if __name__ == "__main__":
бот.запустить()
🧩 Модули
Модуль Назначение ядро Telegram Bot API на русском база Встроенная JSON-база данных (VRBase) кости Броски кубиков (d4-d100), проверки, таблицы лута бой Пошаговая боёвка с действиями эффекты Баффы, дебаффы, яды, регенерация навыки Дерево навыков с узлами и зависимостями профессии Работы с таймерами (шахтёр, кузнец, алхимик...) квесты Квесты с прогрессом и цепочками рынок Торговая площадка с лотами и историей сделок крафт Система рецептов и создания предметов группа Кланы и фракции погода Динамическая погода с влиянием на бой топ Таблицы лидеров интерфейс Меню, пагинация, прогресс-бары логи Журналирование и аудит действий история Летопись мира
🎲 Пример: бросок кубика
from rpggram import Кубик, Проверка, D20
# Простой бросок
результат = D20.бросить(модификатор=5)
print(результат) # 18
# Проверка навыка
проверка = Проверка(D20, сложность=15)
итог = проверка.выполнить(модификатор=7)
print(итог["успех"]) # True
print(проверка.описать(итог)) # "👍 Уверенный успех"
⚔️ Пример: бой
from rpggram import Боец, Бой, СТАНДАРТНЫЕ_ДЕЙСТВИЯ
герой = Боец("Миро", здоровье=100, атака=15, защита=10)
монстр = Боец("Гоблин", здоровье=50, атака=8, защита=3)
герой.добавить_действие(СТАНДАРТНЫЕ_ДЕЙСТВИЯ["огненный_шар"])
бой = Бой(герой, монстр)
результат = бой.следующий_ход(
СТАНДАРТНЫЕ_ДЕЙСТВИЯ["сильный_удар"],
СТАНДАРТНЫЕ_ДЕЙСТВИЯ["удар"]
)
print(результат["победитель"]) # "Миро"
🏪 Пример: рынок
from rpggram import Рынок
рынок = Рынок(налог_процент=5)
# Выставить лот
рынок.выставить_лот(123, "Миро", "Железный меч", 1, 500, "Острый меч из железа", 48)
# Купить
сделка = рынок.купить_лот(лот_ид, 456, "Анна")
# Показать витрину
print(рынок.показать_витрину())
🌤 Пример: погода
from rpggram import Погода
погода = Погода(базовая_температура=20)
погода.обновить(месяц=12, час=14)
погода.случайное_условие()
print(погода.описание())
# ❄️ Зима
# ☀️ День
# 🌡 Температура: -8.5°C
# 🌨 Снег
# 📝 Снегопад
# Влияние на бой
print(погода.эффекты_на_бой()) # {'скорость': -0.15, 'скрытность': 0.1}
📊 Всё вместе: RPG-бот за 5 минут
from rpggram import RPGRam, Клавиатура, Кнопка, База, Кубик, D20, Проверка
from rpggram import Боец, Бой, СТАНДАРТНЫЕ_ДЕЙСТВИЯ, МенеджерЭффектов
from rpggram import МенеджерКвестов, Рынок, МенеджерПрофессий
бот = RPGRam("ТОКЕН")
база = База("rpg_world")
игроки = база.коробка("игроки")
@бот.обработать(команда="start")
def старт(сообщение, контекст):
игрок = игроки.найти_один(чат_ид=сообщение.чат.ид)
if not игрок:
игроки.положить({
"чат_ид": сообщение.чат.ид,
"имя": сообщение.от.имя,
"уровень": 1, "здоровье": 100, "золото": 0
})
база.сохранить()
бот.ответить(сообщение, f"Добро пожаловать, {сообщение.от.имя}!")
📖 Документация
Каждый модуль содержит подробные комментарии на русском языке. Импортируйте и используйте:
from rpggram import * # Все 16 модулей
🛠 Зависимости
· requests>=2.25 · Python 3.8+
📝 Лицензия
MIT License — свободное использование и модификация.
RPGRam — создавай RPG-миры в Telegram на русском языке! 🎮🐍🇷🇺
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file rugram-2.0.0.tar.gz.
File metadata
- Download URL: rugram-2.0.0.tar.gz
- Upload date:
- Size: 37.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4d6322cd6b92f06faa16aa2fc01eb71ca70a64f3ee89110bdfc28f370682b15
|
|
| MD5 |
40764eb75ea06dc9691095242ba18666
|
|
| BLAKE2b-256 |
ecdc6b205edf14de17531aca0167a63474b98ee435ed90f778ae87f069ae71c8
|