TC官方合作论坛

标题: 请关于圣境传说用TC制作脚本后测试中的问题 [打印本页]

作者: yuyiliang    时间: 2012-6-11 14:50
标题: 请关于圣境传说用TC制作脚本后测试中的问题
我根据教学视频,自己动手做了1个圣境传说的脚本,目前在测试中遇到以下问题,请大侠给予解答和提示。谢谢!
1. 抓色问题,在游戏里任何位置抓色都是00000000,如何解决?我现在把游戏截图,然后再抓色,这样是否做好脚本在游戏中使用?(我按照以上方法测试,游戏里会按TAB找怪,然后按1攻击,但是TAB是一直在按,1键也是一直在按。同一个脚本,退出后在调试,会出现TAB不按了,1键一直在按。以上2种情况都出自同1个脚本)
2. 找图问题,经过找色的失败,我又试了下找图。我脚本里加了找到图就有信息提示的语句,找图没有问题。但是在测试后还是出现了以上的2种情况,同一个脚本,1字不差。
3. 按键问题,普通按键在游戏里没反应,使用超级按键在游戏里就可以了。这个和以上的2种情况是否有关系?
总结:自动打怪脚本应该没有问题,就是先找图,然后循环(真),然后如果 !找图 按TAB 等待1秒 如果结束,按1键 等待1秒,返回(真),循环结束。以上是脚本的大致流程。是不是游戏对TC的编程有屏蔽呢?请各位大侠给予指点。

作者: yuyiliang    时间: 2012-6-11 15:03
在补充下,我的系统是WIN7 32位的,这个和以上的问题有关系吗?
作者: tyuyan    时间: 2012-6-11 16:34
1.楼主先截图再取色,应该是没有问题的。  如果出现不停的按下tab。 看下颜色判断或者逻辑是否有问题。
2.找图可以找到。 那证明是ok的,不可能放在你打怪里面就会找不到。  还是检查逻辑问题。
3.按照楼主的描述,应该是游戏屏蔽了普通的按键和鼠标操作。
作者: yuyiliang    时间: 2012-6-12 08:40
回复 3楼tyuyan的帖子

那等我回去把脚本代码发上来,你帮我看看是不是逻辑的问题。谢谢。
作者: yuyiliang    时间: 2012-6-12 23:41
空间 sjws
//定义默认空间
整型 线程句柄
功能 逻辑型 打怪()
整型 x,y
整型 窗口句柄
逻辑型 是否找到
窗口句柄=窗口.找到窗口(编辑框.获得文本("编辑框0"))
如果(窗口句柄==0)
    辅助.消息框("窗口没有找到")
如果结束
窗口.设置位置(窗口句柄,0,0)
窗口.激活(窗口句柄)
辅助.等待(500)
//是否找到=图像.区域找色(426,118,446,125,#F6E092,0,x,y)
//是否找到=图像.模糊找色(420,98,422,108,#000000,0.8,0,x,y)
//说明:支持多张图片(图片与图片中间使用 竖线隔开)和根据四角的颜色判断是否为透明图

整型 图像序号,返回的x坐标,返回的y坐标

图像序号=图像.找图(415,96,449,112,"F:\\血.bmp",#203040,0.8,0,返回的x坐标,返回的y坐标)

//如果(图像序号>=0)
//
//辅助.消息框(转换.整型转字符型(返回的x坐标))
//
//辅助.消息框(转换.整型转字符型(返回的y坐标))
//
//辅助.消息框("找到该图")
//
//否则
//
//辅助.消息框("没有找到该图")
//
//如果结束

循环 (真)
如果(图像序号<0)
    超级键盘.按键(9,1)
//    键盘.按键(9,1)
//窗口.发送按键(窗口句柄,9)
    辅助.等待(1000)
否则
   超级键盘.按键(49,1)
//窗口.发送按键(窗口句柄,49)
    辅助.等待(1000)
如果结束
循环结束
返回 真
功能结束
功能 逻辑型 开始_点击()
//这里添加你要执行的代码
线程句柄=线程.开启("sjws.打怪","")

返回 真
//函数返回语句
功能结束

功能 逻辑型 退出_点击()
//这里添加你要执行的代码
线程.关闭(线程句柄)
辅助.退出()

返回 真
//函数返回语句
功能结束

空间结束
//空间结束语句
作者: cancangood    时间: 2012-6-15 14:32
#import "dm.dmsoft" DM
空间 测试
//定义默认空间
整型 线程句柄
整型 ID
功能 逻辑型 自动打怪()
整型 intX,intY
整型 fx,fy
整型 判断
DM.SetPath(辅助.获取资源路径("rc:"))
DM.SetDict(0,"字库.txt")
循环 (真)
辅助.等待(500)
判断= DM.FindStrFast(0,0,1280,960,"验证码","f0efed-000000|807a6e-000000",1.0,intX,intY)//验证码窗口
    如果(判断==0)
        ID = 辅助.播放("rc:1.mp3")
        辅助.等待(500)
        线程.关闭(线程句柄)
    如果结束
    辅助.等待(100)
判断= DM.FindStrFast(0,0,1280,960,"怪物","ffe9a6-000000",1.0,intX,intY)//怪物头像
辅助.等待(100)
如果(判断==0)
    超级键盘.按键(49,1)  
    辅助.等待(100)
    超级键盘.按键(49,1)  
//    辅助.等待(50)
//    超级键盘.按键(50,1)
//     辅助.等待(100)
//    超级键盘.按键(51,1)
    辅助.等待(350)
否则
    超级键盘.按键(9,1)
//    辅助.等待(500)
如果结束
循环结束
返回 真
功能结束







我写的。。可以用。。。
作者: yuyiliang    时间: 2012-6-17 00:40
回复 6楼cancangood的帖子

谢谢,学到了思路了。找字也能用了。再问个问题,我没有设线程,按开始就循环打怪,但是tc就是无响应状态了,我无法按退出按钮。游戏里是正常在自动打怪。这个是没设线程的原因吗?
作者: cancangood    时间: 2012-6-17 02:31
死循环就是会出现无响应的噢。 用线程吧

功能 逻辑型 退出_点击()
//这里添加你要执行的代码
辅助.退出()
返回 真
//函数返回语句
功能结束


功能 逻辑型 热键0_热键()
//这里添加你要执行的代码
线程句柄=线程.开启("测试.自动打怪","")
返回 真
功能结束


功能 逻辑型 热键1_热键()
//这里添加你要执行的代码
线程.关闭(线程句柄)
返回 真
功能结束

功能 逻辑型 热键2_热键()
//这里添加你要执行的代码
辅助.停止播放(ID)
返回 真
功能结束
作者: yuyiliang    时间: 2012-6-19 08:18
回复 8楼cancangood的帖子

经过这几天的学习,现在已经写好可以后台自动打怪的脚本了。还有了验证码出现后播放音乐的功能。现在想学下判断背包是否满的思路,请大侠给予指点。是不是要定时开启背包判断最后一个是否有东西,还是有啥更好的方法呢?




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