コード例 #1
0
ファイル: melee_process.py プロジェクト: hw233/test-2
    def _pack_query_melee_ranking_response(self, proxy, data, melee, melee_matcher, users, req, timer):
        """构造返回
        args:
        Returns:
            res[protobuf]: 向客户端的返回的响应
        """
        res = arena_pb2.QueryArenaInfoRes()
        res.status = 0

        pack.pack_melee_info(data.user.get(True), melee, res.arena_info, timer.now,
                melee_matcher.rank)
        res.arena_info.own.ranking_index = melee_matcher.rank
        #榜单信息
        for user in users:
            message = res.arena_info.player_rankings.add()
            message.user_id = user[0]
            message.name = user[1]
            message.level = user[2]
            message.icon_id = user[3]
            message.title_level = user[4]
            message.score = user[5]
            message.ranking_index = user[6]

        response = res.SerializeToString()
        log = log_formater.output(data, "Query melee ranking succeed", req, res, timer.count_ms())
        logger.notice(log)

        return response
コード例 #2
0
ファイル: melee_process.py プロジェクト: hw233/test-2
    def _pack_query_melee_response(self, proxy, data, melee, melee_matcher, mails, req, timer):
        """构造返回
        args:
            mails : list(MailInfo)
        Returns:
            res[protobuf]: 向客户端的返回的响应
        """
        res = arena_pb2.QueryArenaInfoRes()
        res.status = 0

        pack.pack_melee_info(data.user.get(True), melee, res.arena_info, timer.now, melee_matcher.rank)
        if melee.is_arena_active(timer.now):
            #胜场奖励
            if melee.is_able_to_get_win_num_reward():
                pack.pack_arena_reward_info(melee, res.arena_info.win_num_reward)
            #对手信息
            rivals_id = melee.generate_arena_rivals_id()
            for rival_id in rivals_id:
                rival = data.rival_list.get(rival_id, True)
                pack.pack_melee_player(rival, res.arena_info.rivals.add())
            #对战记录
            record_list = data.melee_record_list.get_all(True)
            for record in record_list:
                pack.pack_arena_record(record, res.arena_info.records.add())

        for mail in mails:
            pack.pack_mail_info(mail, res.mails.add(), timer.now)

        defer = DataBase().commit(data)
        defer.addCallback(self._query_melee_succeed, req, res, timer)
        return defer
コード例 #3
0
ファイル: melee_process.py プロジェクト: hw233/test-2
    def _pack_update_melee_response(self, proxy, data, melee, melee_matcher, mails,
            last_battle_win, req, timer):
        """构造返回
        args:
        Returns:
            res[protobuf]: 向客户端的返回的响应
        """
        res = arena_pb2.QueryArenaInfoRes()
        res.status = 0

        pack.pack_melee_info(data.user.get(True), melee, res.arena_info, timer.now, melee_matcher.rank)
        #if last_battle_win:
        #    #对手信息
        #    rivals_id = melee.generate_arena_rivals_id()
        #    for rival_id in rivals_id:
        #        rival = data.rival_list.get(rival_id, True)
        #        if rival is not None:
        #            pack.pack_melee_player(rival, res.arena_info.rivals.add())

        for mail in mails:
            pack.pack_mail_info(mail, res.mails.add(), timer.now)

        defer = DataBase().commit(data)
        defer.addCallback(self._update_melee_succeed, req, res, timer)
        return defer
コード例 #4
0
ファイル: arena_process.py プロジェクト: hw233/test-2
    def _pack_refresh_arena_response(self, proxy, data, arena, arena_matcher,
                                     req, timer):
        """构造返回
        args:
        Returns:
            res[protobuf]: 向客户端的返回的响应
        """
        res = arena_pb2.QueryArenaInfoRes()
        res.status = 0

        pack.pack_arena_info(data.user.get(True), arena, res.arena_info,
                             timer.now, arena_matcher.rank)
        #对手信息
        rivals_id = arena.generate_arena_rivals_id()
        for rival_id in rivals_id:
            rival = data.rival_list.get(rival_id, True)
            pack.pack_arena_player(rival, res.arena_info.rivals.add())
        #系统选定的对战对手
        choose_rival_id = arena.get_choose_rival_id()
        choose_rival = data.rival_list.get(choose_rival_id, True)
        res.arena_info.choosed_user_id = choose_rival.rival_id

        resource = data.resource.get(True)
        pack.pack_resource_info(resource, res.resource)

        defer = DataBase().commit(data)
        defer.addCallback(self._refresh_arena_succeed, req, res, timer)
        return defer
コード例 #5
0
ファイル: melee_process.py プロジェクト: hw233/test-2
    def _query_melee_ranking_failed(self, err, req, timer):
        logger.fatal("Query melee ranking failed[reason=%s]" % err)

        res = arena_pb2.QueryArenaInfoRes()
        res.status = -1
        response = res.SerializeToString()
        logger.notice("Query melee ranking failed[user_id=%d][req=%s][res=%s][consume=%d]" %
                (timer.id, req, res, timer.count_ms()))
        return response
コード例 #6
0
ファイル: melee_process.py プロジェクト: hw233/test-2
    def _get_melee_win_num_reward_failed(self, err, req, timer):
        logger.fatal("Get melee win num reward failed[reason=%s]" % err)

        res = arena_pb2.QueryArenaInfoRes()
        res.status = -1
        response = res.SerializeToString()
        logger.notice("Get melee win num reward failed"
                "[user_id=%d][req=%s][res=%s][consume=%d]" %
                (timer.id, req, res, timer.count_ms()))
        return response
コード例 #7
0
ファイル: melee_process.py プロジェクト: hw233/test-2
    def _push_record(self, data, user, melee, ranking, record, timer):
        """向客户端推送对战记录,如果用户不在线,则推送失败
        """
        res = arena_pb2.QueryArenaInfoRes()
        res.status = 0

        pack.pack_melee_info(user, melee, res.arena_info, timer.now, ranking)
        #对战记录
        pack.pack_arena_record(record, res.arena_info.records.add())

        response = res.SerializeToString()
        return GlobalObject().root.callChild("portal", "push_melee_record", data.id, response)
コード例 #8
0
ファイル: melee_process.py プロジェクト: hw233/test-2
    def _pack_get_melee_win_num_reward_response(self, proxy, data, melee,
            melee_matcher, req, timer):
        """构造返回
        args:
        Returns:
            res[protobuf]: 向客户端的返回的响应
        """
        res = arena_pb2.QueryArenaInfoRes()
        res.status = 0

        pack.pack_melee_info(data.user.get(True), melee, res.arena_info,
                timer.now, melee_matcher.rank)
        #胜场奖励
        if melee.is_able_to_get_win_num_reward():
            pack.pack_arena_reward_info(melee, res.arena_info.win_num_reward)

        resource = data.resource.get(True)
        pack.pack_resource_info(resource, res.resource)


        defer = DataBase().commit(data)
        defer.addCallback(self._get_melee_win_num_reward_succeed, req, res, timer)
        return defer
コード例 #9
0
ファイル: arena_process.py プロジェクト: hw233/test-2
    def _pack_query_arena_ranking_response(self, proxy, data, arena,
                                           arena_matcher, users, req, timer):
        """构造返回
        args:
        Returns:
            res[protobuf]: 向客户端的返回的响应
        """
        res = arena_pb2.QueryArenaInfoRes()
        res.status = 0

        pack.pack_arena_info(data.user.get(True), arena, res.arena_info,
                             timer.now, arena_matcher.rank)
        res.arena_info.own.ranking_index = arena_matcher.rank
        if arena.is_arena_active(timer.now):
            #胜场奖励
            if arena.is_able_to_get_win_num_reward():
                pack.pack_arena_reward_info(arena,
                                            res.arena_info.win_num_reward)

        #榜单信息
        for user in users:
            message = res.arena_info.player_rankings.add()
            message.user_id = user[0]
            message.name = user[1]
            message.level = user[2]
            message.icon_id = user[3]
            message.title_level = user[4]
            message.score = user[5]
            message.ranking_index = user[6]

        response = res.SerializeToString()
        log = log_formater.output(data, "Query arena ranking succeed", req,
                                  res, timer.count_ms())
        logger.notice(log)

        return response