Discord 不和谐损害计算机器人

Discord 不和谐损害计算机器人,discord,discord.py,Discord,Discord.py,目前,我正在为口袋妖怪开发一个discord机器人,我将运行,我的遭遇系统已经关闭,但破坏系统一直存在问题。目前,整个代码就是这样的 import discord import os import random import asyncio client = discord.Client() from discord.ext import commands client = commands.Bot(command_prefix='!') @client.event async def on

目前,我正在为口袋妖怪开发一个discord机器人,我将运行,我的遭遇系统已经关闭,但破坏系统一直存在问题。目前,整个代码就是这样的

import discord
import os
import random
import asyncio
client = discord.Client()
from discord.ext import commands

client = commands.Bot(command_prefix='!')

@client.event
async def on_ready():
    print('aaaaand were scuffed'.format(client))

###Biome encounter list###
DesertList2 = ['charmander', 'charmeleon', 'charizard']

###commands###
#desert enc
@client.event
async def on_message(message):
    if message.author == client.user:
        return

    if message.content.startswith('!desert'):
        mon = random.choice(DesertList2)
        print(mon)
        await message.channel.send(mon)

@client.event
async def damage(ctx, num1, num2, num3): 
    result = (num1+num2)/num3
    await ctx.send(result)
    await client.process_commands(message)

注意:我有client.run,只是因为明显的原因没有显示。

您必须创建单独的参数变量

@client.command()
异步def损坏(ctx,num1:int,num2:int,num3:int):#对于您的12 4示例,3个数字参数就足够了
结果=(num1+num2)/num3
等待ctx发送(结果)
这个值是(1+2)/4,应该是0.75

此外,在查看您的imgur图像后,这是您的
on_message
函数需要的外观:

@client.event
异步def on_消息(消息):
如果message.author==client.user:
返回
如果message.content.startswith(“!desert”):
mon=随机。选择(沙漠列表2)
印刷(星期一)
等待消息。频道。发送(周一)
等待客户端处理命令(消息)

这是一个简洁有效的计算器命令,你可以给它无限的参数让它计算

通过使用
*
,您可以传递多个数字,
.join
将连接您传递的每个参数。这里有一个简单的例子

@client.command()
async def calculate(ctx, operation, *nums):
    if operation not in ['+', '-', '*', '/']:
        await ctx.send('Please use a valid operation type')
        return
    var = f' {operation} '.join(nums)
    await ctx.send(f'{var} = {eval(var)}')

@2P1XLS我冒昧地将您的
沙漠
命令设置为实际命令,因为它以前出现在
on_message
事件中,在我看来,您正试图将其用作命令。但是,您仍然可以像以前那样运行它:
!沙漠
。我还在
on\u message
事件中添加了
wait client.process\u命令(message)
,因为它就属于这个事件。试试这个:

导入不一致
导入操作系统
随机输入
导入异步
client=discord.client()
从discord.ext导入命令
client=commands.Bot(命令前缀='!')
@客户端事件
_ready()上的异步定义:
打印('aaaaa'和磨损。格式(客户端))
@客户端事件
异步def on_消息(消息):
如果message.author==client.user:
返回
等待客户端处理命令(消息)
###生物群落遭遇列表###
沙漠名单2=['charmander'、'charmeleon'、'charizard']
###命令###
#沙漠司令部
@client.command()
异步def(ctx):
mon=随机。选择(沙漠列表2)
印刷(星期一)
等待ctx发送(周一)
#破坏命令
@client.command()
异步def损坏(ctx,num1:int,num2:int,num3:int):
结果=(num1+num2)/num3
等待ctx发送(结果)

如果您运行
!损坏1 2 4
,然后它将执行
(1+2)/4
,并返回
0.75
。我自己也试过这段代码,所以它肯定能用。一定要准确地复制它。希望这对你有帮助

我很确定OP想要一个解决方案,他不需要指定一个操作类型是的,但是很好,无论如何谢谢你的帮助!我以后可能会用这个,谁知道呢!这应该是完美的!非常感谢,我推迟了很多事情,因为我没有这个问题。如果我的帖子帮了你的忙,记得点击我帖子旁边的投票按钮下面的“接受答案”按钮!嘿,再见。我只是想知道这个命令是否已经设置好了,我需要做些什么才能让它完成计算?或者如何设置命令,我有一个前缀和所有,只是不知道为什么它不发送任何消息。嘿,@2P1XLS。假设您的前缀是
。要运行该命令,您必须执行
!损坏1 2 4
,这将打印出消息。让我知道它是否有效。Yo,由于某些原因,它不起作用,我认为这与
@client.event
有关,rn我的代码是
@client.event async def on_message(message):if message.author==client.user:return if message.content.startswith('!沙漠'):mon=random.choice(沙漠列表2)打印(mon)wait message.channel.send(mon)@client.event async def damage(ctx,num1,num2,num3):#对于您的12 4示例,3个数字参数就足够了结果=(num1+num2)/num3 wait ctx.send(result)
edit:对于这种奇怪的格式,我们不是一个编码服务。请解释问题是什么,您尝试了什么,以及您面临的任何错误消息。它成功了!万岁!我终于可以休息了。。。请放心,我还有很多工作要做。。。但是非常感谢你,祝你明天情人节快乐@2p1xl我们走吧!我很高兴它对你有用。明天也祝你情人节快乐!对不起,我没有注意到这一点,希望你的也是一个爆炸!