TC官方合作论坛

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

[问题] 下面的脚本 ,打完第一个怪 ,再打第二个怪的时候,怪么找到就出技能打怪了, 请教大家是哪里出了问题?

[复制链接]
跳转到指定楼层
楼主
发表于 2012-7-13 14:56:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

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

x
字体改过来了  粘贴怎么还能粘出斜体字!那位大神会的麻烦给看看,下面的脚本,为什么打完第一个怪 ,再打第二个怪的时候,怪没找到就出技能打怪了, 还有找怪速度慢 ,我是哪里错了 ,还是怎么了!先谢谢了!



#import "dm.dmsoft"  dm
空间   多开自动打怪模版
//如果该游戏支持大漠的dx模式,只需修改颜色值和按键键码,也可以达到通用

字符型  IP端口
整型  c1,i,k,窗口句柄,线程句柄,F3开始时间,F3运行时间,F4开始时间,F4运行时间,F5开始时间,F5运行时间,F3冷却时间,F4冷却时间,F5冷却时间
字符型[] 句柄
整型[]  线程句柄集

//获得界面设置的值,在本空间调用。
功能 逻辑型 接受主界面设置(整型  F3时间,整型 F4时间,整型 F5时间,字符型  获得IP端口)
F3冷却时间= F3时间
辅助.等待(100)
F4冷却时间=F4时间
辅助.等待(100)
F5冷却时间=F5时间
辅助.等待(100)
IP端口=获得IP端口
返回 真
功能结束
功能 逻辑型 自动打怪()
字符型 路径
路径=辅助.获取资源路径("rc:")
dm.SetPath(路径)
辅助.等待(500)
dm.SetDict(0,"dm_soft.txt")
整型 窗口绑定是否成功,intX,intY,intX1,intY1,intX2,intY2,intX3,intY3,intX4,intY4,intX5,intY5,intX6,intY6
     如果(c1!=0)
     窗口句柄=转换.字符型转整型(句柄,0)
     如果结束
     窗口绑定是否成功=dm.BindWindow(窗口句柄,"dx","dx","dx",0)
     
     如果(窗口绑定是否成功==0)
         辅助.消息框("窗口绑定失败")
     否则
        
        F3开始时间=系统.获取毫秒()/1000
        F4开始时间=系统.获取毫秒()/1000
        F5开始时间=系统.获取毫秒()/1000
        
        
       循环(真)
        dm.KeyDown(17)
        辅助.等待(100)
dm.KeyPress(9)
        辅助.等待(100)
        dm.KeyUp(17)
        int intx,inty
        //找怪物颜色
        dm.FindColor(444,24,457,41, "ea1200-000000", 0.8, 0,intX,intY)
        dm.FindColor(275,24,457,41, "ea1200-000000", 0.8, 0,intx,inty)
        辅助.等待(1000)
        循环(intX>0||intx>0)
            //如果找到怪物,执行打怪操作
     F3运行时间=系统.获取毫秒()/1000
            F4运行时间=系统.获取毫秒()/1000
            F5运行时间=系统.获取毫秒()/1000
            dm.KeyPress(112)
            //延时用随机数,防止游戏检测固定时间按键
            辅助.等待(辅助.随机数(100,1000))
            
         
            //此找字方法为检测验证码的,不同游戏出现的特征不同。
             dm.FindStr(0,0,2000,2000,"防挂机检测","e6d402-404040",0.8,intX6,intY6)
             辅助.等待(1000)
              如果(intX6>=0)
                 辅助.蜂鸣(1000,3000)
              整型   截图句柄 = dm.FaqCapture(0,0,1500,1500,50,0,0)
              如果(dm.FaqPost(IP端口,截图句柄,1,60 * 1000)==1)
              循环(真)
              字符型  返回的结果 = dm.FaqFetch()
              如果(字符串.长度(返回的结果)>0)
                  如果(返回的结果=="OK:1")
                       dm.MoveTo(intX6-2,intY6+174)
                       辅助.等待(100)
                       dm.LeftClick()
                       辅助.等待(100)
                       dm.MoveTo(intX6+135,intY6+272)
                       辅助.等待(100)
                       dm.LeftClick()
                       跳出
                  如果结束
                  
                  如果(返回的结果=="OK:2")
                      dm.MoveTo(intX6-2,intY6+199)
                      辅助.等待(100)
                      dm.LeftClick()
                      辅助.等待(100)
                       dm.MoveTo(intX6+135,intY6+272)
                       辅助.等待(100)
                       dm.LeftClick()
                       跳出
                  如果结束
                  
                  如果(返回的结果=="OK:3")
                       dm.MoveTo(intX6-2,intY6+224)
                       辅助.等待(100)
                       dm.LeftClick()
                       辅助.等待(100)
                       dm.MoveTo(intX6+135,intY6+272)
                       辅助.等待(100)
                       dm.LeftClick()
                         跳出
                  如果结束
                  
                  如果(返回的结果=="OK:4")
                        dm.MoveTo(intX6-2,intY6+249)
                        辅助.等待(100)
                        dm.LeftClick()
                        辅助.等待(100)
                        dm.MoveTo(intX6+135,intY6+272)
                        辅助.等待(100)
                        dm.LeftClick()
                        跳出
                  如果结束

              如果结束
              循环结束
              如果结束  
              如果结束
              
              
              
            //加血判断,如果人物血量低于50%,就会自动回血,你可以根据你的游戏来修改颜色和坐标范围。
             dm.FindColor(128,26,140,41, "d90a00-000000", 0.8, 0,intX3,intY3)
             辅助.等待(1000)
             如果(intX3<0)
                 dm.KeyPress(121)
             如果结束
           
            //加蓝判断,如果人物蓝值低于50%,就会自动回蓝,你可以根据你的游戏来修改颜色和坐标范围。
             dm.FindColor(128,32,144,48, "3735ea-000000", 0.8, 0,intX4,intY4)
             辅助.等待(100)
             如果(intX4<0)
                 dm.KeyPress(120)
            如果结束  

          //蓝值判断,如果不够,不执行消耗技能按键。减少不必要的按键操作,减小封号风险。
             如果(dm.FindColor(66,38,80,48, "313131-000000", 0.8, 0,intX4,intY4)==1)
             辅助.等待(100)
            
            dm.KeyPress(113)
            辅助.等待(1000)
            
              //计算技能冷却时间,减少不必要的按键操作,减小封号风险。
           如果((F3运行时间-F3开始时间)>F3冷却时间)
             //按下F3
           F3开始时间=系统.获取毫秒()/1000   
            dm.KeyPress(114)
            辅助.等待(辅助.随机数(100,1000))
             如果结束      
            如果((F4运行时间-F4开始时间)>F4冷却时间)
              //按下F4
               F4开始时间=系统.获取毫秒()/1000
            dm.KeyPress(115)
            辅助.等待( 辅助.随机数(500,1000))
             如果结束
      
             如果((F5运行时间-F5开始时间)>F5冷却时间)
              //按下F5
                F5开始时间=系统.获取毫秒()/1000
               dm.KeyPress(116)
               辅助.等待(辅助.随机数(100,1000))
               如果结束
               
             如果结束
            
              //宠物加血判断,如果你的游戏没有宠物,此代码可以取消。
             dm.FindColor(154,77,172,89, "ea0900-000000", 0.8, 0,intX5,intY5)
             辅助.等待(100)
             如果(intX5<0)
                 dm.KeyPress(119)
            如果结束  
         
            //怪物是否死亡判断,如果怪物死亡,跳出打怪循环,执行取怪循环
            dm.FindColor(275,28,284,43, "ea1200-000000", 0.9, 0,intX1,intY1)
            辅助.等待(1000)
            如果(intX1<0)
            dm.KeyPress(112)
            辅助.等待(1000)
            dm.KeyPress(113)
            辅助.等待(1000)
                跳出
            如果结束
            
        循环结束
   循环结束
   
     如果结束
返回 真
功能结束
功能  整型 大漠解绑()
dm.UnBindWindow()
返回 0
功能结束

功能  逻辑型   获得多开窗口(字符型 窗口句柄集)
  字符串.分割(窗口句柄集,"|",句柄)
   i=0
   数组.大小(句柄,c1)                  
       如果(c1==0) //如果c1=0证明就一个游戏窗口,单开操作
            窗口句柄=转换.字符型转整型(窗口句柄集,0)
            辅助.等待(1000)
            线程句柄=线程.扩展开启("多开自动打怪模版.自动打怪","","多开自动打怪模版.大漠解绑","")   
        否则
               线程句柄集=整型[c1]
                     循环(i <c1)
                             线程句柄集=线程.扩展开启("多开自动打怪模版.自动打怪","","多开自动打怪模版.大漠解绑","")
                             辅助.等待(2000)
                               i=i +1
                      循环结束
                               k=i-1
        如果结束   
返回  真
功能结束
功能  逻辑型 退出()
如果(c1==0)
     线程.关闭(线程句柄)
     辅助.等待(2000)
否则
     循环(k>=0)
      // 辅助.消息框(转换.整型转字符型(线程句柄集[k]))
         线程.关闭(线程句柄集[k])
         辅助.等待(2000)
              k=k-1
     循环结束
如果结束
辅助.等待(10000)
辅助.退出()
返回 真
功能结束

空间结束

回复

使用道具 举报

沙发
发表于 2012-7-13 14:58:36 | 只看该作者
沙发  顶一个
回复 支持 反对

使用道具 举报

板凳
发表于 2012-7-13 15:52:59 | 只看该作者
LZ,我们哪里都没出问题,问题是不知道LZ运行时有什么问题出现!
LZ下面的字看得人眼痛!闪............不看了!
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2012-7-13 16:04:34 | 只看该作者
麻烦会的告诉下!谢谢!
回复 支持 反对

使用道具 举报

5#
发表于 2012-7-13 17:07:42 | 只看该作者
楼主完全看不懂啊
回复 支持 反对

使用道具 举报

6#
发表于 2012-7-13 17:51:22 | 只看该作者
因为你循环内没有重新找怪这条语句,所以循环条件始终成立!

在循环最后加入找怪就OK
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

关闭

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

GMT+8, 2025-9-18 12:06 , Processed in 0.119471 second(s), 24 queries .

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

© 2001-2013 Comsenz Inc.

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