Botty 暗黑2重制版自动化脚本实战教程从第一次启动到看懂核心机制【免费下载链接】bottyD2R Pixel Bot项目地址: https://gitcode.com/gh_mirrors/bo/bottyBotty 是一个专为《暗黑破坏神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 OCROCR 就是文字识别用来读屏幕上的物品名。游戏窗口要满足的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_shenkrandomize_runs设为 1每次按随机顺序跑每条路线有独立模板集识别到对应画面才推进下一步两条硬性要求run_diablo仅限锤丁run_nihlathak、run_arcane要求角色会传送。职业与药水阈值type职业各系法师、锤丁、野蛮人、陷阱刺客、死灵法师等每种 build 有对应段落绑定技能热键casting_frames施法帧数两次施法之间的帧数填错会出现“卡在空中读条”take_health_potion/chicken喝药与撤退的血量阈值最小可运行配置[general] difficultyhell [routes] orderrun_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_pickup1自定义规则放 config/nip/资源索引职业实现 src/char/每个职业一个独立模块加新 build 就是加一个类路线实现 src/run/与 params.ini 里的 run_xxx 一一对应消息通知 src/messages/接 Discord Webhookbot 留下物品时推送OCR 识别 src/d2r_image/ocr.py用 tesseract 读屏幕上的物品名下一步行动清单跑conda env create -f environment.yml再用python src/main.py启动角色停在英雄选择界面按 F9 调图形设置按 F10 确认模板分数全部高于 0.9order只放一条路线按 F11 观察角色完成“开图 → 击杀 → 回城”一个完整循环往 config/nip/ 写一个自己的.nip控制捡什么最后再调职业段落和atk_len_xxx攻击序列长度按顺序增加路线数量【免费下载链接】bottyD2R Pixel Bot项目地址: https://gitcode.com/gh_mirrors/bo/botty创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考