Покупка в магазине
столкнулся так сказать с творческим кризисом. Есть магазин, в нем скин машинки, под скином кнопка, кнопка должна выполнять 3 задачи:
- Если скин куплен, установить его в игру
- Если уже установлен, то ничего не делать
- Если скин не куплен, купить
вот код обработчика кнопки:
def btn_all(id_skin):
if set2[id_skin] == '1':
if sql.execute(f"SELECT skin FROM bd WHERE nickname = '{player_nickname}'").fetchone()[0] == setting[id_skin]:
messagebox.showinfo("Инвентарь", 'Этот скин уже установлен')
else:
sql.execute(f"UPDATE bd SET skin = '{setting[id_skin]}' WHERE nickname = '{player_nickname}'")
db.commit()
else:
if sql.execute(f"SELECT coin FROM bd WHERE nickname = '{player_nickname}'").fetchone()[0] >= id_count_skin[id_skin]:
#####
messagebox.showinfo("Магазин", 'Поздравляю с покупкой')
else:
messagebox.showinfo("Баланс", 'У тебя не хватает монеток')
start()
Вот и все словники к ним:
id_count_skin = {
101: 0, 102: 250, 103: 500, 104: 500, 105: 990,
201: 3901116, 202: 1500, 203: 1500, 204: 1500, 205: 1990,
301: 0, 302: '', 303: '', 304: '', 305: ''
}
setting = {
101: 'player_red', 102: 'player_old_red', 103: 'player_gray', 104: 'player_green', 105: 'player_rainbow',
201: 'player_gelic', 202: 'player_gelic_yellow', 203: 'player_gelic_gray', 204: 'player_gelic_green', 205: 'player_gelic_rainbow',
301: 'player_tank', 302: 'empty', 303: 'empty', 304: 'empty', 305: 'empty'
}
set2 = {
101: car_skins[0], 102: car_skins[1], 103: car_skins[2], 104: car_skins[3], 105: car_skins[4],
201: gelic_skins[0], 202: gelic_skins[1], 203: gelic_skins[2], 204: gelic_skins[3], 205: gelic_skins[4],
301: tank_skins[0], 302: tank_skins[1], 303: tank_skins[2], 304: tank_skins[3], 305: tank_skins[4]
}
set3 = {
101: 'car', 201: 'gelic', 301: 'tank'
}
И так же списки из данными из БД:
car_skins = sql.execute(f"SELECT car FROM skins WHERE name = '{player_nickname}'").fetchone()[0]
car_skins = f'{car_skins}'.split(',')
gelic_skins = sql.execute(f"SELECT gelic FROM skins WHERE name = '{player_nickname}'").fetchone()[0]
gelic_skins = f'{gelic_skins}'.split(',')
tank_skins = sql.execute(f"SELECT tank FROM skins WHERE name = '{player_nickname}'").fetchone()[0]
tank_skins = f'{tank_skins}'.split(',')
Данные при выходе в виде списка из 5 чисел, например: ['1','0','0','0','0']
Как можно реализовать покупку?