This commit is contained in:
Degradin 2023-09-24 02:57:19 +03:00
parent 5b2a2b3ff9
commit a9c5e6b966
2 changed files with 219 additions and 139 deletions

318
index.js
View File

@ -217,24 +217,21 @@ bot.hears('🎁 Бонус', async (ctx) => {
user.bonustime = cooldown.endTime user.bonustime = cooldown.endTime
let world = await WorldModel.findByPk(1) let world = await WorldModel.findByPk(1)
let text = ``; let text = ``;
let count = rand(2, 3) let money = [100, 200, 300, 400, 500, 1000].random();
for (i = 0; i < count; i++) { if (user.level >= 5) {
let money = [100, 200, 300, 400, 500, 1000].random(); money += money;
if (user.level >= 1) {
money += money;
}
let r = rand(1, 2);
if (r == 1) {
user.money += money;
world.balance -= money
text += `⏩ ¤${money}\n`;
}
if (r == 2) {
user.money += money * 2;
world.balance -= money * 2
text += `⏩ ¤${money*2}\n`;
}
} }
let r = rand(1, 2);
let x = rand(2, 7);
if (r == 1) {
text += `⏩ ¤${money}\n`;
}
if (r == 2) {
money = money*x
text += `⏩ ¤${money}\n`;
}
user.money += money;
world.balance -= money
if (user.business.id == 0){ if (user.business.id == 0){
await user.save(); await user.save();
await world.save(); await world.save();
@ -322,17 +319,130 @@ bot.hears('📞 Пригласить', async (ctx) => {
bot.hears('📢 Вакансии', async (ctx) => { bot.hears('📢 Вакансии', async (ctx) => {
return await ctx.reply('Список работы', Markup return await ctx.reply('Список работы', Markup
.keyboard([ .inlineKeyboard([
['Дворник', 'Промоутер'], // Row1 with 2 buttons [{
['Официант', 'Бармен'], // Row2 with 2 buttons text: `Дворник [1 уровень]`,
['Кассир', 'ПВЗ Дикие Ягоды', 'Слесарь'], callback_data: 'job_1'
['💤 Уволиться', '▶️ Меню'] // Row3 with 3 buttons }, {
text: `Промоутер [1 уровень]`,
callback_data: 'job_2'
}], [{
text: `Официант [2 уровень]`,
callback_data: 'job_3'
}, {
text: `Бармен [3 уровень]`,
callback_data: 'job_4'
}], [{
text: `Кассир [4 уровень] `,
callback_data: 'job_5'
}, {
text: `ПВЗ Дикие Ягоды [4 уровень]`,
callback_data: 'job_6'
}], [{
text: `Слесарь [5 уровень]`,
callback_data: 'job_7'
}], [{
text: `💤 Уволиться`,
callback_data: 'job_leave'
}]
]) ])
.oneTime() .oneTime()
.resize() .resize()
) )
}) })
bot.action(/job_(1|2|3|4|5|6|7|leave)/, async (ctx) => {
let data = ctx.update.callback_query.data;
let user = await UserModel.findByPk(ctx.from.id);
let job = null
switch(data){
case `job_1`:
job = await JobModel.findByPk(1);
if (user.level < job.level) {
return await ctx.reply(`У вас не хватает уровня для этой работы.`)
}
if (user.job == 0) {
user.job = 1
user.save()
return await ctx.reply(`Вы устроились на работу дворником. \nВаш оклад: ¤${job.salary}\nПриступайте к работе командой "Работать"`)
}
return await ctx.reply(`Вы уже устроены на другую работу`)
case `job_2`:
job = await JobModel.findByPk(2);
if (user.level < job.level) {
return await ctx.reply(`У вас не хватает уровня для этой работы.`)
}
if (user.job == 0) {
user.job = 2
user.save()
return await ctx.reply(`Вы устроились на работу промоутером. \nВаш оклад: ¤${job.salary}\nПриступайте к работе командой "Работать"`)
}
return await ctx.reply(`Вы уже устроены на другую работу`)
case `job_3`:
job = await JobModel.findByPk(3);
if (user.level < job.level) {
return await ctx.reply(`У вас не хватает уровня для этой работы.`)
}
if (user.job == 0) {
user.job = 3
user.save()
return await ctx.reply(`Вы устроились на работу официантом. \nВаш оклад: ¤${job.salary}\nПриступайте к работе командой "Работать"`)
}
return await ctx.reply(`Вы уже устроены на другую работу`)
case `job_4`:
job = await JobModel.findByPk(4);
if (user.level < job.level) {
return await ctx.reply(`У вас не хватает уровня для этой работы.`)
}
if (user.job == 0) {
user.job = 4
user.save()
return await ctx.reply(`Вы устроились на работу барменом. \nВаш оклад: ¤${job.salary}\nПриступайте к работе командой "Работать"`)
}
return await ctx.reply(`Вы уже устроены на другую работу`)
case `job_5`:
job = await JobModel.findByPk(5);
if (user.level < job.level) {
return await ctx.reply(`У вас не хватает уровня для этой работы.`)
}
if (user.job == 0) {
user.job = 5
user.save()
return await ctx.reply(`Вы устроились на работу кассир. \nВаш оклад: ¤${job.salary}\nПриступайте к работе командой "Работать"`)
}
return await ctx.reply(`Вы уже устроены на другую работу`)
case `job_6`:
job = await JobModel.findByPk(6);
if (user.level < job.level) {
return await ctx.reply(`У вас не хватает уровня для этой работы.`)
}
if (user.job == 0) {
user.job = 6
user.save()
return await ctx.reply(`Вы устроились на работу в ПВЗ Дикие Ягоды. \nВаш оклад: ¤${job.salary}\nПриступайте к работе командой "Работать"`)
}
return await ctx.reply(`Вы уже устроены на другую работу`)
case `job_7`:
job = await JobModel.findByPk(7);
if (user.level < job.level) {
return await ctx.reply(`У вас не хватает уровня для этой работы.`)
}
if (user.job == 0) {
user.job = 7
user.save()
return await ctx.reply(`Вы устроились на работу слесарем. \nВаш оклад: ¤${job.salary}\nПриступайте к работе командой "Работать"`)
}
return await ctx.reply(`Вы уже устроены на другую работу`)
case `job_leave`:
if (user.job != 0) {
user.job = 0
user.save()
return await ctx.reply(`Теперь вы безработный.`)
}
return await ctx.reply(`Вы итак безработный.`)
}
})
bot.hears('🏯 Казино', async (ctx) => { bot.hears('🏯 Казино', async (ctx) => {
return await ctx.reply('Добро пожаловать в казино "杜明"\n', Markup return await ctx.reply('Добро пожаловать в казино "杜明"\n', Markup
.keyboard([ .keyboard([
@ -344,103 +454,6 @@ bot.hears('🏯 Казино', async (ctx) => {
) )
}) })
bot.hears('Дворник', async (ctx) => {
let user = await UserModel.findByPk(ctx.from.id);
let job = await JobModel.findByPk(1);
if (user.level < job.level) {
return await ctx.reply(`У вас не хватает уровня для этой работы.`)
}
if (user.job == 0) {
user.job = 1
user.save()
return await ctx.reply(`Вы устроились на работу дворником. \nВаш оклад: ¤${job.salary}\nПриступайте к работе командой "Работать"`)
}
return await ctx.reply(`Вы уже устроены на другую работу`)
})
bot.hears('Промоутер', async (ctx) => {
let user = await UserModel.findByPk(ctx.from.id);
let job = await JobModel.findByPk(2);
if (user.level < job.level) {
return await ctx.reply(`У вас не хватает уровня для этой работы.`)
}
if (user.job == 0) {
user.job = 2
user.save()
return await ctx.reply(`Вы устроились на работу промоутером. \nВаш оклад: ¤${job.salary}\nПриступайте к работе командой "Работать"`)
}
return await ctx.reply(`Вы уже устроены на другую работу`)
})
bot.hears('Официант', async (ctx) => {
let user = await UserModel.findByPk(ctx.from.id);
let job = await JobModel.findByPk(3);
if (user.level < job.level) {
return await ctx.reply(`У вас не хватает уровня для этой работы.`)
}
if (user.job == 0) {
user.job = 3
user.save()
return await ctx.reply(`Вы устроились на работу официантом. \nВаш оклад: ¤${job.salary}\nПриступайте к работе командой "Работать"`)
}
return await ctx.reply(`Вы уже устроены на другую работу`)
})
bot.hears('Бармен', async (ctx) => {
let user = await UserModel.findByPk(ctx.from.id);
let job = await JobModel.findByPk(4);
if (user.level < job.level) {
return await ctx.reply(`У вас не хватает уровня для этой работы.`)
}
if (user.job == 0) {
user.job = 4
user.save()
return await ctx.reply(`Вы устроились на работу барменом. \nВаш оклад: ¤${job.salary}\nПриступайте к работе командой "Работать"`)
}
return await ctx.reply(`Вы уже устроены на другую работу`)
})
bot.hears('Слесарь', async (ctx) => {
let user = await UserModel.findByPk(ctx.from.id);
let job = await JobModel.findByPk(7);
if (user.level < job.level) {
return await ctx.reply(`У вас не хватает уровня для этой работы.`)
}
if (user.job == 0) {
user.job = 7
user.save()
return await ctx.reply(`Вы устроились на работу слесарем. \nВаш оклад: ¤${job.salary}\nПриступайте к работе командой "Работать"`)
}
return await ctx.reply(`Вы уже устроены на другую работу`)
})
bot.hears('Кассир', async (ctx) => {
let user = await UserModel.findByPk(ctx.from.id);
let job = await JobModel.findByPk(5);
if (user.level < job.level) {
return await ctx.reply(`У вас не хватает уровня для этой работы.`)
}
if (user.job == 0) {
user.job = 5
user.save()
return await ctx.reply(`Вы устроились на работу кассир. \nВаш оклад: ¤${job.salary}\nПриступайте к работе командой "Работать"`)
}
return await ctx.reply(`Вы уже устроены на другую работу`)
})
bot.hears('ПВЗ Дикие Ягоды', async (ctx) => {
let user = await UserModel.findByPk(ctx.from.id);
let job = await JobModel.findByPk(6);
if (user.level < job.level) {
return await ctx.reply(`У вас не хватает уровня для этой работы.`)
}
if (user.job == 0) {
user.job = 6
user.save()
return await ctx.reply(`Вы устроились на работу в ПВЗ Дикие Ягоды. \nВаш оклад: ¤${job.salary}\nПриступайте к работе командой "Работать"`)
}
return await ctx.reply(`Вы уже устроены на другую работу`)
})
bot.hears('🗄️ Работать', async (ctx) => { bot.hears('🗄️ Работать', async (ctx) => {
let user = await UserModel.findByPk(ctx.from.id); let user = await UserModel.findByPk(ctx.from.id);
let job = await JobModel.findByPk(user.job); let job = await JobModel.findByPk(user.job);
@ -736,6 +749,7 @@ bot.command('buy', async (ctx) => {
} }
if (ctx.args[1] == "car") { if (ctx.args[1] == "car") {
if (user.money < cars[ctx.args[2]].price) return await ctx.reply(`У вас недостаточно средств!`) if (user.money < cars[ctx.args[2]].price) return await ctx.reply(`У вас недостаточно средств!`)
if (property.car.name) return await ctx.reply(`У вас уже есть автомобиль.`)
user.money -= cars[ctx.args[2]].price user.money -= cars[ctx.args[2]].price
world.balance += cars[ctx.args[2]].price world.balance += cars[ctx.args[2]].price
property.car = cars[ctx.args[2]] property.car = cars[ctx.args[2]]
@ -746,6 +760,7 @@ bot.command('buy', async (ctx) => {
} }
if (ctx.args[1] == "phone") { if (ctx.args[1] == "phone") {
if (user.money < phones[ctx.args[2]].price) return await ctx.reply(`У вас недостаточно средств!`) if (user.money < phones[ctx.args[2]].price) return await ctx.reply(`У вас недостаточно средств!`)
if (property.phone.name) return await ctx.reply(`У вас уже есть телефон.`)
user.money -= phones[ctx.args[2]].price user.money -= phones[ctx.args[2]].price
world.balance += phones[ctx.args[2]].price world.balance += phones[ctx.args[2]].price
property.mobile = phones[ctx.args[2]] property.mobile = phones[ctx.args[2]]
@ -757,6 +772,7 @@ bot.command('buy', async (ctx) => {
if (ctx.args[1] == "equipment") { if (ctx.args[1] == "equipment") {
if (user.money < weaponshop[ctx.args[2]].price) return await ctx.reply(`У вас недостаточно средств!`) if (user.money < weaponshop[ctx.args[2]].price) return await ctx.reply(`У вас недостаточно средств!`)
if (ctx.args[1] == weaponshop[ctx.args[2]].type) { if (ctx.args[1] == weaponshop[ctx.args[2]].type) {
if (property.equipment.name) return await ctx.reply(`У вас уже есть экипировка.`)
user.money -= weaponshop[ctx.args[2]].price user.money -= weaponshop[ctx.args[2]].price
world.balance += weaponshop[ctx.args[2]].price world.balance += weaponshop[ctx.args[2]].price
property.equipment = weaponshop[ctx.args[2]] property.equipment = weaponshop[ctx.args[2]]
@ -765,6 +781,7 @@ bot.command('buy', async (ctx) => {
await property.save() await property.save()
return await ctx.reply(`Вы купили ${weaponshop[ctx.args[2]].name}`) return await ctx.reply(`Вы купили ${weaponshop[ctx.args[2]].name}`)
} }
if (property.weapon.name) return await ctx.reply(`У вас уже есть оружие.`)
user.money -= weaponshop[ctx.args[2]].price user.money -= weaponshop[ctx.args[2]].price
world.balance += weaponshop[ctx.args[2]].price world.balance += weaponshop[ctx.args[2]].price
property.weapon = weaponshop[ctx.args[2]] property.weapon = weaponshop[ctx.args[2]]
@ -776,6 +793,69 @@ bot.command('buy', async (ctx) => {
return await ctx.reply(`Вы купили.`) return await ctx.reply(`Вы купили.`)
}) })
bot.command('sell', async (ctx) => {
ctx.args = ctx.update.message.text.split(' ')
let user = await UserModel.findByPk(ctx.from.id)
let property = await PropertyModel.findByPk(ctx.from.id);
let world = await WorldModel.findByPk(1)
if (!ctx.args[1]) return ctx.reply(`Не указан аргумент.`)
if (ctx.args[1] == "house") {
if (!property.house.name) return await ctx.reply(`У вас нет дома.`)
let name = property.house.name
user.money += Math.round(property.house.price/2)
world.balance -= Math.round(property.house.price/2)
property.house = 0
await user.save()
await world.save()
await property.save()
return await ctx.reply(`Вы продали ${name}`)
}
if (ctx.args[1] == "car") {
if (!property.car.name) return await ctx.reply(`У вас нет автомобиля.`)
let name = property.car.name
user.money += Math.round(property.car.price/2)
world.balance -= Math.round(property.car.price/2)
property.car = 0
await user.save()
await world.save()
await property.save()
return await ctx.reply(`Вы продали ${name}`)
}
if (ctx.args[1] == "phone") {
if (!property.phone.name) return await ctx.reply(`У вас нет телефона.`)
let name = property.phone.name
user.money += Math.round(property.phone.price/2)
world.balance -= Math.round(property.phone.price/2)
property.phone = 0
await user.save()
await world.save()
await property.save()
return await ctx.reply(`Вы продали ${name}`)
}
if (ctx.args[1] == "equipment") {
if (!property.equipment.name) return await ctx.reply(`У вас нет экипировки.`)
let name = property.equipment.name
user.money += Math.round(property.equipment.price/2)
world.balance -= Math.round(property.equipment.price/2)
property.equipment = 0
await user.save()
await world.save()
await property.save()
return await ctx.reply(`Вы продали ${name}`)
}
if (ctx.args[1] == "weapon") {
if (!property.weapon.name) return await ctx.reply(`У вас нет оружия.`)
let name = property.weapon.name
user.money += Math.round(property.weapon.price/2)
world.balance -= Math.round(property.weapon.price/2)
property.weapon = 0
await user.save()
await world.save()
await property.save()
return await ctx.reply(`Вы продали ${name}`)
}
})
bot.hears('🌐 Организация', async (ctx) => { bot.hears('🌐 Организация', async (ctx) => {
let user = await UserModel.findByPk(ctx.from.id) let user = await UserModel.findByPk(ctx.from.id)
if (user.business.id == 0) return await ctx.reply(`Вы не состоите в организации.`) if (user.business.id == 0) return await ctx.reply(`Вы не состоите в организации.`)

View File

@ -1,51 +1,51 @@
{ {
"0": { "0": {
"name": "MP5",
"price": 1000,
"type": "weapon"
},
"1": {
"name": "Glock",
"price": 1000,
"type": "weapon"
},
"2": {
"name": "Deagle", "name": "Deagle",
"price": 1000, "price": 1000,
"type": "weapon" "type": "weapon"
}, },
"1": {
"name": "AK-47",
"price": 1000,
"type": "weapon"
},
"2": {
"name": "SCAR-H",
"price": 1000,
"type": "weapon"
},
"3": { "3": {
"name": "MP5", "name": "SCAR-H",
"price": 1000, "price": 1000,
"type": "weapon" "type": "weapon"
}, },
"4": { "4": {
"name": "Glock", "name": "Five-Seven",
"price": 1000, "price": 1000,
"type": "weapon" "type": "weapon"
}, },
"5": { "5": {
"name": "Кольчуга",
"price": 1000,
"type": "equipment"
},
"6": {
"name": "Наколенники", "name": "Наколенники",
"price": 1000, "price": 1000,
"type": "equipment" "type": "equipment"
}, },
"7": { "6": {
"name": "Бронежилет M6", "name": "Бронежилет M6",
"price": 1000, "price": 1000,
"type": "equipment" "type": "equipment"
}, },
"7": {
"name": "Бронежилет M4",
"price": 1000,
"type": "equipment"
},
"8": { "8": {
"name": "Бронежилет M5", "name": "Шлем танкиста",
"price": 1000, "price": 1000,
"type": "equipment" "type": "equipment"
}, },
"9": { "9": {
"name": "Картонные накладки", "name": "Бронежилет M5",
"price": 1000, "price": 1000,
"type": "equipment" "type": "equipment"
} }