def elite_pve(request): req = request._proto stage = EliteStage(request._char_id) battle_msg = stage.battle(req.stage_id) if battle_msg.self_win: drop = stage.save_drop() else: drop = {} response = protomsg.ElitePVEResponse() response.ret = 0 response.stage_id = req.stage_id response.battle.MergeFrom(battle_msg) if drop: response.drop.MergeFrom(standard_drop_to_attachment_protomsg(drop)) return pack_msg(response)