【发布时间】:2020-12-26 00:15:30
【问题描述】:
如何在 discord.py 中制作调平系统?我目前正在使用数据库来存储用户信息。但是,我想制作一个无尽/无限的练级系统。这意味着当他们通过第一级时,他们必须获得的 xp 点数才能达到下一个级别。 例如:
一个新用户进来了。他们从 1 级开始,这是他们当前的 xp 级别。统计:1级,1/20 xp点
一旦他们超过 20 经验值,我希望他们的等级达到 2 级,而要达到 3 级,他们必须获得 40 经验值。因此,进入下一个级别的检查点/标记会成倍增加。新用户的当前统计数据:2 级,1/40 xp 一旦他们达到3级,统计:3级,1/80 xp
然后我只想让它成为一个无限循环。只需不断更新他们的等级并将他们的 xp 等级标记乘以 2。
我正在使用 mysql 数据库。我已经有 2 个函数来更新和显示它们的级别。我只需要找出如何循环的东西。我对循环不是很熟悉。
我希望他们的升级系统基于 on_message 事件。这意味着每收到一条消息,他们都会获得一个经验值。
这是我当前的 on_message 代码:
@client.event
async def on_message(message):
member = message.author
guild = message.guild
xp_update(1, member.id)
print(f"{member} from guild {guild} said>> '{message.content}'")
get_xp_stats(member.id)
get_lvl_stats(member.id)
if int(xp_results) == range(1, 49):
lvl_update(1, member.id)
await message.send(f"{member} has leveled up to {lvlresult}!")
elif int(xp_results) == range(50, 99):
lvl_update(1, member.id)
await message.send(f"{member} has leveled up to {lvlresult}!")
elif int(xp_results) == range(100, 199):
lvl_update(1, member.id)
await message.send(f"{member} has leveled up to {lvlresult}!")
await client.process_commands(message)
非常感谢stackoverflow,希望你能帮助我。
【问题讨论】:
-
您能否更新您的问题以包含您目前拥有的代码?你不能在
on_message中处理升级,因为人们只能通过发送消息来获得经验值吗? -
@Benjin 我已经包含了一些可以解释您的问题的代码。对于给您带来的不便,我深表歉意
-
您需要提供更多代码,您提供的代码中使用的函数会很好,我还假设您已正确标记它?它不在这里。
标签: python mysql python-3.x discord.py discord.py-rewrite