Beispiel #1
0
    def _addMemberIn(self, target_uid, mem_info, callback=None):
        """ 这里写的通用逻辑, 不要直接使用此接口, 因为没有检查权限 """
        # 需要检查玩家加入的茶楼数量
        avt = x42.GW.avatars.get(target_uid)
        if avt and not avt.isDestroyed:
            if len(avt.clubList) < const.CLUB_NUM_LIMIT:
                # 加入茶楼成员列表
                self.members[target_uid] = mem_info
                avt.joinOneClub(self.clubId)
                callable(callback) and callback(True)
            else:
                callable(callback) and callback(False, "该玩家茶楼数量达到上限, 无法再加入本茶楼")
        else:

            def add_cb(result, error):
                if result:
                    # 加入茶楼成员列表
                    self.members[target_uid] = mem_info
                    callable(callback) and callback(True)
                else:
                    DEBUG_MSG(
                        "_addMemberIn add_cb clubId:{}, userId: Error = {}".
                        format(self.clubId, target_uid, error))
                    callable(callback) and callback(False,
                                                    "该玩家茶楼数量达到上限, 无法再加入本茶楼")

            dbi.addOfflineMemberInClub(self.clubId, target_uid, add_cb)
Beispiel #2
0
    def _addMemberIn(self, target_uid, mem_info, callback=None):
        """ 这里写的通用逻辑, 不要直接使用此接口, 因为没有检查权限 """
        # 需要检查玩家加入的亲友圈数量
        avt = x42.GW.avatars.get(target_uid)
        if avt and not avt.isDestroyed:
            if avt.canJoinClub():
                # 加入亲友圈成员列表
                self.members[target_uid] = mem_info
                self.member_status[target_uid] = {
                    'online': True,
                    'free': avt.cell is None,
                    'login_time': mem_info['login_time'],
                    'logout_time': mem_info['logout_time']
                }
                avt.joinOneClub(self.clubId)
                callable(callback) and callback(True)
            else:
                callable(callback) and callback(False,
                                                "该玩家亲友圈数量达到上限, 无法再加入本亲友圈")
        else:

            def add_cb(result, error):
                if result:
                    # 加入亲友圈成员列表
                    self.members[target_uid] = mem_info
                    self.member_status[target_uid] = {
                        'online': False,
                        'free': True,
                        'login_time': mem_info['login_time'],
                        'logout_time': mem_info['logout_time']
                    }
                    callable(callback) and callback(True)
                else:
                    DEBUG_MSG(
                        "_addMemberIn add_cb clubId:{}, userId: Error = {}".
                        format(self.clubId, target_uid, error))
                    callable(callback) and callback(False,
                                                    "该玩家亲友圈数量达到上限, 无法再加入本亲友圈")

            dbi.addOfflineMemberInClub(self.clubId, target_uid, add_cb)