Загрузка...

Спомощью дпт нашел в каком файле ошибка, кто поправит код тому коментка

Тема в разделе Python создана пользователем ЛОГИН 6 дек 2024. 193 просмотра

  1. ЛОГИН
    ЛОГИН Автор темы 6 дек 2024 ЧЕКИИИ Cryptobot https://t.me/+NvxSQoHYx54xNTFi 1562 1 ноя 2023
    Уже второй день мучаюсь с кодом, кто поправит код, тому монета


    Python
    from aiogram.types import Message

    from settings import coefs
    from bot.utils import func, text
    from settings.constants import knb
    import asyncio, random
    import main
    import config
    from datetime import datetime
    import pytz
    from bot import keyboards
    import asyncio

    async def start_tasks():
    t = asyncio.create_task(check_contest())

    async def check_contest():
    while True:
    try:
    contests = main.db.get_all_contests()
    if contests:
    for contest in contests:
    contest_end_str = contest[7]
    contest_end = datetime.strptime(contest_end_str, "%d.%m.%Y %H:%M")
    current_datetime = datetime.now(pytz.timezone('Europe/Moscow'))
    if current_datetime > contest_end:
    try:
    bal = main.db.get_balance(contest[11])
    new_bal = float(bal) + float(contest[8])
    main.db.update_balance(contest[11], new_bal)
    except:
    pass

    try:
    await main.bot.send_message(contest[10], f"<b> Вы выиграли в конкурсе! +{contest[8]} USDT на ваш баланс</b>")
    except:
    pass

    await main.bot.send_message(config.MAIN_CHANNEL,
    f"<b> Конкурс №{contest[0]} завершён!</b>\n<blockquote><b>Победитель получил приз ({contest[8]}$) на баланс в нашем реф боте.</b></blockquote>",
    reply_to_message_id=contest[9])
    main.db.end_contest(contest[0])
    except:
    pass

    await asyncio.sleep(2)


    async def update_contest(user_id, username, amount):
    text = """<b>ПРИЗ ЗА САМУЮ БОЛЬШУЮ СТАВКУ ДО %end_date%
    - Победитель получит %win_amount%$ </b>

    <i>Каждый день в 21.59 МСК запускается конкурс</i>

    <b>ТОП 1</b>
    <blockquote>Игрок: %top1%
    Сумма ставки: %top1_summa%$</blockquote>

    <b>ТОП 2</b>
    <blockquote>Игрок: %top2%
    Сумма ставки: %top2_summa%$</blockquote>

    <b>ТОП 3 </b>
    <blockquote>Игрок: %top3%
    Сумма ставки: %top3_summa%$</blockquote>"""

    while True:
    try:
    contest = main.db.get_contest()

    # Initialize current top values
    top1_id, top1, top1_summa = contest[11], contest[1], contest[2]
    top2_id, top2, top2_summa = contest[12], contest[3], contest[4]
    top3_id, top3, top3_summa = contest[13], contest[5], contest[6]

    if top1 == "Пустое место":
    top1_summa = float(0)
    if top2 == "Пустое место":
    top2_summa = float(0)
    if top3 == "Пустое место":
    top3_summa = float(0)

    if amount > top1_summa:
    top3_id, top3, top3_summa = top2_id, top2, top2_summa
    top2_id, top2, top2_summa = top1_id, top1, top1_summa
    top1_id, top1, top1_summa = user_id, username, amount
    elif amount > top2_summa and top1 != username:
    top3_id, top3, top3_summa = top2_id, top2, top2_summa
    top2_id, top2, top2_summa = user_id, username, amount
    elif amount > top3_summa and top2 != username and top1 != username:
    top3_id, top3, top3_summa = user_id, username, amount

    # Update the contest table with the new values
    main.db.update_contest(
    top1_id=top1_id, top1=top1, top1_summa=top1_summa,
    top2_id=top2_id, top2=top2, top2_summa=top2_summa,
    top3_id=top3_id, top3=top3, top3_summa=top3_summa,
    contest_id=contest[0]
    )

    # Fetch updated contest details
    contest = main.db.get_contestt(contest[0])

    if contest[10] != 1:
    text = text.replace("%end_date%", str(contest[7])).replace("%win_amount%", str(contest[8]))
    text = text.replace("%top1%", str(contest[1])).replace("%top1_summa%", str(contest[2]))
    text = text.replace("%top2%", str(contest[3])).replace("%top2_summa%", str(contest[4]))
    text = text.replace("%top3%", str(contest[5])).replace("%top3_summa%", str(contest[6]))

    try:
    await main.bot.edit_message_caption(caption=text, chat_id=config.MAIN_CHANNEL, message_id=contest[9], reply_markup=keyboards.functional.create_url_button(config.CHECK_URL, 'Испытать удачу'))
    except Exception as e:
    print(e)
    pass
    else:
    main.db.del_contest(contest[0])
    pass
    except Exception as e:
    print(f"An error occurred: {e}")
    pass

    def get_lvl(total_got):
    level, percent = None, None

    if total_got < 1:
    level = 1
    percent = 7
    elif total_got >= 150 and total_got < 550:
    level = 2
    percent = 9
    elif total_got >= 550 and total_got < 1350:
    level = 3
    percent = 10.5
    elif total_got >= 1350 and total_got < 2000:
    level = 4
    percent = 11
    elif total_got >= 2000 and total_got < 5000:
    level = 5
    percent = 11.7
    elif total_got >= 5000:
    level = 6
    percent = 13.5

    return level, percent

    async def ref(user_id, stavka):
    r = main.db.get_ref(user_id)
    if r is not None:
    bal = main.db.get_balance(r)
    lvl, perc = get_lvl(main.db.get_total_got(r))
    percent = float(stavka) * (float(perc) / 100)
    new_bal = bal + percent
    main.db.update_balance(r, new_bal)
    total_got = main.db.get_total_got(r)
    new_total_got = total_got + percent
    main.db.update_total_got(r, new_total_got)

    try:
    await main.bot.send_message(r, f"<b> Выплата за проигрыш реферала! +{percent:.2f} USDT</b> <i>Доступно: {new_bal:.2f} USDT на балансе</i>")
    except:
    pass

    class GameProcess:
    def __init__(self, amount, asset, coef, user_id, username) -> None:
    self.amount = amount
    self.asset = asset
    self.coef = coef
    self.id = user_id
    self.username = username
    self.settings = main.db.get_settings()[3]
    self.podkrut = True if self.settings == 1 else False

    async def basketball_process(self, message, type = "goal", fake=False):



    msg = await main.bot.send_dice(config.MAIN_CHANNEL, emoji='')
    if self.podkrut == True:
    p = random.randint(1, 10)

    if p > 5:
    await msg.delete()
    msg = await main.bot.send_dice(config.MAIN_CHANNEL, emoji='')

    await asyncio.sleep(2)
    v=msg.dice.value
    if type == "goal":
    if v==4 or v==5:
    if fake == False: main.db.add_bet(self.id, float(self.amount*float(self.coef)), win=1)
    if fake == False: self.coef += coefs.BASKET
    await func.winner(message, self.amount, self.asset, self.coef, self.id, self.username, f"Мяч попал в кольцо", photo="basketgol.jpg", fake=fake)
    else:
    if fake == False: await ref(self.id, self.amount)
    if fake == False: main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Мяч не попал в кольцо", photo="basketmimo.jpg")
    else:
    self.coef += coefs.BASKET_MISS
    if v==3 or v==1 or v==2:
    if fake == False: main.db.add_bet(self.id, float(self.amount*float(self.coef)), win=1)
    await func.winner(message, self.amount, self.asset, self.coef, self.id, self.username, f"Мяч не попал в кольцо", photo="basketmimo.jpg", fake=fake)
    else:
    if fake == False: await ref(self.id, self.amount)
    if fake == False: main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Мяч попал в кольцо", photo="basketgol.jpg")

    async def footaball_process(self, message, type = "goal", fake=False):



    msg = await main.bot.send_dice(config.MAIN_CHANNEL, emoji='⚽')
    if self.podkrut == True:
    p = random.randint(1, 10)

    if p > 5:
    await msg.delete()
    msg = await main.bot.send_dice(config.MAIN_CHANNEL, emoji='⚽')

    await asyncio.sleep(2)
    v=msg.dice.value
    if type == "goal":
    self.coef += coefs.FOOTBALL
    if v==4 or v==5 or v==3:
    if fake == False: main.db.add_bet(self.id, float(self.amount*float(self.coef)), win=1)
    await func.winner(message, self.amount, self.asset, self.coef, self.id, self.username, f"Мяч попал в ворота", photo="gol.jpg", fake=fake)
    else:
    if fake == False: await ref(self.id, self.amount)
    if fake == False: main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Мяч не попал в ворота", photo="futmimo.jpg")
    else:
    self.coef += coefs.FOOTBALL_MISS
    if v==1 or v==2:
    main.db.add_bet(self.id, float(self.amount*float(self.coef)), win=1)
    await func.winner(message, self.amount, self.asset, self.coef, self.id, self.username, f"Мяч не попал в ворота", photo="futmimo.jpg")
    else:
    await ref(self.id, self.amount)
    main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Мяч попал в ворота", photo="gol.jpg")

    async def darts_procces(self, message, type = 'center', fake=False):



    msg = await main.bot.send_dice(config.MAIN_CHANNEL, emoji='')
    if self.podkrut == True:
    p = random.randint(1, 10)

    if p > 5:
    await msg.delete()
    msg = await main.bot.send_dice(config.MAIN_CHANNEL, emoji='')

    await asyncio.sleep(2)
    v=msg.dice.value
    if type == "w":
    self.coef += coefs.DARTS_COLOR
    if v==3 or v==5:
    main.db.add_bet(self.id, float(self.amount*float(self.coef)), win=1)
    await func.winner(message, self.amount, self.asset, self.coef, self.id, self.username, f"Попало в белое", photo="white.jpg")
    elif v == 6:
    await ref(self.id, self.amount)
    main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Попало в центр", photo="centr.jpg")
    elif v == 1:
    await ref(self.id, self.amount)
    main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Не попало", photo="drotikmimo.jpg")
    else:
    await ref(self.id, self.amount)
    main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Попало в красное", photo="red.jpg")
    elif type == "r":
    self.coef += coefs.DARTS_COLOR
    if v==4 or v==2:
    if fake == False: main.db.add_bet(self.id, float(self.amount*float(self.coef)), win=1)
    if fake == False: await func.winner(message, self.amount, self.asset, self.coef, self.id, self.username, f"Попало в красное", photo="red.jpg", fake=fake)
    elif v == 6:
    if fake == False: await ref(self.id, self.amount)
    if fake == False: main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Попало в центр", photo="centr.jpg")
    elif v == 1:
    if fake == False: await ref(self.id, self.amount)
    if fake == False: main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Не попало", photo="drotikmimo.jpg")
    else:
    if fake == False: await ref(self.id, self.amount)
    if fake == False: main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Попало в белое", photo="white.jpg")
    elif type == "miss":
    self.coef += coefs.DARTS
    if v == 1:
    main.db.add_bet(self.id, float(self.amount*float(self.coef)), win=1)
    await func.winner(message, self.amount, self.asset, self.coef, self.id, self.username, f"Не попало", photo="drotikmimo.jpg")
    elif v==3 or v==5:
    await ref(self.id, self.amount)
    main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Попало в белое", photo="white.jpg")
    elif v==4 or v==2:
    await ref(self.id, self.amount)
    main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Попало в красное", photo="red.jpg")
    else:
    await ref(self.id, self.amount)
    main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Попало в центр", photo="centr.jpg")
    else:
    self.coef += coefs.DARTS
    if v==6:
    main.db.add_bet(self.id, float(self.amount*float(self.coef)), win=1)
    await func.winner(message, self.amount, self.asset, self.coef, self.id, self.username, f"Попало в центр", photo="centr.jpg")
    elif v==3 or v==5:
    await ref(self.id, self.amount)
    main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Попало в белое", photo="white.jpg")
    elif v==4 or v==2:
    await ref(self.id, self.amount)
    main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Попало в красное", photo="red.jpg")
    elif v == 1:
    await ref(self.id, self.amount)
    main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Не попало", photo="drotikmimo.jpg")

    async def dice_procces(self, message, type, n = None, fake=False):



    if type not in ['2more', '2less']:
    msg = await main.bot.send_dice(config.MAIN_CHANNEL, emoji='')
    if self.podkrut == True:
    p = random.randint(1, 10)

    if p > 5:
    await msg.delete()
    msg = await main.bot.send_dice(config.MAIN_CHANNEL, emoji='')
    else:
    msg = await main.bot.send_dice(config.MAIN_CHANNEL, emoji='')
    if self.podkrut == True:
    p = random.randint(1, 10)

    if p > 5:
    await msg.delete()
    msg = await main.bot.send_dice(config.MAIN_CHANNEL, emoji='')

    msg2 = await main.bot.send_dice(config.MAIN_CHANNEL, emoji='')
    if self.podkrut == True:
    p = random.randint(1, 10)

    if p > 5:
    await msg.delete()
    msg = await main.bot.send_dice(config.MAIN_CHANNEL, emoji='')

    v2 = msg2.dice.value

    await asyncio.sleep(2)
    v = msg.dice.value
    if type == "2more":
    count_more = 0
    if v > 3: count_more += 1
    if v2 > 3: count_more += 1

    self.coef += coefs.MORE2

    if count_more == 2:
    main.db.add_bet(self.id, float(self.amount*float(self.coef)), win=1)
    await func.winner(message, self.amount, self.asset, self.coef, self.id, self.username, f"Выпало {count_more} больше")
    else:
    await ref(self.id, self.amount)
    main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f'Выпало {count_more} больше', 'lose.jpg')
    elif type == '2less':
    count_less = 0
    if v < 4: count_less += 1
    if v2 < 4: count_less += 1

    self.coef += coefs.LESS2

    if count_less == 2:
    main.db.add_bet(self.id, float(self.amount*float(self.coef)), win=1)
    await func.winner(message, self.amount, self.asset, self.coef, self.id, self.username, f"Выпало {count_less} меньше")
    else:
    await ref(self.id, self.amount)
    main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Выпало {count_less} меньше", 'lose.jpg')
    elif type == "number":
    self.coef += coefs.DICE_NUMBER
    if n == v:
    main.db.add_bet(self.id, float(self.amount*float(self.coef)), win=1)
    await func.winner(message, self.amount, self.asset, self.coef, self.id, self.username, f"Выпало значение [{v}]", photo="win.jpg")
    else:
    await ref(self.id, self.amount)
    main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Выпало значение [{v}]", photo="lose.jpg")
    elif type == "sector1":
    self.coef += coefs.SECTOR
    if v in [1, 2]:
    main.db.add_bet(self.id, float(self.amount*float(self.coef)), win=1)
    await func.winner(message, self.amount, self.asset, self.coef, self.id, self.username,
    f"Выпал первый сектор [{v}]",
    photo="s1.jpg")
    elif v in [3, 4]:
    await ref(self.id, self.amount)
    main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message,
    f"Выпал второй сектор [{v}]",
    photo="s2.jpg")
    elif v in [5, 6]:
    await ref(self.id, self.amount)
    main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message,
    f"Выпал третий сектор [{v}]",
    photo="s3.jpg")
    elif type == "sector2":
    self.coef += coefs.SECTOR
    if v in [1, 2]:
    await ref(self.id, self.amount)
    main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message,
    f"Выпал первый сектор [{v}]",
    photo="s1.jpg")
    if v in [3, 4]:
    main.db.add_bet(self.id, float(self.amount*float(self.coef)), win=1)
    await func.winner(message, self.amount, self.asset, self.coef, self.id, self.username,
    f"Выпал второй сектор [{v}]",
    photo="s2.jpg")
    elif v in [5, 6]:
    await ref(self.id, self.amount)
    main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message,
    f"Выпал третий сектор [{v}]",
    photo="s3.jpg")
    elif type == "sector3":
    self.coef += coefs.SECTOR
    if v in [1, 2]:
    await ref(self.id, self.amount)
    main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message,
    f"Выпал первый сектор [{v}]",
    photo="s1.jpg")
    elif v in [3, 4]:
    await ref(self.id, self.amount)
    main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message,
    f"Выпал второй сектор [{v}]",
    photo="s2.jpg")
    if v in [5, 6]:
    main.db.add_bet(self.id, float(self.amount*float(self.coef)), win=1)
    await func.winner(message, self.amount, self.asset, self.coef, self.id, self.username,
    f"Выпал третий сектор [{v}]",
    photo="s3.jpg")
    elif type == "even":
    self.coef += coefs.DICE
    if v == 2 or v == 4 or v==6:
    if fake == False: main.db.add_bet(self.id, float(self.amount*float(self.coef)), win=1)
    await func.winner(message, self.amount, self.asset, self.coef, self.id, self.username, f"Выпало четное значение [{v}]", photo="chet.jpg", fake=fake)
    else:
    if fake == False: await ref(self.id, self.amount)
    if fake == False: main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Выпало нечетное значение [{v}]", photo="nechet.jpg")
    elif type == "odd":
    self.coef += coefs.DICE
    v = msg.dice.value
    if v == 1 or v == 3 or v==5:
    if fake == False: main.db.add_bet(self.id, float(self.amount*float(self.coef)), win=1)
    await func.winner(message, self.amount, self.asset, self.coef, self.id, self.username, f"Выпало нечетное значение [{v}]", photo="nechet.jpg", fake=fake)
    else:
    if fake == False: await ref(self.id, self.amount)
    if fake == False: main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Выпало четное значение [{v}]", photo="chet.jpg")
    elif type == "more":
    self.coef += coefs.DICE_MORE_LESS
    v = msg.dice.value
    v= msg.dice.value
    if v == 4 or v == 5 or v==6:
    if fake == False: main.db.add_bet(self.id, float(self.amount*float(self.coef)), win=1)
    await func.winner(message, self.amount, self.asset, self.coef, self.id, self.username, f"Выпало значение больше [{v}]", photo="bolshe.jpg", fake=fake)
    else:
    if fake == False: await ref(self.id, self.amount)
    if fake == False: main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Выпало значение меньше [{v}]", photo="menshe.jpg")
    elif type == "less":
    self.coef += coefs.DICE_MORE_LESS
    v = msg.dice.value
    v= msg.dice.value
    if v == 1 or v == 2 or v==3:
    if fake == False: main.db.add_bet(self.id, float(self.amount*float(self.coef)), win=1)
    await func.winner(message, self.amount, self.asset, self.coef, self.id, self.username, f"Выпало значение меньше [{v}]", photo="menshe.jpg", fake=fake)
    else:
    if fake == False: await ref(self.id, self.amount)
    if fake == False: main.db.add_bet(self.id, self.amount, lose=1)
    await func.looser(message, f"Выпало значение больше [{v}]", photo="bolshe.jpg")

    async def duel_number_process(self, message, num, game = '', textes = ["первого кубика", "второго кубика", "ничьи кубиков"], fake=False):



    if num < 3:
    self.coef += coefs.DUEL
    else:
    self.coef += coefs.DRAW
    cub1 = await main.bot.send_dice(config.MAIN_CHANNEL)
    if self.podkrut == True:
    p = random.randint(1, 10)

    if p > 5:
    await cub1.delete()
    cub1 = await main.bot.send_dice(config.MAIN_CHANNEL)

    cub2 = await main.bot.send_dice(config.MAIN_CHANNEL)
    if self.podkrut == True:
    p = random.randint(1, 10)

    if p > 5:
    await cub2.delete()
    cub2 = await main.bot.send_dice(config.MAIN_CHANNEL)

    msguser = cub1
    msgbot = cub2

    await asyncio.sleep(2)
    if msguser.dice.value > msgbot.dice.value:
    if num == 1:
    if fake == False: main.db.add_bet(self.id, float(self.amount*float(self.coef)), win=1)
    photo = 'win1.jpg' if game == '' else "win.jpg"
    add = textes[0] if msguser.dice.value > msgbot.dice.value else textes[1] if msguser.dice.value < msgbot.dice.value else textes[2]
    await func.winner(message, self.amount, self.asset, self.coef, self.id, self.username, f"Игра закрыта со счётом [{msguser.dice.value}:{msgbot.dice.value}] в пользу {add}", photo, 'c', fake=fake)
    elif num > 2:
    if fake == False: await ref(self.id, self.amount)
    if fake == False: main.db.add_bet(self.id, self.amount, lose=1)
    photo = 'win1.jpg' if msguser.dice.value > msgbot.dice.value else 'win2.jpg' if msguser.dice.value < msgbot.dice.value else 'draw.jpg'
    add = textes[0] if msguser.dice.value > msgbot.dice.value else textes[1] if msguser.dice.value < msgbot.dice.value else textes[2]
    await func.looser(message, f"Игра закрыта со счётом [{msguser.dice.value}:{msgbot.dice.value}] в пользу {add}")
    else:
    if fake == False: await ref(self.id, self.amount)
    if fake == False: main.db.add_bet(self.id, float(self.amount*floa
     
  2. ЛОГИН
    ЛОГИН Автор темы 6 дек 2024 ЧЕКИИИ Cryptobot https://t.me/+NvxSQoHYx54xNTFi 1562 1 ноя 2023
    Ошибка:
    ⁡Task exception was never retrievedfuture: <Task finished name='Task-5' coro=<check_queue() done, defined at C:\Users\Administrator\Desktop\casic\bot\handlers\game.py:37> exception=TypeError("float() argument must be a string or a real number, not 'NoneType'")>Traceback (most recent call last): File "C:\Users\Administrator\Desktop\casic\bot\handlers\game.py", line 48, in check_queue await handle_bet(q[1], 'USDT', q[2], q[3], q[4], q[5]) File "C:\Users\Administrator\Desktop\casic\bot\handlers\game.py", line 84, in handle_bet await gp.dice_procces(message.message_id, 'even', fake=fake) File "C:\Users\Administrator\Desktop\casic\bot\utils\game_process.py", line 455, in dice_procces if fake == False: await ref(self.id, self.amount) File "C:\Users\Administrator\Desktop\casic\bot\utils\game_process.py", line 151, in ref percent = float(stavka) * (float(perc) / 100)TypeError: float() argument must be a string or a real number, not 'NoneType'
     
    1. Посмотреть предыдущие комментарии (1)
    2. лудорас
      ЛОГИН,
      Python
      Ошибка указывает на то, что в функции `ref` переменная `perc` имеет значение `None`, и это приводит к ошибке при попытке преобразования её в `float`. Чтобы исправить это, нужно удостовериться, что `get_lvl` всегда возвращает корректные значения для уровня (`level`) и процента (`percent`).

      ### Исправленный код:
      Добавим проверку и корректную обработку случаев, когда `get_lvl` возвращает `None`.

      ```python
      def get_lvl(total_got):
      level, percent = None, None

      if total_got < 1:
      level = 1
      percent = 7
      elif total_got >= 150 and total_got < 550:
      level = 2
      percent = 9
      elif total_got >= 550 and total_got < 1350:
      level = 3
      percent = 10.5
      elif total_got >= 1350 and total_got < 2000:
      level = 4
      percent = 11
      elif total_got >= 2000 and total_got < 5000:
      level = 5
      percent = 11.7
      elif total_got >= 5000:
      level = 6
      percent = 13.5

      # Добавим обработку значения по умолчанию
      if percent is None:
      percent = 0
      return level, percent
      ```

      ### Дополнительные изменения в функции `ref`:
      Добавим проверку значений `stavka` и `percent`, чтобы избежать подобных ошибок в будущем.

      ```python
      async def ref(user_id, stavka):
      r = main.db.get_ref(user_id)
      if r is not None:
      bal = main.db.get_balance(r)
      lvl, perc = get_lvl(main.db.get_total_got(r))

      # Проверяем значение perc
      if perc is None:
      perc = 0

      # Проверяем значение stavka
      if stavka is None:
      stavka = 0

      try:
      percent = float(stavka) * (float(perc) / 100)
      except (ValueError, TypeError):
      percent = 0 # Защита от ошибок

      new_bal = bal + percent
      main.db.update_balance(r, new_bal)
      total_got = main.db.get_total_got(r)
      new_total_got = total_got + percent
      main.db.update_total_got(r, new_total_got)

      try:
      await main.bot.send_message(r, f"<b> Выплата за проигрыш реферала! +{percent:.2f} USDT</b> <i>Доступно: {new_bal:.2f} USDT на балансе</i>")
      except Exception as e:
      print(f"Error sending message to referrer: {e}")
      ```

      ### Причина ошибки:
      Ошибка возникает из-за того, что `get_lvl` не всегда возвращает значение `percent`, если условия не совпадают с предоставленным диапазоном. Проверки и значения по умолчанию предотвращают подобные ошибки.
    3. ЛОГИН Автор темы
    4. Посмотреть следующие комментарии (1)
  3. AS7RID
    AS7RID 6 дек 2024 в статус ставить - https://t.me/Kanalchik_alexa :rooster_talk: 13 861 11 июн 2019
    Ты создаешь уже четвертую блядь тему. Ошибка в том, что stavka и/или perc являются None, а float(None) раисает ошибку.
    ИДИ в раздел проги и купи доработку за usd, не сри в этом разделе :finger_down:
    https://lolz.live/forums/910/
     
Top
Загрузка...