距离上一篇(代码篇)已经过去一年了,正好最近从零开发了一版脚本,于是借助这个框架来介绍介绍自动化脚本的实战篇。
由于本篇采用的C#编程(与C语言差不多),很难实现(理论篇)中的流程跳转,所以大概在架构上做了以下总结。
- 整体脚本框架需要分为主循环、初始化、异常处理三部分。
- 主循环,是脚本在达到可执行环境时期的主要工作内容。
- 初始化,是脚本从零开始到达到主循环条件的每一个步骤操作。
- 异常处理,是当主循环或初始化遇到错误时,能够迅速将脚本流程回归到初始化中的某个步骤上。
如此一来,正常情况下,脚本是在主循环中稳定运行的。当主循环遇到错误时,会进入异常处理流程,通过此流程分析,会将脚本回归到初始化流程中的某个步骤上,接着初始化会将脚本回归到主循环里。从而达到脚本的稳定运行。
整体流程图如下:
下面我以C#框架用大漠插件实现的一个脚本代码做实例说明:
注:本例不开放完整源码,仅拿出部分来做思路讲解。
先简单介绍下大漠插件做脚本的大体思想,大漠综合插件(dm.dll)采用vc6.0编写,是一款集前后台,文字识别,图色,键鼠,窗口,内存,DX,Call等功能于一身的综合插件。(百度百科)
这款插件做脚本的主要操作很简单,先findpic,然后进行keypress或者鼠标click。
早些年间我是用按键精灵做脚本的,但是他的编译器框架实在是,难以评价,结果近几年又突然收了费,像我们这些入网较早而且习惯白嫖的铁公鸡,那肯定是不肯贡献一分钱的,尽管我用了白嫖了他好几年。但做人要有原则!说白嫖就得白嫖到底!
于是,我就将所有脚本全都转移到了C#上,为什么选择C#,那必须是因为我自身知识水平的局限性。
好的,废话讲到这里吧,进入正题:
脚本的主要功能是实现元梦之星农场自动种菜收菜。
那么主流程就来了:自动种菜收菜。
for (int i = 0; i < land_num; i++)//农场所有土地
{
//移动角色走到土地上
_dm.MoveTo(SharedData.pixel_direction[0], SharedData.pixel_direction[1]);
_dm.LeftDown();
AIrobot.delay(10);
_dm.MoveR(SharedData.land_every_parameter[i, 0], SharedData.la