Skip to main content

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

rugram-2.0.0.tar.gz (37.7 kB view details)

Uploaded Source

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

Hashes for rugram-2.0.0.tar.gz
Algorithm Hash digest
SHA256 a4d6322cd6b92f06faa16aa2fc01eb71ca70a64f3ee89110bdfc28f370682b15
MD5 40764eb75ea06dc9691095242ba18666
BLAKE2b-256 ecdc6b205edf14de17531aca0167a63474b98ee435ed90f778ae87f069ae71c8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page