集成了最新单线程和多线程大漠和精易模块

易语言 2020-07-09 16:33:51

集成了最新单线程和多线程大漠和精易模块

这个模块目前集成了:精益模块8.3和大漠最新7.2014版(收费版本)的单线程+多线程。由于时间匆促,可能有不完善的地方,欢迎反馈,后续我会在这个模块中集成进皮肤和加密模块。

这里要着重说一下模块中关于大漠的一些细节和使用方法。
1,首先,无论你是只使用单线程的大漠,还是使用多线程的大漠,都必须先调用一次:大漠创建对象并zc(),这样在线程外可以使用“dm”这个全局变量来使用大漠的所有的方法;
2,关于大漠多线程,由于不同人对于多线程的使用习惯不同,所以此模块中对于大漠多线程的使用,个人仅推荐使用:“大漠多线程”这个全局变量来自己重新写创建、绑定、暂停等功能,只要保证是使用的“大漠多线程”这个全局变量,那么后面就能直接使用模块中大漠多线程的方法,注意多线程方法需要传入一个参数:序号,每个线程中需要确保这个参数值是相同的;
3,如果使用模块中的大漠多线程zc,那么正确的使用方法应该是:
在启动或者主动创建时:大漠创建对象并zc() 必须!
在启动或者主动创建时:大漠多线程初始化() 必须!
在线程中:大漠创建对象_多线程_主线程 () 必须!
在线程中:大漠创建对象_多线程_副线程 () 非必须!
这里简单讲解一下:
第一个方法:大漠创建对象并zc(),需要传入大漠的zc码和附加码,创建成功后,可以使用类型为大漠类库的全局变量dm,同时不需要自己去添加dll文件,如果没有dll文件,模块会自动在运行目录下释放;
第二个方法:大漠多线程初始化 (),需要传入一个整数型参数,例如你是要多开10个窗口,那么这里就传入10,这是多线程大漠必须要的一个参数,最大值为100。最大值100是因为在全局变量中已经设定了“大漠多线程”数组上限为200,也就是说模块默认的最大多开数量是100(因为这里采用的主副线程,要除以2),如需修改,请改源码;
第三个方法:大漠创建对象_多线程_主线程 (),只需要传入线程序号1-100,如第一个线程传入1,第10个传入10。同时这个方法只能在线程里使用,并且要在线程的最开始使用,因为这里面有线程模式的设置。
第四个方法:大漠创建对象_多线程_副线程 (),这个方法可以不使用,主要看自己的喜好,如果也使用,请注意,这里传入的序号必须跟主线程传入的序号一致,也必须在线程的一开始使用。
为什么会有三、四两个看似一样的方法,这里就不多讲解了,有空我打算出个视频来说下。

4,重点!重点!重点!
这个模块中关于大漠的使用,其实跟以前我分享的大漠模块最大的区别就在于这里了。这个模块更偏向于实际使用,而之前的模块更像是一个简单的汉化模块,虽然两个模块我都没做汉化。其实要做汉化也是差不多,只需要在类库中,将方法名修改为中文即可,但我个人认为没有这个必要追求完全的汉化,平时有不明白的多查查官方文档就好。
好了,不废话,简单说下关于模块中大漠方法的说明。
模块中的方法,可以看出相同功能的方法我都写了几个,如大漠找图这个功能是我们常用的。以单线程为例,我在模块中找图功能就写了11个方法。如:
大漠找图(),这个方法就是基础的找图方法,跟直接使用类库比,少了一个偏色设置,我这里将找图的偏色都设置为了“000000”,还有省去了我们每次写图片名的时候需要加“.bmp”这个后缀,其他的都没区别;这是最简单的一个方法。
再来一个最复杂的:大漠找图并单击_N秒多张图加偏移()
这个方法,显然功能看上去就比上一个强大,这个方法能做什么呢?他可以在几秒钟内找一张图,如果找到就单击他,还可以使单击的位置发生偏移,如果你设置了5秒,但实际上在第1秒的时候就找到了,他也不会傻乎乎的等5秒而是直接返回。如,游戏页面需要加载,但是网络和电脑性能有差异,有人快有人慢,那么这一个方法就能解决这个问题;如,可能有时候我们找一次找不到这个图,因为页面其他渲染的颜色导致这个图在扫描的那一刻像素差异,导致找不到。等等情况。这样做的最大好处就可以容错高,提高稳定性。
不要嫌我废话多,我是真的见过很多人写的代码,就是只找一次,找不到就是另外一个处理流程,特别是在文字识别这个地方,很多时候一次识别的并不是很准确,那就有可能出现异常了,还有找图因为游戏光效找不到等等情况。