CampFirePlay/crime.js
2025-01-08 20:01:54 +03:00

71 lines
2.6 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;