12558网页游戏私服论坛

 找回密码
 立即注册
游戏开服表 申请开服
游戏名称 游戏描述 开服状态 游戏福利 运营商 游戏链接
攻城掠地-仿官 全新玩法,觉醒武将,觉醒技能 每周新区 经典复古版本,长久稳定 进入游戏
巅峰新版攻 攻城掠地公益服 攻城掠地SF 新兵种、新武将(兵种) 进入游戏
攻城掠地公 散人玩家的天堂 新开 进入游戏
改版攻城掠 上线即可国战PK 稳定新区 全新改版,功能强大 进入游戏
少年江山 高福利高爆率 刚开一秒 江湖水落潜蛟龙 进入游戏
太古封魔录 开服送10亿钻石 福利多多 不用充钱也可升级 进入游戏
神魔之道 签到送元宝 稳定开新区 送豪华签到奖励 进入游戏
神奇三国 统帅三军,招揽名将 免费玩新区 激情国战,征战四方 进入游戏
龙符 三日豪礼领到爽 天天开新区 助你征战无双 进入游戏
王者之师 免费领豪华奖励 免费玩新区 6元送6888元宝 进入游戏
查看: 247|回复: 0

智慧职教MOOC学院-刷课分析

[复制链接]

3782

主题

3782

帖子

214748万

积分

超级版主

Rank: 8Rank: 8

积分
2147483647
发表于 2021-7-26 01:21:15 | 显示全部楼层 |阅读模式
只适用 https://mooc.icve.com.cn/  

1. 如今职教云(https://zjy2.icve.com.cn/)的刷课方法基本没用,以是没找职教云的接口
2. mooc的用的人不多,但也有课在里面,经太过析,只要调用一个接口就能快速刷课
3. 用的是python做的,可以用别的,看懂了可以自己搞,乃至可以用postnam软件一个一个发请求都行
4. 乃至可以用js做,都是发请求什么的,有时间的可以搞一下
5. 通过多次调试,确定目前(2020-12-26)能使用
6. 没弄 考试,作业 的答题,因为要找接口,没有
7. 时间问题没捕获任何异常,有报错办理不了的可以发出来一起办理
8. python技术不可,后面都是for循环乃至嵌套,可能过几天我都不知道是什么了,凑合能用
9. 作业没做也会表现完成,但是未完成,不要忘记做作业


嫌下面代码太长的可以下载这个:mooc.zip

(链接太长,放在这里)
[table][tr][td] 接口名称[/td][td] 介绍[/td][td] URL[/td][td]参数(*为打码,可选参数没写进去)[/td][/tr][tr][td] 接口1[/td][td] 获取一级目次[/td][td]https://mooc.icve.com.cn/study/learn/getProcessList[/td][td]courseOpenId=fhe****************knw[/td][/tr][tr][td] 接口2[/td][td]获取二级目次[/td][td]https://mooc.icve.com.cn/study/learn/getTopicByModuleId[/td][td]courseOpenId=fhe****************knw&moduleId=kxila*************lxua[/td][/tr][tr][td] 接口3[/td][td]获取三级(四级)目次[/td][td]https://mooc.icve.com.cn/study/learn/getCellByTopicId[/td][td]courseOpenId=fhe****************knw&topicId=kxila*************hfqfa[/td][/tr][tr][td] 接口4[/td][td]获取视频总时长[/td][td]https://mooc.icve.com.cn/study/learn/viewDirectory[/td][td]courseOpenId=fhe****************knw&cellId=kxila*****************guga[/td][/tr][tr][td]接口5[/td][td]刷课接口(主要)[/td][td]https://mooc.icve.com.cn/study/learn/statStuProcessCellLogAndTimeLong[/td][td]courseOpenId=fhe****************knw&cellId=kxila*****************guga&
auvideoLength=998&videoTimeTotalLong=998


下面过程均是处于登录状态


  一、找接口  
1. 根据下面这个方法,可以拿到接口1,我们可以看到,里面我们需要的只有 一级目次大标题(初识Java语言),我们拿到了就需要找到第二个接口,就是二级目次([url=]单位引例描述[/url]



3. 剩下的就是继续找三级目次,我们点一下([url=]单位引例描述[/url]),会出现一个接口,得到接口3,就是详细信息



4. 于是我们随便点一个视频,得到接口4

  、Python代码实现(不要改太快,会封,默认我这个就可以,代码重复高,没时间改,默认都是全刷,会改的可以改成指定课程刷,或者找我改一下)  
[Python] 纯文本查看 复制代码# -*- coding: utf-8 -*-# @Time : 2020/12/26 15:17# @AuThor : Melon# @site : # @file : mooc.py# @Software: PyCharmimport timeimport requestsimport jsonfrom PIL import Imageheaders = {    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',}# https://mooc.icve.com.cn/portal/LoginMooc/loginSystem?userName=LH17001&password=qwer%40123&verifycode=2405# https://mooc.icve.com.cn/portal/course/getCourseOpenList# https://mooc.icve.com.cn/study/learn/getProcessList?courseOpenId=wylwaxasdyjptaswj67x6g# https://mooc.icve.com.cn/study/learn/getCellByTopicId# https://mooc.icve.com.cn/study/learn/viewDirectory# 0.登录,拿到cookie------>https://mooc.icve.com.cn/portal/LoginMooc/loginSystemdef login(name, password):    '''    登录    :param name: 用户名    :param password: 密码    :return: cookies    '''    # 验证码https://mooc.icve.com.cn/portal/LoginMooc/getVerifyCode?ts=1608968080542    codeUrl = "https://mooc.icve.com.cn/portal/LoginMooc/getVerifyCode?ts={}".format(int(round(time.time() * 1000)))    loginUrl = "https://mooc.icve.com.cn/portal/LoginMooc/loginSystem"    codeResult = requests.post(url=codeUrl, headers=headers)    with open("moocCode.jpg", "wb", ) as f:        f.write(codeResult.content)    # 验证码的cookies    code_cookies = codeResult.cookies    print("---------->验证码获取完成,开始打开验证码")    img = Image.open("moocCode.jpg")    img.show()    print("---------->验证码打开完成,请输入")    data = {        'userName': name,        'password': password,        'verifycode': input("输入验证码:")    }    result = requests.post(url=loginUrl, data=data, headers=headers, cookies=code_cookies)    json_result = json.loads(result.text)    if json_result['code'] == 1 and json_result['msg'] == "登录成功":        return result.cookies    else:        print(json_result['msg'])        return 0# 1.获取所有课程,拿到id-------->https://mooc.icve.com.cn/portal/course/getCourseOpenListdef getCourseOpenList(cookies):    '''    获取所有课程    :param cookies: cookies    :return: [{"id":"wylwaxasdyjptaswj67x6g","text":"茶艺与茶文化_第四次开课"}]    '''    url = "https://mooc.icve.com.cn/portal/course/getCourseOpenList"    result = json.loads(requests.post(url=url, headers=headers, cookies=cookies).text)    return result['list']# 2.得到一级目次-------->https://mooc.icve.com.cn/study/learn/getProcessList?courseOpenId=wylwaxasdyjptaswj67x6gdef getProcessList(cookies, courseId):    '''    得到一级目次    :param cookies: cookies    :param courseId: gtjkawksy5jf7raso8gdq    :return: [{'id': 'oitwaxas05rp25uktqp8a', 'name': '1.茶艺服务礼仪训练', 'sortOrder': 1, 'percent': 40, 'ModuleType': 1, 'ResId': '', 'isUnlock': True}, {'id': 'qotwaxasf7tahcyr6kd8wa', 'name': '2.茶具的认识与使用', 'sortOrder': 2, 'percent': 0, 'ModuleType': 1, 'ResId': '', 'isUnlock': True}, {'id': 'q4twaxasc7nbpxt8pmkjdw', 'name': '3.泡茶操作规范', 'sortOrder': 3, 'percent': 0, 'ModuleType': 1, 'ResId': '', 'isUnlock': True}, {'id': 'q4twaxastoradnurwvdxq', 'name': '4.茶叶认识', 'sortOrder': 4, 'percent': 0, 'ModuleType': 1, 'ResId': '', 'isUnlock': True}, {'id': 'q4twaxasv7zer5q5cks8gg', 'name': '5.泡茶规范与技术', 'sortOrder': 5, 'percent': 0, 'ModuleType': 1, 'ResId': '', 'isUnlock': True}, {'id': 'ritwaxashqlasilv5ziiew', 'name': '6.茶文化解读', 'sortOrder': 6, 'percent': 0, 'ModuleType': 1, 'ResId': '', 'isUnlock': True}]    '''    url = "https://mooc.icve.com.cn/study/learn/getProcessList"    result = json.loads(requests.post(url=url, data={'courseOpenId': courseId}, headers=headers, cookies=cookies).text)    return result['proces']['moduleList']# 3.得到二级目次-------->https://mooc.icve.com.cn/study/learn/getTopicByModuleId?courseOpenId=wylwaxasdyjptaswj67x6g&moduleId=q4twaxasc7nbpxt8pmkjdwdef getTopicByModuleId(cookies, courseId, moduleId):    '''    得到二级目次    :param cookies: cookies    :param courseId: courseOpenId    :param moduleId: moduleId    :return: [{'id': 'pytwaxasupbiajdwbddwaw', 'name': '茶艺服务人员的仪容仪态', 'sortOrder': 0, 'upTopicId': '0', 'isLastStudy': False, 'studyStatus': 0}, {'id': 'qotwaxasyjbjd0mnjgxz1w', 'name': '各种行茶礼仪', 'sortOrder': 1, 'upTopicId': 'pytwaxasupbiajdwbddwaw', 'isLastStudy': False, 'studyStatus': 0}]    '''    url = "https://mooc.icve.com.cn/study/learn/getTopicByModuleId"    data = {        'courseOpenId': courseId,        'moduleId': moduleId    }    result = json.loads(requests.post(url=url, data=data, headers=headers, cookies=cookies).text)    return result['topicList']# 4.获得三级目次(详细信息)--------->https://mooc.icve.com.cn/study/learn/getCellByTopicId?courseOpenId=wylwaxasdyjptaswj67x6g&topicId=qotwaxasyjbjd0mnjgxz1wdef getCellByTopicId(cookies, courseId, topicId):    '''    获得三级目次(详细信息)    :param cookies: cookies    :param courseId: courseOpenId    :param topicId: topicId    :return: [{'Id': 'qytwaxaso6hhfh3x0dnbw', 'resId': '', 'cellType': 4, 'isGJS': 1, 'parentId': 'pytwaxasupbiajdwbddwaw', 'courseOpenId': 'wylwaxasdyjptaswj67x6g', 'topicId': 'pytwaxasupbiajdwbddwaw', 'categoryName': '子节点', 'cellName': '1.茶艺服务人员的妆容仪表要求', 'resourceUrl': '', 'externalLinkUrl': '', 'cellContent': '', 'sortOrder': 1, 'isAllowDownLoad': False, 'childNodeList': [{'Id': 'qotwaxasp4vae7z3zcwqua', 'resId': '', 'cellType': 1, 'isGJS': 1, 'isAllowDownLoad': False, 'parentId': 'qytwaxaso6hhfh3x0dnbw', 'categoryName': '视频', 'cellName': '茶艺师的仪容仪表要求', 'courseOpenId': 'wylwaxasdyjptaswj67x6g', 'resourceUrl': 'doc/g@F35D826F1BAAA3B655096B7E19435948.mp4', 'externalLinkUrl': '', 'cellContent': 'doc/g@F35D826F1BAAA3B655096B7E19435948.mp4', 'upCellId': '0', 'isStudyFinish': True, 'isUnlock': True}, {'Id': 'qotwaxasvrbgva1hlhnjuw', 'resId': '', 'cellType': 1, 'isGJS': 1, 'isAllowDownLoad': False, 'parentId': 'qytwaxaso6hhfh3x0dnbw', 'categoryName': 'swf', 'cellName': '茶艺服务人员的仪容仪表要求', 'courseOpenId': 'wylwaxasdyjptaswj67x6g', 'resourceUrl': 'doc/g@55633CAC7D22C7247E99B7D650010E7D.swf', 'externalLinkUrl': '', 'cellContent': 'doc/g@55633CAC7D22C7247E99B7D650010E7D.swf', 'upCellId': 'qotwaxasp4vae7z3zcwqua', 'isStudyFinish': True, 'isUnlock': True}, {'Id': 'qotwaxasvrbejkntkxphtw', 'resId': '3ixwaxasg5ba3ri5avr79a', 'cellType': 6, 'isGJS': 1, 'isAllowDownLoad': False, 'parentId': 'qytwaxaso6hhfh3x0dnbw', 'categoryName': '作业', 'cellName': '茶艺师的仪容仪表', 'courseOpenId': 'wylwaxasdyjptaswj67x6g', 'resourceUrl': '', 'externalLinkUrl': '', 'cellContent': '', 'upCellId': 'qotwaxasvrbgva1hlhnjuw', 'isStudyFinish': False, 'isUnlock': True}], 'upCellId': '-1', 'isStudyFinish': False, 'isUnlock': True}, {'Id': 'qotwaxasfj5jphzi8yiooq', 'resId': '', 'cellType': 4, 'isGJS': 1, 'parentId': 'pytwaxasupbiajdwbddwaw', 'courseOpenId': 'wylwaxasdyjptaswj67x6g', 'topicId': 'pytwaxasupbiajdwbddwaw', 'categoryName': '子节点', 'cellName': '2.茶艺服务人员的仪态要求', 'resourceUrl': '', 'externalLinkUrl': '', 'cellContent': '', 'sortOrder': 2, 'isAllowDownLoad': False, 'childNodeList': [{'Id': 'qotwaxasf5fm1vtfllslya', 'resId': '', 'cellType': 1, 'isGJS': 1, 'isAllowDownLoad': False, 'parentId': 'qotwaxasfj5jphzi8yiooq', 'categoryName': '视频', 'cellName': '茶艺师的仪态', 'courseOpenId': 'wylwaxasdyjptaswj67x6g', 'resourceUrl': 'doc/g@AA759F5E1EE1978FD760C403B17EF08C.mp4', 'externalLinkUrl': '', 'cellContent': 'doc/g@AA759F5E1EE1978FD760C403B17EF08C.mp4', 'upCellId': 'qotwaxasvrbejkntkxphtw', 'isStudyFinish': True, 'isUnlock': True}, {'Id': 'qotwaxasy4hpjggnawg', 'resId': '', 'cellType': 1, 'isGJS': 1, 'isAllowDownLoad': False, 'parentId': 'qotwaxasfj5jphzi8yiooq', 'categoryName': 'swf', 'cellName': '茶艺服务人员的仪态要求', 'courseOpenId': 'wylwaxasdyjptaswj67x6g', 'resourceUrl': 'doc/g@66FFBBA9CB37B03D4245418690E54815.swf', 'externalLinkUrl': '', 'cellContent': 'doc/g@66FFBBA9CB37B03D4245418690E54815.swf', 'upCellId': 'qotwaxasf5fm1vtfllslya', 'isStudyFinish': True, 'isUnlock': True}, {'Id': 'qotwaxasty1k8hfv4hrwmg', 'resId': '3ixwaxasu41ocvxkwprlxa', 'cellType': 6, 'isGJS': 1, 'isAllowDownLoad': False, 'parentId': 'qotwaxasfj5jphzi8yiooq', 'categoryName': '作业', 'cellName': '茶艺师的仪态要求', 'courseOpenId': 'wylwaxasdyjptaswj67x6g', 'resourceUrl': '', 'externalLinkUrl': '', 'cellContent': '', 'upCellId': 'qotwaxasy4hpjggnawg', 'isStudyFinish': False, 'isUnlock': True}], 'upCellId': '-1', 'isStudyFinish': False, 'isUnlock': True}]    '''    url = "https://mooc.icve.com.cn/study/learn/getCellByTopicId"    data = {        'courseOpenId': courseId,        'topicId': topicId    }    result = json.loads(requests.post(url=url, data=data, headers=headers, cookies=cookies).text)    return result['cellList']# 5.拿到学习时长等信息---------->https://mooc.icve.com.cn/study/learn/viewDirectory?courseOpenId=wylwaxasdyjptaswj67x6g&cellId=qotwaxastizp0ktzqcnjgdef viewDirectory(cookies, courseOpenId, cellId):    '''    拿到学习时长等信息    :param cookies: cookies    :param courseOpenId: courseOpenId    :param cellId: cellId    :return: {'Id': 'cbwagosnyjooghaevg6fw', 'DateCreated': '/Date(1603976559000)/', 'CourseOpenId': 'gtjkawksy5jf7raso8gdq', 'TopicId': 'qc6vagosurpneukvl1nh1w', 'ParentId': 'qc6vagosly1owrpgpu6rg', 'CellName': '幼儿照护员的职业素养', 'CategoryName': 'ppt文档', 'CellType': 1, 'ResourceUrl': 'doc/g@85031789B2B47C2167D68CA0418D9FD3.pptx', 'ExternalLinkUrl': None, 'CellContent': None, 'RarJsonData': None, 'ztWay': 0, 'SpaceCount': 0, 'IsAllowDownLoad': False, 'KnowledgeIds': '', 'KnowledgeTitle': '', 'SortOrder': 1, 'FromType': 2, 'ImpProjectId': '', 'ImpProjectName': '', 'ImpDocId': '', 'ImpDocTitle': '', 'ResId': '', 'NewSortOrder': 0, 'FromId': None, 'VideoTimeLong': 0, 'DocSize': 9023286, 'PageCount': 8, 'DateModified': '/Date(-62135596800000)/', 'VideoQuestionCount': 0, 'PlayType': 0, 'FromMOOCCellId': '', 'DocId': 'cbwagosz7nmuxz8cxclg', 'GreenScan': 'pass', 'GreenScanScene': '', 'TableName': 'MOOC_CourseProcessCell'}    '''    time.sleep(1)    url = "https://mooc.icve.com.cn/study/learn/viewDirectory"    data = {        'courseOpenId': courseOpenId,        'cellId': cellId    }    result = requests.post(url=url, data=data, headers=headers, cookies=cookies)    result = json.loads(result.text)    return result['courseCell']# 6.开始刷课--------->https://mooc.icve.com.cn/study/learn/statStuProcessCellLogAndTimeLong?courseOpenId=wylwaxasdyjptaswj67x6g&cellId=qotwaxastizp0ktzqcnjg&auvideoLength=487&videoTimeTotalLong=487def statStuProcessCellLogAndTimeLong(cookies, courseOpenId, cellId, videoTimeTotalLong):    '''    开始刷课    :param cookies: cookies    :param courseOpenId: courseOpenId    :param cellId: cellId    :param videoTimeTotalLong: videoTimeTotalLong    :return: {"code":1,"isStudy":true}    '''    time.sleep(1.5)    url = "https://mooc.icve.com.cn/study/learn/statStuProcessCellLogAndTimeLong"    data = {        'courseOpenId': courseOpenId,        'cellId': cellId,        'auvideoLength': videoTimeTotalLong,        'videoTimeTotalLong': videoTimeTotalLong    }    result = json.loads(requests.post(url=url, data=data, headers=headers, cookies=cookies).text)    return resultdef start(name, password):    cookies = login(name=name, password=password)  # 得到cookies用于后续登录    course = getCourseOpenList(cookies)  # 得到课程 [{'id': 'gtjkawksy5jf7raso8gdq', 'text': '幼儿照护(中级)_第一次开课'}]    for i in course:        print("进入课程:" + i['text'])        time.sleep(1)        # 一级目次        moduleList1 = getProcessList(cookies=cookies, courseId=i[            'id'])  # [{'id': 'oitwaxas05rp25uktqp8a', 'name': '1.茶艺服务礼仪训练', 'sortOrder': 1, 'percent': 40, 'ModuleType': 1, 'ResId': '', 'isUnlock': True}, {'id': 'qotwaxasf7tahcyr6kd8wa', 'name': '2.茶具的认识与使用', 'sortOrder': 2, 'percent': 0, 'ModuleType': 1, 'ResId': '', 'isUnlock': True}, {'id': 'q4twaxasc7nbpxt8pmkjdw', 'name': '3.泡茶操作规范', 'sortOrder': 3, 'percent': 0, 'ModuleType': 1, 'ResId': '', 'isUnlock': True}, {'id': 'q4twaxastoradnurwvdxq', 'name': '4.茶叶认识', 'sortOrder': 4, 'percent': 0, 'ModuleType': 1, 'ResId': '', 'isUnlock': True}, {'id': 'q4twaxasv7zer5q5cks8gg', 'name': '5.泡茶规范与技术', 'sortOrder': 5, 'percent': 0, 'ModuleType': 1, 'ResId': '', 'isUnlock': True}, {'id': 'ritwaxashqlasilv5ziiew', 'name': '6.茶文化解读', 'sortOrder': 6, 'percent': 0, 'ModuleType': 1, 'ResId': '', 'isUnlock': True}]        for j in moduleList1:            time.sleep(0.25)            print("\t" + j['name'])            # 二级目次            moduleList2 = getTopicByModuleId(cookies=cookies, courseId=i['id'], moduleId=j['id'])            for k in moduleList2:                time.sleep(0.25)                print("\t\t" + k['name'])                # 三级目次                moduleList3 = getCellByTopicId(cookies=cookies, courseId=i['id'], topicId=k['id'])                for m in moduleList3:                    time.sleep(0.25)                    print("\t\t\t" + m['cellName'])                    # 如果只有三级目次                    if not len(m['childNodeList']):                        # =================================================================================================================================                        # 如果课程完成-不刷课                        if m['isStudyFinish'] is True:                            print(                                "\t\t\t\t" + m['cellName'] + "\t范例:" + m['categoryName'] + "\t\t------课程完成,不刷课-------")                            continue                        # 拿课程信息                        info = viewDirectory(cookies=cookies, courseOpenId=m['courseOpenId'], cellId=m['Id'])                        # 将信息拿去刷课                        if not m['categoryName'] == "视频" and not m['categoryName'] == "音频":                            # 如果不是视频或者音频                            isOK = statStuProcessCellLogAndTimeLong(cookies=cookies, courseOpenId=info['CourseOpenId'],                                                                    cellId=info['Id'],                                                                    videoTimeTotalLong=0)                        # 四级目次(最终)                        else:                            # 是视频或者音频                            isOK = statStuProcessCellLogAndTimeLong(cookies=cookies, courseOpenId=info['CourseOpenId'],                                                                    cellId=info['Id'],                                                                    videoTimeTotalLong=info['VideoTimeLong'])                        if isOK['code'] == 1 and isOK['isStudy'] is True:                            print("\t\t\t\t" + m['cellName'] + "\t范例:" + m['categoryName'] + "\t\t-----刷课OK----")                        else:                            print("\t\t\t\t" + m['cellName'] + "\t范例:" + m['categoryName'] + "\t\t-----ERROR----")                    else:                        # =================================================================================================================================                        for n in m['childNodeList']:                            time.sleep(0.5)                            # 如果课程完成-不刷课                            if n['isStudyFinish'] is True:                                print("\t\t\t\t" + n['cellName'] + "\t范例:" + n[                                    'categoryName'] + "\t\t------课程完成,不刷课-------")                                continue                            # 拿课程信息                            info = viewDirectory(cookies=cookies, courseOpenId=n['courseOpenId'], cellId=n['Id'])                            # 将信息拿去刷课                            if not n['categoryName'] == "视频" and not n['categoryName'] == "音频":                                # 如果不是视频或者音频                                isOK = statStuProcessCellLogAndTimeLong(cookies=cookies,                                                                        courseOpenId=info['CourseOpenId'],                                                                        cellId=info['Id'],                                                                        videoTimeTotalLong=0)                            else:                                # 是视频或者音频                                isOK = statStuProcessCellLogAndTimeLong(cookies=cookies,                                                                        courseOpenId=info['CourseOpenId'],                                                                        cellId=info['Id'],                                                                        videoTimeTotalLong=info['VideoTimeLong'])                            if isOK['code'] == 1 and isOK['isStudy'] is True:                                print("\t\t\t\t" + n['cellName'] + "\t范例:" + n['categoryName'] + "\t\t-----刷课OK----")                            else:                                print("\t\t\t\t" + n['cellName'] + "\t范例:" + n['categoryName'] + "\t\t-----ERROR----")if __name__ == '__main__':    # ====================== # 只需要填写    name = "账号"         # 账号    password = "密码"    # 密码    # ====================== # 然后运行,然后输入验证码    start(name=name, password=password)

















来源:http://www.12558.net
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
楼主热帖
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|12558网页游戏私服论坛 |网站地图

GMT+8, 2024-4-26 14:06 , Processed in 0.156250 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表