71 lines
2.6 KiB
JavaScript
71 lines
2.6 KiB
JavaScript
const { Telegraf, Scenes, session, Markup, Stage, Composer } = require('telegraf');
|
||
// Подключаем необходимые библиотеки
|
||
const { Op } = require('sequelize');
|
||
const sequelize = require('./db'); // Подключение базы данных
|
||
// Подключаем обработчики
|
||
const utils = require('./utils');
|
||
const handlers = require('./handlers');
|
||
const {
|
||
UserModel,
|
||
CharacterModel,
|
||
WorldModel,
|
||
JobModel,
|
||
PropertyModel,
|
||
AFKPropertyModel,
|
||
BusinessModel,
|
||
ReportModel,
|
||
BlockModel,
|
||
PromocodeModel,
|
||
EnterpriseModel,
|
||
WarehouseModel,
|
||
TruckModel,
|
||
SaleModel,
|
||
ResourcePriceModel,
|
||
SkillsModel,
|
||
DailyModel
|
||
} = global.config
|
||
const rpg = new Composer();
|
||
|
||
rpg.hears('RPG', async (ctx) => {
|
||
let message = `Меню:\n`;
|
||
const buttons = [];
|
||
buttons.push([{ text: 'Мой Персонаж', callback_data: 'rpg_profile' }]);
|
||
return await ctx.reply(message, Markup.inlineKeyboard(buttons).resize());
|
||
});
|
||
|
||
rpg.action('rpg_profile', async (ctx) => {
|
||
const telegramId = ctx.from.id;
|
||
|
||
// Ищем персонажа
|
||
const character = await CharacterModel.findOne({ where: { telegram_id: telegramId } });
|
||
|
||
if (!character) {
|
||
return ctx.reply('Персонаж не найден. Создайте нового персонажа, чтобы начать игру!');
|
||
}
|
||
|
||
// Формируем профиль
|
||
const profile = `
|
||
🎭 Профиль персонажа:
|
||
👤 Имя: ${character.name || 'Не указано'}
|
||
🏆 Уровень: ${character.level} (${character.exp}/${character.level * 100} опыта)
|
||
❤️ Здоровье: ${character.hp}/${character.max_hp}
|
||
💪 Сила (F): ${character.fire}
|
||
🧠 Интеллект (I): ${character.intelligence}
|
||
🛡️ Устойчивость (R): ${character.resilience}
|
||
🔋 Выносливость (E): ${character.endurance}
|
||
🔥 Стамина: ${character.stamina}/${character.max_stamina}
|
||
💰 Грязные деньги: ${character.dirtymoney}
|
||
🃏 Карточки: ${character.stealedcards}
|
||
🎒 Инвентарь (${character.inventory.length}/10): ${character.inventory.map((item) => item.name).join(', ') || 'Пусто'}
|
||
`;
|
||
|
||
// Отправляем сообщение
|
||
ctx.reply(profile.trim(), Markup.inlineKeyboard([
|
||
[Markup.button.callback('📦 Открыть инвентарь', 'open_inventory')],
|
||
[Markup.button.callback('🛠 Улучшить параметры', 'upgrade_stats')]
|
||
]));
|
||
});
|
||
|
||
// Экспорт всех команд RPG
|
||
module.exports = rpg;
|