#sc #supercell #directory #command-line-tool #brawlstars #clashofclans #clashroyale

bin+lib sc_extract

从 Supercell 游戏中提取图形和 csv 文件的命令行工具

8 个版本 (4 个稳定版)

1.1.0 2021 年 5 月 8 日
1.0.2 2020 年 9 月 4 日
1.0.1 2020 年 8 月 25 日
0.2.0 2020 年 7 月 27 日
0.1.1 2020 年 6 月 6 日

#2556命令行工具

每月下载量 28 次

MIT 许可证

68KB
1K SLoC

sc_extract

build badge release badge crates.io badge license badge rust 2018 badge

sc_extract 是一个从 Supercell 游戏文件中提取图形和解码 csv 文件的高效工具。

此工具旨在从文件中获取高质量的图形和数据。它绝不旨在

  • 以任何方式修改游戏
  • 创建基于 Supercell 任何游戏的克隆或任何其他游戏
  • 获利

功能

sc_extract 的一些功能包括

  • 非常快速的速度(比 Python 工具快 10 倍以上)
  • 为多个操作系统预编译的二进制文件(Linux、macOS、Windows)
  • 支持多种文件格式
  • 非常广泛的命令行支持

sc_extract 可以提取/处理 Supercell 游戏中找到的以下文件

  • _tex.sc
  • .csv
  • .sc 文件是从 QuickBMS 提取的

sc_extract 是一个独立工具(二进制名为 sce),但它提供了一个简单的 Rust crate,具有干净的 API,允许开发人员以最小的工作量实现自己的工具。

关于此工具

此工具是这些脚本的 Rust 实现

Python 实现提取大文件中的图像需要很长时间。sc_extract 可以非常快速地提取数据。以下是一些比较

  • 要从《斗罗大陆》版本 27.269 中提取所有 _tex.sc 精灵,sc_extract 需要 不到 20 秒,而 cr-sc-dump 需要 超过 4 分钟

  • 要从《斗罗大陆》版本 27.269ui 文件中提取所有单个图像,sc_extract 需要 大约 2.5 分钟,而 sc_decode 需要 超过 10 分钟

注意:以下时间是在配备了1.8 GHz 双核英特尔酷睿i5处理器和8 GB RAM的MacBook Air上测试的。它们可能在您的机器上有所不同。

可以通过使用parallelize标志进一步减少sc_extract所需的时间。

安装

sc_extract可以通过三种方式安装。第一种方法(推荐)速度最快,无需安装Rust。第二种和第三种方法需要您安装Rust的2018版本。Rust适用于大量操作系统。点击上面的链接将带您到Rust的安装页面。

您可以在此处找到适用于多个操作系统和架构的预编译二进制文件。

下载适合您机器的二进制文件。下载后,解压文件夹。您应该看到以下三个文件

  • sce(或Windows上的sce.exe
  • README.md
  • LICENSE

现在,使用cd进入此目录,然后按照此处描述的步骤使用它!

使用cargo install

sc_extract可在crates.io上找到。您可以通过在终端中使用cargo install sc_extract命令来安装和构建此工具。安装过程需要几分钟来构建所有依赖项,但一旦完成,该工具将非常快速地运行。

它还会自动将其添加到shell路径中,允许您从任何目录使用此工具。

从源代码构建

您可以下载此工具的源代码,然后使用cargo build --release命令自行构建。在执行此命令之前,您需要使用cd进入此工具的目录。不要忘记使用--release标志,否则您的工具将运行非常慢。

注意:以下示例命令将假定您已使用第一种或第二种方法安装了工具。如果您是从源代码安装的,您必须在所有命令中将sce替换为cargo run --release。之前版本的sc_extract的二进制文件名为sc_extract,因此如果您有旧版本,您必须使用sc_extract作为名称。

用法

注意1:您可能需要将下面的命令中的sce替换为./scesce.exesc_extractcargo run --release

注意2:提取的sc将被用于表示在以下章节中使用的QuickBMS提取的.sc文件。提取的sc文件没有扩展名,它们看起来像uiloading等。

您需要提取超级细胞游戏所需的_tex.sc、提取的sc.csv文件。您可以通过下载游戏的APK文件,将其扩展名更改为.zip,解压缩并导航到解压缩文件夹中的/assets/sc(_tex.sc文件)、/assets/csv_logic(csv文件)或csv_client(csv文件)文件夹来获取文件。要获取提取的sc文件,请参阅本节

安装此工具后,请使用cd进入工具所在的目录(如果您将其添加到路径或使用第二种方法,则不需要这样做)。

cd path_to_sce

然后,只需使用以下命令即可提取所需的文件!

sce [FLAGS] [OPTIONS] [path]

path必须是一个有效的路径,指向单个_tex.sc、提取的sc.csv文件或包含这些文件的目录。请参阅标志和选项部分以了解更多信息。

如果没有指定path,则使用当前目录作为路径。

如果您使用源代码安装了工具,您可能希望在提取文件之前构建工具及其所有依赖项。您可以在工具目录中运行cargo build --release命令。构建需要几分钟,但以后运行工具将非常快。

标志和选项

以下可选标志和选项可以指定以控制提取。您可能需要指定png选项(见下文)以从提取的sc文件中提取图像。

标志 描述
--delete -d 在提取后删除源文件
--parallelize -p 并行提取文件,使过程更快
--disable-filter -F 禁用过滤常见易出错文件,如quickbms.DS_Store
--help -h 打印帮助信息
--version -V 打印版本信息
选项 描述 out_path
--out -o 指定输出目录。如果没有指定,将在path中创建名为extracts的目录。 out-path必须是一个有效的路径字符串。
--png -P 指定存储_tex.sc文件的提取图像的目录路径。这是使用提取的.sc文件剪切图像所必需的。如果没有指定路径,sc_extract将在包含源文件(提取的sc)的目录中查找png文件。 png-dir必须是一个有效的路径字符串。
--type -t 指定您要提取的文件类型。默认情况下,考虑所有类型。 kind可以是"csv"、"sc"和"tex"(不带双引号)之一。

示例命令

sce ./sc -F

上述命令使用 ./sc 作为源目录。它逐个遍历目录中的所有文件并提取所有有效文件。输出保存在 ./sc/extracts 目录中。它不会忽略像 quickbms.DS_Store 这样的文件,因为这些文件由于 -F 标志而不会被忽略。

sce --delete -p ./sc --out ./extracts

上述命令使用 ./sc 作为源目录。它并行遍历目录中的所有文件并提取所有有效文件。输出保存在 ./extracts 目录中。未提供 png 标志,因此它会在 ./sc 中查找从 _tex.sc 提取的精灵。如果 ./sc 目录不包含精灵,则无法从提取的 sc 文件中裁剪图像。其余的提取不会受到影响。提取后,所有有效的 _tex.sc.csv 和提取的 sc(带有png图像)文件将被删除。

sce -p ./sc --out ./sc_out -t sc --png ./sc/extracts

上述命令使用 ./sc 作为源目录。它并行遍历目录中的所有文件,并使用所有有效的提取 sc 文件裁剪图像。输出保存在 ./sc_out 目录中。用于提取的png文件将在 ./sc/extracts 目录中搜索。

使用 QuickBMS 提取 .sc 文件

QuickBMS 是提取 .sc 文件所必需的。您还需要 clash_royale.bms。QuickBMS 可以从 macOS 这里 下载。

将 QuickBMS 和 clash_royale.bms 复制到包含 .sc 文件的目录中(不是 _tex.sc),然后运行此命令

find . -not -name '*_tex.sc' -name '*.sc' -exec ./quickbms ./clash_royale.bms {} \;

如果您使用的是 Windows,您可能需要根据需要调整此命令。

运行此命令将为文件夹中的每个 .sc 文件创建一个新的文件。这些文件将与相应的 .sc 文件具有相同的名称但没有扩展名。这些被称为提取的 sc 文件,用于裁剪精灵。

更新

如果您使用了预编译的二进制文件,您只需从 Releases 页面下载新版本的二进制文件即可。

如果您使用 cargo install 安装了工具,您可以通过简单地重新使用 cargo install sc_extract 命令来更新工具。如果更新工具失败,您可以添加 --force 标志强制执行,如下所示: cargo install sc_extract --force

如果您使用源代码安装,您将需要使用新源代码重复 Building From Source 部分中描述的过程。

许可协议

sc_extract 在 MIT 许可协议下提供。有关详细信息,请参阅 LICENSE

鸣谢

如果没有以下人员创建原始的 Python 脚本,此工具将不会存在。

依赖项

~23–34MB
~324K SLoC