• 新浪微博:
  • 微信 :
按键精灵电脑版
立即下载

软件版本:2014.05
软件大小:21.6M
更新时间:07-04

按键精灵安卓版
立即下载

软件版本:3.3.0
软件大小:62.5M
更新时间:5-24

按键精灵iOS版
立即下载

软件版本:1.3.3
软件大小:29.2M
更新时间:06-14

按键精灵Mac版
立即下载

软件版本:1.1.0
软件大小:12.3M
更新时间:12-29

快捷导航

登录 后使用快捷导航
没有帐号? 注册

登录 注册
发新话题 回复该主题

[已解决] 只能找到第一个条件循环 [复制链接]

1#
Do
Rem c
Delay 200
GetColor1 = GetPixelColor(Ux + 395, Uy + 250)//宝图
GetColor2 = GetPixelColor(Ux + 368, Uy + 183)
While GetColor1 = "D8965C" and GetColor2 = "67F1FF"
TracePrint "宝图"
Delay 200
MoveTo Ux + 395,Uy + 250
Delay 500
LeftClick 1
Delay 2000
Wend
///////////////////////
///////////////////////
//////////////////////
Delay 200
GetColor3=GetPixelColor(Ux + 856, Uy + 272)//进度条
While GetColor3 = "132C45"
TracePrint "进度条"
Delay 2000
Wend
///////////////////////
///////////////////////
//////////////////////
Delay 200
GetColor4=GetPixelColor(Ux + 470, Uy + 335)//画面
While GetColor4 = "B2CADB"
TracePrint "画面"
Delay 2000
Wend
///////////////////////
///////////////////////
//////////////////////
Delay 200
GetColor5=GetPixelColor(Ux + 466, Uy + 220)//自动
While GetColor5 = "14699C"
TracePrint "自动"
Delay 200
Do
IfColor Ux + 144,Uy + 32,"A7A7FB",1 Then
Delay 200
MoveTo Ux + 399, Uy + 72//离开
Delay 500
LeftClick 1
Delay 2000
MoveTo Ux + 299,Uy + 227//确定
Delay 500
LeftClick 1
Delay 1000
goto c
End If
Delay 2000
Loop
Wend
///////////////////////
///////////////////////
//////////////////////
Delay 6000
Loop
///////////////////////
///////////////////////
//////////////////////
进游戏,不管怎么换图,只要跑起来,第一个条件循环里的两个色素都能找到,然后就是死循环了,但是用抓抓的找图找色测试,那两个点除了特定画面,别的图根本不能这么巧合的,但找图找色就是这么判断的,死循环的,明明找不到就是说能找到,怎么回事,编个脚本太难了,求助工程师大人

本主题由 超级版主 n15976906190 于 2018/9/15 0:23:50 执行 审核帖子 操作
2#

您好, 我这边 反复测试了 While 命令好久. 没有出现 任何问题.
你那边 一直条件成立 肯定是有原因的 , 但具体是什么原因 我这里没有测试环境 实在也是摸不着头脑的. 只能靠你自己反复调试找问题
一个是建议 确认一下 坐标是否正确. 可以在 获取颜色前 先把鼠标移动到 这两个坐标 看位置是不是正确
再一个是建议 修改代码逻辑. 不要全部While循环. 万一出什么意外就死里面了. 最外面不是有一个循环了么? 直接用 If判断 什么条件成立了就执行什么. 反正不成立的也执行不到啊.

3#

回复 2楼gljxsd的帖子

听您的,改成条件判断了,果然如此,很灵,而且反应也更快了,但是,不知道怎么跳出去了,取得五个色如果都不符合就跳出循环,试过GetColor5 ≠ "6788A0",好像没有这种不等号的代码,郁闷了,再次劳烦您
Do
Rem c
Delay 200
GetColor1 = GetPixelColor(395, 250)//宝图
TracePrint "取点1"
GetColor2 = GetPixelColor(368, 183)//宝图
TracePrint "取点2"
GetColor3 = GetPixelColor(856, 272)//进度条
TracePrint "取点3"
GetColor4 = GetPixelColor(470, 335)//画面
TracePrint "取点4"
GetColor5 = GetPixelColor(466, 220)//自动
TracePrint "取点5"
Delay 200
If GetColor1 = "D8965C" and GetColor2 = "67F1FF" Then
TracePrint "宝图"
Delay 200
MoveTo 395, 250
Delay 500
LeftClick 1
Delay 2000
End If
If GetColor5 = "6788A0" Then
TracePrint "金宝库了"
do
IfColor 144, 32,"A7A7FB",1 Then
Delay 200
MoveTo 399, 72//离开
Delay 500
LeftClick 1
Delay 2000
MoveTo 299, 227//确定
Delay 500
LeftClick 1
Delay 1000
goto c
End If
Delay 2000
Loop
End If
Delay 6000
TracePrint "过!"
Loop

4#

回复 3楼tangmiaoyang的帖子
  1. GetColor5 <> "6788A0"
复制代码

自命不凡,其实很落魄

个人QQ:1223116618
5#

回复 4楼n15976906190的帖子

几经修改,终于完成一小段,之前的问题是坐标颜色居然有变化,当时没有发现,再打开游戏才发现的,代码确实没问题.这是修改好的,请多指点!
还有一个问题是关于区域找色的,区域里有好多红色,深浅不一,半透明的,移动时候用抓抓看来回变色,但整体还是红色,我想判断在区域里,找一个点,红色带偏色,只要找到一个就行,但是看全部命令里面都是0.5到1的近似值,之前用不灵,有没有区域找色,带偏色,只要找到一个色素就行的命令?求教工程师大人

6#

回复 5楼tangmiaoyang的帖子

注:你好 按键自带插件不支持偏色参数 建议使用第三方插件[例:大漠/361等]

    已有1评分我要评分查看所有评分

    自命不凡,其实很落魄

    个人QQ:1223116618
    发新话题 回复该主题