рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░!
рдореИрдВ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рд╕рд╛рдЗрдХреНрд▓рд╛рдЗрдЯ рдФрд░ рдЕрдиреНрдп рдЫреЛрдЯреА рдЪреАрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдХрд▓рд╕реНрдЯрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЕрд░реНрдерд╢рд╛рд╕реНрддреНрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдмреЙрдЯ рд▓рд┐рдЦрд╛ рдерд╛ред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг
рд╡рдирд╕реНрдкрддрд┐ рдХрд╛ рдирд┐рд░реНрдорд╛рдг
рдЗрд╕рд▓рд┐рдП, рдПрдХ рдмреЙрдЯ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдФрд░ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рдбреЗрд╡рд▓рдкрд░ рд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдПрдВ
- "рдирдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдмреЙрдЯ рдХреЛ рдирд╛рдо рджреЗрдВ
- рдЕрдкрдиреЗ рдмреЙрдЯ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдХреЗ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧ рд╕реВрдЪреА рдореЗрдВ рдмреЙрдЯ рдЯреИрдм рдвреВрдВрдврдХрд░ рдмреЙрдЯ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓
рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рдо рдЕрдЬрдЧрд░ рдореЗрдВ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ, рдПрдПрд╕рдПрдо рдирд╣реАрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдХреБрдЫ рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
$ pip install discord.py
$ pip install tabulate
рд▓реЗрдЦрди рдордВрдЪ
рдЖрдпрд╛рдд рдореЙрдбреНрдпреВрд▓
HTML + CSS рдореЗрдВ рд╕рд┐рдВрдЧрд▓ рдкреЗрдЬ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдкреЛрд░реНрдЯрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдЙрддрдирд╛ рд╣реА рд╕рд░рд▓ рд╣реИред
import sqlite3
Sqlite рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
рдпрд╣рд╛рдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдЦреЗрдВ:
conn = sqlite3.connect("Discord.db")
рдбреЗрдЯрд╛рдмреЗрд╕ рддреИрдпрд╛рд░реА
рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ 2 рд╢реЙрдк рдФрд░ рдпреВрдЬрд░реНрд╕ рдЯреЗрдмрд▓ рд╣реЛрдВрдЧреЗред
CREATE TABLE "shop" ( "id" INT, "type" TEXT, "name" TEXT, "cost" INT )
CREATE TABLE "users" ( "id" INT, "nickname" TEXT, "mention" TEXT, "money" INT, "rep_rank" TEXT, "inventory" TEXT, "lvl" INT, "xp" INT )
рдмреЙрдЯ рд▓реЙрдЬрд┐рдХ рд▓рд┐рдЦрдиреЗ рдХреА рддреИрдпрд╛рд░реА
рдмреЙрдЯ рд╡реИрд░рд┐рдПрдмрд▓ рдмрдирд╛рдПрдВред
bot = commands.Bot(command_prefix="_")
рд╕рднреА рдХреЛрдб рдХреЗ рдЕрдВрдд рдореЗрдВ, рд╣рдо рдПрдХ рд╡рд┐рдзрд┐ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдмреЙрдЯ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддреА рд╣реИред
bot.run(" , ")
рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдмреЙрдЯ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
bot = commands.Bot(command_prefix="_")
рдЕрдЧрд▓рд╛, рд╣рдо on_ready () рдИрд╡реЗрдВрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬреЛ рдмреЙрдЯ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
@bot.event async def on_ready(): print("Bot Has been runned")# for guild in bot.guilds:#.. , print(guild.id)# id serv=guild# for member in guild.members:#, cursor.execute(f"SELECT id FROM users where id={member.id}")#, if cursor.fetchone()==None:# cursor.execute(f"INSERT INTO users VALUES ({member.id}, '{member.name}', '<@{member.id}>', 50000, 'S','[]',0,0)")# else:# pass conn.commit()#
рдЙрд╕рдХреЗ рдмрд╛рдж, рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдмреЙрдЯ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, on_member_join () рд╡рд┐рдзрд┐ рд▓рд┐рдЦреЗрдВ
@bot.event async def on_member_join(member): cursor.execute(f"SELECT id FROM users where id={member.id}")# , if cursor.fetchone()==None:# cursor.execute(f"INSERT INTO users VALUES ({member.id}, '{member.name}', '<@{member.id}>', 50000, 'S','[]',0,0)")# else:# pass conn.commit()#
рдпрджрд┐ рд╣рдорд╛рд░рд╛ рдмреЙрдЯ рдЖрд░реНрдерд┐рдХ рд╣реИ, рддреЛ рдПрдХ рдореБрджреНрд░рд╛, рдЙрд╕рдХреА рдХрдорд╛рдИ рдФрд░ рдЙрд╕рдХрд╛ рдЦрд░реНрдЪ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдиреБрднрд╡ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдорд╛рдИ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
@bot.event async def on_message(message): if len(message.content) > 10:# > 10 ... for row in cursor.execute(f"SELECT xp,lvl,money FROM users where id={message.author.id}"): expi=row[0]+random.randint(5, 40)# cursor.execute(f'UPDATE users SET xp={expi} where id={message.author.id}') lvch=expi/(row[1]*1000) print(int(lvch)) lv=int(lvch) if row[1] < lv:# , ,... await message.channel.send(f' !')# ... bal=1000*lv cursor.execute(f'UPDATE users SET lvl={lv},money={bal} where id={message.author.id}')# await bot.process_commands(message)# ctx conn.commit()#
рд╣рдордиреЗ рдореБрдЦреНрдп рднрд╛рдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд▓рд┐рдЦрд╛ рдерд╛ред рдпрд╣ рдЦрд╛рддрд╛, рд╕реНрдЯреЛрд░ рдЖрджрд┐ рдЬреИрд╕реА рдХрдорд╛рдВрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдореИрдВ рдФрд░ рд╕рд╣рдЬрддрд╛ рд╕реЗ рд╕реЛрдЪрддрд╛ рд╣реВрдВред
@bot.command() async def account(ctx): # _account ( "_", ) table=[["nickname","money","lvl","xp"]] for row in cursor.execute(f"SELECT nickname,money,lvl,xp FROM users where id={ctx.author.id}"): table.append([row[0],row[1],row[2],row[3]]) await ctx.send(f">\n{tabulate(table)}") @bot.command() async def inventory(ctx):# _inventory ( "_", ) counter=0 for row in cursor.execute(f"SELECT inventory FROM users where id={ctx.author.id}"): data=json.loads(row[0]) table=[["id","type","name"]] for row in data: prt=row for row in cursor.execute(f"SELECT id,type,name FROM shop where id={prt}"): counter+=1 table.append([row[0],row[1],row[2]]) if counter==len(data): await ctx.send(f'>\n{tabulate(table)}') @bot.command() async def shop(ctx):# _shop ( "_", ) counter=0 table=[["id","type","name","cost"]] for row in cursor.execute(f"SELECT id,type,name,cost FROM shop"): counter+=1 table.append([row[0],row[1],row[2],row[3]]) if counter==4: await ctx.send(f'>\n{tabulate(table)}')
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реНрдЯреЛрд░ рд╣реИ, рддреЛ рдЖрдк рдЦрд░реАрдж рд╕рдХрддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдпрд╣ рдирд╣реАрдВ рд╣реИ?
async def buy(ctx, a: int): uid=ctx.author.id await ctx.send('... , id [buy {id}]') for row in cursor.execute(f"SELECT money FROM users where id={uid}"): money = row[0] for row in cursor.execute(f"SELECT id,name,cost FROM shop where id={a}"): cost=row[2] if money >= cost:
рдирд┐рд╖реНрдХрд░реНрд╖
рдпрд╣рд╛рдБ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рд▓ рдмреЙрдЯ рд╣реИред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдФрд░ рдЪрд┐рдкреНрд╕ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ (рдЖрд╡рд╢реНрдпрдХ) рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрдб рдХрд╛ рдПрдХ рдирдВрдЧреЗ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬреЛ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ discord.py, sqlite рдореЙрдбреНрдпреВрд▓ рдФрд░ рдкрд╛рдпрдерди рдмрд┐рд▓реНрдЯ-рдЗрди рддрд░реАрдХреЛрдВ рд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП!