news 2026/8/23 0:18:52

Botty 暗黑2重制版自动化脚本实战教程:从第一次启动到看懂核心机制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Botty 暗黑2重制版自动化脚本实战教程:从第一次启动到看懂核心机制

Botty 暗黑2重制版自动化脚本实战教程:从第一次启动到看懂核心机制

【免费下载链接】bottyD2R Pixel Bot项目地址: https://gitcode.com/gh_mirrors/bo/botty

Botty 是一个专为《暗黑破坏神2:重制版》开发的像素级自动化脚本:它不用按键宏,靠截图识别操作游戏,替你开图、清怪、捡装备、回城存物,可以连续挂机跑图。这篇教程按“跑起来 → 看懂它 → 调配置 → 验证效果”的顺序,带你第一次让角色自己刷完一张图,并讲清它背后的模板匹配(说白了就是拿一张已知截图去当前画面里找“长得像的”位置)与状态机逻辑。

跑起来:环境、窗口和三个热键

克隆仓库并装好依赖

git clone https://gitcode.com/gh_mirrors/bo/botty cd botty conda env create -f environment.yml conda activate botty python src/main.py

这 5 行一步到位完成环境和启动:environment.yml 里打包了 Python 3.10、OpenCV 和 tesseract OCR(OCR 就是文字识别,用来读屏幕上的物品名)。

游戏窗口要满足的3个条件

  • 游戏语言必须是英文,否则物品名识别不出
  • 720p 窗口,启动后脚本会自动调好游戏图形设置
  • HDR、GeForce Experience 这类外部程序别碰画面,会改色值导致识别分数上不去

记住 4 个热键,后文反复出现:

F9 自动调整D2R图形设置 F10 图形调试器,验证识别用 F11 开始/暂停 F12 强制停止

启动前把角色停在英雄选择界面,且 config/params.ini 里的difficulty要和你实际要进的游戏难度一致,角色会自动进对应幕。

看懂它:模板匹配和状态机

每个路径节点都是“找到已知截图”的识别结果,依次找到才算进入地图

核心是 src/bot.py 里的状态机:角色按当前截图的识别结果,在“城镇 / 跑图 / 捡物 / 回城存物”几个状态间切换,具体干活外包给各 manager 类——路径规划 src/pather.py、NPC 交互 src/npc_manager.py、职业技能 src/char/。

路径不是“走到 (x, y)”,而是“在画面里找到下一节点截图”:楼梯、入口、每段走廊节点按顺序识别,全部命中才推进。

屏幕上的四套坐标系

  • Monitor:第一个显示器左上角
  • Screen:当前屏幕左上角
  • Absolute:角色脚底,即屏幕中心
  • Relative:相对某张已识别到的模板

四套坐标系原点不同,换算正确点击才落在正确位置

用遮罩排除UI干扰

血条、蓝条、技能冷却都是动态内容,会干扰匹配。Botty 用一张遮罩把 HUD 区域挖掉,只对场景内容做识别。

底部血条、蓝条区域被遮住,匹配只在场景区进行

⚙️ 调配置:params.ini 只盯四个区块

配置都在 config/ 下,新手只动下面几处。

路线与难度

  • difficulty:游戏难度,决定角色开局所在幕
  • order:逗号分隔的路线清单,如run_pindle, run_eldritch_shenk
  • randomize_runs:设为 1,每次按随机顺序跑

每条路线有独立模板集,识别到对应画面才推进下一步

两条硬性要求:run_diablo仅限锤丁;run_nihlathakrun_arcane要求角色会传送。

职业与药水阈值

  • type:职业,各系法师、锤丁、野蛮人、陷阱刺客、死灵法师等,每种 build 有对应段落绑定技能热键
  • casting_frames:施法帧数,两次施法之间的帧数,填错会出现“卡在空中读条”
  • take_health_potion/chicken:喝药与撤退的血量阈值

最小可运行配置:

[general] difficulty=hell [routes] order=run_pindle, run_eldritch_shenk

先写这段就能起步,跑通后再逐项微调阈值。

升级项目不用搬配置

另建一个custom.ini,只写要覆盖的字段;升级项目时把它拷过去即可,不用逐行搬 params.ini 的改动。

🔍 验证:用图形调试器看识别分数

按 F10 启动 bot,会弹出一个几乎全黑的调试窗口,读图方式:

  • 蓝圈 + 数字分数:识别到模板,健康分数远高于 0.9
  • 往地上扔几件物品,调试窗口会显示物品名(黑底)
  • 应当被捡起的物品会被红圈圈出

蓝圈是识别到的模板,红圈是应当捡起的物品

分数低于 0.9,十有八九是画面颜色问题:按一次 F9 让脚本自动调游戏图形设置,仍不对再手动微调亮度。

捡装备:BNIP 规则文件

地面物品取舍由 src/item/pickit.py 判定,规则写在 BNIP 文件里(BNIP 是 NIP 物品拾取规则的扩展版)。默认使用 config/default.bnip,已含 30 号以上符文、大药、三把 Ubers 钥匙;你往 config/nip/ 放一个自己的.nip,默认文件会自动失效。

[Name] >= Lumrune && [Name] <= Zodrune [Name] == Superhealingpotion [Name] == Fullrejuvenationpotion

第一行捡 30 号及以上符文,后两行捡两种大药。

BNIP 独有语法:[allres] == 30捡全抗 30 的物品;[idname] == thestoneofjordan直接按名字捡 SoJ,代价是物品必须先鉴定。

排错:识别不到东西时先查三处

症状先查哪里处理办法
按 F11 没反应窗口进程与分辨率确认进程为 D2R.exe、窗口为 720p
模板分数低于 0.9外部图形增强程序关 HDR 等,跑一次 F9,再手动调亮度
路线开不出来路线前置不满足run_diablo 只支持锤丁;尼拉塞克/神秘避难所需要传送
捡到垃圾/nopickup 没开或规则太松enable_no_pickup=1,自定义规则放 config/nip/

资源索引:

  • 职业实现 src/char/:每个职业一个独立模块,加新 build 就是加一个类
  • 路线实现 src/run/:与 params.ini 里的 run_xxx 一一对应
  • 消息通知 src/messages/:接 Discord Webhook,bot 留下物品时推送
  • OCR 识别 src/d2r_image/ocr.py:用 tesseract 读屏幕上的物品名

下一步行动清单

  1. conda env create -f environment.yml,再用python src/main.py启动
  2. 角色停在英雄选择界面,按 F9 调图形设置,按 F10 确认模板分数全部高于 0.9
  3. order只放一条路线,按 F11 观察角色完成“开图 → 击杀 → 回城”一个完整循环
  4. 往 config/nip/ 写一个自己的.nip,控制捡什么
  5. 最后再调职业段落和atk_len_xxx攻击序列长度,按顺序增加路线数量

【免费下载链接】bottyD2R Pixel Bot项目地址: https://gitcode.com/gh_mirrors/bo/botty

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/23 0:18:49

AI虚拟角色应援系统技术解析:从Stable Diffusion到语音合成的本地部署实践

这次我们来看一个名为“最佳僚机爱音准备就绪&#xff01;【B萌应援】”的项目。从标题和常见的网络语境来看&#xff0c;这很可能是一个围绕虚拟角色“爱音”的粉丝创作项目&#xff0c;其核心形式可能是AI驱动的图像生成、视频剪辑或数字人应援内容。这类项目通常结合了AI绘画…

作者头像 李华
网站建设 2026/8/23 0:09:58

基于springboot医院就诊管理系统设计与开发

选题背景&#xff1a;数字化浪潮下的医疗管理变革与SpringBoot技术赋能在当今社会&#xff0c;医疗健康领域正经历着一场前所未有的数字化、智能化深刻变革。随着我国“健康中国2030”战略的深入推进以及人口老龄化进程的加速&#xff0c;人民群众对高质量、高效率、便捷化医疗…

作者头像 李华
网站建设 2026/8/23 0:09:53

基于springboot体育馆预约系统设计与开发

选题背景随着全民健身国家战略的深入推进和高校体育场馆资源的日益紧张&#xff0c;传统的人工登记、电话预约等体育馆管理模式已难以满足师生日益增长的多元化、便捷化运动需求。这些传统方式普遍存在信息不透明、预约流程繁琐、场地资源分配不均、高峰时段拥堵严重、管理效率…

作者头像 李华
网站建设 2026/8/23 0:03:26

如何将 HTML 转成 Word 文档且格式不丢失?html-to-docx 使用教程

如何将 HTML 转成 Word 文档且格式不丢失&#xff1f;html-to-docx 使用教程 【免费下载链接】html-to-docx HTML to DOCX converter 项目地址: https://gitcode.com/gh_mirrors/ht/html-to-docx html-to-docx 是一个 JavaScript 库&#xff0c;核心功能就是 HTML 转 DO…

作者头像 李华
网站建设 2026/8/22 23:59:48

多智能体框架实现聚合物粗粒化分子动力学模拟全流程自动化

1. 项目概述&#xff1a;当多智能体遇上粗粒化分子动力学如果你在聚合物材料模拟领域摸爬滚打过几年&#xff0c;大概率会对一个场景感到熟悉又头疼&#xff1a;为了研究一个特定聚合物体系&#xff08;比如一种新型的嵌段共聚物自组装行为&#xff09;&#xff0c;你需要先构建…

作者头像 李华