Исходник Другое Бот ТГ Развивалка

rvgvkk46.dll

Новичок
Автор темы
27
9
Писал бота тг
Простая развивалка
Майнинг Ферма / Дача / Информация
Код очень простой лень его доделывать такой можно взять под основу бота
И доделать его, и получить хорошего бота


main:
import logging
from aiogram import Bot, Dispatcher, types
from aiogram.filters import Command
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
from aiogram.utils.keyboard import ReplyKeyboardBuilder
from aiogram import F


API_TOKEN = ''

# Логирование
logging.basicConfig(level=logging.INFO)


bot = Bot(token=API_TOKEN)
dp = Dispatcher()

# Хранилище
users_data = {}

# Клавиатура
def get_main_menu():
    keyboard = ReplyKeyboardBuilder()
    keyboard.button(text='Моя информация')
    keyboard.button(text='Майнинг ферма')
    keyboard.button(text='Дача')
    keyboard.button(text='Заработать деньги')
    return keyboard.as_markup(resize_keyboard=True)

def init_user(user_id):
    if user_id not in users_data:
        users_data[user_id] = {
            'balance': 1000,
            'farms': 0,
            'houses': 0,
            'farm_income': 10,
            'house_income': 50,
            'farm_price': 500,
            'house_price': 1000
        }


@dp.message(Command("start"))
async def send_welcome(message: types.Message):
    init_user(message.from_user.id)
    await message.answer(f"Привет, {message.from_user.first_name}! Добро пожаловать в экономическую игру. У тебя на счету 1000 монет.", reply_markup=get_main_menu())


@dp.message(F.text == 'Моя информация')
async def show_info(message: types.Message):
    user_id = message.from_user.id
    init_user(user_id)
    data = users_data[user_id]
    await message.answer(
        f"Твой баланс: {data['balance']} монет\n"
        f"Майнинг ферм: {data['farms']} (доход {data['farm_income']} монет в час с каждой)\n"
        f"Дач: {data['houses']} (доход {data['house_income']} монет в час с каждой)"
    )

@dp.message(F.text == 'Майнинг ферма')
async def mining_farm(message: types.Message):
    user_id = message.from_user.id
    init_user(user_id)
    data = users_data[user_id]
  
    if data['balance'] >= data['farm_price']:
        data['balance'] -= data['farm_price']
        data['farms'] += 1
        data['farm_price'] += 200  # Увеличиваем цену на следующую ферму
        await message.answer(f"Ты купил майнинг ферму! Теперь у тебя {data['farms']} ферм(ы). Следующая ферма стоит {data['farm_price']} монет.")
    else:
        await message.answer(f"У тебя недостаточно средств для покупки фермы. Текущая цена фермы: {data['farm_price']} монет.")


@dp.message(F.text == 'Дача')
async def buy_house(message: types.Message):
    user_id = message.from_user.id
    init_user(user_id)
    data = users_data[user_id]
  
    if data['balance'] >= data['house_price']:
        data['balance'] -= data['house_price']
        data['houses'] += 1
        data['house_price'] += 500  # Увеличиваем цену на следующую дачу
        await message.answer(f"Ты купил дачу! Теперь у тебя {data['houses']} дач(и). Следующая дача стоит {data['house_price']} монет.")
    else:
        await message.answer(f"У тебя недостаточно средств для покупки дачи. Текущая цена дачи: {data['house_price']} монет.")

@dp.message(F.text == 'Заработать деньги')
async def earn_money(message: types.Message):
    user_id = message.from_user.id
    init_user(user_id)
    data = users_data[user_id]
  

    income = data['farms'] * data['farm_income'] + data['houses'] * data['house_income']
    if income > 0:
        data['balance'] += income
        await message.answer(f"Ты заработал {income} монет! Твой текущий баланс: {data['balance']} монет.")
    else:
        await message.answer("У тебя пока нет ни ферм, ни дач для получения дохода.")


async def main():
    await dp.start_polling(bot)

if __name__ == '__main__':
    import asyncio
    asyncio.run(main())

Не пишите что код дерьмо я сказал что это легкий скрипт и под предназначен как под основоу его надо делать чтоб он был нормальный