Botty:暗黑破坏神2重制版的终极像素级自动化解决方案

Botty:暗黑破坏神2重制版的终极像素级自动化解决方案

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

Botty是一款专为《暗黑破坏神2:重制版》设计的像素级自动化工具,通过先进的计算机视觉技术和智能决策系统,实现了游戏操作的完全自动化。这款开源项目不仅为玩家提供了高效的刷图体验,更展示了现代游戏自动化技术的前沿应用。

视觉智能引擎:像素识别的技术革命

Botty的核心创新在于其基于像素的视觉识别系统。不同于传统的内存读取或API注入方式,Botty采用纯视觉方案,通过实时分析游戏画面像素数据来理解游戏状态。这种方法的优势在于极高的兼容性和安全性,完全模拟人类玩家的视觉感知过程。

多层级图像识别架构

Botty的图像识别系统采用分层处理策略。基础层使用OpenCV进行模板匹配,快速定位游戏界面元素如NPC位置、物品图标和技能按钮。中间层集成Tesseract OCR引擎,专门处理游戏内的文字信息,包括物品名称、属性描述和界面文本。高级层则结合上下文分析,理解游戏状态转换和场景逻辑。

# 物品识别核心代码示例 def image_to_text(images: np.ndarray, model: str = "hover-eng_inconsolata_inv_th_fast"): """使用Tesseract OCR读取游戏内文字信息""" with PyTessBaseAPI(psm=3, oem=OEM.LSTM_ONLY, path="assets/tessdata", lang=model) as api: api.ReadConfigFile("assets/tessdata/ocr_config.txt") # 图像预处理和文字识别逻辑

系统内置了专门为D2R游戏界面优化的OCR模型,能够准确识别游戏内各种字体和颜色组合的物品名称。通过预训练的字典库和纠错算法,识别准确率超过99%,即使在复杂的游戏背景下也能可靠工作。

Botty图形调试界面实时显示物品识别结果与路径规划数据,展示了视觉识别与决策系统的完美结合

智能路径规划:动态导航算法

Botty的路径规划系统是其自动化效率的关键。项目采用了基于模板的节点导航技术,为每个游戏场景预定义了精确的移动路径点。这些路径点不是简单的坐标位置,而是通过图像识别确认的地标位置。

自适应地图导航

项目包含了针对不同游戏区域的详细路径模板。例如,在混沌避难所(Chaos Sanctuary)这样复杂的地图中,Botty能够识别六种不同的布局变体,并为每种布局生成最优路径:

# 路径规划核心逻辑 def traverse_nodes(self, path: tuple[Location, Location], char: IChar, timeout: float = 5): """智能节点遍历算法""" # 根据当前场景动态选择最优路径 # 实时调整移动策略避开障碍

Botty的智能路径规划系统展示,支持多种地图布局的最优路径计算,大幅减少无效移动时间

实时环境适应

Botty的路径系统具备实时适应能力。当检测到路径阻塞或环境变化时,系统会自动调整移动策略。这种动态适应性通过以下机制实现:

  1. 环境感知:持续监控游戏画面,识别障碍物和危险区域
  2. 路径重规划:遇到障碍时自动计算替代路线
  3. 安全距离保持:与敌人和危险区域保持安全距离
  4. 效率优化:根据角色能力和装备调整移动速度

多职业支持架构

Botty的设计采用了模块化的职业系统架构,每个职业都有专门的实现类,确保技能释放和战斗策略的最优化。

职业专用算法

项目目前支持多种主流职业构建,每种都有专门的战斗逻辑:

  • 法师(Sorceress):支持闪电、暴风雪、新星、九头蛇等多种元素构建
  • 圣骑士(Paladin):专注锤丁和天堂之拳构建
  • 刺客(Assassin):陷阱刺客专用算法
  • 野蛮人(Barbarian):战吼和跳跃攻击优化
  • 死灵法师(Necromancer):骨系和毒系专精
# 职业技能系统示例 class LightSorc(Sorceress): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) def _chain_lightning(self, cast_pos_abs: tuple[float, float], delay: tuple[float, float] = (0.2, 0.3)): """闪电链技能释放算法""" # 智能目标选择和技能连锁逻辑

每个职业类都继承自基础接口IChar,确保统一的技能管理和状态监控,同时允许针对特定构建的优化。

物品管理系统:智能拾取与分类

Botty的物品管理系统是其核心功能之一,通过BNIP(Botty Need Item Pickit)规则引擎实现高度可定制的物品筛选逻辑。

规则驱动的物品筛选

BNIP系统允许玩家定义复杂的物品拾取规则:

; 高级符文拾取规则示例 [Rune] code == "Ist" || code == "Gul" || code == "Vex" || code == "Ohm" || code == "Lo" || code == "Sur" || code == "Ber" || code == "Jah" || code == "Cham" || code == "Zod" ; 特定装备筛选规则 [Weapon] sockets == 4 && (type == "Crystal Sword" || type == "Long Sword")

智能库存管理

Botty的库存管理系统能够自动执行以下操作:

  1. 物品鉴定:自动使用辨识卷轴鉴定未知物品
  2. 仓库整理:根据预设规则将物品存入共享仓库
  3. 宝石合成:自动将低级宝石合成为高级宝石
  4. 金币管理:智能存储和提取金币

Botty在崔凡克区域的节点化路径导航,绿色标记显示关键路径节点和坐标系统

状态机架构:智能决策引擎

Botty的核心逻辑采用有限状态机(FSM)架构,将复杂的游戏流程分解为可管理的状态序列。这种设计使得系统能够优雅地处理各种游戏场景和异常情况。

状态转换逻辑

主要游戏状态包括:

  • 角色选择:从英雄选择界面开始游戏
  • 城镇操作:执行修理、购买、鉴定等城镇内操作
  • 路径导航:在不同区域间移动
  • 战斗执行:执行技能释放和战斗策略
  • 物品拾取:识别并拾取有价值物品
  • 异常处理:处理死亡、断线等意外情况
# 状态机核心实现 class Bot: def __init__(self, game_stats: GameStats): self._game_stats = game_stats # 初始化状态机和各个管理器 self._setup_state_machine() def _setup_state_machine(self): """配置状态机转换逻辑""" states = ['init', 'select_character', 'create_game', 'start_from_town', 'maintenance'] transitions = [ {'trigger': 'on_init', 'source': 'init', 'dest': 'select_character'}, # 更多状态转换定义 ]

配置系统:灵活性与易用性

Botty的配置文件系统设计既强大又灵活,允许玩家根据具体需求进行精细调整。

参数化运行配置

params.ini文件提供了全面的配置选项:

[general] difficulty=hell name=MyBot randomize_runs=1 [routes] order=run_pindle, run_eldritch, run_trav, run_arcane [char] type=light_sorc belt_rows=4 casting_frames=10 cta_available=0

自定义运行序列

玩家可以自由组合不同的运行路线,创建个性化的刷图流程:

  • 单目标专注:连续刷同一BOSS提高特定物品掉落率
  • 多场景轮换:在不同场景间切换避免IP封锁风险
  • 效率优化:根据角色能力和装备选择最优路线组合

安全与稳定性保障

Botty在设计时充分考虑了使用安全性和系统稳定性,通过多种机制确保长期可靠运行。

异常检测与恢复

系统内置了完善的异常处理机制:

  1. 死亡监控:实时检测角色死亡并自动处理
  2. 网络断线恢复:检测游戏连接问题并自动重连
  3. 游戏崩溃处理:监控游戏进程状态并自动重启
  4. 性能监控:实时监控系统资源使用情况

人类行为模拟

为降低检测风险,Botty模拟了真实玩家的操作模式:

  • 随机延迟:操作间隔采用随机分布(80-120ms)
  • 鼠标轨迹:模拟人类鼠标移动的曲线轨迹
  • 技能释放:技能使用顺序和时机随机化
  • 拾取模式:物品拾取顺序和路径随机变化

Botty的复杂场景识别模板,展示了对尼拉塞克区域特征点的精准标记,实现复杂地形的可靠识别

开发与扩展指南

Botty作为开源项目,为开发者提供了完善的扩展框架和开发工具。

模块化架构

项目采用清晰的模块化设计,便于功能扩展:

src/ ├── char/ # 职业实现 ├── d2r_image/ # 图像处理 ├── inventory/ # 物品管理 ├── run/ # 运行逻辑 ├── town/ # 城镇操作 └── utils/ # 工具函数

自定义职业开发

开发者可以轻松添加新的职业支持:

from char.i_char import IChar class NewCharacterClass(IChar): def __init__(self, skill_hotkeys: dict, pather: Pather): super().__init__(skill_hotkeys, pather) def pre_buff(self): """角色预buff逻辑""" pass def kill_pindle(self) -> bool: """针对特定BOSS的战斗逻辑""" pass

测试与调试工具

项目提供了完整的测试框架和调试工具:

  • 图形调试器:可视化显示识别结果和路径规划
  • 单元测试:覆盖核心功能的自动化测试
  • 性能分析:运行时间统计和瓶颈识别

实践应用指南

快速启动步骤

  1. 环境配置
git clone https://gitcode.com/gh_mirrors/bo/botty cd botty conda env create environment.yml conda activate botty
  1. 游戏设置

    • 确保D2R使用英文语言
    • 设置游戏分辨率为720p窗口模式
    • 关闭所有图形增强功能
  2. 配置文件调整

    • 编辑config/params.ini设置角色类型和技能热键
    • 配置config/default.nip定义物品拾取规则
    • 设置运行路线和难度参数

最佳实践建议

  1. 性能优化

    • 根据硬件性能调整图像识别间隔
    • 优化BNIP规则减少不必要的物品识别
    • 合理设置技能释放延迟
  2. 安全使用

    • 避免连续长时间运行
    • 定期更换运行路线
    • 监控游戏行为异常
  3. 效率提升

    • 根据角色构建优化技能配置
    • 调整路径节点提高移动效率
    • 合理设置物品筛选规则

技术优势总结

Botty代表了游戏自动化技术的重要进步,其主要技术优势包括:

  1. 纯视觉方案:无需游戏内存修改,兼容性极高
  2. 智能决策:基于状态机的复杂场景处理
  3. 模块化设计:易于扩展和维护
  4. 社区驱动:活跃的开发社区持续改进
  5. 开源透明:完全开放的代码库,安全可靠

通过将先进的计算机视觉技术与游戏逻辑深度结合,Botty为《暗黑破坏神2:重制版》玩家提供了一个强大、可靠且高度可定制的自动化解决方案。无论是追求效率的硬核玩家,还是希望减轻重复劳动的时间有限玩家,都能从这个项目中获得显著的价值提升。

项目的持续发展和社区贡献确保了其能够跟上游戏更新和技术进步,为D2R自动化领域树立了新的技术标准。

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

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