TC官方合作论坛

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

[已解决] 求解惑!!!!

[复制链接]
跳转到指定楼层
楼主
发表于 2014-12-25 14:29:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

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

x
功能 主线程()
    变量 返回值,数组大小,ii
    句柄数组=数组[1]
    返回值=系统.枚举(编辑框.获得文本("游戏名称"),0)
    字符串.分割(返回值,"|",句柄数组)
    数组空间.大小(句柄数组,数组大小)//判断数组大小
    遍历(ii=0;ii<数组大小;ii++)
        dm=数组空间.重定义(dm,真,ii+1)//由于每开启一个线程就多需要一个天使对象,这里必须重新定义天使对象数组大小
        变量 参数=句柄数组[ii]&","&ii//合并参数 窗口句柄和i的值,i的值是为了传递给dm[i] 这个对象,每开启一次i+1
        //有的朋友就在这里就绑定窗口,其实也是可以的,但我不太喜欢这种做法.
        多线程句柄=线程.扩展开启("后台挂机.子线程",参数,"后台挂机.解绑",ii)//开启分线程
        辅助.等待(500)//等待一下,避免多个线程同时绑定窗口,导致绑定失败
    遍历结束
功能结束
功能 子线程(参数)//接受参数   var 参数=句柄数组[i]&","&i
    变量 ai,窗口句柄,绑定返回值
    参数数组=数组[1]
    字符串.分割(参数,",",参数数组)//分割出传过来的参数 i和窗口句柄的值
    窗口句柄=参数数组[0]
    ai=参数数组[1]
    dm[ai]=com("dm.dmsoft")//创建天使对象
    绑定返回值=dm[ai].BindWindow(窗口句柄,"gdi","dx2","dx",0)//绑定
    辅助.等待(1000)
    如果(绑定返回值==0)
        help.messagebox("绑定失败")
        返回 假
    否则
        dm[ai].SetPath(辅助.获取资源路径("rc:"))
        dm[ai].SetDict(0,"ztj.txt")
        如果(单选框.获得状态("野**机")==真)
            后台挂机.所在地图(ai)
        如果结束
        如果(单选框.获得状态("寻龙副本")==真)
            后台挂机.寻龙副本集合(ai,窗口句柄)
        如果结束
        如果(单选框.获得状态("师徒传功")==真)
            辅助.消息框("脚本未开发")
        如果结束
        如果(单选框.获得状态("寻龙副本队长")==真)
            后台挂机.寻龙副本(ai)
        如果结束
        如果(单选框.获得状态("钓鱼")==真)
            后台挂机.起(ai)
        如果结束
        //后台挂机.寻龙副本(ai)
        //后台挂机.登录(ai,窗口句柄)
        //后台挂机.在队伍(ai)
        //后台挂机.进入游戏(ai)
        //后台挂机.试练(ai)
        //线程.开启("后台挂机.所在地图",i)
        辅助.等待(1000)
    如果结束
功能结束
功能 队伍集合(i)
    x1,y1
    dm[i].FindPic(218,20,266,56,"队伍集合.bmp|队伍集合1.bmp","000000",0.9,0,x1,y1)
    如果(x1)
        dm[i].MoveTo(x1,y1)
        辅助.等待(50)
        dm[i].LeftClick()
        辅助.等待(5000)
        后台挂机.人数(i)
    如果结束
功能结束
功能 寻龙副本(i)
    x,y,x1,y1
    循环(真)
        字符串=dm[i].Ocr(948,174,1009,190,"e9f3f3-585c5b",1.0)
        如果(字符串=="")
            后台挂机.esc(i)
        如果结束
        dm[i].FindStr(904,26,965,41,"寻龙副本","efefef-585c5b",1.0,x,y)
        如果(x>0)
            循环(真)
                字符串=dm[i].Ocr(948,174,1009,190,"e9f3f3-585c5b",1.0)
                如果(字符串=="")
                    后台挂机.esc(i)
                如果结束
                dm[i].FindStr(888,23,980,47,"神都","efefef-585c5b",1.0,x1,y1)
                如果(x1>0)
                    跳出
                否则
                    后台挂机.第一关(i)
                    后台挂机.答题(i)
                    后台挂机.冰窟(i)
                    后台挂机.第三关(i)
                    后台挂机.第四关(i)
                    后台挂机.副本移动(i)
                    后台挂机.挂机中(i)
                    后台挂机.全身修理(i)
                    //后台挂机.打boss(i)
                如果结束
            循环结束
            //辅助.消息框("完结")
            跳出
        否则
            辅助.等待(2000)
            后台挂机.接受入队(i)
            后台挂机.队伍集合(i)
        如果结束
    循环结束
功能结束

运行后 每个 窗口都操作 后台挂机.人数()
这个  功能

我这么写应该是 找到 队长图才 运行 后台挂机.人数()
为什么 第一个窗口存在 执行了 后面 二个窗口也 执行这个 口令啊! 明明 后面两个窗口 不存在那图!


回复

使用道具 举报

沙发
发表于 2014-12-25 16:40:27 | 只看该作者
  1. 功能 队伍集合(i)
  2.     x1,y1
  3.     dm[i].FindPic(218,20,266,56,"队伍集合.bmp|队伍集合1.bmp","000000",0.9,0,x1,y1)
  4.     如果(x1)
  5.         dm[i].MoveTo(x1,y1)
  6.         辅助.等待(50)
  7.         dm[i].LeftClick()
  8.         辅助.等待(5000)
  9.         后台挂机.人数(i)
  10.     如果结束
  11. 功能结束
  12. //TC里面 非零即真
  13. //所以是 这个功能块里面的判断问题
  14. //改成
  15. 如果(x1 > 0 &&y1 > 0)
复制代码


回复 支持 反对

使用道具 举报

板凳
发表于 2014-12-26 05:34:03 | 只看该作者
建议楼主,只把关键代码发出来,太长的代码一般很少人看的,得到答案的几率会提高一些
回复 支持 反对

使用道具 举报

地板
发表于 2014-12-27 08:48:58 | 只看该作者
句柄吧  还有 你的代码我基本没看 碰到长的 我一般是先看问题然后就懒得往回翻了
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

关闭

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

GMT+8, 2025-9-23 19:25 , Processed in 0.159016 second(s), 23 queries .

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

© 2001-2013 Comsenz Inc.

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