TC官方合作论坛

标题: 大漠鼠标移动问题 [打印本页]

作者: 整天    时间: 2014-10-5 14:19
标题: 大漠鼠标移动问题
功能 自动打怪()
    变量 x,y
    循环(真)
        dm.FindPic(0,0,2000,2000,"没鱼饵.bmp","000000",0.9,0,x,y)
        如果(x>0)
            dm.MoveTo(955,83)

            dm.RightClick(1)


            辅助.等待(1000)
            dm.MoveTo(496,516)

            dm.LeftDoubleClick(1)


            辅助.等待(1000)

        否则

            辅助.等待(1000)

        如果结束

    循环结束




为何不会移动呢?


作者: 落小雨    时间: 2014-10-5 14:30
说明没有找到图
作者: zsconverse    时间: 2014-10-5 14:31
你看看找到图没?  
在否则那里加一行  调试输出(“没找到图”)
作者: 整天    时间: 2014-10-5 14:34
落小雨 发表于 2014-10-5 14:30
说明没有找到图

这里面没有命令写错吧?
作者: 整天    时间: 2014-10-5 14:34
zsconverse 发表于 2014-10-5 14:31
你看看找到图没?  
在否则那里加一行  调试输出(“没找到图”)

这里面没有命令写错吧?
作者: zsconverse    时间: 2014-10-5 14:35
整天 发表于 2014-10-5 14:34
这里面没有命令写错吧?

目测 就少了个功能结束
作者: 整天    时间: 2014-10-5 14:39
zsconverse 发表于 2014-10-5 14:35
目测 就少了个功能结束

那个少复制了  全部代码是这样我的  我想实现后台多开打怪。。但是现在前台都不动  麻烦你看看  那里错误了。。

空间 我的大漠多开
变量 dm=数组[10]
变量 多线程句柄=数组[10],参数组合=数组[1],窗口句柄数组=数组[]//定义数组
功能 开始_点击()
    我的大漠多开.开启线程()
功能结束
功能 开启线程()
    遍历(i=0;i<列表框.得到个数("列表框0");i++)
        var 参数=窗口句柄数组&","&i//合并参数 窗口句柄和i的值,i的值是为了传递给DM 这个对象,每开启一次i+1
        多线程句柄=线程.开启("我的大漠多开.绑定窗口",参数)
        辅助.等待(1500)
    遍历结束
功能结束
功能 绑定窗口(传入参数)
    字符串.分割(传入参数,",",参数组合)
    窗口句柄=参数组合[0]
    j=参数组合[1]
    dm[j]=com("dm.dmsoft")
    dm[j].SetPath(辅助.获取资源路径("rc:"))
    dm[j].BindWindow(窗口句柄,"dx","dx","dx",0)
   
    //如果(是否成功==1)
        //标签.设置文本("标签2","绑定成功,继续运行")  
        线程.开启("我的大漠多开.自动打怪",j)
    //否则
        //标签.设置文本("标签2","绑定失败,请重新启动脚本")  
    //如果结束
功能结束


功能 自动打怪()
    变量 x,y
   
    循环(真)
        dm.FindPic(451,557,551,630,"没鱼饵.bmp","000000",0.9,0,x,y)
        如果(x>0)
            dm.MoveTo(955,83)
            //鼠标.移动(955,83)
            dm.RightClick()
            
            //鼠标.右键双击(1)
            辅助.等待(1000)
            dm.MoveTo(496,516)
            //鼠标.移动(496,516)
            dm.LeftDoubleClick()
            
            //鼠标.左键双击(1)
            辅助.等待(1000)
            
        否则
            
            辅助.等待(1000)
            
        如果结束
        //dm.MoveTo(x,y)    //鼠标移动
        //dm.LeftClick()   //按鼠标左键
    循环结束
   
   
    //循环结束
功能结束


功能 解绑(a)
    dm[a].UnBindWindow()
功能结束

功能 退出_点击()
    遍历(i=0;i<列表框.得到个数("列表框0");i++)
        线程.关闭(多线程句柄)
        我的大漠多开.解绑(i)
        辅助.等待(100)
    遍历结束
    辅助.退出()
功能结束
功能 是否有重复句柄(句柄)
    遍历(i=0;i<列表框.得到个数("列表框0");i++)
        如果(列表框.获得文本("列表框0",i)==句柄)
            返回 (真)
        如果结束
    遍历结束
    返回 (假)
功能结束


功能 热键0_热键()
    句柄=窗口.鼠标所在窗口句柄()
    如果(字符串.查找字符串(窗口.类名(句柄),"Fantasy Frontier Online")!=-1)
        如果(!我的大漠多开.是否有重复句柄(句柄))
            数组空间.增加(窗口句柄数组,句柄,1)
            列表框.增加文本("列表框0",句柄)
        否则
            辅助.消息框("抱歉,这个窗口已经加入了。")
        如果结束
    否则
        辅助.消息框("抱歉,您好像搞错窗口了。")
    如果结束
   
功能结束
功能 初始化()
    辅助.注册插件("rc:dm.dll",真)
   
功能结束



空间结束



作者: q273814    时间: 2014-10-5 15:17
那么点时间 就算你找到图了 刚给你电脑发指令让他移动鼠标 就又让他点击鼠标 你觉得他忙的过来么 还没开始移动就又去点击鼠标了 一点延时都不给他 做事都不带喘气的 = =
作者: 整天    时间: 2014-10-5 15:19
q273814 发表于 2014-10-5 15:17
那么点时间 就算你找到图了 刚给你电脑发指令让他移动鼠标 就又让他点击鼠标 你觉得他忙的过来么 还没开始 ...

我不是让他等待了1秒吗。。。
作者: 秋来潮汐    时间: 2014-10-5 16:23
调用输出 X坐标的值,看看找到图没有

作者: q273814    时间: 2014-10-5 19:03
整天 发表于 2014-10-5 15:19
我不是让他等待了1秒吗。。。

你看清楚我说的话了么
= =
我说木有就木有
我让你去厕所 然后立马让你脱裤子 然后给你1秒时间
但是 你还没去厕所呢就脱了裤子 懂不懂
鼠标移动之后你没有给延时就让他去点击他当然是执行鼠标点击了
你的程序只是把命令告诉你的电脑 要怎么做而不会去管他做了木有
不会去管他是否已经移动完毕了 你除了给时间他点击还要给时间他移动





欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1