TC官方合作论坛

标题: 发个天龙八部的报废品,用的上的自己改改,区域找色失败。没辙了。 [打印本页]

作者: Rae    时间: 2012-2-26 22:20
标题: 发个天龙八部的报废品,用的上的自己改改,区域找色失败。没辙了。
想写个简简单单的后台小脚本,可以选择用不用技能,可以选择吃不吃药,不抢怪,能验证提示,
捣鼓了2天,改了N次,本以为能收工挂机了,哎,这又出毛病了,没心情完善了。
大漠找色,它连找都不找就给你下个找到了的定义,
TC后台找色吧,单个去测试都没问题,加到本里就 “获取BK位图数据失败”
坛子里发个贴求助吧,没人搭理,郁闷了。
作为小白,亚历山大啊。
代码超明了,不用注释一眼都能看懂,


作者: 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