Prepare for Enterprise update
This commit is contained in:
parent
906fffd2ca
commit
6b5ea57c89
226
bot.js
226
bot.js
@ -20,10 +20,14 @@ const {
|
||||
WorldModel,
|
||||
JobModel,
|
||||
PropertyModel,
|
||||
AFKPropertyModel,
|
||||
BusinessModel,
|
||||
ReportModel,
|
||||
BlockModel,
|
||||
PromocodeModel,
|
||||
EnterpriseModel,
|
||||
WarehouseModel,
|
||||
SaleModel,
|
||||
SkillsModel,
|
||||
mainChat,
|
||||
adminList,
|
||||
@ -99,8 +103,6 @@ const {
|
||||
const { Op } = require('sequelize');
|
||||
const fs = require('fs');
|
||||
const { createCanvas, loadImage } = require('canvas');
|
||||
const shortid = require('shortid');
|
||||
const voucher_codes = require('voucher-code-generator');
|
||||
const bot = new Telegraf(process.env.BOT_TOKEN)
|
||||
const crime = require('./scenes/crime')
|
||||
const pocketsteal = require('./scenes/pocketsteal')
|
||||
@ -277,6 +279,7 @@ bot.command('start', async (ctx) => {
|
||||
.keyboard([
|
||||
['😎 Профиль'], // Row1 with 2 buttons
|
||||
['🗄️ Работать', '🌐 Организация', '🎁 Бонус', '🏯 Казино'], // Row2 with 2 buttons
|
||||
['🏗️ Предприятия'],
|
||||
['📦 Контейнеры'],
|
||||
['📢 Вакансии', '🔵 Имущество', '📞 Пригласить'] // Row3 with 3 buttons
|
||||
])
|
||||
@ -430,6 +433,225 @@ bot.action(/{"action": "sueta_*/, async (ctx) => {
|
||||
user.save()
|
||||
property.save()
|
||||
})
|
||||
|
||||
/////////////////////////////////////Enterprise Update 20.12.2024//////////////////////////////////////////////////
|
||||
|
||||
bot.hears('🏗️ Предприятия', async (ctx) => {
|
||||
return await ctx.reply(`
|
||||
Меню предприятий
|
||||
У вас: нет предприятий.
|
||||
Цены:
|
||||
|
||||
`, Markup
|
||||
.inlineKeyboard([
|
||||
[
|
||||
{text: 'Мои предприятия', callback_data: `my_enterprises`},
|
||||
{text: 'Построить', callback_data: `build_enterprise`},
|
||||
{text: 'Склад', callback_data: `open_warehouse`},
|
||||
]
|
||||
])
|
||||
.resize())
|
||||
})
|
||||
|
||||
|
||||
bot.action('my_enterprises', async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
let enterprises = await EnterpriseModel.findAll({
|
||||
where: {
|
||||
playerId: user.telegram_id
|
||||
}
|
||||
})
|
||||
let message = `Ваши предприятия:\n`
|
||||
enterprises.forEach(enterprise => {
|
||||
message += `🏭 ${enterprise.name} (Тип: ${enterprise.resourceType}, Уровень: ${enterprise.level}, Производительность: ${enterprise.efficiency} ед/ч, Склад: ${enterprise.warehouseCapacity} ед.)\n`
|
||||
})
|
||||
if (enterprises.length === 0) {
|
||||
message += 'У вас нет предприятий.\n'
|
||||
}
|
||||
return await ctx.reply(message)
|
||||
})
|
||||
|
||||
bot.action('build_enterprise', async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
let enterprises = await EnterpriseModel.findAll({
|
||||
where: {
|
||||
playerId: user.telegram_id
|
||||
}
|
||||
})
|
||||
if (enterprises.length > 0) return await ctx.reply(`У вас уже есть предприятие.`)
|
||||
|
||||
let message = `Выберите тип предприятия (цена зависит от ресурса):`
|
||||
let buttons = []
|
||||
let types = ['wood', 'coal', 'oil', 'metall', 'gold', 'diamond']
|
||||
types.forEach(type => {
|
||||
let price = getResourcePrice(type) // Функция для получения стоимости
|
||||
buttons.push({text: `${type} (Цена: ${price} монет)`, callback_data: `build_${type}`})
|
||||
})
|
||||
return await ctx.reply(message, Markup.inlineKeyboard(buttons).resize())
|
||||
})
|
||||
|
||||
function getResourcePrice(resourceType) {
|
||||
const prices = {
|
||||
wood: 100,
|
||||
coal: 200,
|
||||
oil: 500,
|
||||
metall: 1000,
|
||||
gold: 3000,
|
||||
diamond: 5000
|
||||
}
|
||||
return prices[resourceType] || 0
|
||||
}
|
||||
|
||||
bot.action(/build_(wood|coal|oil|metall|gold|diamond)/, async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
let data = ctx.update.callback_query.data
|
||||
let type = data.split('_')[1]
|
||||
let price = getResourcePrice(type)
|
||||
|
||||
// Проверка, есть ли достаточно денег у пользователя
|
||||
if (user.balance < price) {
|
||||
return await ctx.reply(`У вас недостаточно средств для постройки предприятия. Необходимо ${price} монет.`)
|
||||
}
|
||||
|
||||
// Строим предприятие
|
||||
let enterprise = await EnterpriseModel.create({
|
||||
name: `${type} mine`,
|
||||
resourceType: type,
|
||||
playerId: user.telegram_id,
|
||||
level: 1,
|
||||
efficiency: 10,
|
||||
warehouseCapacity: 100
|
||||
})
|
||||
|
||||
// Снимаем деньги с баланса
|
||||
await user.update({ balance: user.balance - price })
|
||||
|
||||
return await ctx.reply(`Предприятие ${enterprise.name} построено!`)
|
||||
})
|
||||
|
||||
bot.action('upgrade_enterprise', async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
let enterprises = await EnterpriseModel.findAll({
|
||||
where: {
|
||||
playerId: user.telegram_id
|
||||
}
|
||||
})
|
||||
|
||||
if (enterprises.length === 0) return await ctx.reply(`У вас нет предприятий для прокачки.`)
|
||||
|
||||
let buttons = []
|
||||
enterprises.forEach(enterprise => {
|
||||
buttons.push({ text: `Прокачать ${enterprise.name}`, callback_data: `upgrade_${enterprise.id}` })
|
||||
})
|
||||
|
||||
return await ctx.reply(`Выберите предприятие для прокачки:`, Markup.inlineKeyboard(buttons).resize())
|
||||
})
|
||||
|
||||
bot.action(/upgrade_(\d+)/, async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
let enterpriseId = ctx.match[1]
|
||||
let enterprise = await EnterpriseModel.findByPk(enterpriseId)
|
||||
|
||||
if (!enterprise) return await ctx.reply(`Предприятие не найдено.`)
|
||||
|
||||
let upgradeCost = enterprise.level * 100 // Стоимость улучшения зависит от уровня
|
||||
if (user.balance < upgradeCost) {
|
||||
return await ctx.reply(`У вас недостаточно средств для прокачки предприятия. Необходимо ${upgradeCost} монет.`)
|
||||
}
|
||||
|
||||
// Прокачка: повышение уровня и эффективности
|
||||
await enterprise.update({
|
||||
level: enterprise.level + 1,
|
||||
efficiency: enterprise.efficiency + 10
|
||||
})
|
||||
|
||||
// Снимаем деньги с баланса
|
||||
await user.update({ balance: user.balance - upgradeCost })
|
||||
|
||||
return await ctx.reply(`Предприятие ${enterprise.name} успешно прокачано! Уровень: ${enterprise.level}, Производительность: ${enterprise.efficiency} ед/ч.`)
|
||||
})
|
||||
|
||||
bot.action('sell_resources', async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
let enterprises = await EnterpriseModel.findAll({
|
||||
where: {
|
||||
playerId: user.telegram_id
|
||||
}
|
||||
})
|
||||
|
||||
if (enterprises.length === 0) return await ctx.reply(`У вас нет предприятий для продажи ресурсов.`)
|
||||
|
||||
let buttons = []
|
||||
enterprises.forEach(enterprise => {
|
||||
buttons.push({ text: `Продать ресурсы с ${enterprise.name}`, callback_data: `sell_${enterprise.id}` })
|
||||
})
|
||||
|
||||
return await ctx.reply(`Выберите предприятие для продажи ресурсов:`, Markup.inlineKeyboard(buttons).resize())
|
||||
})
|
||||
|
||||
bot.action(/sell_(\d+)/, async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
let enterpriseId = ctx.match[1]
|
||||
let enterprise = await EnterpriseModel.findByPk(enterpriseId)
|
||||
|
||||
if (!enterprise) return await ctx.reply(`Предприятие не найдено.`)
|
||||
|
||||
// Логика продажи ресурсов с предприятия
|
||||
const resourceQuantity = await ResourceModel.findOne({
|
||||
where: { playerId: user.telegram_id, type: enterprise.resourceType }
|
||||
})
|
||||
|
||||
if (!resourceQuantity || resourceQuantity.quantity <= 0) {
|
||||
return await ctx.reply(`У вас нет ресурсов для продажи на предприятии ${enterprise.name}.`)
|
||||
}
|
||||
|
||||
const salePrice = getResourcePrice(enterprise.resourceType) // Цена за единицу ресурса
|
||||
const totalSale = salePrice * resourceQuantity.quantity
|
||||
|
||||
// Обновляем количество ресурсов
|
||||
await ResourceModel.update(
|
||||
{ quantity: 0 }, // Все ресурсы продаются
|
||||
{ where: { playerId: user.telegram_id, type: enterprise.resourceType } }
|
||||
)
|
||||
|
||||
// Добавляем деньги пользователю
|
||||
await user.update({ balance: user.balance + totalSale })
|
||||
|
||||
return await ctx.reply(`Вы продали все ресурсы с ${enterprise.name} за ${totalSale} монет.`)
|
||||
})
|
||||
|
||||
bot.action('open_warehouse', async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
let warehouse = await WarehouseModel.findOne({ where: { playerId: user.telegram_id } })
|
||||
|
||||
if (warehouse) return await ctx.reply(`У вас уже есть склад.`)
|
||||
|
||||
let newWarehouse = await WarehouseModel.create({
|
||||
playerId: user.telegram_id,
|
||||
capacity: 500 // Начальная ёмкость склада
|
||||
})
|
||||
|
||||
return await ctx.reply(`Вы открыли новый склад!`)
|
||||
})
|
||||
|
||||
bot.action('hire_truck', async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
let warehouse = await WarehouseModel.findOne({ where: { playerId: user.telegram_id } })
|
||||
|
||||
if (!warehouse) return await ctx.reply(`У вас нет склада для найма грузовиков.`)
|
||||
|
||||
// Логика найма грузовика
|
||||
let truck = await TruckModel.create({
|
||||
warehouseId: warehouse.id,
|
||||
capacity: 10, // Начальная вместимость
|
||||
efficiency: 1 // Начальная эффективность
|
||||
})
|
||||
|
||||
return await ctx.reply(`Вы наняли грузовик для транспортировки ресурсов!`)
|
||||
})
|
||||
|
||||
/////////////////////////////////////Enterprise Update end//////////////////////////////////////////////////
|
||||
|
||||
/////////////////////////////////////Admin Commands//////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
const {
|
||||
UserModel,
|
||||
PromocodeModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
generateVoucher
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/utils')
|
||||
} = require('/dev/Telegram/CampFireGameBot/utils')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
|
@ -5,7 +5,7 @@ const bot = new Telegraf(process.env.BOT_TOKEN)
|
||||
const {
|
||||
UserModel,
|
||||
BlockModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
|
@ -2,10 +2,10 @@ const voucher_codes = require('voucher-code-generator');
|
||||
const {
|
||||
UserModel,
|
||||
PromocodeModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
generateVoucher
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/utils')
|
||||
} = require('/dev/Telegram/CampFireGameBot/utils')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
|
@ -5,7 +5,7 @@ const bot = new Telegraf(process.env.BOT_TOKEN)
|
||||
const {
|
||||
UserModel,
|
||||
ReportModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
|
@ -2,7 +2,7 @@ const {
|
||||
UserModel,
|
||||
WorldModel,
|
||||
BusinessModel
|
||||
} = require('../config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
rand,
|
||||
setCooldown
|
||||
|
@ -3,10 +3,10 @@ const {
|
||||
simplecars,
|
||||
UserModel,
|
||||
PropertyModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spaces
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/utils')
|
||||
} = require('/dev/Telegram/CampFireGameBot/utils')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let data = ctx.update.callback_query.data;
|
||||
|
@ -1,6 +1,6 @@
|
||||
const {
|
||||
UserModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
|
@ -2,13 +2,13 @@ const {
|
||||
slots,
|
||||
UserModel,
|
||||
WorldModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spaces,
|
||||
getSlot,
|
||||
giveExp,
|
||||
setCooldown
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/utils')
|
||||
} = require('/dev/Telegram/CampFireGameBot/utils')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let data = ctx.update.callback_query.data;
|
||||
|
@ -3,7 +3,7 @@ const {
|
||||
} = require('telegraf')
|
||||
const {
|
||||
UserModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
|
@ -27,7 +27,7 @@ const {
|
||||
adminList,
|
||||
expToUp,
|
||||
topSym
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spaces,
|
||||
spacesWithMarkdown,
|
||||
@ -43,7 +43,7 @@ const {
|
||||
setCooldown,
|
||||
weaponShopUpdate,
|
||||
stats
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/utils')
|
||||
} = require('/dev/Telegram/CampFireGameBot/utils')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
// Получаем контекст canvas
|
||||
|
@ -2,7 +2,7 @@ const {
|
||||
UserModel,
|
||||
PropertyModel,
|
||||
expToUp
|
||||
} = require('../config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spacesWithMarkdown,
|
||||
escape
|
||||
|
@ -2,7 +2,7 @@ const {
|
||||
UserModel,
|
||||
PropertyModel,
|
||||
expToUp
|
||||
} = require('../config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spacesWithMarkdown,
|
||||
escape
|
||||
|
@ -20,7 +20,7 @@ const {
|
||||
adminList,
|
||||
expToUp,
|
||||
topSym
|
||||
} = require('../config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spaces,
|
||||
spacesWithMarkdown,
|
||||
|
@ -1,7 +1,7 @@
|
||||
const {
|
||||
UserModel,
|
||||
JobModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let data = ctx.update.callback_query.data;
|
||||
|
@ -2,11 +2,11 @@ const {
|
||||
UserModel,
|
||||
WorldModel,
|
||||
JobModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
giveExp,
|
||||
setCooldown
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/utils')
|
||||
} = require('/dev/Telegram/CampFireGameBot/utils')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id);
|
||||
|
@ -6,7 +6,7 @@ const bot = new Telegraf(process.env.BOT_TOKEN)
|
||||
const {
|
||||
UserModel,
|
||||
BusinessModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
ctx.args = ctx.update.message.text.split(' ')
|
||||
|
@ -3,7 +3,7 @@ const { Op } = require('sequelize');
|
||||
const {
|
||||
UserModel,
|
||||
BusinessModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let data = ctx.update.callback_query.data;
|
||||
|
@ -6,7 +6,7 @@ const bot = new Telegraf(process.env.BOT_TOKEN)
|
||||
const {
|
||||
UserModel,
|
||||
BusinessModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
|
@ -5,7 +5,7 @@ const bot = new Telegraf(process.env.BOT_TOKEN)
|
||||
const {
|
||||
UserModel,
|
||||
BusinessModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let data = ctx.update.callback_query.data;
|
||||
|
@ -2,7 +2,7 @@ const {
|
||||
UserModel,
|
||||
WorldModel,
|
||||
BusinessModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
ctx.args = ctx.update.message.text.split(' ')
|
||||
|
@ -5,7 +5,7 @@ const bot = new Telegraf(process.env.BOT_TOKEN)
|
||||
const {
|
||||
UserModel,
|
||||
BusinessModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
if (!ctx.args[1]) return ctx.reply(`Не указан аргумент.`)
|
||||
|
@ -2,7 +2,7 @@ const {
|
||||
UserModel,
|
||||
WorldModel,
|
||||
BusinessModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
|
@ -4,11 +4,11 @@ const {
|
||||
const {
|
||||
UserModel,
|
||||
BusinessModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spaces,
|
||||
escape
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/utils')
|
||||
} = require('/dev/Telegram/CampFireGameBot/utils')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
|
@ -6,12 +6,12 @@ const {
|
||||
UserModel,
|
||||
WorldModel,
|
||||
BusinessModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spaces,
|
||||
giveExp,
|
||||
rand
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/utils')
|
||||
} = require('/dev/Telegram/CampFireGameBot/utils')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let user = null
|
||||
|
@ -1,7 +1,7 @@
|
||||
const {
|
||||
UserModel,
|
||||
BusinessModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
ctx.args = ctx.update.message.text.split(' ')
|
||||
|
@ -1,12 +1,12 @@
|
||||
const {
|
||||
UserModel,
|
||||
BusinessModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spaces,
|
||||
escape,
|
||||
setCooldown
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/utils')
|
||||
} = require('/dev/Telegram/CampFireGameBot/utils')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
|
@ -5,7 +5,7 @@ const bot = new Telegraf(process.env.BOT_TOKEN)
|
||||
const {
|
||||
UserModel,
|
||||
WorldModel
|
||||
} = require('../config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
ctx.args = ctx.update.message.text.split(' ')
|
||||
|
@ -2,7 +2,7 @@ const {
|
||||
UserModel,
|
||||
PropertyModel,
|
||||
expToUp
|
||||
} = require('../config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spacesWithMarkdown,
|
||||
escape
|
||||
|
@ -6,7 +6,7 @@ const {
|
||||
UserModel,
|
||||
PromocodeModel,
|
||||
adminList
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spaces
|
||||
} = require('../utils')
|
||||
|
@ -3,12 +3,12 @@ const {
|
||||
} = require('telegraf')
|
||||
const {
|
||||
weaponshop
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spaces,
|
||||
escape,
|
||||
weaponShopUpdate
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/utils')
|
||||
} = require('/dev/Telegram/CampFireGameBot/utils')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let text = `[Hatkeis Gunsmith](https://telegra.ph/Hatkeis-Gunsmith-09-27)\n`
|
||||
|
@ -20,7 +20,7 @@ const {
|
||||
adminList,
|
||||
expToUp,
|
||||
topSym
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spaces,
|
||||
spacesWithMarkdown,
|
||||
@ -36,7 +36,7 @@ const {
|
||||
setCooldown,
|
||||
weaponShopUpdate,
|
||||
stats
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/utils')
|
||||
} = require('/dev/Telegram/CampFireGameBot/utils')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let data = ctx.update.callback_query.data;
|
||||
|
@ -5,7 +5,7 @@ const {
|
||||
houses,
|
||||
cars,
|
||||
phones
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let data = ctx.update.callback_query.data;
|
||||
|
@ -3,7 +3,7 @@ const {
|
||||
} = require('telegraf')
|
||||
const {
|
||||
UserModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id);
|
||||
|
@ -20,7 +20,7 @@ const {
|
||||
adminList,
|
||||
expToUp,
|
||||
topSym
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spaces,
|
||||
spacesWithMarkdown,
|
||||
@ -36,7 +36,7 @@ const {
|
||||
setCooldown,
|
||||
weaponShopUpdate,
|
||||
stats
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/utils')
|
||||
} = require('/dev/Telegram/CampFireGameBot/utils')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
ctx.args = ctx.update.message.text.split(' ')
|
||||
|
@ -4,11 +4,11 @@ const {
|
||||
simplecars,
|
||||
UserModel,
|
||||
PropertyModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spaces,
|
||||
rand
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/utils')
|
||||
} = require('/dev/Telegram/CampFireGameBot/utils')
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
let user = await UserModel.findByPk(ctx.from.id)
|
||||
|
@ -7,7 +7,7 @@ const {
|
||||
UserModel,
|
||||
ReportModel,
|
||||
adminList
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const shortid = require('shortid');
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
|
@ -1,10 +1,10 @@
|
||||
const {
|
||||
UserModel,
|
||||
topSym
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spaces
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/utils')
|
||||
} = require('/dev/Telegram/CampFireGameBot/utils')
|
||||
const sequelize = require('../db');
|
||||
const { Op } = require('sequelize');
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
const {
|
||||
WorldModel
|
||||
} = require('../config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spaces
|
||||
} = require('../utils')
|
||||
|
@ -17,6 +17,7 @@ const BusinessModel = require('../models/business.model');
|
||||
const ReportModel = require('../models/report.model');
|
||||
const BlockModel = require('../models/block.model');
|
||||
const PromocodeModel = require('../models/promocode.model');
|
||||
const AFKPropertyModel = require('../models/afkproperty.model');
|
||||
const mainChat = -1001895132127
|
||||
const adminList = [275416286]
|
||||
const expToUp = [0, 10, 20, 40, 60, 100, 250, 370, 450, 575, 666, 777, 860, 999, 1000, 1177, 1234, 1350, 1488, 1515, 1610]
|
||||
@ -41,6 +42,7 @@ module.exports = [
|
||||
ReportModel,
|
||||
BlockModel,
|
||||
PromocodeModel,
|
||||
AFKPropertyModel
|
||||
mainChat,
|
||||
adminList,
|
||||
expToUp,
|
||||
|
@ -12,12 +12,16 @@ module.exports = {
|
||||
WorldModel : require('../models/world.model'),
|
||||
JobModel : require('../models/job.model'),
|
||||
PropertyModel : require('../models/property.model'),
|
||||
AFKPropertyModel : require('../models/afkproperty.model'),
|
||||
BusinessModel : require('../models/business.model'),
|
||||
ReportModel : require('../models/report.model'),
|
||||
BlockModel : require('../models/block.model'),
|
||||
PromocodeModel : require('../models/promocode.model'),
|
||||
SkillsModel: require('../models/skills.model'),
|
||||
LobbyModel: require('../models/lobby.model'),
|
||||
EnterpriseModel: require('../models/enterprise.model'),
|
||||
WarehouseModel: require('../models/warehouse.model'),
|
||||
SaleModel: require('../models/sales.model'),
|
||||
mainChat : -1001895132127,
|
||||
adminList : [275416286],
|
||||
promoTopicId: 1807,
|
||||
|
31
models/afkproperty.model.js
Normal file
31
models/afkproperty.model.js
Normal file
@ -0,0 +1,31 @@
|
||||
const sequelize = require('../db');
|
||||
const {DataTypes} = require('sequelize');
|
||||
|
||||
const AFKProperty = sequelize.define('afkproperty', {
|
||||
ownerId: {
|
||||
type: DataTypes.INTEGER,
|
||||
allowNull: false
|
||||
},
|
||||
name: {
|
||||
type: DataTypes.STRING,
|
||||
allowNull: false
|
||||
},
|
||||
level: {
|
||||
type: DataTypes.INTEGER,
|
||||
defaultValue: 1
|
||||
},
|
||||
materials: {
|
||||
type: DataTypes.INTEGER,
|
||||
defaultValue: 100
|
||||
},
|
||||
balance: {
|
||||
type: DataTypes.INTEGER,
|
||||
defaultValue: 0
|
||||
},
|
||||
vip: {
|
||||
type: DataTypes.BOOLEAN,
|
||||
defaultValue: false
|
||||
}
|
||||
})
|
||||
|
||||
module.exports = AFKProperty;
|
34
models/enterprise.model.js
Normal file
34
models/enterprise.model.js
Normal file
@ -0,0 +1,34 @@
|
||||
const sequelize = require('../db');
|
||||
const {Sequelize} = require('sequelize');
|
||||
|
||||
const Enterprise = sequelize.define('enterprise', {
|
||||
name: {
|
||||
type: Sequelize.STRING, // название предприятия
|
||||
allowNull: false
|
||||
},
|
||||
resourceType: {
|
||||
type: Sequelize.STRING, // тип ресурса (дерево, металл и т.д.)
|
||||
allowNull: false
|
||||
},
|
||||
level: {
|
||||
type: Sequelize.INTEGER, // уровень предприятия
|
||||
defaultValue: 1
|
||||
},
|
||||
efficiency: {
|
||||
type: Sequelize.INTEGER, // производительность в час (единицы ресурса)
|
||||
defaultValue: 10 // начальная эффективность
|
||||
},
|
||||
warehouseCapacity: {
|
||||
type: Sequelize.INTEGER, // ёмкость склада (максимальное количество ресурса)
|
||||
defaultValue: 100
|
||||
},
|
||||
playerId: {
|
||||
type: Sequelize.INTEGER,
|
||||
references: {
|
||||
model: 'Users',
|
||||
key: 'telegram_id'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = Enterprise;
|
31
models/sales.model.js
Normal file
31
models/sales.model.js
Normal file
@ -0,0 +1,31 @@
|
||||
const sequelize = require('../db');
|
||||
const {Sequelize} = require('sequelize');
|
||||
|
||||
const Sale = sequelize.define('sale', {
|
||||
enterpriseId: {
|
||||
type: Sequelize.INTEGER,
|
||||
references: {
|
||||
model: 'Enterprises',
|
||||
key: 'id'
|
||||
}
|
||||
},
|
||||
resourceType: {
|
||||
type: Sequelize.STRING, // тип ресурса
|
||||
allowNull: false
|
||||
},
|
||||
quantity: {
|
||||
type: Sequelize.INTEGER, // количество продаваемого ресурса
|
||||
defaultValue: 0
|
||||
},
|
||||
salePrice: {
|
||||
type: Sequelize.FLOAT, // цена за единицу ресурса
|
||||
defaultValue: 100
|
||||
},
|
||||
time: {
|
||||
type: Sequelize.DATE, // время продажи
|
||||
defaultValue: Sequelize.NOW
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
module.exports = Sale;
|
40
models/warehouse.model.js
Normal file
40
models/warehouse.model.js
Normal file
@ -0,0 +1,40 @@
|
||||
const sequelize = require('../db');
|
||||
const {Sequelize} = require('sequelize');
|
||||
|
||||
const Warehouse = sequelize.define('warehouse', {
|
||||
playerId: {
|
||||
type: Sequelize.INTEGER,
|
||||
references: {
|
||||
model: 'Users',
|
||||
key: 'id'
|
||||
}
|
||||
},
|
||||
capacity: {
|
||||
type: Sequelize.INTEGER, // ёмкость общего склада
|
||||
defaultValue: 500
|
||||
},
|
||||
logisticsLevel: {
|
||||
type: Sequelize.INTEGER, // уровень логистики
|
||||
defaultValue: 1
|
||||
}
|
||||
});
|
||||
|
||||
const Truck = sequelize.define('truck', {
|
||||
warehouseId: {
|
||||
type: Sequelize.INTEGER,
|
||||
references: {
|
||||
model: 'Warehouses',
|
||||
key: 'id'
|
||||
}
|
||||
},
|
||||
capacity: {
|
||||
type: Sequelize.INTEGER, // сколько ресурсов грузовик может вывозить в час
|
||||
defaultValue: 10
|
||||
},
|
||||
efficiency: {
|
||||
type: Sequelize.INTEGER, // эффективность грузовика (на сколько быстрее он может работать)
|
||||
defaultValue: 1
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = Warehouse, Truck;
|
3004
package-lock.json
generated
3004
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -11,19 +11,14 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"canvas": "^2.11.2",
|
||||
"date-fns": "^2.30.0",
|
||||
"dotenv": "^16.3.1",
|
||||
"dotenv": "^16.4.7",
|
||||
"error-stack-parser": "^2.1.4",
|
||||
"fs": "^0.0.1-security",
|
||||
"node-telegram-bot-api": "^0.52.0",
|
||||
"nodemon": "^3.0.1",
|
||||
"pg": "^8.6.0",
|
||||
"pg-hstore": "^2.3.3",
|
||||
"pm2": "^5.3.0",
|
||||
"prettytable": "^0.3.1",
|
||||
"sequelize": "^6.6.2",
|
||||
"shortid": "^2.2.16",
|
||||
"telegraf": "^4.13.1",
|
||||
"uuid": "^9.0.1",
|
||||
"voucher-code-generator": "^1.3.0"
|
||||
|
@ -11,7 +11,7 @@ const {
|
||||
WorldModel,
|
||||
SkillsModel,
|
||||
PropertyModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spaces,
|
||||
getSlot,
|
||||
@ -19,7 +19,7 @@ const {
|
||||
rand,
|
||||
random,
|
||||
setCooldown
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/utils');
|
||||
} = require('/dev/Telegram/CampFireGameBot/utils');
|
||||
const crime = new Scenes.BaseScene('Crime');
|
||||
|
||||
crime.enter( async (ctx) => {
|
||||
|
@ -11,7 +11,7 @@ UserModel,
|
||||
WorldModel,
|
||||
SkillsModel,
|
||||
PropertyModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spaces,
|
||||
getSlot,
|
||||
@ -20,7 +20,7 @@ rand,
|
||||
random,
|
||||
setCooldown,
|
||||
drop
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/utils');
|
||||
} = require('/dev/Telegram/CampFireGameBot/utils');
|
||||
const newpve = new Scenes.BaseScene('NEWPVE');
|
||||
const resultTier = [
|
||||
{hit: 'Head', droprate: 10},
|
||||
|
@ -11,7 +11,7 @@ UserModel,
|
||||
WorldModel,
|
||||
SkillsModel,
|
||||
PropertyModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spaces,
|
||||
getSlot,
|
||||
@ -19,7 +19,7 @@ giveExp,
|
||||
rand,
|
||||
random,
|
||||
setCooldown
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/utils');
|
||||
} = require('/dev/Telegram/CampFireGameBot/utils');
|
||||
const steal = new Scenes.BaseScene('POCKET_STEAL');
|
||||
|
||||
steal.enter(async (ctx) => {
|
||||
|
@ -11,7 +11,7 @@ UserModel,
|
||||
WorldModel,
|
||||
SkillsModel,
|
||||
PropertyModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spaces,
|
||||
getSlot,
|
||||
@ -20,7 +20,7 @@ rand,
|
||||
random,
|
||||
setCooldown,
|
||||
drop
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/utils');
|
||||
} = require('/dev/Telegram/CampFireGameBot/utils');
|
||||
const pve = new Scenes.BaseScene('PVE');
|
||||
|
||||
pve.enter(async (ctx) => {
|
||||
|
@ -11,7 +11,7 @@ UserModel,
|
||||
WorldModel,
|
||||
SkillsModel,
|
||||
PropertyModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const {
|
||||
spaces,
|
||||
getSlot,
|
||||
@ -19,7 +19,7 @@ giveExp,
|
||||
rand,
|
||||
random,
|
||||
setCooldown
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/utils');
|
||||
} = require('/dev/Telegram/CampFireGameBot/utils');
|
||||
const shop = new Scenes.BaseScene('SHOP_ROBBERY');
|
||||
|
||||
bot.on('callback_query', (ctx) => {
|
||||
|
@ -5,11 +5,11 @@ const bot = new Telegraf(process.env.BOT_TOKEN)
|
||||
const {
|
||||
PromocodeModel,
|
||||
mainChat
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const voucher_codes = require('voucher-code-generator');
|
||||
const rand = require('./rand')
|
||||
const generateVoucher = require('./generateVoucher');
|
||||
const { promoTopicId } = require('../config');
|
||||
const { promoTopicId } = require('/config');
|
||||
module.exports = async () => {
|
||||
let activs = rand(1, 3)
|
||||
let give = rand(1000, 10000)
|
||||
|
@ -4,7 +4,7 @@ const {
|
||||
const bot = new Telegraf(process.env.BOT_TOKEN)
|
||||
const {
|
||||
expToUp
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play Dev/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
|
||||
|
||||
module.exports = async (user, experience) => {
|
||||
|
@ -1,8 +1,8 @@
|
||||
const spaces = require('./spaces')
|
||||
const spacesWithMarkdown = require('./spacesV2')
|
||||
const escape = require('./escape')
|
||||
const generatePromo = require('./generatePromo')
|
||||
const generateVoucher = require('./generateVoucher')
|
||||
//const generatePromo = require('./generatePromo')
|
||||
//const generateVoucher = require('./generateVoucher')
|
||||
const getCurrentTime = require('./getCurrentTime')
|
||||
const getSlot = require('./getSlot')
|
||||
const giveExp = require('./giveExp')
|
||||
@ -19,8 +19,8 @@ module.exports = {
|
||||
spaces,
|
||||
spacesWithMarkdown,
|
||||
escape,
|
||||
generatePromo,
|
||||
generateVoucher,
|
||||
//generatePromo,
|
||||
//generateVoucher,
|
||||
getCurrentTime,
|
||||
getSlot,
|
||||
giveExp,
|
||||
|
@ -1,7 +1,7 @@
|
||||
const rand = require('./rand')
|
||||
const {
|
||||
WorldModel
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
|
||||
module.exports = async () => {
|
||||
let world = await WorldModel.findByPk(1)
|
||||
|
@ -3,7 +3,7 @@ const {
|
||||
weaponshop,
|
||||
weapons,
|
||||
equipment,
|
||||
} = require('/workspace/degradin/Dev/Telegram/CampFire Play Dev/config')
|
||||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||||
const fs = require('fs');
|
||||
|
||||
module.exports = () => {
|
||||
|
Loading…
Reference in New Issue
Block a user