TC官方合作论坛
标题:
发个天龙八部的报废品,用的上的自己改改,区域找色失败。没辙了。
[打印本页]
作者:
Rae
时间:
2012-2-26 22:20
标题:
发个天龙八部的报废品,用的上的自己改改,区域找色失败。没辙了。
想写个简简单单的后台小脚本,可以选择用不用技能,可以选择吃不吃药,不抢怪,能验证提示,
捣鼓了2天,改了N次,本以为能收工挂机了,哎,这又出毛病了,没心情完善了。
大漠找色,它连找都不找就给你下个找到了的定义,
TC后台找色吧,单个去测试都没问题,加到本里就 “获取BK位图数据失败”
坛子里发个贴求助吧,没人搭理,郁闷了。
作为小白,亚历山大啊。
代码超明了,不用注释一眼都能看懂,
#import "dm.dmsoft" dm
空间 测试
整型 线程句柄
功能 逻辑型 判断人物Hp() //血量70%
整型 x,y,是否找到,句柄
逻辑型 找到
后台.区域找色(句柄,148,23,173,48,#0009EA,0,x,y)
//是否找到=dm.FindColor(148,23,173,48,"d90a00-000000",0.8,0,x,y)
返回 真
功能结束
功能 逻辑型 判断人物Mp() //蓝40%
整型 x,y,是否找到,句柄
逻辑型 找到
后台.区域找色(句柄,92,30,117,55,#EA3537,0,x,y)
//是否找到=dm.FindColor(92,30,117,55,"0355dc-000000",0.8,0,x,y)
返回 真
功能结束
功能 逻辑型 判断宠物Hp() //宝宝60%
整型 x,y,是否找到,句柄
逻辑型 找到
后台.区域找色(句柄,164,76,172,91,#0009EA,0,x,y)
//是否找到=dm.FindColor(164,76,172,91,"d90a00-000000",0.8,0,x,y)
返回 真
功能结束
功能 逻辑型 判断白怪物() //别人的怪物
整型 x,y,是否找到,句柄
逻辑型 找到
后台.区域找色(句柄,274,12,290,41,#7D8384,0,x,y)
//是否找到=dm.FindColor(274,12,290,41,"999999-000000",0.8,0,x,y)
返回 真
功能结束
功能 逻辑型 判断红怪物() //没开苞的怪物,正在打的怪物
整型 x,y,是否找到,句柄
逻辑型 找到
后台.区域找色(句柄,274,12,290,41,#05710D,0,x,y)
后台.区域找色(句柄,274,12,290,41,#050C74,0,x,y)
//是否找到=dm.FindColor(274,12,290,41,"019400-155c08",0.8,0,x,y)
//是否找到=dm.FindColor(274,12,290,41,"730d06-910403",0.8,0,x,y)
返回 真
功能结束
功能 逻辑型 判断防挂机() //狗日的验证
整型 是否成功,x,y
是否成功=dm.FindStr(0,0,800,600,"防挂机检测","ffe700-49370f",0.8,x,y)
返回 真
功能结束
功能 整型 开始打怪()
整型 句柄,是否成功
辅助.注册插件("rc:\\dm.dll",真)
句柄=dm.GetMousePointWindow()
是否成功=dm.BindWindow(句柄,"dx","dx2","dx",0)
逻辑型 是否回血,是否回蓝,是否喂养,是否技能1,是否技能2,是否技能3,是否防挂机
是否回血=复选框.获得状态("复选框3")
是否回蓝=复选框.获得状态("复选框4")
是否喂养=复选框.获得状态("复选框5")
是否技能1=复选框.获得状态("复选框0")
是否技能2=复选框.获得状态("复选框1")
是否技能3=复选框.获得状态("复选框2")
是否防挂机=复选框.获得状态("复选框6")
循环(真)
如果(是否回血)
如果(测试.判断人物Hp())
辅助.等待(200)
否则
dm.KeyPress(121)
如果结束
如果结束
如果(是否回蓝)
如果(测试.判断人物Mp())
辅助.等待(200)
否则
dm.KeyPress(120)
如果结束
如果结束
如果(是否喂养)
如果(测试.判断宠物Hp())
辅助.等待(200)
否则
dm.KeyPress(119)
如果结束
如果结束
如果(测试.判断白怪物())
dm.KeyPress(122)
如果结束
如果(测试.判断红怪物())
dm.KeyPress(112)
辅助.等待(200)
否则
dm.KeyPress(122)
如果结束
如果(是否技能1)
dm.KeyPress(113)
辅助.等待(25000)
如果结束
如果(是否技能2)
dm.KeyPress(114)
辅助.等待(25000)
如果结束
如果(是否技能3)
dm.KeyPress(115)
辅助.等待(25000)
如果结束
如果(是否防挂机)
如果(测试.判断防挂机())
辅助.播放("E:\\Documents\\梦之岛.mp3")
辅助.等待(15000)
辅助.停止播放(辅助.播放("E:\\Documents\\梦之岛.mp3"))
如果结束
如果结束
循环结束
dm.ForceUnBindWindow(0)
返回 0
功能结束
功能 逻辑型 热键0_热键()
线程句柄=线程.开启("测试.开始打怪")
返回 真
功能结束
功能 逻辑型 热键1_热键()
dm.ForceUnBindWindow(0)
线程.关闭(线程句柄)
返回 真
功能结束
空间结束
作者:
stxuhong
时间:
2012-2-26 23:56
报废也有值得学习的地方
作者:
cylhb
时间:
2012-2-27 01:45
后台.区域找色(句柄,148,23,173,48,#0009EA,0,x,y)
没看到你的句柄何在。
作者:
cylhb
时间:
2012-2-27 01:48
除了绑定句柄那一句有效。。
其他函数里面的句柄全部=0
能找到就奇怪了。。。。
作者:
cylhb
时间:
2012-2-27 01:49
把每个自定义函数里面的 整型 句柄 去掉试试
作者:
Rae
时间:
2012-2-27 16:17
回复
5楼
cylhb
的帖子
去掉句柄会未定义的,我把自定义函数都删了,本打算多些功能的,在技术大关的面前都枯萎了,
嗯,那个,是不是给的区域太小了?
#import "dm.dmsoft" dm
空间 测试
整型 线程句柄
功能 整型 开始打怪()
整型 句柄,是否成功,x,y,防挂机
辅助.注册插件("rc:\\dm.dll",真)
句柄=dm.GetMousePointWindow()
是否成功=dm.BindWindow(句柄,"dx","dx2","dx",0)
逻辑型 是否回血,是否回蓝,是否喂养,是否技能1,是否技能2,是否技能3,是否防挂机
是否回血=复选框.获得状态("复选框3")
是否回蓝=复选框.获得状态("复选框4")
是否喂养=复选框.获得状态("复选框5")
是否技能1=复选框.获得状态("复选框0")
是否技能2=复选框.获得状态("复选框1")
是否技能3=复选框.获得状态("复选框2")
是否防挂机=复选框.获得状态("复选框6")
逻辑型 人物Hp,人物Mp,宠物Hp,红怪物
//整型 红怪物
循环 (真)
// 红怪物=dm.FindColor(274,12,290,41,"019400-155c08",0.8,0,x,y)
// 红怪物=dm.FindColor(274,12,290,41,"730d06-910403",0.8,0,x,y)
// 红怪物=dm.FindColorEx(0,0,2000,2000,"123456-000000|abcdef-202020",1.0,0)
红怪物=后台.区域找色(句柄,274,12,290,41,#05710D,0,x,y)
红怪物=后台.区域找色(句柄,274,12,290,41,#050C74,0,x,y)//039005
如果(红怪物)
辅助.等待(500)
dm.KeyPress(112)
否则
辅助.等待(500)
dm.KeyPress(122)
如果结束
如果(是否技能1)
dm.KeyPress(113)
辅助.等待(25000)
如果结束
如果(是否技能2)
dm.KeyPress(114)
辅助.等待(25000)
如果结束
如果(是否回血)
// 人物Hp=后台.区域找色(句柄,148,23,173,48,#0009EA,0,x,y)
如果(人物Hp)
辅助.等待(500)
否则
dm.KeyPress(121)
如果结束
如果结束
如果(是否回蓝)
// 人物Mp=后台.区域找色(句柄,92,30,117,55,#EA3537,0,x,y)
如果(人物Mp)
辅助.等待(500)
否则
dm.KeyPress(120)
如果结束
如果结束
如果(是否喂养)
// 宠物Hp=后台.区域找色(句柄,164,76,172,91,#0009EA,0,x,y)
如果(宠物Hp)
辅助.等待(500)
否则
dm.KeyPress(119)
如果结束
如果结束
如果(是否防挂机)
// 防挂机=后台.找图(句柄,0,0,800,600,"rc:\\1.bmp",#203040,0.8,0,x,y)
如果(防挂机>0)
辅助.播放("E:\\Documents\\梦之岛.mp3")
辅助.等待(15000)
辅助.停止播放(辅助.播放("E:\\Documents\\梦之岛.mp3"))
如果结束
如果结束
循环结束
dm.ForceUnBindWindow(0)
返回 0
功能结束
功能 逻辑型 热键0_热键()
线程句柄=线程.开启("测试.开始打怪")
返回 真
功能结束
功能 逻辑型 热键1_热键()
dm.ForceUnBindWindow(0)
线程.关闭(线程句柄)
返回 真
功能结束
空间结束
作者:
cylhb
时间:
2012-2-27 16:24
首先,你可以输出一下你获得的句柄,然后用工具去找你的游戏窗口句柄,对比句柄有没有存在问题。
其次,如果你觉得范围可能有问题的话,你随便选一个,把范围设置最大(看你分辨率了)。就知道是否范围问题了
作者:
Rae
时间:
2012-2-27 17:17
回复
7楼
cylhb
的帖子
句柄应该没问题,大漠绑定鼠标所在。
红怪物=后台.区域找色(句柄,253,1,523,71,#05710D,0,x,y)
换成这个区域就可以正常选怪。
原来的这个(274,12,290,41)
估计是嫌弃俺给它的活动范围太小,它不乐意了,然后罢工抗议,
在求个思路,技能冷却要25秒,我如何做到在不影响大循环的情况下每25秒使用一次技能?
直接写在使用技能下面,杯具,脚本直接中场休息了。
作者:
cylhb
时间:
2012-2-27 17:28
多线程呗。。。
把不同功能都做不同子线程,这样就能及时更好的判断,。
作者:
Rae
时间:
2012-2-27 17:57
回复
9楼
cylhb
的帖子
API看的云里雾里的,一点头绪都没,
慢慢琢磨吧,
顺便问下,好学么?
作者:
cylhb
时间:
2012-2-27 18:28
呵呵,其实我接触这个也不到1星期。。
多线程也是刚开始弄。只懂点皮毛。。
作者:
jkjksxl
时间:
2012-2-28 00:08
:-D支持
作者:
4661654
时间:
2012-3-10 15:15
:-| 看的头晕,好好学习下
作者:
anjelxia
时间:
2012-5-27 17:53
谢谢楼主分享 打多少爱迪生啊
作者:
qixingzhaoxun
时间:
2012-7-7 15:21
支持一下 谢谢了
作者:
47584629
时间:
2012-8-18 15:45
多多分享
作者:
wfdwsy
时间:
2012-8-26 08:26
云里雾里看不懂
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1