# 无尽冬日 - 自动打熊脚本（车身模式，Auto.js）

基于 Auto.js 无障碍服务的安卓自动打熊脚本，**车身模式**：加入他人集结，搭车打熊。支持纯坐标点击和图像模板识别两种方式，默认按 1080x2400 分辨率编写。

## 文件结构

```
bear-hunt-autojs/
├── main.js          # 主脚本（车身模式自动循环）
├── config.js        # 配置文件（坐标、时间、循环次数）
├── calibrate.js     # 校准模式（调试跑一轮，用于核对坐标）
└── templates/       # 可选：图像识别模板目录
```

## 环境要求

1. 手机安装 [Auto.js](https://autojs.org) 或 Auto.js Pro
2. 在 Auto.js 设置中开启**无障碍服务**（必须）
3. 建议开启**悬浮窗**和**屏幕录制权限**（图像识别功能依赖截屏）

## 打熊流程（车身模式）

每轮循环：回到主城 → 打开打熊入口 → 选择目标熊 → 选择集结 → 加入集结 → 确认加入 → 等待行军往返 → 下一轮

车身模式依赖场上有可加入的集结（由其他玩家发起的车头），没有集结时本轮会失败重试。

## 使用步骤

1. 把整个 `bear-hunt-autojs` 目录导入 Auto.js（新建脚本时选择"目录"导入）
2. 打开 `config.js`，按下文校准方法填写坐标和时间参数
3. 在 Auto.js 中运行 `main.js`

## 校准坐标方法

推荐方式，任选其一：

- **Auto.js 坐标查看**：Auto.js 侧边栏有"坐标查看"工具，开启后点击屏幕会显示坐标，把关键按钮的坐标填进 `config.js`
- **校准模式**：运行 `calibrate.js`，脚本会在每次点击前 toast 提示按钮名称和坐标，逐点核对后把正确坐标写回 `config.js`

各坐标含义见 `config.js` 注释。分辨率不是 1080x2400 的手机，优先用 Auto.js 坐标工具获取后直接填写即可（`setScreenMetrics` 会自动按配置缩放，与屏幕实际像素无关）。

## 时间参数建议

| 参数 | 含义 | 建议 |
|------|------|------|
| `marchRoundTripTime` | 行军往返+战斗总耗时 | 实测一次完整出征用时 |
| `extraWait` | 返回后缓冲 | 10000 左右 |
| `roundInterval` | 每轮间隔 | 8000 左右 |
| `maxRounds` | 循环次数 | 0 为无限，测试时可设为 3 |

## 可选：图像模板识别

如果坐标点击不稳定（界面元素位置会变），可以截图关键按钮保存到 `templates/` 目录，脚本会优先用图像识别定位，识别不到再回退到坐标：

| 模板文件名 | 对应按钮 |
|-----------|---------|
| `bear_hunt_entry.png` | 打熊入口 |
| `bear_select.png` | 目标熊 |
| `rally_target.png` | 目标集结 |
| `join_rally.png` | 加入集结 |
| `confirm_join.png` | 确认加入 |

截图建议只裁按钮本体，避免包含动态背景。识别阈值可在 `main.js` 的 `findTemplate` 中调整（默认 0.85）。

## 日志

每次运行会在脚本目录生成 `log.txt`，记录每轮操作和点击坐标，便于排查问题。

## 注意事项

- 打熊活动未开启时脚本无法正常工作，请确认活动时间
- 车身模式需要场上有其他玩家发起的集结才能加入
- 脚本属于游戏自动化辅助，仅供个人学习自动化技术使用，请遵守游戏规则与运营政策
- 调整 config.js 前请先停止脚本
