[DAY 26]随机组队功能

公会成员平均在线成员人数有90位,但实际在discord频道活跃人数不到20位

为了让非活跃在线人数能参与进来

我打算做一个随机组队功能

FF14的副本主要有三种,24人副本、8人副本、4人副本

所以除了随机抽人外还需要随机抽副本种类

24人副本是8人队伍乘三所以就不列进副本种类名单

做法跟昨天的抽签功能类似,就是输出会长得不太一样

程序码如下:

from discord.ext import commands
from core.classes import Cog_Extension
import numpy as np

class random_team(Cog_Extension):
    @commands.command()
    
    async def rteam(self,ctx):
        #获取在线名单
        guild = self.bot.get_guild(int(self.GUILDID_TOKEN))
        member_list = []
        for user in guild.members:
            if str(user.status) != "offline":
                # print(user)
                member_list.append(f"{user.display_name}")
        
        raid_list = [4,8]
        # print(guild.members)
        #先抽副本人数
        member_count = list(np.random.choice(raid_list, size=1, replace=False, p=None))[0]
        #再抽参与人员名单
        team_list = list(np.random.choice(member_list, size=member_count, replace=False, p=None))

        if member_count == 4:
            embed=discord.Embed(title="四人副本", 
                                color=discord.Color.red())
            embed.add_field(name="?️MT", 
                            value=team_list[0], 
                            inline=False)
            embed.add_field(name="⚔️D1", 
                            value=team_list[1], 
                            inline=True)
            embed.add_field(name="⚔️D2", 
                            value=team_list[2], 
                            inline=True)
            embed.add_field(name="?H1", 
                            value=team_list[3], 
                            inline=False)
        
        elif member_count == 8:
            embed=discord.Embed(title="八人副本", 
                                color=discord.Color.red())
            embed.add_field(name="?️", 
                            value='坦职', 
                            inline=True)
            embed.add_field(name="MT", 
                            value=team_list[0], 
                            inline=True)
            embed.add_field(name="ST", 
                            value=team_list[1], 
                            inline=True)
            embed.add_field(name="⚔️", 
                            value='输出', 
                            inline=True)
            embed.add_field(name="D1", 
                            value=team_list[2], 
                            inline=True)
            embed.add_field(name="D2", 
                            value=team_list[3], 
                            inline=True)
            embed.add_field(name="⚔️", 
                            value='输出', 
                            inline=True)
            embed.add_field(name="D3", 
                            value=team_list[4], 
                            inline=True)
            
            embed.add_field(name="D4", 
                            value=team_list[5], 
                            inline=True)
            embed.add_field(name="?", 
                            value='补师', 
                            inline=True)
            embed.add_field(name="H1", 
                            value=team_list[6], 
                            inline=True)
            embed.add_field(name="H2", 
                            value=team_list[7], 
                            inline=True)

        await ctx.message.reply(embed=embed)


def setup(bot):
    bot.add_cog(random_team(bot))

呈现结果如下


<<:  DAY 29 制作表格-为表格上色

>>:  [火锅吃到饱-15] 两餐韩国年糕火锅吃到饱-中友店 #299吃到饱

Day10-为了让表单资料不要太过自大,给予其正确的绝望-Validation(III)

标题参考来源 大家好~ 今天来认识如何自定义错误讯息且不用另外建立 FormRequest clas...

Day16 - 在 Next.js 做 JWT 验证,使用既有的 Backend API - PART 2

在页面中串接验证 API 在前一篇文章中,我们建立了一个 JWT JSON server,用来练习如...

[寿星优惠-1] 飨厚牛排 #当月寿星6折

区区的30篇文章是无法满足我的,继续写~~ 忘记是从哪一年开始,响厚牛排推出寿星优惠方案,当月寿星来...

建立Endpoint执行二次开发

上一篇我们已经建立好模型, 而且也上传一张图片验证推论的结果符合我们的预期. 接下来我们要把mode...

【Day27】Figma篇 : 设计到切版

对於设计师来说使用UI设计软件,除了可以善用之前提到的那些设计工具来增加效率和提升设计方法以外,还有...