【教程】GameResDownloader2教学

warning:本人不接受任何关于Discord名称和相关文件的分享,请自行搜索并确定社区位置和相关文件的下载方法。(I do not accept any sharing about the name of the Discord server and related files, please search and determine the community location and the download method of related files by yourself.)

前言

本文是针对某Discord群中的w开头的老哥开发的名为“GameResDownloader2”的基于Python的下载工具的安装和使用教程。

此下载工具主要用途是抓包+解密部分手机游戏的原始数据包(抓包+解密),而非经过处理的手机版本的数据包。

为了规避版权问题,Discord群组内会定期删除下载工具使用的脚本,因此本文也不会对脚本进行介绍,如果真的有兴趣,请您在加入DC群后向作者提问。

另外我感觉w老哥大概率也是个国人或者中文圈子的人,因为此下载工具支持的语言只有“中英”,所以本文也会尽量采取低调的方式对工具使用方法进行介绍。实际上就是写一个简单的笔记啦。

注:除了UI界面机翻以外,游戏名称是从qooapp抓的,所以软件开发者大概也并不会中文吧……

准备

首先既然是基于Python的工具,环境配置方面你肯定是要安装Python。

您这边请:https://www.python.org/downloads/release/python-3131/

Python安装教程就不额外介绍了……基本上就是一路按按按,记得把Python加到环境变量的那个勾点上就行。

Python里面是自带pip的,后面要用上。

第二个就是要安装Visual Studio,因为某些模块的造轮子过程好像需要调用VSC++。

点击链接:https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/

下载以后点开安装程序,然后请安装左上角的使用C++的桌面开发(只需要这个):

需要调整安装位置的话可以在安装位置选项卡调整,装完以后关了就行。

环境配置

下载好DC服务器中w氏上传的最新压缩包以后解压,然后进入相关文件夹。

右键,“在终端中打开”

然后视情况看看你是否需要代理:$env:HTTP_PROXY="http://127.0.0.1:7890";$env:HTTPS_PROXY="http://127.0.0.1:7890"

或者调整pip的安装镜像为清华源:

python -m pip install --upgrade pip
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

接下来,请运行pip install -r requirements.txt --no-cache-dir安装和造轮子。

安装完成后不会有报错则没有问题。

使用

请将下载好的脚本放置在GameResDownloader2\CodeModules\GameCode目录下。(部分游戏的文件目录可能加密,请参考前后聊天记录的说明或其他附件文件进行调整修改)

本例以12月17日关服的手游八月的棒球甜心为例:

在上一步完成指令行中输入:python GameResDownloader2.py,会弹出一个窗口。

这一步在指令行窗口显示的报错可以完全无视。

默认情况下为英语,你可以在右下角将其修改为中文(zh-Hans):

默认的下载模式为自动模式,八月的棒球甜心为手动模式,请在右下角将自动修改手动

下载前如为海外游戏,如本例,请使用某些软件的“系统代理”功能加速。

本图中的下载路径没有调整本图中的下载路径没有调整

下载的内容是带有全部数据包文件地址的json文件。会存储在GameResDownloader2\GameResDownloader2目录下,格式为json,且会依据数据包版本区分为游戏名_系统_新旧补的若干种文件名形式,如八月的棒球甜心_Android_new.json

本图中的下载路径没有调整本图中的下载路径没有调整

info:本教程的窗口中设置的下载路径与默认值不同,请注意。

接下来,请通过运行下面的下载脚本将完整数据包下载到本地(脚本由kimi编写):

import json
import os
import requests

# 请修改为json的完整路径
json_file_path = 'D:\Downloads\GameResDownloader2\GameResDownloader2\八月的棒球甜心_Android_new.json'

# 读取JSON文件
with open(json_file_path, 'r') as file:
    data = json.load(file)

# 创建一个目录来存储下载的文件,请自定义
download_dir = 'D:\Downloads\GameResDownloader2\GameResDownloader2\八月的棒球甜心'
if not os.path.exists(download_dir):
    os.makedirs(download_dir)

# 遍历JSON数据中的每个条目
for key, value in data.items():
    # 获取文件的URL和名称
    file_url = value['url'].replace('"', '')  # 移除URL中的HTML实体
    file_name = value['name']
    file_path = os.path.join(download_dir, file_name)  # 完整的文件路径

    # 确保文件路径中的所有目录都存在
    os.makedirs(os.path.dirname(file_path), exist_ok=True)

    # 检查文件是否已经存在且大小匹配
    if os.path.exists(file_path) and os.path.getsize(file_path) == value['size']:
        print(f'文件 {file_name} 已存在,跳过下载。')
        continue

    # 下载文件
    try:
        response = requests.get(file_url, stream=True)
        response.raise_for_status()  # 确保请求成功
        with open(file_path, 'wb') as f:
            for chunk in response.iter_content(chunk_size=8192):
                f.write(chunk)
        print(f'文件 {file_name} 下载成功,保存在 {file_path}。')
    except requests.RequestException as e:
        print(f'下载文件 {file_name} 时出错:{e}')

print('所有文件下载完成。')

如有疑问欢迎提出。

添加新评论