TC官方合作论坛

 找回密码
 立即注册
查看: 2113|回复: 16
打印 上一主题 下一主题

[源码分享] 发个天龙八部的报废品,用的上的自己改改,区域找色失败。没辙了。

[复制链接]
跳转到指定楼层
楼主
发表于 2012-2-26 22:20:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

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

x
想写个简简单单的后台小脚本,可以选择用不用技能,可以选择吃不吃药,不抢怪,能验证提示,
捣鼓了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)
  • 线程.关闭(线程句柄)
  • 返回 真
  • 功能结束
  • 空间结束
回复

使用道具 举报

沙发
发表于 2012-2-26 23:56:50 | 只看该作者
报废也有值得学习的地方
回复 支持 反对

使用道具 举报

板凳
发表于 2012-2-27 01:45:32 | 只看该作者
后台.区域找色(句柄,148,23,173,48,#0009EA,0,x,y)

没看到你的句柄何在。
回复 支持 反对

使用道具 举报

地板
发表于 2012-2-27 01:48:26 | 只看该作者
除了绑定句柄那一句有效。。
其他函数里面的句柄全部=0
能找到就奇怪了。。。。
回复 支持 反对

使用道具 举报

5#
发表于 2012-2-27 01:49:12 | 只看该作者
把每个自定义函数里面的 整型 句柄 去掉试试
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2012-2-27 16:17:40 | 只看该作者
回复 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)
线程.关闭(线程句柄)
返回 真
功能结束
空间结束
回复 支持 反对

使用道具 举报

7#
发表于 2012-2-27 16:24:06 | 只看该作者
首先,你可以输出一下你获得的句柄,然后用工具去找你的游戏窗口句柄,对比句柄有没有存在问题。

其次,如果你觉得范围可能有问题的话,你随便选一个,把范围设置最大(看你分辨率了)。就知道是否范围问题了
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2012-2-27 17:17:36 | 只看该作者
回复 7楼cylhb的帖子

句柄应该没问题,大漠绑定鼠标所在。
红怪物=后台.区域找色(句柄,253,1,523,71,#05710D,0,x,y)
换成这个区域就可以正常选怪。
原来的这个(274,12,290,41)
估计是嫌弃俺给它的活动范围太小,它不乐意了,然后罢工抗议,

在求个思路,技能冷却要25秒,我如何做到在不影响大循环的情况下每25秒使用一次技能?
直接写在使用技能下面,杯具,脚本直接中场休息了。
回复 支持 反对

使用道具 举报

9#
发表于 2012-2-27 17:28:41 | 只看该作者
多线程呗。。。
把不同功能都做不同子线程,这样就能及时更好的判断,。
回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2012-2-27 17:57:13 | 只看该作者
回复 9楼cylhb的帖子

API看的云里雾里的,一点头绪都没,
慢慢琢磨吧,
顺便问下,好学么?
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

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

GMT+8, 2025-10-13 02:27 , Processed in 0.225048 second(s), 23 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

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