Skip to content

Latest commit

 

History

History
184 lines (134 loc) · 6.88 KB

File metadata and controls

184 lines (134 loc) · 6.88 KB

The Bazaar Gate

🎮 专为绕过 Tempo Launcher 官方启动器的文件完整性校验而打造的补丁工具。

English

这个工具是做什么的?

Tempo Launcher 会在游戏启动前验证游戏文件的完整性。当游戏安装了模组时,文件校验会失败,导致无法使用模组启动游戏。

这个工具的作用:在启动游戏前自动备份模组文件、删除模组文件让校验通过、捕获游戏启动参数后恢复模组文件,让你无需每次手动备份/恢复模组。

功能特点

  • 自动模组管理:自动备份、删除、恢复模组文件
  • 参数捕获:从 Tempo Launcher 捕获游戏启动参数
  • 多语言支持:内置中文、英文、繁体中文、俄语、韩语、日语,易于扩展新语言
  • 现代化界面:简洁的扁平设计
  • 单文件发布:语言文件打包进程序本体,无需额外配置文件

下载

Releases 页面下载最新版本。

使用方法

  1. 运行 TheBazaarGate.exe
  2. 设置游戏目录和启动器目录
  3. 点击"启动游戏",工具会自动完成所有操作

添加新语言

语言文件已打包进程序本体。如需添加新语言,请按以下步骤操作:

第一步:编辑语言文件

编辑源码中的 dist/language.csv 文件,添加一个新的列,列名为语言代码。

示例 - 添加法语 (fr):

key,zh,en,fr
app_title,The Bazaar Gate,The Bazaar Gate,La Porte du Bazar
...

第二步:翻译所有键值

复制现有语言列并翻译所有值。确保:

  • 保持表情符号指示器(📁, 🚀, 🎮 等)的一致性
  • 保持占位符位置({})用于格式字符串
  • 每行都有对应语言的翻译

第三步:重新打包程序

# 安装依赖
pip install -r requirements.txt

# 打包程序(语言文件会自动嵌入)
python build_exe.py

打包完成后,新语言将出现在程序的语言下拉菜单中。

翻译指南

  • 保持表情符号指示器(📁, 🚀, 🎮 等)的一致性
  • 保持占位符位置({})用于格式字符串
  • 确保换行符被保留(如需换行请用引号包裹)

工作原理

┌─────────────────────────────────────────────────────────────┐
│  1. 备份模组文件                                             │
│     - 检测游戏目录中的模组文件                                │
│     - 备份到 mod_backup/ 文件夹                              │
│     - 删除游戏目录中的模组文件                                │
└─────────────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────────────┐
│  2. 启动 Tempo Launcher 并捕获参数                           │
│     - 启动 Tempo Launcher                                   │
│     - 等待用户点击 PLAY                                      │
│     - 捕获游戏启动参数                                       │
│     - 关闭游戏进程                                           │
└─────────────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────────────┐
│  3. 恢复模组文件                                             │
│     - 将备份的模组文件恢复到游戏目录                          │
│     - 清理备份文件夹                                         │
└─────────────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────────────┐
│  4. 启动游戏                                                 │
│     - 使用捕获的参数启动游戏                                  │
│     - 退出启动器                                             │
└─────────────────────────────────────────────────────────────┘

配置

设置存储在程序所在目录下的 settings.txt 中。程序运行时还会在同一目录生成 launcher.log 和临时的 mod_backup/

{
  "game_path": "C:\\path\\to\\game",
  "launcher_path": "C:\\path\\to\\launcher",
  "language": "zh",
  "mod_items": ["BepInEx", "BazaarPlusPlus", "doorstop_config.ini", "winhttp.dll"]
}

模组文件配置

在程序中点击"捕获文件"按钮可以配置模组文件列表:

  • 每行一个文件或文件夹名称
  • 不存在的文件会自动跳过
  • 同时支持文件(.dll)和文件夹

开发

环境要求

  • Python 3.9+
  • Windows 系统(使用 win32gui, psutil)

安装依赖

pip install -r requirements.txt

从源码运行

python dist/launcher_tool.py

构建可执行文件

python build_exe.py

输出:dist/TheBazaarGate.exe

项目结构

The_Bazaar_Gate/
├── dist/
│   ├── launcher_tool.py        # 主应用程序源码
│   └── language.csv            # 语言文件(打包时嵌入程序)
├── .github/
│   ├── workflows/
│   │   └── ci.yml              # CI/CD 流水线
│   └── ISSUE_TEMPLATE/
│       ├── bug_report.md       # Bug 报告模板
│       └── feature_request.md  # 功能请求模板
├── build_exe.py                # 构建脚本
├── requirements.txt            # Python 依赖
├── SPEC.md                     # 项目规格说明
├── README.md                   # 本文件(中文)
├── README-en.md                # 英文版本
└── CONTRIBUTING.md             # 贡献指南

发布文件

发布时仅需单个可执行文件:

TheBazaarGate.exe    # 包含所有资源的独立可执行文件

贡献

欢迎贡献!请阅读 CONTRIBUTING.md 了解更多详情。

许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件。