暗黑破坏神4 游戏辅助工具 · 基于 AutoHotkey v2.0.26 构建
D4 HELP 是专为《暗黑破坏神4》设计的游戏辅助工具,基于 AutoHotkey v2.0.26 开发,v7.1 采用完全面向对象的类架构重写。
核心目标:减少重复性机械操作,在合法合规范围内提升游戏体验。
| 特性 | 说明 |
|---|---|
| 🏗️ 类架构重写 | 10 个静态类模块化设计,职责清晰 |
| 🔄 优先级队列 | 单线程模式按键优先级排序执行 |
| 🎲 逐次随机延迟 | 每次按键触发都在间隔上叠加 1-10ms 随机,多线程/单线程均生效 |
| 🛡️ 防抖动机制 | 阈值计数器避免检测抖动误触发 |
| 📦 坐标缓存 | 窗口尺寸不变时复用坐标,避免重复计算 |
| 🎯 精准暂停 | 窗口/血条/TAB/对话框/双击五种暂停源独立管理 |
本工具基于 AutoHotkey v2.0.26(官方最新稳定版)开发,脚本首行
#Requires AutoHotkey v2.0.26 会强制要求该版本或更高版本,低于此版本将无法运行。
| 渠道 | 地址 |
|---|---|
| 官网下载页 | https://www.autohotkey.com/download/ |
| GitHub Releases(全部版本) | https://github.com/AutoHotkey/AutoHotkey/releases |
| v2.0.26 安装包(推荐,含文件关联与启动器) | https://github.com/AutoHotkey/AutoHotkey/releases/download/v2.0.26/AutoHotkey_2.0.26_setup.exe |
| v2.0.26 便携版 ZIP | https://github.com/AutoHotkey/AutoHotkey/releases/download/v2.0.26/AutoHotkey_2.0.26.zip |
官方校验值(SHA256):
2BF1B89B1047136490FC321D2FDC988B42DD86F693EEA7872746AC6ADF722BC3 AutoHotkey_2.0.26_setup.exe
43522AA3122A57784AC5DB30ABF85C2244475C36ACD7796E2C993355F9E926AE AutoHotkey_2.0.26.zip
┌─────────────────────────────────────────────────────────┐
│ GUIManager │
│ 主界面 · 控件 · 状态栏 │
└──────────┬──────────────────────────────────────────────┘
│
┌─────┴──────────────────────┐
│ MacroController │
│ 宏启停 · 暂停协调 │
└─────┬──────────────────────┘
│
┌────────┼────────┬──────────┬───────────┐
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
KeyHandler KeyQueue PauseDetector WindowManager
按键处理 单线程队列 暂停检测 窗口·坐标
│ │ │
└─────────┬───────────┘ │
▼ ▼
ColorDetector HotkeyManager
颜色检测 热键管理
│
▼
ConfigManager UtilityHelper
配置持久化 工具函数
- 5 个技能位 + 左右键独立配置
- 4 种运行策略:连点 / BUFF检测 / 按住 / 资源检测
- 药水、强制移动、闪避独立控制
- 逐次随机延迟增强自然感
- 5 路独立暂停源,任意组合触发
- 窗口切换自动暂停
- 怪物/Boss 血条检测
- TAB 界面 / 对话框检测
- 双击左键临时暂停
- 多线程模式:技能独立定时器并行执行
- 单线程模式:优先级队列顺序执行,避免按键冲突
- 鼠标自动循环移动(6 点防挂机)
- Shift 键自动保持
- 窗口置顶切换
- 多配置方案管理
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 10 / 11 |
| AutoHotkey | v2.0.26 或更高(官方下载) |
| 游戏 | 暗黑破坏神4 |
| 分辨率 | 基于 3840×2160 开发,支持自适应缩放 |
- 安装 AutoHotkey v2.0.26 或更高版本
- 下载
D4 HELPv7.1.ahk - 双击运行脚本(系统托盘出现图标)
- 默认按
F1启动/停止宏 - 在界面中按需调整技能、间隔和策略
配置文件
settings.ini自动生成在脚本同目录。
仓库内置 GitHub Actions 工作流(.github/workflows/ahk-build-release.yml):
main/master分支上主脚本D4 HELPv7.1.ahk有更新时自动触发(其他文件改动不触发,也可手动触发)- 下载官方 AutoHotkey v2.0.26 与 Ahk2Exe 编译器
- 语法冒烟通过后用官方 Ahk2Exe 打包
D4 HELPv7.1.exe - 自动发布到 Releases,标签
v7.1.<构建号>,更新说明由 GitHub 根据提交自动生成
主窗口尺寸 485×535,包含两个标签页:
| 区域 | 内容 |
|---|---|
| 启动热键 | 模式选择(自定义/侧键1/侧键2)+ 热键绑定 |
| 配置管理 | 方案下拉框 + 保存/删除按钮 |
| 状态控制 | 运行状态 · 开始/停止 · 运行模式 · 仅D4 |
| 技能配置 | 技能1-5 + 左右键 + 药水/强移/闪避 |
| 启停管理 | 双击暂停 · 血条检测 · 界面检测 · 偏移 · 鼠标自移 |
| 辅助选项 | 按住Shift · 随机延迟 |
| 区域 | 内容 |
|---|---|
| 窗口置顶 | 切换脚本窗口置顶状态 |
每个技能位独立配置:
| 参数 | 说明 | 示例 |
|---|---|---|
| 按键 | 绑定的键位 | 1 / F / LButton |
| 启用 | 是否参与自动释放 | 勾选框 |
| 间隔 | 释放间隔(毫秒) | 20 ~ 3000 |
| 策略 | 连点 / BUFF / 按住 / 资源 |
下拉选择 |
| 策略 | 行为 | 适用场景 |
|---|---|---|
| 连点 | 按间隔持续点击 | 普攻、短CD技能 |
| BUFF | 检测技能图标绿色激活状态,未激活时释放 | 长CD Buff技能 |
| 按住 | 按下后保持不放 | 持续引导技能 |
| 资源 | 检测资源条非灰色时释放 | 高耗能技能 |
勾选“随机延迟”后,每次按键触发都会在基础间隔上叠加 Random(1, 上限) 毫秒
(上限默认 10,可调 1-10)。多线程模式每次触发重新计算,单线程模式同样生效,
不再是固定偏移。
随机开关与上限在宏启动时快照,运行中修改界面需要重启宏才生效。
5 路独立暂停源,任一触发即暂停所有计时器,全部恢复后继续:
窗口切换 ──┐
血条消失 ──┤
TAB 界面 ──┼──→ MacroController.TogglePause() ──→ 暂停/恢复
对话框 ──┤
双击暂停 ──┘
- 防抖动:连续 N 次检测到相同状态才触发切换(默认阈值 2)
- 独立状态:暂停原因可叠加,状态栏显示
"血条检测 + TAB界面"
设计说明:对话框检测与 TAB 界面检测共用“界面检测”开关,关闭“界面检测”时两者都不运行; 非 D4 模式下(如 POE),BUFF/资源策略自动降级为连点,鼠标自移、双击暂停不启用。
| 模式 | 实现 | 特点 |
|---|---|---|
| 多线程 | SetTimer 独立定时器 |
按键并行,响应快 |
| 单线程 | KeyQueueManager 优先级队列 |
按键串行,避免冲突,带过冲矫正 |
单线程模式下,按键按优先级排序:闪避/药水/强移 > 资源 > BUFF > 按住 > 连点
| 方法 | 检测目标 | 判定逻辑 |
|---|---|---|
IsRed |
血条 / Boss 条 / TAB 红框 / 对话框按钮 | R 分量显著高于 G、B |
IsBlue |
技能栏蓝色标识 | B 分量显著高于 R、G |
IsGreen |
BUFF 激活图标 | G 分量显著高于 R、B |
IsGray |
对话框灰色背景 | RGB 分量接近且均值在阈值内 |
所有检测坐标基于 3840×2160 参考分辨率定义,WindowManager.ConvertCoord() 根据实际
窗口尺寸等比缩放。支持用户 X/Y 微调偏移(±3 像素)。
设计说明:颜色检测采用单点逐次取色(
PixelGetColor),不引入像素缓存或整屏/区域 批量截图(GDI+ BitBlt 等),以降低被游戏反作弊机制检测的风险。
- 配置数据存储在
settings.ini - 支持多方案:默认 + 自定义方案
- 自动记忆上次使用的方案
- 方案可保存、切换、删除
- 默认方案不可删除,删除后重置为默认值
| 功能 | 说明 | 默认值 |
|---|---|---|
| 按住 Shift | 所有按键操作自动附加 Shift | 关闭 |
| 随机延迟 | 每次触发在技能间隔上叠加 1-10ms 随机 | 关闭 |
| 鼠标自移 | 6 个固定点位循环移动鼠标 | 关闭 |
| 双击暂停 | 双击左键暂停 1-3 秒 | 开启 / 2秒 |
| 窗口置顶 | 脚本窗口保持最前 | 关闭 |
v7.1 采用 11 个静态类组成的模块化架构:
| 类名 | 职责 | 关键方法 |
|---|---|---|
GUIManager |
GUI 创建与状态管理 | Initialize(), UpdateStatus() |
HotkeyManager |
全局热键注册/更新 | LoadStartHotkey(), UpdateHotkeyText() |
UtilityHelper |
通用工具函数 | RandomDelay(), DebugLog(), LimitEditValue() |
MacroController |
宏生命周期与暂停协调 | ToggleMacro(), TogglePause() |
KeyHandler |
按键执行与模式分发 | HandleKeyMode(), PressKeyCallback() |
KeyQueueManager |
单线程优先级队列 | EnqueueKey(), ProcessCycle() |
WindowManager |
窗口检测与坐标转换 | GetWindowInfo(), ConvertCoord() |
HysteresisTracker |
迟滞阈值计数去抖 | Update(), Reset() |
PauseDetector |
暂停条件检测 | AutoPauseByBlood(), AutoPauseByTAB() |
ColorDetector |
像素取色与颜色判断 | GetPixelRGB(), IsRed(), IsGreen()… |
ConfigManager |
INI 配置读写与方案管理 | SaveProfile(), LoadProfile() |
所有类均为纯静态方法,无实例化开销。
- 确认已安装 AutoHotkey v2.0.26+(官方下载)
- 检查杀毒软件是否拦截
- 尝试以管理员身份运行
- 检查游戏内键位绑定是否匹配
- 确认“启用”已勾选
- 确认“仅在暗黑4中使用”设置正确
- 调整 X/Y 偏移值
- 检查游戏分辨率与界面缩放
- 增大检测间隔降低误触发
- 调大检测间隔
- 关闭不必要的检测项
- 选用单线程模式
- 本工具用于减少重复操作,不应用于完全自动化
- 不建议在 PVP 或竞技模式中使用
- 避免长时间连续运行
- 基于 3840×2160 分辨率开发,其他分辨率通过自适应缩放兼容
- 颜色检测为逐点取色,不使用批量截图方案
- 游戏更新可能影响检测准确性
- 配置文件
settings.ini与脚本同目录
- 本程序仅供学习研究用途
- 使用者自行承担使用风险
- 开发者不对账号安全负责
| 版本 | 日期 | 变更 |
|---|---|---|
| v7.1 | 2026-08 | 按键处理优化批次:输入校验与启动保护、uniqueKey 冲突修复、队列检测合并与异常隔离、魔法数字收敛、schema 缓存、发送路径合并、CI 冒烟;并含随机延迟修复、移除像素缓存、升级 AutoHotkey v2.0.26、配置 UTF-16 |
| v7.0 | 2026-04 | 类架构重写,引入优先级队列、防抖动机制(已归档 old/) |
| v6.0 | 2025-08 | 重构灰色检测逻辑、窗口管理 |
| v5.3 | — | 优化代码段可读性 |
| v4.1 | — | 功能迭代 |
| v3.0 | — | 初始版本 |
D4 HELP v7.1 · by Archenemy · GitHub