# WoW_MultiTool 打包与使用说明

## 一、如何打包成 exe

### 环境要求

- Windows 系统
- 已安装 Python 3.8+（建议 3.11）
- 已安装项目依赖

### 步骤

1. **安装依赖**（若尚未安装）  
   在项目目录 `wow` 下打开终端，执行：

   ```powershell
   pip install -r requirements.txt
   ```

2. **执行打包**  
   任选一种方式：

   **方式 A：使用脚本（推荐）**

   ```powershell
   .\build_exe.ps1
   ```

   **方式 B：手动命令（等价于脚本）**

   ```powershell
   pyinstaller --noconfirm build_wow_multikey.spec
   ```

3. **获取 exe**  
   打包完成后，可执行文件位于：

   ```
   项目目录\dist\WoW_MultiTool.exe
   ```

### 打包配置说明

**WoW_MultiTool（集成 GUI）**
- 主入口：`wow_multikey_gui.py`
- 输出：`WoW_MultiTool.exe`
- 无控制台窗口，纯 GUI 程序
- 运行所需数据：
  - `dist\recorder\*.json`（巡逻点/修理商/其他路线）
  - `dist\game_state_config.json`（状态监控截图参数）

### 打包后的目录结构

脚本会在打包完成后，把项目目录下的 `recorder\` 整个复制到 `dist\recorder\`，方便直接运行：

```
dist\
  WoW_MultiTool.exe
  game_state_config.json
  recorder\
    waypoints.json
    vendor.json
    其他*.json
```

---

## 二、如何使用 exe

### 运行前准备

1. **启动游戏**  
   先运行并进入《魔兽世界》，确保游戏窗口标题包含「魔兽世界」。

2. **准备 recorder 文件**  
   巡逻/修理商等路线 JSON **统一放在** `dist\recorder\`（或项目目录的 `recorder\`）下。

### 启动程序

- 双击 **`WoW_MultiTool.exe`**，或在终端中执行：
  ```powershell
  .\WoW_MultiTool.exe
  ```

### 运行中

- GUI 会显示当前状态（血量、法力、战斗、目标、背包、耐久、坐标等），并可一键启动对应模式。

### 停止程序

- 点击「停止」按钮，或直接关闭窗口。

### 配置文件说明

| 文件             | 说明 |
|------------------|------|
| `dist\\recorder\\*.json` | 巡逻点/修理商/其他路线文件（下拉选择） |
| `game_state_config.json` | 状态监控截图参数（适配不同分辨率） |

> 说明：巡逻模式的文件选择 **只能选择 `recorder` 文件夹下的 json**，并且在界面里用下拉框选择。

---

## 三、WoW 多功能控制器（集成 GUI）

WoW 多功能控制器集成了以下功能：

| 功能           | 说明 |
|----------------|------|
| **多键控制**   | 定时向魔兽窗口发送按键（空格、1–5），防掉线、自动跳跃 |
| **状态监控**   | 实时显示血量、法力、战斗、目标、坐标等 |
| **巡逻打怪**   | 按 waypoints.json 巡逻，自动寻怪、战斗、拾取、跑尸、回城 |
| **自动打怪**   | 原地寻怪、战斗、拾取（不巡逻） |
| **巡逻点录制** | 在游戏内跑动时自动记录坐标点，保存到 waypoints.json |

### 运行方式

**方式 A：直接运行 Python 脚本**
```powershell
python wow_multikey_gui.py
```

**方式 B：运行打包后的 exe**
```powershell
.\build_exe.ps1
# 然后运行 dist\WoW_MultiTool.exe
```

### 使用说明

1. 先启动魔兽世界，确保窗口标题为「魔兽世界」或「World of Warcraft」。
2. 打开 WoW 多功能控制器，点击「刷新窗口」绑定游戏窗口。
3. **多键控制**：勾选按键、设置间隔，点击「启动多键」。
4. **状态监控**：选择「状态监控」→ 可在下方调整多分辨率参数 → 点击「保存配置」写入 `game_state_config.json`。
5. **巡逻打怪**：选择「巡逻打怪」→ 下方会出现配置区 → 从下拉框选择 `recorder\` 下的巡逻点 JSON 和修理商 JSON → 点击「启动」。
6. **自动打怪**：选择「自动打怪」→ 点击「启动」。
7. **巡逻点录制**：在「巡逻点录制」Tab 输入名称 → 开始/停止 → 保存后会写入 `recorder\名称.json`。
8. 多键配置保存到 `wow_multikey_qt.json`。

---

## 四、常见问题

**Q：打包时报错找不到某模块？**  
A：先执行 `pip install -r requirements.txt`，确保所有依赖已安装后再执行 `pyinstaller --noconfirm build_wow_multikey.spec`。

**Q：如何把 exe 拷到别的电脑用？**  
A：复制整个 `dist\` 文件夹即可（包含 `WoW_MultiTool.exe`、`recorder\`、`game_state_config.json`）。目标电脑无需安装 Python。

**Q：杀毒软件报毒？**  
A：PyInstaller 打包的 exe 可能被部分杀毒软件误报，可添加信任或排除该 exe 所在目录。

**Q：多键控制器找不到游戏窗口？**  
A：确保游戏窗口标题包含「魔兽世界」或「World of Warcraft」；若使用英文客户端，窗口标题为 "World of Warcraft"。
