Я разрабатываю бот-игру на питоне для площадки Discord и у меня возникла проблема, которую я не могу решить уже 2 день и я хотел спросить у тех кто знает как это все устроено чтобы мне помогли.
В общем кратко о проблеме, изначально нужно чтобы у пользователя баланс был 0( то есть bal = 0) после нужна команда клик(click) которая и будет давать по 1 монете за её ввод. и вот получается код:
bal = 0
@bot.slash_command(description='Работать'
async def сlick(ctx):
await ctx.send('Вы заработали 1 монету'
bal + 1
но вот в чем проблема, бот не засчитывает последнюю строку (bal + 1) и как я только уже не писал, и слитно и пытался делать списки и пытался писать bal += 1 но нечего не помогало, при выводе баланса игрока все равно составлял 0, бота не перезапускал нечего не делал чтобы баланс мог сбросится. я подозреваю что сама строка bal + 1 просто не может выполнятся из за особенности disnake (на котором и пишется бот) и нужно эту строку писать как то по другому, но как я не знаю. и именно по этому я тут. Жду любую помощь.
@bot.slash_command(description='Работать')
async def click(ctx):
global bal
bal += 1
await ctx.send('Вы заработали 1 монету. Ваш баланс теперь составляет ' + str(bal))
Проблема заключается в том, что в коде не происходит изменение переменной bal. Вместо этого, в последней строке кода написано bal + 1, что не приводит к изменению значения переменной. Для того, чтобы изменить значение переменной, нужно использовать оператор присваивания, например, bal = bal + 1 или bal += 1.
Исправленный код будет выглядеть так: bal = 0
@bot.slash_command(description='Работать')
async def click(ctx):
global bal
await ctx.send('Вы заработали 1 монету')
bal += 1 Здесь добавлен оператор присваивания bal += 1, который увеличивает значение переменной bal на 1. Также мы добавили строку global bal, чтобы указать, что переменная bal является глобальной и может быть изменена внутри функции.
Имей ввиду это только часть кода а не вся программа
Ну так тебе нужно чтобы:
1)функция этот баланс сначала принимала из базы данных для конкретного пользователя(не общий же они счет растят)
2)возвращала новое значение в базу
Таким образом совершенно не ясно, зачем ты пытаешься растить локальную переменную.