|
马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
- namespace 魔力
- //定义默认空间
- dm=com("dm.dmsoft")
- xc1
- lj
- function zdpl()
- intX,intY,i
- i=0
- x1=help.readini("mlzb","1x",lj+"\\config.ini")
- y1=help.readini("mlzb","1y",lj+"\\config.ini")
- x2=help.readini("mlzb","2x",lj+"\\config.ini")
- y2=help.readini("mlzb","2y",lj+"\\config.ini")
- //以上4条 读取配置 4个坐标值
- x11=convert.strtoint(x1, 0)
- x22=convert.strtoint(x2, 0)
- y11=convert.strtoint(x1, 0)
- y22=convert.strtoint(y2, 0)
- //以上4条 4个变量转换 不知道有没有批量的转换 目前只能多写几行了 菜鸟 呜...
- help.sleep(100)
- dm.SetPath(help.getrcpath("rc:") ) //大漠设置全局路径 你懂的..
- help.sleep(100)
- dm.SetDict(0,"魔力学堂.txt") //大漠设置字库文件
- help.sleep(100)
- hwnd=dm.GetMousePointWindow() //以鼠标指向窗口的方式 获取窗口句柄
- help.sleep(100)
- 是否成功=dm.BindWindow(hwnd,"gdi2","windows","windows",0) //这是窗口绑定 前 后台 就在这里实现的
- if (是否成功==1)
- help.sleep(100)
- while (true)
- help.sleep(200)
- dm.FindStrS(0,0,2000,2000,"NPC","1deefb-101010",1.0,intX,intY) //脚本思路 首先找 小地图 npc 字
- if (intX >= 0 && intY >= 0 )
- help.sleep(100)
- if (i == 0) //循环第1次会点下面这个坐标跑动 也可以说 循环的单数 都执行下面的
- help.sleep(100)
- dm.MoveTo(x11,y11)
- i=1 // 给变量i 赋值 1 循环第2次过来 条件不成立 执行 否则让他
- help.sleep(100)
- else
- dm.MoveTo(x22,y22) //这样点小地图上第2个固定坐标 实现来回的跑动 当然还有更好的思路 这个我觉得比较简单
- i = 0
- endif
- help.sleep(100)
- dm.LeftClick()
- else
- dm.FindStrS(598,246,899,431,"自动","fffa7a-101010",1.0,intX,intY) //在找不到小到图npc字的情况下 我们查找 自动 看看是不是遇敌了 让他自动点
- if (intX >= 0 && intY >= 0 )
- help.sleep(100)
- dm.MoveTo(intX + 5, intY + 5)
- help.sleep(100)
- dm.LeftClick()
- endif
- help.sleep(100)
- dm.KeyPress(192) //无论是不是在遇敌的情况下 都点打开小地图 快捷键 ` 遇敌中 快捷是没反应的 不影响其他
- endif
- endwhile
- else
- help.messagebox("窗口绑定失败")
- endif
- return 0
- endfunction
- function ks_click()
- //按钮 开始 点击事件
- if (button.gettext("ks")=="开始F9")
- button.settext("ks","暂停F9")
- xc1=线程.开启("魔力.zdpl","")
- else
- dm.UnBindWindow() //为了避免再悲剧 解绑窗口放这里 不知道有没有效果 试试吧
- thread.closethread(xc1)
- button.settext("ks","开始F9")
- endif
- return true
- endfunction
- function tc_click()
- //按钮 退出 点击事件
- help.exit()
- return true
- endfunction
- function x1bj_enchange()
- //编辑框 x1bj 内容改变事件
- x1=edit.gettext("x1bj")
- help.writeini("mlzb","1x",x1,lj+".\\config.ini")
- return true
- endfunction
- function y1bj_enchange()
- //编辑框 y1bj 内容改变事件
- y1=edit.gettext("y1bj")
- help.writeini("mlzb","1y",y1,lj+".\\config.ini")
- return true
- endfunction
- function x2bj_enchange()
- //编辑框 x2bj 内容改变事件
- x2=edit.gettext("x2bj")
- help.writeini("mlzb","2x",x2,lj+".\\config.ini")
- return true
- endfunction
- function y2bj_enchange()
- //编辑框 y2bj 内容改变事件
- y2=edit.gettext("y2bj")
- help.writeini("mlzb","2y",y2,lj+".\\config.ini")
- return true
- endfunction
- function init()
- //程序初始化事件 (初始化 就是 程序刚开始要加载的 当程序显示出来 是已经加载完毕后的)
- 辅助.注册插件("rc:dm.dll",真)
- lj=system.getprocesspath()
- x1=help.readini("mlzb","1x",lj+"\\config.ini")
- y1=help.readini("mlzb","1y",lj+"\\config.ini")
- x2=help.readini("mlzb","2x",lj+"\\config.ini")
- y2=help.readini("mlzb","2y",lj+"\\config.ini")
- //以上4条命令是 变量x1,y1,x2,y2 赋值 辅助.读配置 的内容
- edit.settext("x1bj",x1)
- edit.settext("y1bj",y1)
- edit.settext("x2bj",x2)
- edit.settext("y2bj",y2)
- //以上4条命令是 编辑框.设置文本 是刚赋值的4个变量 x1,x2,y1,y2
- return true
- endfunction
- function rjks_onhotkey()
- 魔力.ks_click()
- //热键事件 触发后 直接调用 按钮 开始 被点击的事件程序
- return true
- endfunction
- function rjtc_onhotkey()
- 魔力.tc_click()
- //热键事件 触发后 直接调用 按钮 退出 被点击的事件程序
- return true
- endfunction
- endnamespace
- //空间结束语句
- // 感谢 TC简单开始交流15群 (187241121) 的朋友 T 杜杜狼 TC-xenolss 小西(发广告的)....等
- // 好几位大哥 耐心的帮助我 让我收获良多 谢谢各位 本群很热情 大神N多 小白朋友 赶紧来吧
- //悲剧的哥 从早晨编译到夜里1点 总算是完成 可不可以用 未知 注释写的相当详细了
- //思路 代码 都是相当简单的 发出来真够丢人的 高手别喷我 给新来的朋友提个醒 我就是反面教材呀 泪奔~
- //总结如下
- // 1 命令大小写 dm.moveto 0,0 就这个命令 出错 纠结了半小时
- // 2 万恶的()呀 一定要加 统统要加 if () dm.MoveTo (0,0)
- // 3 多线程调用的函数 要放在 调用的上面 否则 未定义函数 又纠结半小时
- // 4 多线程要注册下大漠插件 不然 是好是坏 明明注册了 大漠却没效果 一直提示 错误实数参数列表
- // 相同问题的试试 听群里说 收费功能也能用 但是每个多线程都要注册下 也不错
- // 5 路径搞的我晕呀 满头迷雾呀 这个 \\ 双杠 真厉害
复制代码 |
|