• Blender 4.1 На рендере свет отличается?

    @LxneSamurai Автор вопроса
    paran0id, с рендером Иви такая же практически история. Весь свет куда-то пропадает
    лево - лейаут, право - рендер
    66229ee12a5b5622859355.jpeg
    Написано
  • Blender 4.1 На рендере свет отличается?

    @LxneSamurai Автор вопроса
    paran0id, попробовал, всё равно будто более тёмное на рендере выходит
    Написано
  • Disnake.py, как настроить SelectMenu?

    @LxneSamurai Автор вопроса
    fenrir, благодарю за ответ!)
  • Disnake.py, как настроить SelectMenu?

    @LxneSamurai Автор вопроса
    fenrir, всё работает, спасибо за совет. Последний вопрос: для того, чтобы задать каждому из вариантов в SelectMenu свой "уникальный айди" необходимо использовать value, верно?

    disnake.SelectOption(
                    label="", value="1", description="", emoji=""
                ),
    disnake.SelectOption(
                    label="", value="2", description="", emoji=""
                ),
  • Disnake.py, как настроить SelectMenu?

    @LxneSamurai Автор вопроса
    Просматривал ранее, и заранее извиняюсь за свою "топорную глупость", но был бы признателен, если бы вы более понятно объяснили и показали на примере, как должен выглядеть рабочий код.
    Пример из оф. репозитория я переписывал и пытался его сделать "в своём виде", но так толком и не получил результата.
  • Discord.Py equip/unequip, как правильно написать?

    @LxneSamurai Автор вопроса
    retUrn3d, сайт так перенёс код. В оригинале все на своих местах
  • Как сделать, чтобы бот воспринимал ответ на сообщение пользователя, как упоминание?

    @LxneSamurai Автор вопроса
    тоже как вариант, но я чуть выше уже разобрал проблему и написал её решение. Всё равно спасибо :)
  • Как настроить select menu?

    @LxneSamurai Автор вопроса
    а как будет правильно прописать несколько условий для последующих действий, т.е., если юзер выбирает одно, то..., если другое, то... и так далее?
  • Как настроить select menu?

    @LxneSamurai Автор вопроса
    shurshur, понял, благодарю
  • Как настроить select menu?

    @LxneSamurai Автор вопроса
    можно ли ComponentsBot как-то совместить вместе с commands.bot?
  • Как купить роль по "айди"?

    @LxneSamurai Автор вопроса
    Vindicar, через порядковый номер действительно не выходит, поэтому решил сделать через SelectOption под эмбедом магазина. Как правильно "прописать покупку" в bot.event on_select_option?

    @bot.command()
    async def shop(ctx):
            r1=discord.utils.get(ctx.guild.roles, id=966041637618847794)
            emb=discord.Embed(title="Магазин ролей", timestamp=ctx.message.created_at, colour=discord.Color.from_rgb(255, 255, 255))
            emb.set_footer(text="{}".format(ctx.author.name), icon_url=ctx.author.avatar_url)
            role1=discord.utils.get(ctx.guild.roles, id=966041637618847794)
            role2=discord.utils.get(ctx.guild.roles, id=966046291740217384)
            counter=0
            if ctx.channel.id==955186277270048808:
                    for row in cursor.execute("SELECT role_id, cost FROM shop"):
                            if ctx.guild.get_role(row[0]) != None:
                                    counter+=1
                                    emb.add_field(
                                            name=f"{counter}. Стоимость - {row[1]} <:servvalute:967795640425930822>",
                                            value=f"Роль {ctx.guild.get_role(row[0]).mention}",
                                            inline=False
                                    )
                            else:
                                    pass
                    counter+=1
                    await ctx.send(embed=emb, components=[
                            Select(
                                    placeholder="Выберите роль, которую хотите приобрести.",
                                    options=[
                                            SelectOption(label=f"{role1}", value="r1"),
                                            SelectOption(label=f"{role2}", value="r2")
                                            
                                    ]
                                    
                            )
                    ])
    
    @bot.event
    async def on_select_option(ctx, interaction):
            if interaction.channel == ctx.channel:
                    if interaction.values[0]=="r1":
                            role=discord.utils.get(ctx.guild.roles, id=966041637618847794)
                            cursor.execute("UPDATE users SET cash = cash - {} WHERE id = {}".format(cursor.execute("SELECT cost FROM shop WHERE role_id = {}".format(role.id)).fetchone()[0], ctx.author.id))
                            connection.commit()
                            await ctx.author.add_roles(role)
                            await ctx.send(f"{role} успешно приборетена!", ephemeral = True)
                    elif interaction.values[0]=="r2":
                            role=discord.utils.get(ctx.guild.roles, id=966046291740217384)
                            cursor.execute("UPDATE users SET cash = cash - {} WHERE id = {}".format(cursor.execute("SELECT cost FROM shop WHERE role_id = {}".format(role.id)).fetchone()[0], ctx.author.id))
                            connection.commit()
                            await ctx.author.add_roles(role)
                            await ctx.send(f"{role} успешно приборетена!", ephemeral = True)
  • Как купить роль по "айди"?

    @LxneSamurai Автор вопроса
    Vindicar, а, использовал !buy @пинг роли
    Почему не сделаю через название: роли на основном сервере будут различные, с отступами, разными шрифтами и тд, поэтому банально на клавиатуре такое не ввести, а копировать может кому-то будет лень
  • Как купить роль по "айди"?

    @LxneSamurai Автор вопроса
    Vindicar, роль называется «qqq» (тестовый сервер), покупаю через buy(ctx, role: discord.Role = None). Пытался вместо роли поставить что-то типо number : int = None, но тоже не то. Не понимаю, как сделать запрос указывая число (айди/порядковый номер в списке) на нужную роль.
  • Как купить роль по "айди"?

    @LxneSamurai Автор вопроса
    Vindicar, 62683bb9cbf38138025684.png
    всё та же ошибка, пинговать роль просит
  • Как купить роль по "айди"?

    @LxneSamurai Автор вопроса
    Vindicar, ок, а как тогда внести данные в БД? В два значения (роль, стоимость) не робит, говорит, что в данной табл. три значения, а я только два заполняю.

    + в моей таблице второй "id" выступал в роли "порядкового номера", чтобы благодаря нему и покупать роль, о чём, собственно, и начался "разговор"
  • Как купить роль по "айди"?

    @LxneSamurai Автор вопроса
    Vindicar, нет, таблицы мои намного проще выглядят.
    cursor.execute("""CREATE TABLE IF NOT EXISTS users(
            name TEXT,
            id INT,
            cash BIGINT,
            rep INT,
            lvl INT,
            server_id INT
        )""")
    
        cursor.execute("""CREATE TABLE IF NOT EXISTS shop(
                
                role_id INT,
                id INT,
                cost BIGINT
                )""")
  • Как купить роль по "айди"?

    @LxneSamurai Автор вопроса
    Vindicar, уже убрал, но всё ещё не хочет работать покупка по порядковому номеру
  • Как купить роль по "айди"?

    @LxneSamurai Автор вопроса
    1. Один
    2. Всё зависит от фантазии, но в планах до 20-ти
    3. Свой
  • Как купить роль по "айди"?

    @LxneSamurai Автор вопроса
    Dream, с покупкой проблема. Всё ещё не понимаю, как правильно будет
    (rid - порядковый номер роли)
    @bot.command()
    async def buy(ctx, role : discord.Role = None):
            if ctx.channel.id == 955186277270048808: 
                    rid=cursor.execute("SELECT role_id, rid FROM shop WHERE id = {}".format(ctx.guild.id))
                    if rid and role is None:
                            await ctx.reply(embed=discord.Embed(
                                    timestamp=ctx.message.created_at,
                                    colour=discord.Color.dark_red()
                                    ).add_field(name=f'<a:noentr:965583104360198205> | Некорректный ввод команды.', 
                                    value=f'Укажите роль, которую хотите приобрести.'
                                    ).set_footer(text="{}".format(ctx.author.name),
                                    icon_url=ctx.author.avatar_url),
                                    mention_author=False)
                    else:   
                            role=cursor.execute("SELECT role_id, rid FROM shop WHERE id = {}".format(ctx.guild.id))
                            if role in ctx.author.roles:
                                    await ctx.reply(embed=discord.Embed(
                                    timestamp=ctx.message.created_at,
                                    colour=discord.Color.dark_red()
                                    ).add_field(name=f'<a:noentr:965583104360198205> | У вас уже имеется такая роль.', 
                                    value=f'Попробуйте выбрать другую.'
                                    ).set_footer(text="{}".format(ctx.author.name),
                                    icon_url=ctx.author.avatar_url),
                                    mention_author=False)
                            elif cursor.execute("SELECT cost FROM shop WHERE role_id = {}".format(role.id)).fetchone()[0] > cursor.execute("SELECT cash FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]:
                                    await ctx.reply(embed=discord.Embed(
                                    timestamp=ctx.message.created_at,
                                    colour=discord.Color.dark_red()
                                    ).add_field(name=f'<a:noentr:965583104360198205> | Недостаточно средств.', 
                                    value=f'Накопите немного деньжат и возвращайтесь!'
                                    ).set_footer(text="{}".format(ctx.author.name),
                                    icon_url=ctx.author.avatar_url),
                                    mention_author=False)
    
                            else:
                                    await ctx.author.add_roles(role)
                                    cursor.execute("UPDATE users SET cash = cash - {} WHERE id = {}".format(cursor.execute("SELECT cost FROM shop WHERE rid = {}".format(rid)).fetchone()[0], ctx.author.id))
                                    connection.commit()
                                    await ctx.reply(embed=discord.Embed(
                                            timestamp=ctx.message.created_at,
                                            colour=discord.Color.from_rgb(27, 227, 124)
                                            ).add_field(name=f'<a:Yes1:965581422121353216> | Роль успешно приобретена.', 
                                            value=f'Она уже находится в вашем профиле.'
                                            ).set_footer(text="{}".format(ctx.author.name),
                                            icon_url=ctx.author.avatar_url),
                                            mention_author=False)
                                    await asyncio.sleep(5)
                                    await ctx.message.delete()
  • Как купить роль по "айди"?

    @LxneSamurai Автор вопроса
    Dream, ага, понял, сейчас попробую