自由循环框架结构
# 激战2 自动循环脚本 — 使用教程
> 适用脚本:`1.77b1.61.ahk` | 游戏:激战2 (Guild Wars 2)
> 原理:通过屏幕取色判断技能是否可用,自动按下对应按键
---
## 目录
1. [核心原理](#1-核心原理)
2. [快速上手](#2-快速上手)
3. [配置界面详解](#3-配置界面详解)
4. [技能循环配置](#4-技能循环配置)
5. [取色原理与操作](#5-取色原理与操作)
6. [按键模式详解](#6-按键模式详解)
7. [多重条件判断](#7-多重条件判断)
8. [常见问题](#8-常见问题)
9. [附录:文件结构](#9-附录文件结构)
---
## 1. 核心原理
### 1.1 脚本在做什么?
这个脚本是一个**屏幕识别 + 自动按键**的循环工具。它每 **16 毫秒**(约 60 帧/秒)执行一次以下流程:
```
截图游戏窗口 → 检测每个技能的图标颜色 →
颜色=就绪状态?→ 按下对应按键 → 等待技能释放完 → 继续检测下一个
```
### 1.2 为什么用颜色检测?
激战 2 的技能图标在**可用**和**冷却中**时颜色不同。例如:
- **技能可用**:图标是亮色的(如 `0x4A3C8B`)
- **冷却中**:图标变灰或变暗
脚本通过对比**预存的"可用颜色"**和**当前的像素颜色**来判断是否按该技能。
### 1.3 三种识别模式
| 模式 | 原理 | 速度 | 适用场景 |
|------|------|------|----------|
| **GDIP** (默认) | GDI+ 截图 + 像素取色 | 中等 | 前台窗口,单显示器 |
| **DXGI** | DirectX 截图 + 像素取色 | 最快 | 前台窗口,DX11/12 游戏 |
| **WGC** | Windows Graphics Capture | 较慢 | 后台窗口,多显示器 |
### 1.4 整体流程
```
启动脚本
↓
初始化配置(读取 INI 文件)
↓
按热键启动(默认 Capslock)
↓
┌─────────────────────────────────────────────┐
│ 16ms 定时器循环 │
│ │
│ 阶段1:起手循环(仅首次) │
│ → 遍历"起手循环"列表,满足颜色条件的技能依次执行 │
│ → 执行完毕后标记 start=1,不再进入 │
│ │
│ 阶段2:指定循环(每次检查) │
│ → 首个技能做"开关":颜色匹配才执行后续序列 │
│ → 用于切武器、特殊爆发 │
│ │
│ 阶段3:主循环(第一遍 — 技能检测执行) │
│ → 遍历"主循环"列表,检测颜色→执行(每帧只1个) │
│ → 反色+搜索模式可一帧执行多个 │
│ │
│ 阶段4:普攻兜底(所有技能都 CD 时) │
│ → 如果阶段3没有执行任何技能→按"普攻"键 │
└─────────────────────────────────────────────┘
↓
按热键停止(Capslock 再次按下)
```
---
## 2. 快速上手
### 2.1 首次运行
```text
第一步:双击脚本
┌─ 1.77b1.61.ahk ─────────────────────────────┐
│ 📄 双击运行 │
│ → 自动检测 IbInputSimulator.dll 是否存在 │
│ → 自动检测 wincapture.dll 是否存在 │
│ → 初始化 GDI+ 图形引擎 │
│ → 弹出"首次运行引导"(仅第一次) │
└──────────────────────────────────────────────┘
```
```text
第二步:按 F10 呼出设置面板
┌─────── 设置面板 ────────────────────┐
│ [直伤] [症状] [辅助] [野外] ← 分类 │
│ ┌─ 下拉选择职业 ─────┐ │
│ │ (空) │ │
│ └────────────────────┘ │
│ ┌──────────────────────────┐ │
│ │ ⚠ 首次使用请完成以下步骤 │ │
│ └──────────────────────────┘ │
│ │
│ [📌 绑定窗口] → 鼠标点游戏窗口 │
│ [📍 启动位置] → 设置提示框位置 │
│ │
│ [💾 保存设置] │
└──────────────────────────────────────┘
```
**操作步骤:**
1. 双击运行 `1.77b1.61.ahk`
2. 如果弹出"首次运行引导":
- 按 **F10** 呼出设置面板
- 点击 **【📌 绑定窗口】** → 鼠标箭头移到游戏窗口上点击
- 点击 **【📍 启动位置】** → 鼠标点一下你想让提示框显示的位置
3. 打开激战 2,选择一个职业(如夺魂者、魂兽等)
---
### 2.2 选择循环配置
```text
┌─────── 设置面板 ────────────────────┐
│ [直伤] [症状] [辅助] [野外] │
│ ↑ 点击分类标签 │
│ │
│ ┌─ 下拉选择职业 ────────────┐ │
│ │ ▼ 夺魂者 │ ← 点开 │
│ │ 灾厄师 │ │
│ │ 奶燃 │ │
│ └──────────────────────────┘ │
│ │
│ 全局延迟: [1.0 ] │
│ ☑ 随机延迟 │
│ │
│ [💾 保存设置] │
└──────────────────────────────────────┘
```
**操作步骤:**
1. 按 **F10** 打开设置面板
2. 点击顶部标签选择分类(直伤/症状/辅助/野外)
3. 点开下拉列表,选择你的职业配置
4. 调节**全局延迟**(新手建议 1.0,太快就调大到 1.2~1.5)
5. 点击 **【💾 保存设置】**
---
### 2.3 取色(核心步骤)
```text
按 F9 打开技能列表
┌──────── 技能列表 ─────────────────────────────┐
│ N │ 技能名称 │ 主按键 │ 主延迟 │ 反色 │… │
│ ───┼───────────┼───────┼───────┼─────┼─ │
│ 1 │ 技能A │ 2 │ 500 │ │ │
│ 2 │ 技能B │ 3 │ 400 │ ☑ │ │
│ 3 │ 技能C │ F1 │ 600 │ │ │
│ … │ … │ … │ … │ … │ │
│ │
│ 选中 → 点【取色】→ 鼠标移到技能图标 → 按 F9 │
│ ↑ ↑ │
│ 选中一行 按热键确认 │
└──────────────────────────────────────────────┘
```
**一键取色(推荐新手):**
```text
1. 在技能列表点击 [🔍 一键取色]
2. 脚本自动遍历所有技能,弹出提示:
┌─────────────────────────┐
│ 请移动到技能《技能A》 │
│ 中心左侧任意位置 │
│ 按 F9 确认 │
│ ESC 可跳过 │
└─────────────────────────┘
3. 鼠标移到技能图标中心偏左 → 按 F9
4. 自动跳到下一个技能 → 重复直到全部完成
5. 完成后自动关闭
```
**快捷取色:**
```text
1. 在技能列表**单击**选中一个技能
2. 点击 [🎨 取色]
3. 鼠标移到该技能图标上
4. 按 F9 确认取色
```
**详细取色(双击技能):**
```text
1. 在技能列表**双击**一个技能
2. 弹出详细设置窗口:
┌──── 取色设置 ──────────────────┐
│ 技能名称: 技能A │
│ 技能按键: [ 2 ] ← 设置按键 │
│ 按键延迟: [ 500 ] ← 延迟(ms) │
│ ☐ 反色模式 ☐ 范围找色 │
│ ☐ 内置CD ☐ 连续点击 │
│ ☐ 纯黑跳转 ☐ 多点取色 │
│ │
│ 跟随按键1: [ 3 ] 延迟: [100] │
│ 跟随按键2: [ F1 ] 延迟: [200] │
│ │
│ [🎨 取色] [💾 保存] │
└─────────────────────────────────┘
3. 点击 [🎨 取色] → 鼠标移到技能 → 按 F9
4. 修改按键、延迟等参数 → 点击 [💾 保存]
```
---
### 2.4 启动/停止自动循环
```text
准备工作:
┌────────────────────────────────────────┐
│ ✅ 选择并保存了职业配置 │
│ ✅ 所有技能已取色 │
│ ✅ 游戏窗口已激活(前台模式) │
└────────────────────────────────────────┘
▶ 按 Capslock 启动
┌────────────────────────────────────────┐
│ • 游戏窗口左上角显示绿色「开」字 │
│ • 脚本开始每 16ms 检测技能颜色 │
│ • 找到可用技能 → 自动按键 │
│ • 全部 CD 中 → 自动按普攻兜底 │
│ • 屏幕左上角实时显示当前检测状态 │
└────────────────────────────────────────┘
■ 再按 Capslock 停止
┌────────────────────────────────────────┐
│ • 绿色「开」字消失 │
│ • 循环定时器关闭 │
│ • 独立子进程终止 │
│ • 鼠标驱动重置 │
└────────────────────────────────────────┘
```
**提示:**
- 启动前确保游戏窗口是**激活状态**(标题栏高亮)
- 启动后有绿色「开」字说明正常运行
- 打开**调试模式**可看到左上角的检测日志
---
### 2.5 紧急停止
```text
任何时候按 Enter 键:
┌────────────────────────────────────────┐
│ ⛔ 立即停止所有自动化操作 │
│ ⛔ 关闭循环定时器 │
│ ⛔ 终止独立子进程 │
│ ⛔ 重置鼠标驱动状态 │
└────────────────────────────────────────┘
```
---
### 2.6 调试模式(排查问题用)
```text
按 F10 → 勾选【调试】→ 保存 → 启动循环
██████████████████████████████████████
游戏窗口左上角会显示:
┌─ 调试信息 ──────────────────────────┐
│ 调试模式 │
│ 窗口: 0,0 - 1920,1080 │
│ │
│ 起手循环,爆发技能,检测成功 ← 绿色 │
│ 起手循环,填充技能,检测成功 │
│ 主循环,技能A,检测成功 │
│ 主循环,技能B,检测成功 │
│ 主循环,技能C,检测成功 │
└─────────────────────────────────────┘
绿色文字 = 技能检测通过,即将按键
无文字输出 = 所有技能都在 CD
```
---
## 3. 配置界面详解
按 **F10** 呼出设置面板,分为以下几个功能区:
### 3.1 职业选择区(顶部)
```
[直伤] [症状] [辅助] [野外] ← 分类标签
[下拉列表:选择职业配置] ← 具体的 .ini 配置
```
### 3.2 识别模式
- **DXGI / GDIP / WGC**:三种截图模式,推荐保持 GDIP
- **识别检测**:测试当前截图模式是否正常工作
### 3.3 鼠标模式
- **Logitech / LogitechNew / Razer / 其他**:根据你的鼠标品牌选择
- 非上述品牌选择"其他"(使用 SendInput 兼容模式)
### 3.4 全局设置
| 选项 | 说明 |
|------|------|
| 全局延迟 | 所有按键延迟的倍率(1=正常,2=两倍慢) |
| amb | 图片识别精度(0~255 整数,越大越宽松,默认 50) |
| 随机延迟 | 开启后按键延迟在 1.0~1.2 倍之间随机 |
| 识图精度 | 图片匹配的精确度 |
| 后台模式 | 开启后游戏可最小化,用 ControlSend 按键 |
| 静音 | 关闭启动/停止音效 |
| 调试 | 在屏幕左上角显示每个技能的颜色检测结果 |
| 日志 | 记录技能释放顺序到 log.txt |
### 3.5 启动模式
| 模式 | 说明 |
|------|------|
| 开关模式 | 按一次启动,再按一次停止(默认) |
| 按住模式 | 按住热键时循环运行,松开停止 |
### 3.6 其他按钮
| 按钮 | 功能 |
|------|------|
| 一键宏 | 设置一键宏热键 |
| 绑定窗口 | 选择要自动按键的游戏窗口 |
| 启动位置 | 设置状态提示框显示位置 |
| 配置列表 | 新建、修改、删除职业配置 |
| 清空次数 | 起手循环结束后自动重置技能使用计数 |
---
## 4. 技能循环配置
每个职业的配置存储在 `newconfig\分类\职业名.ini` 中。
### 4.1 配置文件结构
```ini
[延迟信息]
全局延迟=1
fastskill=1
amb=50 ; 图片识别精度(0~255整数,50=中等容错)
随机延迟=0
[技能循环]
起手循环=技能A,技能B,技能C ← 首次启动时执行一遍
循环顺序=技能A,技能B,技能C ← 主循环,持续检测执行
独立循环=技能D ← 独立进程执行的循环
指定循环=技能E ← 条件触发型循环
特性=131313 ← Build 代码(仅供参考)
装备备注=天界双斧 ← 装备备注(仅供参考)
[技能信息]
技能A=2,500,3,100,,,1,100,,,,,,,,,20,2000
↑ ↑ ↑ ↑ ↑ ↑
按键1 延迟1 按键2 延迟2 内置CD CD时间
[颜色信息]
技能Ax=123 ← 技能 A 的 X 坐标(相对游戏窗口)
技能Ay=456 ← 技能 A 的 Y 坐标
技能Acolor=4A3C8B ← 技能 A 可用时的颜色值(十六进制,不带#)
```
### 4.2 技能信息字段说明
```
技能名称=key1,wait1,key2,wait2,key3,wait3,key4,wait4,colormode,clickmode,picmode,blackmode,search,x1,y1,x2,y2,fuzzy,keymode,skillcdset,skillcd,clickloop
字段说明:
key1 — 主按键(如 2 表示按数字键2)
wait1 — 主按键后延迟(ms)
key2~4 — 跟随按键1~3
wait2~4 — 跟随延迟1~3
colormode — 空=正常,"ifnot"=反色模式
clickmode — ""=键盘,"lclick"=左键点击
picmode — "pic"=图片查找模式
blackmode — "b"=纯黑跳转(技能图标变黑=施法完毕)
search — 1=范围找色
x1,y1,x2,y2 — 范围找色的矩形区域坐标
fuzzy — 范围找色模糊度
keymode — "按下"=长按模式 或 "触发"=点击模式
skillcdset — 内置CD开关
skillcd — 内置CD时间(ms)
clickloop — 1=连续点击模式
```
### 4.3 四种循环类型
#### 起手循环(Opener Loop)
- **执行时机**:脚本启动后**只执行一次**
- **用途**:开怪时的爆发技能序列
- **特点**:所有满足颜色条件的技能会依次执行
- 配置示例:`爆发技能A,爆发技能B,辅助技能C`
#### 主循环(Main Loop)
- **执行时机**:起手循环之后,**每帧**都执行
- **用途**:持续检测技能 CD,释放可用技能
- **特点**:每帧只执行一个技能(找到可用就执行,然后跳出等待下一帧)
- 配置示例:`填充技能1,填充技能2,爆发技能,位移技能,普攻`
#### 独立循环(Thread Loop)
- **执行时机**:独立进程持续循环
- **用途**:不需要依赖画面检测的重复按键(如挂机技能)
- **特点**:和主循环**并行执行**,互不干扰
- 配置示例:`挂机技能A,挂机技能B`
#### 指定循环(Appoint Loop)
- **执行时机**:每次循环都检查
- **用途**:带"开关"条件的技能序列
- **特点**:
- 第一个技能做"开关":**颜色匹配**才执行后续序列
- 用于切武器、特殊爆发等条件触发的场景
- 配置示例:`开关技能,技能A,技能B,技能C`
---
## 5. 取色原理与操作
### 5.1 取色原理
激战2 的技能图标在可用/冷却时有明显的颜色变化。脚本的核心逻辑:
```
截图 → 获取技能坐标处的像素颜色 → 与预存的"可用颜色"比较
↓
颜色匹配 = 技能可用 → 执行按键
颜色不匹配 = 技能冷却 → 跳过
```
#### 单点取色
取技能图标中心的**一个像素点**的颜色。
```
检查坐标 (123, 456) 的像素颜色
如果 == 0x4A3C8B(预存颜色) → 技能可用
如果 ≠ 0x4A3C8B → 技能冷却
```
#### 多点取色(更准确)
同时检查技能图标中心及**左侧偏移 4 像素**的两个点,减少误判。
```
检查 (123, 456) 和 (119, 456) 两个像素
两个都匹配预存颜色 → 技能可用
任意一个不匹配 → 技能冷却
```
#### 范围找色
在指定矩形区域内搜索目标颜色,用于技能图标位置不固定的情况。
```
在矩形 (100, 400)-(200, 500) 内搜索颜色 0x4A3C8B
找到任意匹配像素 → 技能可用
没找到 → 技能冷却
```
### 5.2 取色步骤
#### 快捷取色(推荐新手)
1. 按 **F10** 呼出设置面板,拉取你的循环配置
2. 按 **F9** 打开技能列表
3. 在技能列表中选中要取色的技能
4. 点击 **【取色】** 按钮 → 鼠标移到技能图标中心偏左位置
5. 按下 **F9**(取色热键)→ 颜色自动保存
#### 一键取色(全自动)
1. 在技能列表点击 **【一键取色】**
2. 将鼠标移到游戏窗口
3. 脚本会自动遍历所有技能,逐个提示你移动到技能图标位置
4. 每次移到图标中心偏左位置,按 **F9** 确认
5. 按 **ESC** 可跳过当前技能
#### 详细取色(进阶)
1. 在技能列表**双击**某个技能
2. 弹出详细设置窗口:
- **技能按键**:设置触发按键
- **按键延迟**:按键后的等待时间(ms)
- **反色模式**:勾选后逻辑反转(找到颜色=技能不可用)
- **范围找色**:勾选后输入矩形区域坐标
- **多点取色**:同时检测两个点的颜色
- **内置CD**:自带的冷却计时(ms)
- **连续点击**:持续发送按键直到延迟结束
- **跟随按键1~3**:主按键后额外触发的辅助按键
- **纯黑跳转**:检测技能图标变黑时提前结束等待
3. 点击 **【取色】** → 鼠标移到技能上 → 按 F9
### 5.3 放大镜工具
按取色热键(F9)并选择技能后,会打开一个**放大镜窗口**:
```
┌──────────────────────────┐
│ 放大的技能图标区域 │
│ ────────┼─────── │
│ ┼ │
│ ○ 十字线中心 = 取色点 │
│ │
│ 下方显示:X:123 Y:456 │
│ #4A3C8B │
└──────────────────────────┘
```
- **十字线中心** = 鼠标当前位置的放大视图
- **底部文字**:显示当前鼠标的窗口相对坐标和颜色值
- 放大镜会自动跟随鼠标移动
### 5.4 画面冻结功能
取色时如果技能图标变化太快,可以先用 FreezeMode 冻结画面:
> 该功能已集成到取色流程中,脚本会自动在取色前冻结画面,取色完成后恢复。
### 5.5 颜色相关概念
| 概念 | 说明 |
|------|------|
| **色值** | 十六进制 RGB 值,如 `0x4A3C8B` |
| **反色模式** | 勾选后:**找到该颜色 = 技能不可用**(用于某些特殊技能) |
| **纯黑跳转** | 技能施放后图标会变黑 → 检测到纯黑 `0x000000` 时提前结束等待 |
| **模糊度** | 范围找色时允许的颜色偏差值(0~255 整数,越大越宽松) |
| **多点取色** | 同时检测 2 个像素点,都匹配才判定为可用(更准确) |
---
## 6. 按键模式详解
### 6.1 按键触发方式
脚本支持多种按键触发方式,由配置中的 `keymode` 字段控制:
```
发送按键 → 1(数字键1) → 游戏角色使用技能1
↓
等待 wait1 毫秒
↓
发送跟随按键2 → 等待 → 发送跟随按键3 → ...
```
#### 普通触发(keymode=触发/空)
```
SendOne("2", 500)
→ 按下数字键 2
→ 等待 500ms(乘以全局延迟倍率)
→ 如果设定了随机延迟,则在 500~600ms 之间随机
```
#### 长按模式(keymode="按下")
```
Senddown("1", 500, "按下")
→ 按下数字键 1 不放
→ 保持按住 500ms
→ 松手
→ 如果在按住期间收到停止信号,提前松手
```
#### 连续点击(clickloop=1)
```
sendmode("技能名", "3", 500, "触发", 1)
→ 在 500ms 内反复按数字键 3
→ 每次间隔 50ms(500/10)
→ 如果开启了纯黑跳转,图标变黑后提前结束
```
#### 鼠标点击(clickmode 不为空)
```
leftclick(500, 300, 200, "lclick")
→ 移动鼠标到 (500, 300)
→ 左键单击
→ 等待 200ms
```
### 6.2 按键延迟控制
```
实际延迟 = 配置延迟 × skilltime(全局延迟倍率)
例:配置延迟 500ms × 全局延迟 1.5 = 实际 750ms
随机延迟模式下:
实际延迟 = (配置延迟 × 1.0) ~ (配置延迟 × 1.2) 之间随机
```
### 6.3 IbInputSimulator (硬件输入)
脚本使用 `IbInputSimulator` 实现硬件级按键,可以绕过游戏的按键检测:
- 支持 **Logitech** / **Razer** 鼠标驱动
- 其他鼠标自动使用 **SendInput** API
- 无需管理员权限
### 6.4 纯黑跳转(Black Jump)
许多技能释放过程中图标会变为**纯黑色**,脚本利用这一点提前结束等待:
```
发送按键 1
↓
循环检测技能图标颜色
↓
颜色 == 0x000000(纯黑)? → 施法完毕!进入下一个技能
颜色 != 纯黑? → 继续等待(最多等 1.25× 指定延迟)
```
---
## 7. 多重条件判断
### 7.1 标准多重条件
格式:`技能A=N=条件B=条件C`
含义:
- **技能A** 使用满 **N** 次后
- 检查**条件B**和**条件C**的图标颜色
- 全部满足条件时 → 执行**条件C**的按键序列
```
配置示例:
爆发技能=3=填充A=填充B
执行逻辑:
1. 爆发技能使用了 0 次 → 继续使用爆发技能
2. 爆发技能使用了 1 次 → 继续使用爆发技能
3. 爆发技能使用了 2 次 → 继续使用爆发技能
4. 爆发技能使用了 3 次 → 检查填充A和填充B的图标颜色
a. 填充A和填充B都可用 → 执行填充B的按键
b. 任一不可用 → 继续等待
```
### 7.2 计时多重条件
格式:`技能A>2000=条件B=条件C`
含义:
- **技能A** 已使用过
- 且距离上次使用 >= **2000ms**
- 且**条件B**和**条件C**的颜色满足
- → 执行**条件C**
```
配置示例:
翻滚>3000=填充A=位移
执行逻辑:
1. 翻滚技能已使用,且距上次使用 >= 3秒
2. 填充A和位移的颜色都匹配
3. → 执行位移技能的按键
```
### 7.3 特殊保留字
- **普攻**:特殊名称,始终视为条件满足(用于多重条件和兜底)
- **纯数字**(如 `1`、`2`):用作延时占位,会被自动跳过
---
## 8. 常见问题
### 8.1 脚本没反应?
| 可能原因 | 解决方法 |
|----------|----------|
| 没有绑定窗口 | 按 F10 → 点击【绑定窗口】→ 点击游戏窗口 |
| 窗口不是激活状态 | 切换到游戏窗口(后台模式除外) |
| 没有选择职业配置 | 按 F10 → 选择配置 → 保存 |
| 热键冲突 | 按 F10 → 重新设置启动热键 |
| 缺少 DLL | 确保 `IbInputSimulator.dll` 和 `wincapture.dll` 在脚本同目录 |
### 8.2 技能不释放?
| 可能原因 | 解决方法 |
|----------|----------|
| 颜色没取好 | 重新取色,确保取到的是技能"可用"状态的颜色 |
| 取色坐标不对 | 用放大镜检查坐标是否在技能图标上 |
| 技能在 CD | 脚本正常工作,等 CD 转好 |
| 识别模式不对 | 在设置中切换 DXGI/GDIP/WGC 试试 |
| 窗口位置变了 | 拖动窗口后建议重绑窗口并重新截图 |
### 8.3 释放技能太慢或太快?
- 调节**全局延迟**倍率(1.0 = 正常,调大 = 变慢)
- 修改每个技能的**延迟**(ms 值,越大越慢)
- 开启**随机延迟**模拟人类操作
### 8.4 调试模式怎么看?
1. 在设置面板勾选 **【调试】**
2. 启动循环后,屏幕左上角显示:
```
调试模式
窗口: 0,0 - 1920,1080
主循环,技能A,检测成功 ← 绿色文字表示检测通过
主循环,技能B,检测成功
主循环,技能C,检测成功
起手循环,爆发技能,检测成功
```
### 8.5 日志怎么看?
1. 在设置面板勾选 **【日志】**
2. 启动循环后,`newconfig/log.txt` 会记录每次按键:
```
[14:30:25][EXEC] 主循环,技能A,按键2,次数:1
[14:30:25][EXEC] 主循环,技能B,按键3,次数:1
[14:30:26][EXEC] 主循环,技能C,按键4,次数:1
```
---
## 9. 附录:文件结构
```
C:\Users\xxx\gui图形脚本\
├── 1.77b1.61.ahk ← 主脚本文件(打开即用)
├── IbInputSimulator.ahk ← 硬件输入库
├── IbInputSimulator.dll ← 硬件输入 DLL
├── wincapture.dll ← 窗口截图 DLL
├── wincapture.ahk ← 窗口截图库
├── FindText.ahk ← 文字/图片查找库
├── dxgi.ahk ← DXGI 截图库
├── gdip_all.ahk ← GDI+ 图形库
│
├── newconfig\ ← 配置文件目录
│ ├── bd_config.ini ← 全局配置(热键、模式等)
│ ├── log.txt ← 运行日志
│ ├── ad\ ← 直伤分类配置
│ │ ├── 夺魂者.ini
│ │ └── ...
│ ├── ap\ ← 症状分类配置
│ │ ├── 灾厄师.ini
│ │ └── ...
│ ├── nai\ ← 辅助分类配置
│ │ ├── 奶燃.ini
│ │ └── ...
│ └── yw\ ← 野外分类配置
│ ├── 魂兽.ini
│ └── ...
│
└── image\ ← 图片识别模式的图片目录
└── 职业名\
└── 技能名.png
```
### bd_config.ini 完整结构
```ini
[当前职业]
职业名称=夺魂者
职业目录=D:\game\newconfig\ad\夺魂者.ini
当前分类=1
[热键设置]
startkey=Capslock ← 启动/停止热键
savecolorkey=F9 ← 取色热键
savekey=F10 ← 呼出设置面板热键
onekey=!f ← 一键宏热键 (!=Alt)
pushkey=0 ← 0=开关模式 1=按住模式
backsend=0 ← 0=前台模式 1=后台模式
sound=1 ← 音效开关
playsound=0
mousemode=
pushmode=单次
debug=0 ← 调试模式
log=0 ← 日志模式
startend=0 ← 运行状态标记
waitcolor=0
inimode=1
[mousemode]
mousemode=Logitech ← 鼠标驱动模式
[识别模式]
findmode=GDIP ← 识别模式
[关于]
介绍=本工具免费使用,谨防上当受骗
```
---
## 附:术语对照表
| 中文 | 英文 | 说明 |
|------|------|------|
| 取色 | Color Pick | 获取屏幕某像素点的 RGB 颜色值 |
| 反色 | Inverse Color | 找到颜色=技能不可用的反向逻辑 |
| 纯黑跳转 | Black Jump | 检测到纯黑色提前结束等待 |
| 范围找色 | Region Search | 在指定区域内搜索目标颜色 |
| 多点取色 | Multi-point | 同时检测两个像素的颜色 |
| 起手循环 | Opener Loop | 脚本启动时执行一次的技能序列 |
| 主循环 | Main Loop | 持续执行的技能检测循环 |
| 独立循环 | Thread Loop | 独立进程并行的技能循环 |
| 指定循环 | Appoint Loop | 带条件开关的技能序列 |
| 多重条件 | Multi Condition | 次数+颜色的复合触发条件 |
| 全局延迟 | Skill Time | 所有按键延迟的全局倍率 |
| 前台模式 | Foreground | 游戏窗口必须在前台 |
| 后台模式 | Background | 游戏窗口可最小化 |
| CD | Cooldown | 技能冷却时间 |
| HWND | Window Handle | 窗口句柄,用于定位窗口 |
| GDI+ | GDI Plus | 图形设备接口,用于截图 |
| DXGI | DirectX GI | DirectX 图形接口,高速截图 |

