【发布时间】:2020-12-16 13:52:55
【问题描述】:
所以我所有的 D&D 党员都确信当前的骰子机器人是“被诅咒的”,所以我决定自己动手做我自己的机器人。这很酷,但我的掷骰子命令有多个问题。
我目前的命令是
async def d(ctx, die:int):
for x in range(1):
await ctx.send("<:d20:748302353375166614> "+str(random.randint(1,die)))
第一个问题是它使用格式“|d 20”而不是“|d20”,因此第一个请求将删除“d”和表示边数的 int 之间的空格die 会有(“die”变量,在本例中为“20”)。
除此之外,我想添加一个功能,如果输入“|[骰子数]d[边数]”,它'd 将请求的骰子滚动请求的次数。如果未指定骰子数量(例如:“|d20”),则应自动假定骰子数量为 1。机器人消息应包括所有掷出的数字及其总和。
例如“|2d20”可能返回“<:d20:748302353375166614>11 + 15 = 26”,而“|10d2”可能返回“<:d20:748302353375166614>1 + 1 + 2 + 1 + 2 + 2 + 2 + 1 + 1 + 2 = 15"
除此之外,我还希望能够为掷骰添加奖励(“|[骰子数]d[边数] em>+[bonus]") 并在机器人的消息中返回掷骰子、奖金和最终值。
例如“|d20+4”可能返回“<:d20:748302353375166614>11 + 4 = 15”,而“|2d10+2+3”可能返回“<:d20>9 + 4 + 2 + 3 = 18"
(可选地,如果痛苦地写下这个问题的答案的人觉得从这个请求的庞大规模来看他们还没有足够的痛苦,那么像“|1d4+2d6”这样的事情可以成为可能)
【问题讨论】:
-
您为实现目标做了哪些努力?如果你想删除一个空格,你传递的字符串中有一个空格文字 - 你试过删除它吗? SO 不是我们为您的问题提供即时代码解决方案的地方
-
就在这里这么说吧:D&D gooooo!和;您应该为骰子的所有 20 个面创建贴纸,并在滚动时让机器人张贴它们。会很棒..
-
@TheodorPeifer 目前我有 3 个表情,一个用于 nat 1,一个用于 nat 20,一个用于介于两者之间的所有表情,但我决定不使用它们,因为使用当前代码。我也有这个想法,首先,它只会发送一个 d20 滚动的动画表情,它只会在 2-3 秒后显示数字以产生悬念,但我也放弃了,因为此时我已经受够了我很高兴它能按预期工作。
标签: python discord bots discord.py dice