Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我如何使会员的健康状况每次下降?_Python_Postgresql_Discord.py - Fatal编程技术网

Python 我如何使会员的健康状况每次下降?

Python 我如何使会员的健康状况每次下降?,python,postgresql,discord.py,Python,Postgresql,Discord.py,我正在制作一个战斗游戏命令,希望它能在你使用该命令时,随机消耗大量生命值。他们再次使用它,我希望它能从之前的数量中去掉另一个随机数量。所以,假设他们有100个健康指数。我打他们。他们失去20点生命,剩下80点生命。我再次使用这个命令,我希望从一个随机数中减去80的生命值 我应该提到的是,现在发生的事情是,它只是不断地拿走一个随机的数量。所以,如果他们有80个,你再次使用这个命令,下次他们可能有95个 punch_damage = random.randint(1, 30) punch_d

我正在制作一个战斗游戏命令,希望它能在你使用该命令时,随机消耗大量生命值。他们再次使用它,我希望它能从之前的数量中去掉另一个随机数量。所以,假设他们有100个健康指数。我打他们。他们失去20点生命,剩下80点生命。我再次使用这个命令,我希望从一个随机数中减去80的生命值

我应该提到的是,现在发生的事情是,它只是不断地拿走一个随机的数量。所以,如果他们有80个,你再次使用这个命令,下次他们可能有95个

punch_damage = random.randint(1, 30)
    punch_damage1 = member_hp - punch_damage

    cursor.execute('SELECT user_id FROM fightgame WHERE user_id = %s AND guild_id = %s',
                   (user_id, guild_id))
    result = cursor.fetchone()
    if result is None:
        cursor.execute('INSERT INTO fightgame(name, member_name, user_id, guild_id, attacker_hp, member_hp) VALUES (%s, %s, %s, %s, %s, %s)',
                       (name, member_name, user_id, guild_id, attacker_hp, member_hp))
        conn.commit()

    if msg == 'punch':
        await ctx.send(
            f'{ctx.author.name} punched {member.mention} and took away {punch_damage} hp from them! They now have {punch_damage1} hp')
        cursor.execute('UPDATE fightgame SET member_hp = %s WHERE user_id = %s AND guild_id = %s',
                       (punch_damage1, user_id, guild_id))
        conn.commit()
        cursor.execute('SELECT member_hp FROM fightgame WHERE user_id = %s AND guild_id = %s',
                       (user_id, guild_id))
        result = cursor.fetchone()
        if result[0] < 100:
            cursor.execute('UPDATE fightgame SET member_hp = %s WHERE user_id = %s AND guild_id = %s',
                           (punch_damage1, user_id, guild_id))
            conn.commit()```

这不起作用,同样的问题也会发生,它仍然只是随机地将成员的健康值分配到一个随机值,他们从100开始。如果使用该命令,则从1到30的随机数量将被删除。我想发生的是,如果你使用它,会员的健康指数从100降到了80。我再次使用它,我想从另一个本该修复它的随机数量中去掉80点生命值。我不知道出了什么差错。
punch_damage1 = member_hp - punch_damage
member_hp = member_hp - punch_damage
# Takes away punch_damage from member_hp