Made-with: Cursor
Dota 2 助手 (Dota 2 Assistant)
Windows 上的 Dota 2 英雄选择与出装推荐 Overlay 应用。实时读取游戏状态,在 BP 阶段提供英雄克制推荐,游戏中提供出装建议。
功能
- 选将阶段 (BP): 根据对方已选英雄,通过 OpenDota 数据推荐克制英雄
- 游戏中: 根据当前英雄推荐各阶段最优出装路线
- 游戏内 Overlay: 透明悬浮窗叠加在 Dota 2 之上,支持鼠标穿透
- 本地缓存: 英雄/物品数据缓存 24 小时,减少 API 请求
安装
依赖
- Windows 10/11
- Dota 2 (Steam)
- Visual Studio C++ 构建工具 (用于编译)
编译
# 安装 Rust (如果未安装)
winget install Rustlang.Rustup
# 克隆并编译
git clone <repo>
cd dota2-assistant
cargo build --release
配置 Dota 2 GSI
运行安装脚本 (需要知道 Dota 2 安装路径):
.\install_gsi.ps1
# 或指定自定义路径:
.\install_gsi.ps1 -DotaPath "D:\Steam\steamapps\common\dota 2 beta"
手动配置
-
将
config\gamestate_integration_assistant.cfg复制到:<Steam>\steamapps\common\dota 2 beta\game\dota\cfg\gamestate_integration\ -
在 Steam 中给 Dota 2 添加启动参数:
-gamestateintegration -
将 Dota 2 设置为无边框窗口 (Borderless Window) 模式
使用
- 先启动
dota2-assistant.exe - 再启动 Dota 2
- 进入游戏后 Overlay 会自动出现
- 按 F12 切换显示/隐藏
架构
Dota 2 Game (GSI)
│ HTTP POST (每 0.5 秒)
▼
GSI HTTP Server (axum, :3000)
│
▼
State Manager (Arc<Mutex<AppState>>)
│
├──► 推荐引擎 ──► OpenDota API ──► SQLite 缓存
│
└──► egui Overlay UI (主线程, GLFW 透明窗口)
注意事项
- VAC 安全: 仅使用 GSI 官方接口 + 透明窗口技术,不涉及内存读取或 DLL 注入
- GSI 限制: 只能获取玩家自己可见的信息(不能读取对方未展示的选择)
- 网络依赖: 首次运行需联网拉取英雄数据,之后可离线使用缓存
技术栈
| 组件 | 技术 |
|---|---|
| 语言 | Rust |
| 异步运行时 | tokio |
| Overlay UI | egui_overlay 0.9 (GLFW + egui 0.29) |
| GSI 服务器 | axum 0.7 |
| API 客户端 | reqwest 0.12 |
| 本地缓存 | rusqlite (SQLite, bundled) |
| 数据源 | OpenDota API (免费) |
Description
Languages
Rust
96.1%
PowerShell
3.9%