Python 3.x 如何使bot在其状态下在多少服务器上写入其活动状态?(Discord.py重写)

Python 3.x 如何使bot在其状态下在多少服务器上写入其活动状态?(Discord.py重写),python-3.x,discord,bots,discord.py,discord.py-rewrite,Python 3.x,Discord,Bots,Discord.py,Discord.py Rewrite,我想做的实际上是机器人来写我的消息和有多少服务器在线 我的代码: status = cycle([f"I am online on {len(bot.guilds)} servers!","Second Status") @bot.event async def on_ready(): print("Logged in as: " + bot.user.name + "\n") await chan

我想做的实际上是机器人来写我的消息和有多少服务器在线

我的代码:

status = cycle([f"I am online on {len(bot.guilds)} servers!","Second Status")

@bot.event
async def on_ready():
    print("Logged in as: " + bot.user.name + "\n")
    await change_status.start()

@tasks.loop(seconds = 30)
async def change_status():
    await bot.change_presence(activity = discord.Game(next(status)))
当我尝试这样做时,Bot状态如下:

我在0台服务器上联机

每次循环重复,机器人就会说:

我在0台服务器上联机


但机器人目前在3台服务器上联机。如何修复此问题?

在函数中定义状态,以便在bot就绪后不断更新和加载

status=0
@机器人事件
_ready()上的异步定义:
打印(“以“+bot.user.name+”\n”身份登录)
等待更改\u状态。开始()
@tasks.loop(秒=30)
异步def更改_状态():
状态=[f“我在{len(bot.guilds)}服务器上在线!”,“第二状态”]
如果状态+1>len(状态):
状态=0
等待机器人。改变状态(活动=不和谐。游戏(状态[状态])
状态+=1

这对我不起作用。当我将状态放入函数时,它会在每个循环的开头重新启动列表,这样我只能看到第一个状态。现在试试看,我从未使用过cycle,所以我的代码使用纯python,它只是通过索引某个整数来遍历列表。