结合我们的上三篇博文pywin32 pywinio PIL定位 制作一个简单的DNF物品自动拾取DEMO。

实现的主要思路就是修改游戏贴图添加辅助像素,然后通过遍历游戏截图定位角色和物品位置,最后移动到物品位置并拾取。

修改游戏贴图

我们用不同像素颜色分别标识角色和物品。像素大小为5x5,九宫格加外面一层辅助像素。其中角色我们用了两个以便区分游戏角色朝向,为后面自动打怪提供帮助。

这里我们的测试账号是个女鬼-暗帝所以我们取消二觉装扮,修改贴图,保存像素rgb值。修改后如下,。

java写dnf脚本 怎么写dnf脚本_Pywin32

物品已经在写前面博文中修改过了

java写dnf脚本 怎么写dnf脚本_Pywin32_02



定位人物和物品位置

如python中使用DNF Extractor和PIL定位dnf中物品位置中所示定位角色和物品位置。

移动人物

获取到位置信息以后计算出和当前角色最近的物品信息,然后移动人物。

java写dnf脚本 怎么写dnf脚本_python_03

  • 人物移动的距离和按键的时间成正比,比例是简答测试后得到的。
  • 进行过一次移动之后,判断和物品的位置是否小于可拾取的最大距离,如果是便拾取。

脚本使用

java写dnf脚本 怎么写dnf脚本_Pywin32_04

java写dnf脚本 怎么写dnf脚本_python_05

效果预览

java写dnf脚本 怎么写dnf脚本_python_06