TC官方合作论坛

标题: 求助,关于后台多开出现死循环,如何解绑不出现异常 [打印本页]

作者: wuyunlong516    时间: 2014-12-1 04:48
标题: 求助,关于后台多开出现死循环,如何解绑不出现异常
本帖最后由 wuyunlong516 于 2014-12-1 20:26 编辑

从新发帖重要部分的源码,整个源码可以通过编译,主要是打怪操作是个无限循环,当按下快捷退出键的时候出现异常关闭窗口,如果不是无限循环,快捷键结束可以通过,不会出现异常,跪求导师,大神,高手,同学们来帮解答一下,如果出现这个无限循环的情况,退出应该是怎么写呀?
空间 QQ空间
ts=
数组[0]
技能组合=
数组[0]

功能
主线程() ----------------------------------------获取窗口功能
----------------------------------------------
    变量 返回值,数组大小,i
    句柄数组=数组[1]
    返回值=系统.枚举("游戏窗口名",0)
    如果(返回值=="")
        辅助.消息框("没有找到游戏窗口")
        返回 假
    如果结束
    字符串.分割(返回值,"|",句柄数组)
    数组空间.大小(句柄数组,数组大小)
    遍历(i=0;i<数组大小;i++)
        ts=数组空间.重定义(ts,,i+1)
        参数=句柄数组&","&i
        线程.开启("QQ空间.子线程",参数,"QQ空间.解绑",i)
        辅助.等待(1000)
    遍历结束
功能结束



功能 子线程(参数)
--------------------------------------绑定每个窗口并执行功能----------------------------------------------
    i,窗口句柄,绑定返回值
    参数数组=数组[1]
    字符串.分割(参数,",",参数数组)
    窗口句柄=参数数组[0]
    i=参数数组[1]
    ts=com("ts.tssoft")

绑定返回值=ts.BindWindow(窗口句柄,"gdi2","dx","dx",0)

    辅助.等待(1000)
    如果(绑定返回值==0)
        help.messagebox("绑定失败")
        返回 假
    如果结束
    ts.SetPath(辅助.获取资源路径("rc:"))

   //下面进行操作
    QQ空间.打怪操作(i)
功能结束


功能 打怪操作(i)
----------------------------------重点在这里,无限循环打怪功能---------------------------------------------
    延时=辅助.随机数(100,1000)   //设置一个随机延时
    循环()           //无限循环开始
        ts.KeyPress(9)              //键盘按下TAB选怪

        辅助.等待(延时)      
        小怪血条=ts.GetColor(521,36)         //判断小怪是否满血,是就执行,否从新选怪

        如果(小怪血条=="961818")
            循环()                 //按技能操作
                ts.KeyPress(49)        //技能键1

                辅助.等待(延时)
                ts.KeyPress(50)       //技能键2

                辅助.等待(延时)
                是否死亡=ts.GetColor(411,36)        //判断小怪是否死亡,是就跳出,否继续按技能

                如果(是否死亡=="ae8308")
                    辅助.等待(延时)
                   跳出
                否则
                    继续
                如果结束       //判断小怪死亡结束
            循环结束       //循环按技能结束
        如果结束         //判断小怪满血结束
    循环结束          //无限循环,小怪杀完继续选,继续杀.
功能结束

功能 开始游戏_热键()
-------------------------------------开始热键----------------------------------------------
    线程.开启("QQ空间.主线程","")
功能结束

功能 结束游戏_热键()
-------------------------------------结束热键----------------------------------------------
    辅助.退出()   //如果在结束的时候,加入线程.关闭(线程句柄),和ts.UnBindWindow()不行的哈,还是要卡死
功能结束

功能 解绑(i)
---------------------------------如果没有无限循环,执行完所有功能自动进行解绑----------------------------------------------
ts.UnBindWindow()
  
功能结束

功能 初始化()
----------------------------------------------初始化注册插件----------------------------------------------
    辅助.注册插件("rc:\\TSPlug.dll",)  
功能结束

空间结束











作者: 唯一小哥    时间: 2014-12-1 08:52
线程句柄=线程.开启("空间名.主线程","")
//退出的时候先关闭线程...
线程.关闭("线程句柄")

希望能帮到你
作者: wuyunlong516    时间: 2014-12-1 09:08
谢谢,试过不行
作者: wuyunlong516    时间: 2014-12-1 09:09
谢谢,试过不行
作者: 调皮的小五郎    时间: 2014-12-1 10:36


除了默默点个赞,我真的不知道说啥好了


作者: yuduo1983    时间: 2014-12-1 10:42
本帖最后由 yuduo1983 于 2014-12-1 10:55 编辑

写的单窗口,个人想法,看看行不行
功能 打怪操作()               
    //代码
功能结束

功能 主线程()
    打怪=单选框.获得状态("单选框2")  
    if(打怪)
        打怪操作()
    endif
功能结束

功能 解绑()
    ts.UnBindWindow()
功能结束

功能 开始游戏_热键()
    线程.开启("空间名.主线程","")       //用的是线程启动,              
功能结束

功能 结束游戏_热键()   
    空间名.解绑()   
    辅助.退出()
功能结束


作者: T星人    时间: 2014-12-1 16:28
小白 飘过~~~




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1