文档库 最新最全的文档下载
当前位置:文档库 › 找图,找字(大漠)_有图文档

找图,找字(大漠)_有图文档

找图,找字(大漠)_有图文档
找图,找字(大漠)_有图文档

有图有真相

自定义字库:

系统字库(略):

修改图片,找图:

自定义字库:

拿DNF游戏作为例子

DNF小区选择:

找的字就是天津1区

Step1

先抓图,选颜色(默认是黑色,在二值化区域看不到字的)

Step2

提取单个\多个点阵,然后定义文字,需要注意的是,有的字可能分家了,这样的字要单独

处理,不能一起截出来。

Step3

此时自定义已结束,开始写代码进行验证

这个结果没问题,但想要做成显示“天津1区”的,要不就缩小查找范围,要不就找图,最好做字库的时候把“天津1区”作为一个字

修改图片,找图:

Step1

先抓图,之后编辑(编辑的目的是让背景色单一),最后把图片保存起来。

Step2

补充:做好的字库,图片可以用“大漠综合工具”加密

如图:分别是图片加密,字库加密。

在用的时候,要提早解密

SetPicPwd(密码)

SetDictPwd(密码)

大漠插件字库原理介绍

首先说明下大漠综合工具制作字库的过程和原理 1.截取你所需要的图片 2.点击你所需要字的颜色 3.点击提取点阵 4.输入字符按回车生成字库 具体的原理我不好说,但是就我的理解是:对图片中不符合指定颜色的部分去除掉,然后二值化获取点阵,点阵也就是这些颜色的分布规律,二值化就是黑白两色,RGB格式中黑色"000000"白色"ffffff" 由于我的脚本在别人电脑上运行的时候经常失效,今天改成16位色后我机器上运行也失效了,而我这个脚本主要采用的就是大漠插件的找字功能,我以为是机器间的色偏造成的,一直想法子算色偏,但是我失败了。 后来我想起论坛上有个帖子专门讲过同色系的RGB格式中R值是不变的(不好意思忘了作者了,在这里致谢) 于是我就在大漠综合工具的色偏处输入了00ffff结果是在16位色环境下,大漠综合工具中二值化区域内的字显示的跟我在32位色环境下做的一模一样,接着我提取点阵,制作字库,进行调试,命令格式如下: dm_ret =dm.FindStr(0,0,978,585, "码", "ffd463-00ffff", 1.0, x1, y1) If x1 >= 0 Then MessageBox x1 & y1 End If 准确的弹出了x,y的坐标值 接着我换32位色做同样的调试,显示结果与16位色下相同,我测了坐标正好是我要找的字的左上角 经多次测试发现这个方法中字色的R值必须为FF或00(至于F1,01等未测试,有兴趣的朋友可以试试) 庆幸啊以后找字可以不考虑偏色了呵呵再说了考虑我也不会算 具体原理我也不是很懂,但是我估计应该是:我比较了点阵中R值相同的所有点,取得符合二值化点阵区域内所有的点造成的 再次提醒此方法只适合R值为00,FF的其他位置相同的未测试 当然这么做效率是低了点,但是在我看来脚本应该是:稳定性>通用性>执行效率,毕竟脚本也是你编写的一种软件吗 鲜花,银币在哪拿来啊呵呵 简单说下后台操作的方法,先判断该窗口是否支持后台,用下面的语句: Hwnd=Plugin.Window.Foreground() Hwmd=Plugin.Window.GetkeyFocusWnd() If Hwmd<>0 then Messagebox "可以" Else

大漠插件后台找图、自动获取坐标窗口句柄鼠标多点左单击脚本

大漠插件后台找图、自动获取坐标窗口句柄鼠标多点左单击 脚本 一、准备工作 第一步:下载大漠插件、解压,运行“注册大漠插件到系统.bat”,把全部东东都复制到按键精灵的plugin目录下吧~ 第二步:创建一个文件夹,以d:\test 为例。把你要找的图(60.bmp)、大漠插件里的dm.dll 和RegDll.dll复制到这个文件夹。 第三步:打开按键精灵,创建一个新脚本。往附件(在软件左边框选项)里面添加dm.dll、Reg.dll和图60.bmp 二、复制以下代码到按键精灵 dim ys1,ys2,ys3,a,b,zbx,zby//自定义变量 ys1=9000//1和2点延时 ys1=9000//2和3点延时 ys1=9000//3和1点延时 a=15//纵向下移15单位 b=-15//纵向上移15单位 zbx=100//获取窗口句柄给定的坐标x zby=100//获取窗口句柄给定的坐标y PutAttachment "d:\test", "*.*" //意思是释放所有附件到d:\test目录。就是把有用的文件打包到test目录下 PutAttachment ".\Plugin", "RegDll.dll" //意思是释放RegDll.dll文件到按键精灵安装目录的Plugin目录下,用来完成大漠插件的注册 Call Plugin.RegDll.Reg("d:\test\dm.dll") //调用大漠插件,在按键精灵中使用 Set dm = createobject("dm.dmsoft") //用大漠插件创建一个对象dm dm_ret = dm.SetPath("d:\test") // 设置全局路径,以后你找图用的图片都默认是test目录里的图片了,否则你要用绝对路径d:\test\1.bmp来该表示图片 dm_ret = dm.LoadPic("*.bmp") // 字面意思是加载test目录下的所有图片 Hwnd = dm.GetPointWindow(zbx,zby)//用大漠软件获取给定坐标(zbx,zby)的窗口句柄,保存在Hwnd里 Call Plugin.Window.Move(Hwnd, 0, 0) // 把窗口移到屏幕的(0,0),即左上角 dm_ret = dm.BindWindow(Hwnd,"gdi","windows","windows",0) //这句用来绑定辅助操作的对象窗口 //下面是一条判断语句,如果绑定失败就会提示。那就从前面几几步中找原因吧 Delay 10 If dm_ret = 1 Then Else MessageBox "绑定失败,重启脚本或联系作者" EndScript

开源 C++配合大漠插件实现的消息泵模式按键模拟编程

开源C++配合大漠插件实现的消息泵模式按键模拟编程 开发背景:某天正在用OPENGL写一个UI界面库,发现实现过程越来越很有趣,一发不可收拾。 于是想着能不能在逻辑型代码上实现类似界面的那种思维。 花了2天写的,对新手或者老手都是会有帮助的。 这个类库的特点: 逻辑全部封装,你只需要提供要执行的行为,已经行为达到某个触发条件执行特定的事物。执行Execu即可。免去了大量重复的逻辑判断,大量的重复的函数调用。 加载大漠插件避开了COM组件注册表机制,用的WIN32方式加载 示例代码: 代码: DmFindPic PicBaiDu_Open;//点击召唤师资料 DmFindPic PicBaiDu_Yixia;//查找是否有装备设置图标但不点击 PicBaiDu_Open.SetPicName(".\\1.bmp"); PicBaiDu_Yixia.SetPicName(".\\2.bmp"); { PicBaiDu_Yixia.Enable_Click_whileFind(false);//找到图片不点击 PicBaiDu_Yixia.Enable_break_whileFind();//找到了就退出app1 DmABCDEFG_ACTION Yidong; Yidong.SetWay(偏移,100,20); PicBaiDu_Yixia.AddSubDo(&Yidong); DmABCDEFG_ACTION Shuangji; Shuangji.SetWay(双击,NULL); PicBaiDu_Yixia.AddSubDo(&Shuangji); DmABCDEFG_ACTION Shuru; Shuru.SetWay(输入文字,"测试");

VC大漠实例

MFC VC++ (VS2010) 调用大漠插件实例 小工具源代码: 隐藏鼠标指定的窗口,显示时要求输入密码:119 MiniTool.cpp 部分: // MiniTool.cpp : 定义应用程序的类行为。 // #include "stdafx.h" #include "MiniTool.h" #include "MiniToolDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CMiniToolApp BEGIN_MESSAGE_MAP(CMiniToolApp, CWinApp) ON_COMMAND(ID_HELP, &CWinApp::OnHelp) END_MESSAGE_MAP() // CMiniToolApp 构造 CMiniToolApp::CMiniToolApp() { // TODO: 在此处添加构造代码, // 将所有重要的初始化放置在InitInstance 中 } // 唯一的一个CMiniToolApp 对象 CMiniToolApp theApp; // CMiniToolApp 初始化 BOOL CMiniToolApp::InitInstance() { // 如果一个运行在Windows XP 上的应用程序清单指定要 // 使用ComCtl32.dll 版本6 或更高版本来启用可视化方式,//则需要InitCommonControlsEx()。否则,将无法创建窗口。

INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); AfxEnableControlContainer(); // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("MiniTool by liuh")); WinExec("regsvr32.exe dm.dll /s",SW_SHOW);//注册dm.dll,如果dm.dll为当前程序目录相对路径,则直接写dm.dll即可。 CMiniToolDlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此放置处理何时用 // “确定”来关闭对话框的代码 } else if (nResponse == IDCANCEL) { // TODO: 在此放置处理何时用 // “取消”来关闭对话框的代码 } // 由于对话框已关闭,所以将返回FALSE 以便退出应用程序, // 而不是启动应用程序的消息泵。 return FALSE; } Dlg.cpp部分: // MiniToolDlg.cpp : 实现文件

大漠各个插件说明

大漠各个插件说明 1. 无返回值的不能带括号, 或者说无括号不能带返回值, 例如 dm.FindStr 0,0,2000,2000," 长安","aaaaa-00000",1.0,intX,intY dm.MoveTo intX,intY dm.LeftClick dm.SetPath "c:\xxxx" dm.SetDict 0,"test.txt" dm.LoadPic "*.bmp" 等等,这些都是不需要返回值的, 那么不需要加括号,当然, 你也可以加括号, 但是就必须遵循规则2 2.有返回值的必须带括号,或者说, 有括号必须有返回值,例如dm_ret = dm.FindStr(0,0,2000,2000," 长安","aaaaa-00000",1.0,intX,intY) dm_ret = dm.MoveTo(intX,intY) dm_ret = dm.LeftClick() dm_ret = dm.SetPath("c:\xxxx") dm_ret = dm.SetDict(0,"test.txt") dm_ret = dm.LoadPic("*.bmp") 有些函数,是必须有返回值的,那么就必须带括号,比如Ocr函数等 ss = dm.Ocr(0,0,2000,2000,"aaaaaa-000000",1.0) 4按键多线程调用插件目前来讲,按键的多线程还不够成熟使用多线程调用插件的一个示例. 尽量少用。以下是在按键下// 注册部分我就省略了 Dim hwnd Set dm = createobject("dm.dmsoft")

TracePrint dm.Ver() // 主绑定( 当然你也可以不要主绑定。直接在线程里绑定) hwnd = dm.GetMousePointWindow() dm_ret = dm.BindWindow(hwnd, "dx", "windows", "windows", 0) TracePrint dm_ret Id1 = BeginThread( 测试线程) Id2 = BeginThread( 测试线程) Do Delay 2000 TracePrint " 主线程" Loop // 这里必须用ExitScript 以免线程无法停止. ExitScript Sub 测试线程() Set dm = createobject("dm.dmsoft") // 副绑定 dm_ret = dm.BindWindow(hwnd, "dx", "windows", "windows", 0) TracePrint dm_ret Do

Call 注册大漠

Call 註冊大漠 Dimenv 環境變數控制碼 //環境變數,線程裏面要用到.要定義為環境變數 ID控制碼字串= "" //****************************** 檢測按鍵,動作 *************************************** do Call Plugin.Msg.Tips("按Insert鍵綁定,按Delete鍵解綁") Key = WaitKey() // 等待用戶按任何鍵 // 下麵是Insert鍵,綁定滑鼠指向的視窗的線程 If Key = 45 Then 環境變數控制碼= dm.GetMousePointWindow() // 滑鼠指向的視窗 // 先判斷,這個控制碼是否在綁定.如果綁定過.不再重複綁定這個視窗 位置= Instr(ID控制碼字串, 環境變數控制碼) //Instr函數,作用是:返回"環境變數控制碼"在"ID控制碼字串"中第一次出現的位置。沒出現就是位置=0 // 如果位置=0 就綁定,預防重複綁定 TracePrint 位置 TracePrint ID控制碼字串 If 位置= 0 Then // 線程ID=BeginThread(多線程) // 多線程 // 按一次Home鍵,就綁定一個視窗多開 控制碼= CStr(環境變數控制碼) ID = CStr(線程ID) // CStr函數是把整數轉換成字串類型 ID控制碼字串= 控制碼+ "|" + ID + "|" + ID控制碼字串 // Call Plugin.Msg.Tips("已綁定,一個視窗") // Else

Call Plugin.Msg.Tips("視窗已經綁定過了,請不要重複綁定") Delay 2500 End If // // //######################################################## // 下麵是按Delete鍵,停止滑鼠指向的視窗的線程 ElseIf Key = 46 Then 滑鼠指向的控制碼= dm.GetMousePointWindow() // TracePrint ID控制碼字串 位置= Instr(ID控制碼字串, 滑鼠指向的控制碼) //Instr函數,作用是:返回"環境變數控制碼"在"ID控制碼字串"中第一次出現的位置。沒出現就是位置=0 // 如果位置=0 證明這個視窗當前沒有綁定,預防沒綁定就解綁 TracePrint 位置 TracePrint ID控制碼字串 If 位置> 0 Then 陣列= Split(ID控制碼字串, 滑鼠指向的控制碼) ID = 陣列(1) 陣列2 = Split(ID, "|") ID2 = 陣列2(1) // TracePrint ID2 StopThread ID2 // @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ // 下麵是把停止的線程的ID和控制碼,從ID控制碼字串去掉 TracePrint ID控制碼字串 刪除陣列= Split(ID控制碼字串, 滑鼠指向的控制碼) 左邊= 刪除陣列(0) ID3= ID2+"|" 刪除陣列2 = Split(ID控制碼字串, ID3) 右邊= 刪除陣列2(1) ID控制碼字串= 左邊+ 右邊 TracePrint ID控制碼字串 // // @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

大漠插件系统

命令名称:dmBeep 命令功能:蜂鸣器. f 整形数: 频率duration 整形数: 时长(ms). 整形数: 0 : 失败 1 : 成功 命令名称:CheckFontSmooth 命令功能:检测当前系统是否有开启屏幕字体平滑.<收费功能> 整形数: 0 : 系统没开启平滑字体. 1 : 系统有开启平滑字体. if Plugin.dm.CheckFontSmooth () = 1 then TracePrint "当前系统有开启平滑字体" end if 命令名称:CheckUAC 命令功能:检测当前系统是否有开启UAC(用户账户控制). 整形数: 0 : 没开启UAC 1 : 开启了UAC if Plugin.dm.CheckUAC() = 1 then TracePrint "当前系统开启了用户账户控制"end if 注: 只有WIN7 VISTA WIN2008以及以上系统才有UAC设置 命令名称:dmDelay 命令功能:延时指定的毫秒,过程中不阻塞UI 操作.一般高级语言使用.按键用不到. <收费 整形数: 0 : 失败 1 : 成功 Plugin.dm.dmDelay 1000注: 由于是com组件,调用此函数必须保证调用线程的模型为STA.否则此函数会阻塞当前线程UI. 命令名称:DisableFontSmooth 命令功能:关闭当前系统屏幕字体平滑.同时关闭系统的ClearType 功能. <收费功能> 整形数: 0 : 失败 1 : 成功 if Plugin.dm.CheckFontSmooth() = 1 then if Plugin.dm.DisableFontSmooth() = 1 then MessageBox "关闭了当前系统平滑字体,重启生效" Plugin.dm.ExitOs 2 Delay 2000 EndScript Plugin.dm.dmBeep 1000,1000 mis整形数: 毫秒数. 脚本例子:命令参数:返回值:脚本例子:返回值:脚本例子:命令参数:返回值:脚本例子:返回值:脚本例子:返回值:

大漠脚本调用

PutAttachment "E:\脚本编辑工具\大漠2.1142" ,"*.*" PutAttachment ".\Plugin" ,"RegDll.dll" Call Plugin.RegDll.Reg("E:\脚本编辑工具\大漠2.1142\dm.dll") set dm = createobject("dm.dmsoft") ver = dm.Ver() If len(ver) = 0 Then MessageBox "创建对象失败,检查系统是否禁用了vbs脚本权限" EndScript End If dm.SetPath "E:\脚本编辑工具\大漠2.1142" hwnd = dm.GetMousePointWindow() Delay 200 dm_ret = dm.BindWindow(hwnd, "normal", "windows", "windows", 0) Delay 20 BeginThread 线程三 BeginThread 线程五 BeginThread 线程六 BeginThread 线程七 Rem bx dm_ret = dm.FindPic(342,29,431,75, "renxingguai.bmp", "000000", 0.9, 0, X, Y) If X >= 0 Then dm.keypress 49 End If Goto bx Sub 线程三 Set dm = createobject("dm.dmsoft") Rem st x = WaitClick If x = 32781 Then //鼠标中键下滚 dm.keypress 84 //按下T上马 Delay 3000 End If delay 100 Goto st End Sub

第二章 大漠插件的介绍和调用

一大漠插件的介绍 大漠插件压缩包 第一个就是大漠插件了。我调用的大漠功能都是通过调用它里面的函数实现的。 第二个是注册dll用的组件,按键精灵通过这个组件自动注册大漠插件到系统。 第三个也是最重要的大漠插件各个函数的说明文档,学会和看懂他,你就可以做出各种功能的脚本了。不要看不起脚本,如果用VC调用

大漠的话,那就不叫脚本了,叫程序。虽说功能还是鼠标键盘模拟。第四个也很重要,以后很多调试,图文识别都要用这个工具。 第五个就是一个bat的手动把大漠注册到系统的文件。在win7下的话,右键选择管理员权限运行。 目前使用的这个大漠插件的版本为免费的 v3.1233版。 二大漠插件在按键精灵中的调用 先来看看,如果在按键精灵(以后简称按键里调用。 首先要了解,大体的工作流程。 开始先创建一个大漠对象,接下来就可以调用这个对象的各个函数了。 但是实际上在创建大漠对象前还要先判断系统有没有注册大漠插件。没有注册的话是无法创建大漠对象的。 咱们今天暂时先不管这些。先手动注册-----也就是运行刚才那个注册大漠插件到系统。 三大漠插件调用实例 接下来先创建一个按键精灵脚本,并切换到源代码模式。(不会的请参见上一章的教程)

按Ctrl+S是快速保存,如果有错误下面脚本信息栏会有提示。 当然这个提示并不一定准确,有时因为其他行的错误,导致报错在这行,也是有可能的,因此要仔细,一个逗号,一个括号都有可能出错。

点击顶部的调试按钮 出现这个提示 是保存

进入调试模式后,左下角会有这个调试界面 按F10或者鼠标直接点击都可以。 运行结果 这就是把当前使用的大漠插件的版本号用弹窗展示出来了。这种弹窗也可以用于调试信息的查看。 好了,今天就先到这里。 下一章,我们会介绍按键的后台操作和窗口的绑定。

易语言调用大漠

还有一小时下班,没事做,教童鞋们在易裡用大漠插件,嘿嘿,好多童鞋都不会怎么用,回答也累啊,没办法,普及一下咯,看图! 第一步,下载大漠,必须的! 第二步,注册DLL文件,必须的,很多种方法! 这是大漠自带的,很好用,注册的时候一定要dm.dll, regdll.dll, 注册大漠插件到系统.bat ,这三个文件一定要在同一个目录下,很多童鞋就知道,以为只有注册大漠插件到系统.bat 点击就行了,好用的插件也有让人蛋疼的地方,要留意! 用regsvr32来注册,开始菜单,运行! Regsvr32是命令,后面的是你的DLL的文件路径,这个路径里一定要有这个DLL文件,不然当然是不行滴咯! 重点来了,打开易语言点工具菜单的类型库或OCX组件-支持库,打开就懂了,0.0

在弹出的对话框中选注册类型库 找到dm.dll然后打开,会有个提示

好咧,到这里易语言还是没有大漠支持库了,往下看 找到Dm 版本1.0,然后单击下一步

其实这是易官方的一个只有几分钟的教程,很多同学就是不愿意去看,哎,伸手党太多了! 点击保存为NPK文件 ,再将NPK文件放到易程序目录的LIB文件夹里,然后配置支持库! 如果要汉化,那你就一个一个函数的汉化呸,当然,很累的,但为了童鞋们,我也是汉化了一个啊,看我论坛的帖子咯 支持库有了哈哈,问题又来了,很多童鞋就说了,这个怎么用啊,很明显是易的基础都没打好的童鞋,郁闷!

创建一个窗口程序,插入一个变量,这个变量的数据类型我们打上大漠插件,注意,这裡是你保存NPK 文件的时候写的是啥就是啥,不一定是大漠插件这个数据类型的,我写的是大漠插件,所以数据类型也是大漠插件! 看下图这里,懂点易的就飘过吧,这里是普及教程! 好了,这下可以用了,参数自己看大漠接口说明填就是了! 总结了一下,要注意的有以下几点! 不是所有的函数易都可以调用,比如 某些函数易是用不了的,大漠接口说明说得很清楚,这个要注意! 还是有些问题,,,为啥在我的电脑上能用,发给别人用不了我写的软件呢?,简单解决办法如下:

大漠插件后台找图

磨了一下午终于找图成功了。本人使用按键精灵。 第一步:下载大漠插件、解压,运行“注册大漠插件到系统.bat”,把全部东东都复制到按键精灵的plugin目录下吧~ 第二步:创建一个文件夹,以c:\test 为例。把你要找的图(1.bmp)、大漠插件里的dm.dll 和RegDll.dll复制到这个文件夹。 第三步:打开按键精灵,创建一个新脚本。往附件(在软件左边框选项)里面添加dm.dll、Reg.dll和图1.bmp 第四步:脚本中加入如下语句 PutAttachment "c:\test", "*.*" //意思是释放所有附件到c:\test目录。就是把有用的文件打包到test目录下 PutAttachment ".\Plugin", "RegDll.dll" //意思是释放RegDll.dll文件到按键精灵安装目录的Plugin目录下,用来完成大漠插件的注册 Call Plugin.RegDll.Reg("c:\test\dm.dll") //这句忘了啥意思了,应该是呼唤大漠插件到按键精灵里来吧~ Set dm = createobject("dm.dmsoft") //用大漠插件创建一个对象dm dm_ret = dm.SetPath("c:\test") // 设置全局路径,以后你找图用的图片都默认是test 目录里的图片了,否则你要用绝对路径c:\test\1.bmp来该表示图片 dm_ret = dm.LoadPic("*.bmp") // 字面意思是加载test目录下的所有图片 Hwnd = dm.GetMousePointWindow() // 用大漠软件获得鼠标指向窗口的句柄,保存在Hwnd 里 Call Plugin.Window.Move(Hwnd, 0, 0) // 这句没搞懂。不知道有哦没有用 dm_ret = dm.BindWindow(Hwnd,"gdi","windows","windows",0) //这句用来绑定辅助操作的对象窗口 //下面是一条判断语句,如果绑定失败就会提示。那就从前面几几步中找原因吧 Delay 10 If dm_ret = 1 Then Else MessageBox "绑定失败,重启脚本或联系作者" EndScript End If dm_ret = dm.FindPic(0,0,2000,2000,"1.bmp","000000",0.9,0,X,Y) // 后台查找图片。坐标、图片地址、色差、相似度、查找顺序、返坐标 If X >0 and Y >0 Then MessageBox X&","&Y Else MessageBox "没找到" End If //***************************************************************// 新手常遇到的困难总的来说有三点: 1、注册插件失败,检查一下前面三步 2、绑定窗口,貌似说明书里都找不到这条句子,都从网上搜来的 3、注册和绑定都成功了,图片路径也对,找不到图。看看你图有没

注册大漠的方法

// 首先打包dm.dll和RegDll.dll到附件,当然如果你还有其它资源(字库,图片等)也可以一并打包 // 这个need_ver作为本脚本需要使用的插件版本. 如果要换插件时,记得更改这个值. need_ver = "3.1254" // 插件需要用到atl系统库,有些XP精简系统会把atl.dll精简掉. 为了防止注册失败,这里手动注册一下atl.dll set ws=createobject("Wscript.Shell") ws.run "regsvr32 atl.dll /s" set ws=nothing // 释放附件>>>>>>>>>>>>>>>>>>> // 这里选择c盘的test-_game作为插件的基本目录也就是SetPath对应的目录。所以所有资源都释放在此目录. PutAttachment"c:\test_game","*.*" // 这里要用到RegDll来注册插件,所以必须释放到Plugin. 但是切记不能把dm.dll释放到Plugin.那会导致插件失效. PutAttachment".\Plugin" ,"RegDll.dll" // 插件注册开始>>>>>>>>>>>>>>>>>>> // 下面开始注册插件,先尝试用RegDll来注册.这里必须使用绝对路径。以免有别人把dm.dll释放在系统目录.造成版本错误. Call Plugin.RegDll.Reg("c:\test_game\dm.dll")

// 这里判断是否注册成功 set dm = createobject("dm.dmsoft") ver= dm.Ver() if ver <> need_ver then // 先释放先前创建的dm set dm = nothing // 再尝试用regsvr32 来注册. 这里必须使用绝对路径。以免有别人把dm.dll释放在系统目录.造成版本错误. set ws=createobject("Wscript.Shell") ws.run "regsvr32 c:\test_game\dm.dll /s" set ws=nothing Delay 1500 // 再判断插件是否注册成功 set dm = createobject("dm.dmsoft") ver = dm.Ver() if ver <> need_ver then // 这时,已经确认插件注册失败了。弹出一些调试信息,以供分析. messagebox "插件版本错误,当前使用的版本是:"&ver&",插件所在目录是:"&dm.GetBasePath() messagebox "请关闭程序,重新打开本程序再尝试" endscript end if

按键精灵游戏脚本开发教程:自动逛地图打怪

按键精灵游戏脚本开发教程:自动逛地图打怪 来源:按键学院【按键精灵】 学院实战班目前在教授的是回合制游戏《神武》的脚本功能 小编凑热闹,也跟着去玩了玩 今天在这里和大家分享下,自动战斗功能的脚本编写流程~ 流程 1、打开地图(快捷键Tab) 2、随机点击地图上的坐标点 3、如果遇到怪物则打怪(自动打怪快捷键Ctrl+A) 技术难点: 1、随机移动过程中,如何判断人物是否已经移动到了指定坐标点。 2、随机点击一组坐标的实用写法。 绑定游戏窗口 今天我们要写的脚本有使用到大漠插件。

因为是多开脚本,所以查找句柄使用的是Search命令 后台绑定模式: 图色模式:dx3 鼠标模式:dx 键盘模式:dx 关于Search命令的详细说明以及大漠绑定模式如何获知 请参阅相关院刊: 【院刊】-【201501期】沙盘后台绑定游戏 打开地图 《神武》游戏支持点击大地图进行移动的方式。打开地图的快捷键为Tab键。 为了避免地图已经打开的情况 我们要先判断地图有没有打开,没有打开的话才去按Tab键打开地图 这里要注意一点 那就是,地图没打开的情况下有两种情况 1、没进入战斗画面 2、进入了战斗画面

所以,打开地图的判断步骤如下 1、地图没打开——>在不在战斗画面? 在战斗画面——>开始战斗 不在战斗画面——>打开地图——>随机点击地图上的坐标点 2、地图打开了——>人物在不在移动? 在移动(说明还没到目的坐标)——> 不做任何操作 不在移动(说明到了目的坐标或者遇到了阻碍物停止了移动)——> 点击下一个随机坐标 本例子中,是通过找图方式来判断地图窗口是否出现

小编找的是红框框里的图片 蓝色框的区域里,经常会出现系统的横条提示信息,会遮挡住地图框影响找图,所以不取那个区域里的图片 随机点击地图上的坐标点 在QUI上画一个文本输入框 输入框里的内容为要移动的坐标信息 坐标与坐标之间用| 隔开 随后在脚本中,我们读取文本输入框的内容 读取之后用分割函数split依据 | 分隔符将其分割 Split函数分割之后,会将分割的内容存放在数组里 这里注意下 通过第一次分割,假如数组(0) 存放的是:28,29

相关文档