TC官方合作论坛

 找回密码
 立即注册
查看: 502|回复: 20
打印 上一主题 下一主题

[已解决] 循环找图有时候移动不点击

[复制链接]
跳转到指定楼层
楼主
发表于 2015-5-16 20:46:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 zhihua502 于 2015-5-16 20:52 编辑


因为那个游戏进图是有冷却时间的, 有时候冷却没到就进不去,所以如果点了没进 就要持续点击,直到进去为止。
想要实现的效果是:
1、找到 进图.bmp 移动点击  ---------------------------(进图)
2、进去以后等待30秒,找图 关闭.bmp移动点击  (退出地图)
3、无限循环1和2

但是有时候找到图并不移动过去点, 有时候移动过去了却不点,有时候移动过去了点了几次没进去就不点了,
有时候我拿鼠标晃一晃或者把鼠标放到按钮上,脚本又会活过来苦思了好几天改了很多次代码,还是不稳定!也找不到问题出在哪!
  所以来论坛问问有没有人知道怎么解决,回复的朋友我先谢谢了!
//
功能 打boss()
    dm.SetPath(辅助.获取资源路径("rc:")) //设置路径
    变量 intX,intY
    循环(真)
        dm_ret = dm.FindPic(0,0,2000,2000,"进图.bmp","000000",0.9,0,intX,intY)
        如果(intX >= 0 && intY >= 0)
            dm.MoveTo(intX+20,intY-50) //因为进图按钮会变色,所以我截图不会变色的地方然后加个偏移,偏移没问题,测过了。
            辅助.等待(50)
            dm.LeftClick()
        如果结束

        dm_ret = dm.FindPic(0,0,2000,2000,"关闭.bmp","000000",0.9,0,intX,intY)
        如果(dm_ret==0)//判断是否找到 找图返回值 0(找到) -1(未找到)
            辅助.等待(30000)
            dm.MoveTo(intX+40,intY+5) //因为进图按钮会变色,所以我截图不会变色的地方然后加个偏移,偏移没问题,测过了。
            辅助.等待(50)
            dm.LeftClick()
        如果结束
    循环结束
   
功能结束

//
问题描述有点啰嗦,不好意思哦
回复

使用道具 举报

推荐
发表于 2015-5-16 23:40:05 | 只看该作者
那把相似度改下

评分

参与人数 0威望 +10 金币 +10 收起 理由
zhihua502 + 10 + 10 很热心的朋友!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

沙发
发表于 2015-5-16 21:14:41 | 只看该作者
加个判断啊,判断完全进去再操作
回复 支持 反对

使用道具 举报

板凳
发表于 2015-5-16 21:15:50 | 只看该作者
2个如果结束下面加点延时,1秒左右
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2015-5-16 22:44:00 | 只看该作者
二叔. 发表于 2015-5-16 21:14
加个判断啊,判断完全进去再操作

如果()这不是判断吗? 要怎么改 ? 我试过很多方法了都不稳定。
下面这个代码也不稳定



变量 循环开关 = 真
循环(循环开关)
         dm.SetPath(辅助.获取资源路径("rc:")) //设置路径
         变量 intX,intY
         dm_ret = dm.FindPic(0,0,2000,2000,"2.bmp","000000",0.9,0,intX,intY)
         如果(intX>0&&intY>0)     //判断是否找到 找图返回值 0(找到) -1(未找到)
//找到图点击关闭
             dm.MoveTo(intX,intY)
             dm.LeftClick()
             否则
//没有找到图,说明关闭了
跳出
如果结束
循环结束
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2015-5-16 22:49:13 | 只看该作者
这论坛不错 发表于 2015-5-16 21:15
2个如果结束下面加点延时,1秒左右


如果(intX >= 0 && intY >= 0)
             辅助.等待(1000)
dm.MoveTo(intX+40,intY+5)
             辅助.等待(50)
             dm.LeftClick()

鼠标移动和点击中间要加吗 加多少合适?
回复 支持 反对

使用道具 举报

6#
发表于 2015-5-16 22:51:10 | 只看该作者
你这是什么版本的TC啊,大概看了下,把下面这个dm_ret改成dm_ret1,下面这个intX,intY改成intX1,intY1,在实验下前面在声明2个变量intX1,intY1
回复 支持 反对

使用道具 举报

7#
发表于 2015-5-16 22:53:28 | 只看该作者
zhihua502 发表于 2015-5-16 22:49
如果(intX >= 0 && intY >= 0)
             辅助.等待(1000)
dm.MoveTo(intX+40,intY+5)

加个半秒至一秒
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2015-5-16 22:58:57 | 只看该作者
这论坛不错 发表于 2015-5-16 21:15
2个如果结束下面加点延时,1秒左右

循环(真)
        dm_ret = dm.FindPic(0,0,2000,2000,"2.bmp","000000",0.9,0,intX,intY)
        如果(intX >= 0 && intY >= 0)
             辅助.等待(50)
            dm.MoveTo(intX+20,intY-50)
            辅助.等待(50)
            dm.LeftClick()
        如果结束
        辅助.等待(1000)
        
        dm_ret = dm.FindPic(0,0,2000,2000,"7.bmp","000000",0.9,0,intX,intY)
        如果(dm_ret==0)//判断是否找到 找图返回值 0(找到) -1(未找到)
            辅助.等待(20000)
            dm.MoveTo(intX+40,intY+5)
            辅助.等待(50)
            dm.LeftClick()
        如果结束
        辅助.等待(1000)
    循环结束


。。。。。。。。。加了不行,也是点了两下没进图就不点了,没进图成功代表  intX,intx还是等于0,为什么就不点了,我拿鼠标晃了几下,鼠标又自己移过去点然后才成功。不晃鼠标就假死。
回复 支持 反对

使用道具 举报

9#
发表于 2015-5-16 22:59:46 | 只看该作者
功能 打boss()
    dm.SetPath(辅助.获取资源路径("rc:"))
    变量 intX,intY
    循环(真)
        等待(500)
        变量 牛牛 = dm.FindPic(0,0,2000,2000,"进图.bmp|关闭.bmp","000000",0.9,0,intX,intY)
        如果(牛牛==0)
            等待(200)
            dm.MoveTo(intX+20,intY-50)
            辅助.等待(100)
            dm.LeftClick()
        结束
        如果(牛牛==1)
            等待(200)
            dm.MoveTo(intX+40,intY+5)
            辅助.等待(100)
            dm.LeftClick()
            辅助.等待(100)
            跳出
        结束
    结束
结束
回复 支持 反对

使用道具 举报

10#
发表于 2015-5-16 23:01:19 | 只看该作者
我上面是用5.0写的,你改成你的版本格式就好了
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-23 03:23 , Processed in 0.214769 second(s), 27 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表