TC官方合作论坛

标题: 绑定后窗口内鼠标问题 [打印本页]

作者: lytslyts    时间: 2015-4-22 00:40
标题: 绑定后窗口内鼠标问题
本帖最后由 lytslyts 于 2015-4-22 12:45 编辑

新手,看视频学了几天,自己写了脚本,,现在问题来了,求大神帮忙看下,感激不尽
问题是这样的,测试的游戏是SF天堂,鼠标获取窗口句柄,
后台一切正常,
就是打不了怪,因为这个游戏要把鼠标放到怪物身上,让怪物的名字显示出来并且鼠标形状变化才能点击打到怪物.
开启脚本后把鼠标放在游戏窗口内就会正常显示怪物的名字,并且打击怪物.,就是游戏窗口不激活也可以.
可是如果把鼠标移开游戏窗口就不能打到怪物了,就算游戏窗口激活只要鼠标离开游戏窗口就点不到怪物,鼠标有点击,一直在怪物身边走来走去,这个游戏是靠点击移动的.
天使插件跟大漠插件都试过了,都是有点击但是怪物身上不显示名,只能点击在怪物身边.因为怪物的名字不显示出来,鼠标形状也不改变,插件里的免费模式都测试过了,全都一样
求解.
上图跟附件大神帮忙看下

功能 窗口绑定()
    变量 鼠标窗口句柄
    dm=com("dm.dmsoft")
    等待(50)
    鼠标窗口句柄=窗口获取鼠标所在句柄()
    等待(50)
    窗口设置位置(鼠标窗口句柄,-10,0)
    等待(50)
    绑定=dm.BindWindow(鼠标窗口句柄,"dx2","windows","windows",1)
    等待(3000)
    dm.EnableMouseSync(1,200)
      如果(绑定!=1)///不等与1就是失败
         调试输出("绑定失败"&绑定)
         标签设置文本("标签","窗口绑定失败,请进入游戏后按快捷键-绑定.")
         线程关闭(窗口绑定句柄)
      结束
    等待(50)
    标签设置文本("标签","窗口已绑定")
    等待(50)
结束

功能 挂机打怪()
    变量 i=0
    循环(真)
        变量 x=-1,y=-1
        dm.FindMultiColor(22,23,775,458,"b59a73","4|4|9c8252,-20|1|d66942,-20|2|ef825a,-20|3|7b4139,-19|1|c65131,-19|2|de694a,-19|3|634142",1.0,0,x,y)
/////上面是怪物的血条多点取色,第一点找的是血条的中间,找到后Y轴向下便宜2.5能打到,已经验证了,可以打到,但是鼠标不能离开窗口
        等待(50)
        如果(i>50)
            调试输出("找到怪,但超时")
            走位(x,y)
            i=0
        否则如果(x>0&&y>0)///找到怪就打
            变量 X=-1,Y=-1
            等待(50)
            dm.LockInput(2)
            dm.MoveTo(x,y+25)
            等待(100)
            dm.LeftDoubleClick()
            等待(500)
            dm.LockInput(0)
            dm.FindMultiColor(222,129,581,346,"b59a73","4|4|9c8252,-20|1|d66942,-20|2|ef825a,-20|3|7b4139,-19|1|c65131,-19|2|de694a,-19|3|634142",1.0,0,X,Y)
/////上面是怪物的血条多点取色,第一点找的是血条的中间,找到后Y轴向下便宜2.5能打到,已经验证了,可以打到,但是鼠标不能离开窗口
            如果(X>0&&Y>0)///找到怪就打
                dm.LockInput(2)
                dm.LeftDoubleClick()
                等待(500)
                dm.LockInput(0)
                i++
                等待(50)
                打怪()
            结束
        否则///找不到怪
            调试输出("大屏幕没找到怪,飞,或走")
            等待(50)
            没怪走位()
        结束
        等待(200)
    结束
结束

功能 打怪()
    变量 i=0
    循环(真)
        变量 x=-1,y=-1
        dm.FindMultiColor(222,129,581,346,"b59a73","4|4|9c8252,-20|1|d66942,-20|2|ef825a,-20|3|7b4139,-19|1|c65131,-19|2|de694a,-19|3|634142",1.0,0,x,y)
/////上面是怪物的血条多点取色,第一点找的是血条的中间,找到后Y轴向下便宜2.5能打到,已经验证了,可以打到,但是鼠标不能离开窗口
        等待(50)
        如果(i>200)
            调试输出("打怪超时")
            走位(x,y)
            跳出
        否则如果(x>0&&y>0)
            dm.EnableRealMouse(2,20,30)
            等待(50)
            i++
            等待(50)
            dm.LockInput(2)
            等待(50)
            dm.MoveTo(x,y+45)
            等待(50)
            dm.MoveTo(x,y+45)
            等待(50)
            dm.LeftClick()
            等待(100)
            dm.LeftDown()
            等待(100)
            dm.MoveTo(118,384)
            等待(100)
            dm.LeftUp()
            等待(100)
            dm.LockInput(0)
        否则
            跳出
        结束
        等待(200)
    结束
结束
另外说明一下,这个游戏他带有简单的喝水内挂,可以在内挂里面填入怪物的名字,按相对应的快捷键就能对怪物放技能,可是我是近战没有攻击技能,只能鼠标点击怪物
鼠标如果离开窗口就不能让鼠标发生变化,不管有没有激活窗口,难道只能前台了吗



作者: lytslyts    时间: 2015-4-22 00:44
研究了好几天还是没头绪,求大家指点
作者: qw362534335    时间: 2015-4-22 07:02
绑定=dm.BindWindow(鼠标窗口句柄,"dx2","windows","windows",1)
换绑定模式 不要用windows"  用dx 模式试试
作者: qw362534335    时间: 2015-4-22 07:04
然后 用大漠的 获取鼠标特征码 来判断鼠标是否变成你想要的那鼠标样子
其实吧 我觉得没必要判断鼠标吧.你那游戏应该是鼠标指到怪物 怪物显示名字了 鼠标就会变化
直接判断怪物名字是否出现 然后出现了就点下鼠标不就行了
作者: 18667006365    时间: 2015-4-22 08:11
画圆,判断鼠标特征码,如果等于攻击的特征码,就点击
作者: lytslyts    时间: 2015-4-22 10:39
qw362534335 发表于 2015-4-22 07:02
绑定=dm.BindWindow(鼠标窗口句柄,"dx2","windows","windows",1)
换绑定模式 不要用windows"  用dx 模式试 ...

我试过了,DX不能绑定,DX2可以
作者: lytslyts    时间: 2015-4-22 10:40
qw362534335 发表于 2015-4-22 07:04
然后 用大漠的 获取鼠标特征码 来判断鼠标是否变成你想要的那鼠标样子
其实吧 我觉得没必要判断鼠标吧.你那 ...

是不需要判定特征码,但是鼠标离开窗口就不能打到怪了,名字不会出现
作者: lytslyts    时间: 2015-4-22 10:41
18667006365 发表于 2015-4-22 08:11
画圆,判断鼠标特征码,如果等于攻击的特征码,就点击

画圆试过了,如果鼠标离开窗口特征码抓到的是前台的,怪物不显示名字
作者: 爱上老公    时间: 2015-4-22 11:25
先看了你的代码,感觉水平跟我不相上下啊,呵呵,
我觉得没必要大漠后台,反正所谓后台也不能最小化,没啥意义,还不如先把5.0弄通透,5.0也友图色文字功能,前台用下速度很快,
另外,提供一个思路,也可以不用特征码,先找色或者找图,怪物头上的红色血条,找到以后鼠标向下移动位置(这里也可以加入特征码来判断),双击或者单击,再放技能
作者: lytslyts    时间: 2015-4-22 12:40
本帖最后由 lytslyts 于 2015-4-22 12:42 编辑
爱上老公 发表于 2015-4-22 11:25
先看了你的代码,感觉水平跟我不相上下啊,呵呵,
我觉得没必要大漠后台,反正所谓后台也不能最小化,没啥 ...


我没用特征码,代码就是找色,找的怪物头上的血条,鼠标Y轴便宜+25能点到怪,有找到血条了,也偏移点击了,记住,有点击了,就是鼠标离开游戏窗口不显示出名字,不显示名字就只点击在怪物旁边点不到怪物,只能在它身边走动打不到
作者: lytslyts    时间: 2015-4-22 23:10
bie 顶一下
作者: lytslyts    时间: 2015-4-23 03:43
沉了

作者: 19tj    时间: 2015-6-12 03:14
本帖最后由 19tj 于 2015-6-12 03:20 编辑

我想知道你是怎么用dx2绑定的,我绑定客户区就黑屏我用XP测试窗口模式一绑定就黑屏,难道你是win7?

作者: lytslyts    时间: 2015-6-18 10:57
19tj 发表于 2015-6-12 03:14
我想知道你是怎么用dx2绑定的,我绑定客户区就黑屏我用XP测试窗口模式一绑定就黑屏,难道你是win7?
...

对我WIN7的
XP好像要把窗口拉一点到屏幕外面才能绑定
作者: 19tj    时间: 2015-6-19 15:59
lytslyts 发表于 2015-6-18 10:57
对我WIN7的
XP好像要把窗口拉一点到屏幕外面才能绑定

我已经测试过了,这个死游戏,可能是有保护,只是在64位系统加载失败,所以可以绑定成功
XP下面,我测试了所有的大漠免费绑定方式,全部失败
作者: 19tj    时间: 2015-6-19 16:17
本帖最后由 19tj 于 2015-6-19 16:18 编辑

对了,哥们,这个游戏比较特殊,鼠标左键对着怪按下,不要弹起的情况下拖动位置,然后鼠标再弹起,这样子会一直打下去,就算鼠标脱屏,也一样,类似CS的单点甩**,
你如果是老玩家一定知道,按住怪鼠标拉到聊天栏类似,其实可以不要拖动那么远
你的脚本写到什么程度了?能给新手学习学习不?




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