TC官方合作论坛
标题:
来看看我这个大唐无双的自动打怪前台版有什么问题 我老感觉不对劲
[打印本页]
作者:
wskje
时间:
2011-7-31 19:55
标题:
来看看我这个大唐无双的自动打怪前台版有什么问题 我老感觉不对劲
先上代码 `````
空间 我的程序
//这是一个以"我的程序"命名的空间,下面的语句都在这个空间里实现
整型 线程编号
//定义一个整型的全局变量来获取线程句柄
功能 整型 大唐自动打怪()
//自定义一个大唐自动打怪的方法
整型 窗口编号
//定义一个整型的全局变量来获取窗口句柄
整型 x坐标
整型 y坐标
逻辑型 蓝值
逻辑型 生命值
逻辑型 取怪颜色
字符型 接受游戏窗口名
窗口编号=窗口.找到窗口("大唐无双公测 (1.3.120:169363 1.0.91:169324)")
如果(窗口编号!=0)
窗口.置顶(窗口编号)
循环(真)
键盘.按键(9,1)
//键盘按1下切换键
辅助.等待(500)
取怪颜色=图像.区域找色(432,182,434,189,#0000bd,0,x坐标,y坐标)
//区域取怪颜色,并获得X,Y坐标 这里我用的是取怪最左边血条颜色
循环(取怪颜色)
//取怪颜色为真时,执行循环语句
键盘.按键(50,1)
//键盘按2键1次
辅助.等待(1000)
键盘.按键(49,1)
//键盘按1键1次
辅助.等待(1000)
键盘.按键(51,1)
//键盘按3键1次
辅助.等待(1000)
生命值=图像.区域找色(341,182,343,186,#0000bd,0,x坐标,y坐标)
//区域取生命值颜色,并获得X,Y坐标 百分之70的样子 回血
如果(!生命值)
//当生命值小于这个值时,运行下面语句
键盘.按键(54,1)
//键盘按下6键,加血
辅助.等待(1000)
如果结束
蓝值=图像.区域找色(342,200,347,204,#BD4900,0,x坐标,y坐标)
//区域取蓝值颜色,并获得X,Y坐标 这里也是百分之70的样子 回蓝
如果(!蓝值)
//当蓝值小于这个值时,运行下面语句
键盘.按键(55,1)
//键盘按下7键,加蓝
辅助.等待(1000)
如果结束
取怪颜色=图像.区域找色(432,182,434,189,#0000bd,0,x坐标,y坐标)
//判断怪是否死亡
辅助.等待(500)
键盘.按键(192,1)
辅助.等待(500)
循环结束
循环结束
否则
辅助.消息框("没有找到游戏窗口")
如果结束
返回 0
功能结束
功能 逻辑型 开始_点击()
//这里添加你要执行的代码,这里是你点击开始按钮执行的代码
线程编号=线程.开启("我的程序.大唐自动打怪")
//开启大唐自动打怪函数
返回 真
//函数返回语句
功能结束
功能 逻辑型 退出_点击()
//这里是你退出的时候要执行的代码,这类是你点击退出按钮执行的代码
辅助.退出()
返回 真
//函数返回语句
功能结束
空间结束
//命名空间结束语句
我感觉不对的地方就是 取怪颜色那里 本来我是取怪血条最左边的颜色的 不过 运行中发现 就算怪没有死亡 也会运行到 第二次取怪颜色 后面的 我在第二次取怪颜色后加了一条辅助消息框实验过 理论上 如果 取怪颜色那里正常的话 如果 怪还没有死亡 应该是跳回循环第一句(键盘.按键(50,1))执行的吧 不过 好象加红加蓝这两个 倒正常 也就是 当血或者蓝掉到预定值后 才会执行加血加蓝 没有到的时候倒不会喝药 大家帮我看看哪个地方有问题
作者:
小风子
时间:
2011-8-1 06:52
你的怪物取色真的没问题?单点取色要很仔细,坐标一点点偏差就很大可能不能正确判断怪物死亡!建议用多点取色判断!
作者:
一生何求
时间:
2011-8-1 08:17
大唐的 小心封号嘿嘿
作者:
wskje
时间:
2011-8-1 08:24
回复
2楼
小风子
的帖子
:D 我想到了 貌似取怪的那个颜色区域太小了 我完全可以给他一大块区域啊 反正只要在里面找到血的颜色就可以判断怪是否死亡了 试验之```
作者:
wskje
时间:
2011-8-1 08:25
回复
3楼
一生何求
的帖子
:P 大唐据说手工的都封号 设置验证报警 还封那也就没办法了 正因为打击比较严 所以相对来说金价还是比较稳定 也不是完全没好处
作者:
一生何求
时间:
2011-8-1 08:25
辅助.等待(500)
键盘.按键(192,1)
辅助.等待(500)
这里是拾取吗? 如果是拾取的话不要放到这里
会失效 放到 TAB 选怪 的前面 这样效率方面或准确方面搞一点
作者:
wskje
时间:
2011-8-1 13:09
回复
6楼
一生何求
的帖子
是拾取,:# 怪死拾取 比较好嘛 如果放在选怪前 没有选到怪他也会一直按拾取了 不大合理吧
作者:
超自然
时间:
2011-8-2 14:36
第一个循环真下来是TAB切怪,然后判定是否切到怪,此动作不受判定是否成立的影响,所以导致怪没死照样继续切怪.在确认是否有怪的搜索上套个循环,以最后一个判定怪是否死亡语句的返回值作为控制依据即可.
作者:
wskje
时间:
2011-8-3 16:11
回复
8楼
超自然
的帖子
:~ 能把代码写一下么
作者:
天影
时间:
2011-8-13 23:39
看不懂那是上面东西啊
作者:
mikerjk
时间:
2011-10-27 14:44
新人,只来看看
作者:
jinlongzzy
时间:
2012-6-16 10:24
回复
1楼
wskje
的帖子
好东西啊 不doing不行
作者:
zp8221841
时间:
2012-6-17 09:12
取怪颜色=图像.区域找色(432,182,434,189,#0000bd,0,x坐标,y坐标)
//区域取怪颜色,并获得X,Y坐标 这里我用的是取怪最左边血条颜色
循环(取怪颜色)
//把这个循环放刚才取怪色前。。。最后面不要那个去怪色
循环(真)
键盘.按键(9,1)
//键盘按1下切换键
辅助.等待(500)
循环(真)
取怪颜色=图像.区域找色(432,182,434,189,#0000bd,0,x坐标,y坐标)
如果(取怪颜色==1)
键盘.按键(50,1)
//键盘按2键1次
辅助.等待(1000)
键盘.按键(49,1)
//键盘按1键1次
辅助.等待(1000)
键盘.按键(51,1)
//键盘按3键1次
辅助.等待(1000)
如果结束
如果(取怪颜色==0)
跳出
如果结束
循环结束
循环结束
//你的加血.放到打怪按键后面
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1