如何在discord.py或任何适当的rpg级别系统中创建级别系统?

时间:2020-09-07 14:47:13

标签: python mysql python-3.x discord.py discord.py-rewrite

如何在discord.py中创建一个调平系统?我目前正在使用数据库来存储有关用户的信息。但是,我想制作一个无限/无限的调平系统。这意味着当他们通过第一个级别时,达到下一级别所必须获得的xp点数量成倍增加。 例如:

一个新用户进入。他们从级别1开始,这是当前的xp级别。统计:1级,1/20 xp点

一旦他们的得分超过20 xp,我希望他们的等级达到2级并达到第三级,他们必须获得40 xp。因此,进入下一个级别的检查点/标记会成倍增加。新用户的当前状态:等级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,希望您能为我提供帮助。

1 个答案:

答案 0 :(得分:0)

编辑:

感谢大家的尝试,并感谢您的参与。我已经找到答案了。我只是不得不修改一些东西。这是我的完整代码。 说真的,这是简单的数学和代数。我应该多付些数学学费,哈哈

x = int(input("Enter a number for x: "))
y = int(input("Enter a number for y: "))
z = int(input("Enter a number for z: "))

odd_numbers = [value for value in (x,y,z) if value%2]
if odd_numbers:
    print("The greatest odd number is", max(odd_numbers))
else:
    print("None of the numbers is odd.")