> For the complete documentation index, see [llms.txt](https://hamsterbaron.gitbook.io/hamsterbaron/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hamsterbaron.gitbook.io/hamsterbaron/mechanic-guides/da-bao-yu-fen-fa-distribution.md).

# 打包与分发 / Distribution

## 文件打包

为了避免非稳定版本用户修改导致的破坏性风险及保护创作者的知识产权与创意内容，Arcana 要求并提供了从机制配置文件到完整 Tacz 拓展资源包的加密保护功能。考虑到非法逆向工程可能性，打包工具暂不对外开放下载。<mark style="color:$warning;">进行相关操作请加入内测用户群</mark>并使用群聊机器人相关自助服务完成。

{% hint style="danger" %}
**使用警告** : Arcana 功能仅建议用于保护创作者的原创内容与合法权益。开发团队不对任何个人或组织基于该功能所进行的盈利性使用及由此产生的法律后果承担责任；原则上，制作组不支持您使用本功能保护设置了一般付费门槛的 TacZ 衍生相关商业资产；在使用该功能时，应自行评估并遵守Mojang EULA协议与相关法律法规。
{% endhint %}

## 封装机制文件

打包您的机制文件时，请将位于游戏根目录中的模组配置文件夹里的`taczexpands`文件夹压缩为zip类型文件，压缩后的文件结构应如下所示：

```iecst
taczexpands.zip
├─ volatile_variables.yaml
└─ skills
   ├─ example.yaml
   └─ otherskill.yaml
```

将打包好的压缩包拖动至与解密工具所在文件夹同一目录下，打开 Powershell 输入以下指令：

```powershell
.\ARCANA_Encryptor.exe encexpansion .\taczexpands.zip
```

此时文件夹中将出现一个`.data`类型文件，该文件即为封装后的机制文件。当前 Arcana 只允许非开发版用户加载经封装的机制文件。封装后的机制文件可以放在 Minecraft 根目录中的 config 文件夹，也可以随枪包发布，此时应将封装后的机制文件放在该路径下：

```
.minecraft\versions\{GameVersion}\tacz\{PackageName}\data\{Namespace}\expansions
```

对于整合包制作者，建议将打包好的机制文件放入客户端 config 文件夹内而不是分散于各拓展资源包中以便于管理。对于 TacZ 拓展包作者，建议放入上述路径中而不是打包成同时具有 config 与 tacz 两个文件夹的压缩包发布您的作品，这将方便使用者的排障工作与文件管理。

## 加密拓展包

Arcana 为拓展开发者们提供了新的资产保护方案，避免创作者们的劳动成果被轻松的非法复制，传播及使用，并避免资源包中暴露在外的开源协议类型被私自篡改。

该组件提供了三种加密模式以便不同需求的创作者使用。请根据自身实际需求挑选下列加密方案以保护您的创作成果和知识产权。

{% hint style="info" %}
**使用须知** : 依赖 Arcana 将 TacZ 拓展包进行任何等级的封装或加密保护都将导致该拓展包必须依赖该组件才能正常加载及运行。请在使用此功能前考虑目标用户群体是否能够接受必要的额外前置模组。
{% endhint %}

#### 素材文件封装

此种方案仅保护美术资源与开源协议不被私自篡改及复制传播。

* *安全性较低*
* *方便拓展包用户调整数据*
* *适用受信任的使用者*

#### 全量封装

此种方案将完全打包拓展包全部文件并封装为经过加密的单一文件。

* *安全性较高*
* *无法调整数据文件*
* *适用公开非付费资产*
* *潜在兼容性问题*

#### 需要验证的全量封装

此种方案在全量封装的基础上要求联网验证使用许可权，并采用特殊方式加载资源。

* *安全性极高*
* *需要联网验证本地权限*
* *适用离线服务器商业级资产<mark style="color:$danger;">（请自行确保符合相关协议）</mark>*
* *加载阶段性能损耗大*
* *潜在兼容性问题*

当您完成了一切枪包的制作并确定可以进行加密封装时，请将您的 TacZ 模组内容拓展包打包压缩为zip类型文件，该压缩格式应可正常被 TacZ 模组读取，其结构应如下所示：

```
tacz_gunpack
├─ gunpack.meta.json
├─ README.txt
├─ data
│  └─ {namespace}
│     ├─ data
│     └─ ...
└─ assets
   └─ {namespace}
      ├─ gunpack_info.json
      └─ ...
```

确认压缩后的文件结构无误后，将打包好的模组内容拓展包的压缩包形式文件拖动至与解密工具所在文件夹同一目录下，打开 Powershell 输入以下指令：

```
.\ARCANA_Encryptor.exe enctaczpack .\tacz_gunpack.zip
```

此时文件夹中将出现一个`.dat`类型文件，该文件即为经加密保护的拓展资源包。通过 Arcana 加密保护的拓展包需要客户端安装有 Arcana 用户版模组才可正常加载，未安装时将无法被 TacZ 模组识别。
