Casino fixes
This commit is contained in:
Degradin 2025-01-07 22:07:04 +03:00
parent 2aef26854f
commit 4108f231e7
2 changed files with 28 additions and 9 deletions

35
bot.js
View File

@ -1438,27 +1438,30 @@ const spinSlots = async (ctx, bet, user) => {
let resultMessage = `🎰 Итог:\n${finalIcons.join(' | ')}\n\n`; let resultMessage = `🎰 Итог:\n${finalIcons.join(' | ')}\n\n`;
if (winMultiplier > 0) { if (winMultiplier > 0) {
const winnings = bet * winMultiplier; const winnings = bet * winMultiplier;
utils.giveExp(user, winMultiplier*10)
user.money += winnings; user.money += winnings;
await user.save(); await user.save();
console.log(`Win: ${winnings}`)
resultMessage += `🎉 Вы выиграли ₽${spaces(winnings)}! Множитель: x${winMultiplier}`; resultMessage += `🎉 Вы выиграли ₽${spaces(winnings)}! Множитель: x${winMultiplier}`;
} else { } else {
utils.giveExp(user, 10)
user.money -= bet; user.money -= bet;
await user.save(); await user.save();
resultMessage += `💔 Вы проиграли ₽${spaces(bet)}. Попробуйте ещё раз!`; resultMessage += `💔 Вы проиграли ₽${spaces(bet)}. Попробуйте ещё раз!`;
} }
// Отправляем результат // Отправляем результат
await ctx.reply(resultMessage); await ctx.answerCbQuery(resultMessage, { show_alert: true });
}; };
// Функция для определения выигрыша // Функция для определения выигрыша
const determineWin = () => { const determineWin = () => {
const probabilities = { const probabilities = {
25: 0.01, // 1% шанс на x25 25: 0.001, // 0.01% шанс на x25
10: 0.03, // 3% шанс на x10 10: 0.009, // 0.9% шанс на x10
5: 0.06, // 6% шанс на x5 5: 0.01, // 1% шанс на x5
2: 0.1, // 10% шанс на x2 2: 0.09, // 9% шанс на x2
0: 0.8, // 80% шанс на проигрыш 0: 0.9, // 90% шанс на проигрыш
}; };
const random = Math.random(); const random = Math.random();
@ -1479,13 +1482,29 @@ const generateVisualResult = (multiplier, slotIcons) => {
if (multiplier === 10) return ['⚡', '⚡', '⚡']; if (multiplier === 10) return ['⚡', '⚡', '⚡'];
if (multiplier === 5) return ['⭐', '⭐', '⭐']; if (multiplier === 5) return ['⭐', '⭐', '⭐'];
if (multiplier === 2) return ['💀', '💀', '💀']; if (multiplier === 2) return ['💀', '💀', '💀'];
return [
// Генерация случайных иконок для проигрыша
let icons = [
slotIcons[Math.floor(Math.random() * slotIcons.length)], slotIcons[Math.floor(Math.random() * slotIcons.length)],
slotIcons[Math.floor(Math.random() * slotIcons.length)], slotIcons[Math.floor(Math.random() * slotIcons.length)],
slotIcons[Math.floor(Math.random() * slotIcons.length)], slotIcons[Math.floor(Math.random() * slotIcons.length)],
]; // Проигрыш: случайные иконки ];
// Проверка на уникальность
if (icons[0] === icons[1] && icons[1] === icons[2]) {
let newIcon;
do {
newIcon = slotIcons[Math.floor(Math.random() * slotIcons.length)];
} while (newIcon === icons[0]);
// Заменяем одну из иконок (например, третью)
icons[2] = newIcon;
}
return icons;
}; };
// Основная команда слотов // Основная команда слотов
bot.action(/slots\d+/, async (ctx) => { bot.action(/slots\d+/, async (ctx) => {
try { try {

View File

@ -8,7 +8,7 @@ const {
module.exports = async (ctx) => { module.exports = async (ctx) => {
let user = await UserModel.findByPk(ctx.from.id) let user = await UserModel.findByPk(ctx.from.id)
ctx.args = ctx.update.message.text.split(' ') ctx.args = ctx.update.message.text.split(' ')
await ctx.reply('Комбинации слотов:\n7⃣7⃣7⃣ - x25\n🍋🍋🍋 - x20\n🍇🍇🍇 - x15\n🔤🔤🔤 - x10', Markup await ctx.reply('Комбинации слотов:\n🔥🔥🔥- x25\n⚡⚡⚡ - x10\n⭐⭐⭐ - x5\n💀💀💀 - x2', Markup
.inlineKeyboard([ .inlineKeyboard([
[{ [{
text: `1000`, text: `1000`,