TC官方合作论坛

 找回密码
 立即注册
查看: 3086|回复: 9

[已解决] 传参选择语句怎么调用? 求大神们帮帮忙!!!

[复制链接]
发表于 2012-8-12 00:07:11 | 显示全部楼层 |阅读模式

马上加入TC

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

x
求解惑: 下面代码 下面第二代码传参中的选择(方式) 和(左右键) 怎么调用?
如果 调用成功了 是否只能在一个整型的功能里面调用 ?
例如: 我创建一个 逻辑型 打怪的功能,是否必须 创建一个 整型功能 把所有要找的图片和字存在
这个整型 功能  然后才能在 逻辑型调用这个 整型功能的寻找图片?
求大神们帮忙解答下,不胜感激!!

功能 整型 吃太阳()
整型 x,y
整型 返回信息
辅助.等待(50)
找图传参.找图点击(0,0,2000,2000,"商铺.bmp",0,0)
辅助.等待(50)
找图传参.找图点击(0,0,2000,2000,"太阳包.bmp",0,0)
返回 0
功能结束


功能 整型 找图传参(整型 x1,整型 y1,整型 x2,整型 y2,字符型 内容,字符型 颜色,字符型 左右键,整型 延时,
字符型 方式,整型 整型x,整型 &整型y,浮点型 相似度=1.0)
    整型 i,返回值
        选择 (方式)
            条件 "字":
            返回值=dm.FindStr(x1,y1,x2,y2,"内容","颜色",1.0,整型x,整型y)
            条件 "色":
            返回值=dm.FindColor(x1,y1,x2,y2,"颜色",相似度,0,整型x,整型y)
            条件 "图":
            返回值=dm.FindPic(x1,y1,x2,y2,"内容","颜色",相似度,0,整型x,整型y)
        选择结束
       如果(整型x>0)
            选择 (左右键)
                条件 "左":
                 辅助.等待(100)
               dm.MoveTo(整型x,整型y)
                辅助.等待(100)
               dm.LeftClick()
                辅助.等待(200)         
                返回 返回值
                条件 "右":
                  辅助.等待(100)
                dm.MoveTo(整型x,整型y)
                辅助.等待(100)
               dm.RightClick()
                辅助.等待(200)           
                返回 返回值
                默认:
                返回 返回值
            选择结束
             否则
            i=i+1
            如果 (i==延时)
                返回 返回值
            否则
                辅助.等待(1000)
            如果结束
        如果结束
        
      返回 0
功能结束
回复

使用道具 举报

发表于 2012-8-12 00:35:53 | 显示全部楼层
方式:用来控制
查找的方式:是找字的,就输入个"字",找图的,就输入个"图",找色的就传个"色"字进去,此参数只能是"字","图","色"三种之一
左右键用来控制动作
如果你需要找到的时候点击左键,那么就输入个"左",如果需要点击右键,就灌个"右",如果不需要点击,只是查找一下标的物,那么灌除了"左","右"之外的任意字符均可
这个可以简化你的代码,比如一般我们这样写:
功能 整型 吃太阳()
整型 x,y
dm.FindPic(0,0,2000,2000,"商铺.bmp","000000",0.9,0,x,y)
if (x>0)
dm.MoveTo(x,y)
dm.LeftClick()
endif
return true
endfunction

这样有个毛病,常常会因为画面没打开或者网络延迟等等各种毛病导致找不到,那么就要写成

功能 整型 吃太阳()
整型 x,y
while (true)
dm.FindPic(0,0,2000,2000,"商铺.bmp","000000",0.9,0,x,y)
if (x>0)
dm.MoveTo(x,y)
dm.LeftClick()
break
ekse
辅助.等待(200)
endif
endwhile
return true
endfunction


好,这样当找不到的时候还有机会再找,但是引发新的问题:死循环了


当你一个功能很多句查找的时候,这样的循环代码就相当多,用这样封装之后你就这样写:
功能 整型 吃太阳()
整型 x,y
整型 返回信息
辅助.等待(50)
找图传参.找图点击(0,0,2000,2000,"商铺.bmp","000000","左",3,"图"x,y)
if (x<0)
return 999999
endif
辅助.等待(50)
找图传参.找图点击(0,0,2000,2000,"太阳包.bmp","000000","左",3,"图"x,y)
if (x<0)
return 999999
else
return 0
endif
功能结束

每个图有3秒的时间,3秒后确实没这图,吃太阳这个函数返回个9999999代表失败了,图没打开,不至于死循环
在任意需要查找的地方都可以用这个封装
回复 支持 反对

使用道具 举报

发表于 2012-8-12 00:09:19 | 显示全部楼层
这段代码好眼熟
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-12 00:14:10 | 显示全部楼层
这个就是大神你的,是我寻找好久才找到的一个 求你帮帮忙吧, 帮我解决下!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-12 00:53:26 | 显示全部楼层
找图传参.找图点击(0,0,2000,2000,"太阳包.bmp","000000","左",3,"图"x,y)
大神,这里的3 代表的是什么呢?  
而且好像没有找图里面  相似度 与查找的方向 0  ?
还有 就是找图字色 非要是整型  就必须设置一个功能 整型
然后在逻辑型调用吗? 能否在逻辑型里面调用?
回复 支持 反对

使用道具 举报

发表于 2012-8-12 01:19:54 | 显示全部楼层
相似度默认了是1.0,可以省略,一般我喜欢找字用1.0,找图找色0.9左右这样换机器时可移植性稍强一点,我个人用找字多,所以默认了1.0,碰上偶尔用来找图,就最后   "图",x,y,0.9)  给他加上
3代表查找3次也就是3秒,3秒内确实没这图,才算失败,你可以自己根据实际情况改时间.比如用在过地图的时候,你可以找个血条什么的,直接给他个120,两分钟内任意时刻,过完地图它就出来了,如果真的120秒了还没过完地图,那么8成你游戏卡了还是掉线了
至于用在那,所有需要用查找确认或者点击的的都可以应用
回复 支持 反对

使用道具 举报

发表于 2012-8-12 01:48:23 | 显示全部楼层
是我 泄露的代码吗呵呵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-12 02:08:07 | 显示全部楼层
大神,我想问一下 那个找图色字 这个功能 传参 可以不写找图的方向模式嘛?
找图传参.找图点击(0,0,2000,2000,"太阳包.bmp","000000","左",3,"图"x,y,0.9)
long FindPic(x1, y1, x2, y2, pic_name, delta_color,sim, dir,intX, intY)
dir 整形数:查找方向 0: 从左到右,从上到下 1: 从左到右,从下到上 2: 从右到左,从上到下
3: 从右到左, 从下到上
找图传参 与大漠的找图例子 中间就少了这个dir(查找方向 ) 这个可以不写的吗?
还是说 不写可默认为 0?
我试着加入进去可是报错。。。
本来我试着调整型 定义传参里面的 类型顺序也是报错
本来想改成dm.FindPic(0,0,2000,2000,"内容","颜色",0.9,0,x,y,"图","左","延时")
顺序错误,纳闷了!!!!   大神别怪我刨根问底,我只是想彻底了解 这个功能的使用
回复 支持 反对

使用道具 举报

发表于 2012-8-12 11:27:54 | 显示全部楼层
回复 8楼zhaoogua的帖子

自己再加个参数
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-14 18:50:50 | 显示全部楼层
功能 整型 找图传参(整型 x1,整型 y1,整型 x2,整型 y2,字符型 内容,字符型 颜色,字符型 方式,字符型 左右键,整型 延时,整型 &整型x,整型 &整型y,浮点型 相似度,整型 方向=0)
    整型 i,返回值
    dm.SetPath(辅助.获取资源路径("rc:"))//Dm.SetPath
        选择 (方式)
            条件 "字":            
            返回值=dm.FindStr(x1,y1,x2,y2,"内容","颜色",整型x,整型y,相似度)
            条件 "色":
            返回值=dm.FindColor(x1,y1,x2,y2,"颜色",整型x,整型y,相似度,方向)
            条件 "图":
            返回值=dm.FindPic(x1,y1,x2,y2,"内容","颜色",整型x,整型y,相似度,方向)
        选择结束
       如果(整型x>0)
            选择 (左右键)
                条件 "左":
                 辅助.等待(800)
               dm.MoveTo(整型x,整型y)
                辅助.等待(800)
               dm.LeftClick()
                辅助.等待(800)         
                返回 返回值
                条件 "右":
                  辅助.等待(400)
                dm.MoveTo(整型x,整型y)
                辅助.等待(500)
               dm.RightClick()
                辅助.等待(600)           
                返回 返回值
                默认:
                返回 返回值
            选择结束
             否则
            i=i+1
            如果 (i==延时)
                返回 返回值
            否则
                辅助.等待(1000)
            如果结束
        如果结束
        
      返回 0
功能结束

功能 整型 按键()

辅助.等待(1000)
dm.KeyPress(72)
辅助.等待(2000)
整型 x,y
//dm.FindPic(x1,y1,x2,y2,"内容","颜色",整型x,整型y,相似度,方向)
功能测试.找图传参(0,0,800,600,"炼宝任务图.bmp","5884A2","图","左",3,x,y,1.0,0)
辅助.消息框("找到炼宝图")
辅助.等待(2000)
dm.SetDict(0,"炼宝.txt")
dm.FindStr(0,0,950,600,"冷少泉","7bac1b-000000",0,0,1.0)
辅助.消息框("找冷少泉")
辅助.等待(2000)

返回 0
功能结束

调用- =总是程序出错是为什么啊? 大漠注册了, 路径也写了,图片也添加了,窗口也绑定了&#183;&#183;&#183;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-9-28 21:53 , Processed in 0.042950 second(s), 23 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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