示例#1
0
async def show_bag(player_id):
    data = conn.hget('player_info:bag', player_id)
    data = json.loads(data)
    data = sorted(data.items(), key=lambda x: int(x[0]))
    ctx = []
    for k, v in data:
        description = conn.hget('card_description', k)
        num = v

        if not description:
            description = '测试描述'

        message = '卡片序号:' + str(k) + '(' + str(num) + '): ' + description
        ctx.append(message)

    return await make_text(ctx)
示例#2
0
async def have_chosen(game_name,id):
    users = conn.hkeys(game_name+':have_chosen')
    if id in users:
        result = conn.hget(game_name+':have_chosen',id)
        return True, result
    else:
        return False, ''
示例#3
0
async def draw_card(player_id, k=1):
    """
    抽过卡了返回空列表
    :param k: 抽卡的数量
    :param player_id: 用户id qq号
    """
    #判断是否抽过卡
    player_info = conn.hget('draw_card_tag', player_id)
    if player_info:
        conn.close()
        return []

    #提取幸运数字
    WEIGHTS = [i + 1 for i in range(const.CARD_POOL_NUMBERS)]
    card_id = [i for i in range(const.CARD_POOL_NUMBERS)]

    #抽卡,当抽到的某张卡超出上线时提示玩家抽取失败
    my_card_id = random.choices(card_id, k=k, weights=WEIGHTS)
    my_card = []
    for i in my_card_id:
        result = await card_pool(i)
        if result:
            my_card.append(i)
        else:
            my_card.append(i + const.CARD_POOL_NUMBERS * 2)

    #将抽到的卡添加到用户背包
    await save_card(my_card, player_id)
    return my_card
示例#4
0
async def card_pool(card_id):
    """
     判断卡池该卡是否抽满,抽满就抽卡失败
    :param card_id:
    :return:
    """
    a = int(conn.hget('card_pool', card_id))
    if a <= 0:  #抽满了
        return False
    else:
        conn.hset('card_pool', card_id, a - 1)
        return True
示例#5
0
 def load_card(self):
     if self.id.text() == '':
         self.bar.showMessage('请输入正确ID', 3500)
         return
     data = conn.hget('card:info', self.id.text())
     if not data:
         self.bar.showMessage('无当前ID卡片', 3500)
         return
     data = json.loads(data)
     self.name.setText(data['name'])
     self.describe.setText(data['describe'])
     self.level.setCurrentText(data['level'])
     self.kind.setCurrentText(data['kind'])
示例#6
0
async def save_card(card_list: list, player_id):
    """
    将抽到的卡添加到用户背包,redis hashmap
    :param player_id:
    :param card_list:
    """
    card_dict = conn.hget('player_info:bag', player_id)
    if not card_dict:
        card_dict = {}
    else:
        card_dict = json.loads(card_dict)

    for card_id in card_list:
        if card_id > const.CARD_POOL_NUMBERS:
            continue
        else:
            num = card_dict.get(card_id, 0)
            num += 1
            card_dict[card_id] = num
    card_dict_json = json.dumps(card_dict)
    conn.hset('player_info:bag', player_id, card_dict_json)
def load_card(id, name: QLineEdit, level: QComboBox, kind: QComboBox,
              describe: QTextEdit):
    data = conn.hget('card:info', id)
    data = json.loads(data)