TC官方合作论坛

 找回密码
 立即注册
查看: 838|回复: 0

[问题] 新水浒Q传

[复制链接]
发表于 2016-2-12 11:20:55 | 显示全部楼层 |阅读模式
http://bbs.tyuyan.net/forum.php? ... 7517&highlight=新水浒Q传      这是以前的帖子   
那个大神能做个能验证就行了     
或者那个大神能不能解释下这段源码   里面这些(sh.mminit(z)==0)  checkThreads[z]=thread.beginthread("main.check",z)  main.autofight(z)都是什么意思  因为是小白学习5.0中文  里面有些看不懂
  • function start(z)//启动
  •     edit.settext("edit4"&(z+1),"第"&(z+1)&"条多开线程启动")
  •     if(sh.mminit(z)==0)
  •         return 0
  •     endif
  •     checkThreads[z]=thread.beginthread("main.check",z)
  •     //==========================
  •     edit.settext("edit3"&(z+1),list.getchecktext("funclist"))
  •     select(list.getchecktext("funclist"))
  •         case "自动遇怪":
  •         main.autofight(z)
  •         default :
  •         help.sleep(1000)
  •     endselect
  • endfunction
  • function autofight(z)//自动战斗
  •     help.sleep(1000)
  •     for(i=0;i<31536000;i++)//循环60秒*60分*24小时*365天次
  •         //自动走路
  •         if(check.getstate("autorun")&&(i%10==0))//如果i是10的倍数
  •             ms[z].MoveTo(740+help.randto(-4,4),8+help.randto(-4,4))
  •             help.sleep(help.randto(20,50))
  •             ms[z].LeftClick()
  •             help.sleep(help.randto(20,50))
  •             ret=ms[z].FindStr(353,288,447,311,"开始|取消","eeeeee-303030",1.0,0,0)
  •             if(ret==1)//取消自动走路
  •                 i--
  •                 continue//直接重新循环 再来一次
  •             endif
  •         endif
  •         //判断自动战斗按钮
  •         ret=ms[z].FindStr(683,43,800,92,"自动","eeeeee-303030",1.0,0,0)
  •         if(ret>-1)
  •             ms[z].MoveTo(750+help.randto(0,30),70+help.randto(0,5))
  •             help.sleep(help.randto(20,100))
  •             ms[z].LeftClick()
  •             help.sleep(help.randto(20,100))
  •         endif
  •         //间隔1秒
  •         help.sleep(1000)
  •     endfor
  • endfunction
  • function check(z)//检测线程函数
  •     edit.settext("edit4"&(z+1),"第"&(z+1)&"条检测线程启动")
  •     help.sleep(1000)
  •     while(true)
  •         help.sleep(1000)
  •         edit.settext("edit4"&(z+1),"检测验证码")
  •         help.sleep(1000)
  •         var ret,intX,intY
  •         if(ms[z].FindStr(0,0,800,600,"请选择","00fcf8-030303",1.0,intX,intY)<0)
  •             ret=ms[z].GetLastError()
  •             if(ret==0)
  •                 edit.settext("edit4"&(z+1),"检测完毕,未发现验证码")
  •             else
  •                 edit.settext("edit4"&(z+1),"验证码检测异常:"&ret)
  •             endif
  •         else
  •             thread.suspendthread(taskThreads[z])
  •             edit.settext("edit4"&(z+1),"出现验证码,开始截取")
  •             if(ms[z].Capture(150,240,700,400, "yzm"&z&".bmp")==0)
  •                 edit.settext("edit4"&(z+1),"验证码截取失败")
  •             else
  •                 ret=main.getyzm(z)
  •                 if(ret>0)
  •                     ms[z].MoveTo(75+ret*140+help.randto(-10,10),350+help.randto(-10,10))
  •                     help.sleep(help.randto(20,100))
  •                     ms[z].LeftDoubleClick()
  •                     help.sleep(help.randto(20,100))
  •                 endif
  •             endif
  •             thread.resumethread(taskThreads[z])
  •         endif
  •     endwhile
  • endfunction
  • function getyzm(z)//识别验证码
  •     sy=com("sy.dt")
  •     //申明变量 发送字符串 资源字符串 资源ID 文件名
  •     var sendstr,ResStr,ResId,filename
  •     sendstr=str.format("sendvcode/myapi/%s/type/%s/timeout/%s/note/sh/author/q273814",sydtapi,"10005","60")
  •     filename=system.getcurrentpath()&"yzm"&z&".bmp"
  •     //发送验证码
  •     //ResStr=dllcall(系统.获取当前路径()&"sy.dll","int","Send","Char *",sendstr,"Char *",filename)
  •     ResStr=sy.Send(sendstr,filename)
  •     if(str.left(ResStr,1)=="E")
  •         edit.settext("edit4"&(z+1),"senderror")
  •     else
  •         ResId=ResStr
  •         for(i=0;i<60;i++)
  •             help.sleep(500)
  •             //ResStr=dllcall(system.getcurrentpath()&"sy.dll","int","Send","Char *","getanswer/id/"&ResId,"Char *","")
  •             ResStr=sy.Send("getanswer/id/"&ResId,"")
  •             if(str.left(ResStr,7)!="WAITING")
  •                 break
  •             endif
  •             edit.settext("edit4"&(z+1),str.replace(ResStr,"WAITING","稍等"))
  •         endfor
  •         if(str.left(ResStr,7)!="WAITING")
  •             edit.settext("edit4"&(z+1),"答案:"&ResStr)
  •             sy=null
  •             return ResStr
  •         endif
  •         edit.settext("edit4"&(z+1),"验证码识别失败:"&ResStr)
  •     endif
  •     sy=null
  •     return 0
  • endfunction
  • endnamespace


本帖子中包含更多资源

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

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-9-28 15:55 , Processed in 0.041097 second(s), 24 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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