#discord #discord.py
#Discord #discord.py
Вопрос:
Я пытаюсь получить возможность указать, сколько наборов кубиков они хотят бросить. в настоящее время, если они хотят бросить три набора а d100
, они должны ввести команду 3 раза. Я хочу, чтобы они могли вводить подобную сумму !3d100
и заставлять ее катиться 3 раза?
@client.command(name='d100', help='Rolls a d100 sice')
async def dice(context):
diceEmbed = discord.Embed(title="Rolling for " str(context.message.author.display_name), color=0xCC5500)
roll = (random.randint(1, 100))
url = "http://157.230.225.61/images/dice/d100/d100_{:03}.png"
url = url.format(roll)
diceEmbed.set_image(url=url)
diceEmbed.add_field(name="d100", value=roll, inline=True)
if roll == 1:
diceEmbed.set_footer(text="FUMBLE")
await context.message.channel.send(embed=diceEmbed)
Ответ №1:
Прежде всего рассмотрите возможность использования f string
. Вам нужно будет добавить ввод в вашу команду !dice 3
, это даст вам 3 броска, если никакое количество не указано только 1.
Имейте в виду, что во встраивании вы можете разместить только одно изображение, поэтому я взял самое высокое, по вашему мнению.
@bot.command()
async def dice(ctx, amount: int = 1):
diceEmbed = discord.Embed(title=f"Rolling for {ctx.message.author.display_name}", color=0xCC5500)
max_roll = 0
for i in range(amount):
roll = (random.randint(1, 100))
if roll > max_roll:
url = f"http://157.230.225.61/images/dice/d100/d100_{roll:03d}.png"
max_roll = roll
diceEmbed.add_field(
name=f"Role number {i 1}", value=roll, inline=False)
if roll == 1:
diceEmbed.set_footer(text="FUMBLE")
# You can have only one image which is the highest
diceEmbed.set_image(url=url)
await ctx.message.channel.send(embed=diceEmbed)
Комментарии:
1. Так что это отличный момент, как бы мне сделать так, чтобы он принимал только изображение самого высокого броска?
2. Конечно, я добавил это выше