|
楼主 |
发表于 2012-5-2 00:09:58
|
显示全部楼层
回复 1楼4133789的帖子
亲!你的线程句柄设置为全局变量了没?
额,我错了,应该是全局了的......
冷月无痕 发表于 2012-5-1 23:54:36
我去,这样不行呐,验证码一错误,打的字全没有了.真蛋碎.
表示好蛋碎呐.验证码错了.打的字全没有了.已经两次了.每次都打了很多....
表示我之前开启的 两个线程里面全部都有死循环.我现在改用 全局变量替换原来的死循环变量,然后 在线程里面修改全局变量来完成脚本的结束.这样做已经 成功了.
但是我的 问题还是没有解决呐.就是同样的代码,使用 F10调用可以.但是在线程里面调用就不行呢?(无论是两样的代码,还是F10的热键函数都不行)
我现在已经付上的全部源码,现在已经改了全局变量来进行结束了.不过请看看,应该是我写的有问题.表示如果 同样的结束代码,在线程当中不能被很好的执行的话, 那就太蛋碎了.
- namespace sb
- //定义默认空间
- int healH,startH,start_while_I,heal_while_i
- //start_while_I=0
- //heal_while_i=0
- function int heal(string param)
- int hwnd,x,y
- string caption
- bool ifok
- while (heal_while_i==0)
- hwnd=window.getactivewindowhwnd()
- caption=window.getwindowcaption(hwnd)
- ifok=color.findrectpixelcolor(125,50 ,125+1,50+1,#1C28FF,0,x,y)
- if (ifok)
- else
- drivekeyboard.keypress(48,1)
- endif
- if (caption != "游戏")
- // help.messagebox(caption)
- //sb.hotkey1_onhotkey()
-
- start_while_I=1
- heal_while_i=1
- //thread.closethread(healH)
- //thread.closethread(startH)
- help.messagebox("你已经离开了游戏,所以不再运行程序了.")
- //help.exit()
- endif
- help.sleep(500)
- endwhile
- return 0
- endfunction
- function bool start()
- //这里添加你要执行的代码
- int[] AbilityLoop=int[11] //TC里面
- AbilityLoop[1]= 49
- AbilityLoop[2]= 50
- AbilityLoop[3]= 51
- AbilityLoop[4]= 52
- AbilityLoop[5]= 53
- AbilityLoop[6]= 54
- AbilityLoop[7]= 55
- AbilityLoop[8]= 56
- AbilityLoop[9]= 57
- AbilityLoop[10]= 48
- int AbilitySmall = convert.strtoint(edit.gettext("edit0"),0)
- int AbilityBig =convert.strtoint(edit.gettext("edit1"),0)
- if (AbilityBig>10)
- help.messagebox("你疯了,不拿程序妹子当回事呐!\n现在最大值只劫持到9,你哪有那么多技能需要放呐!\n再填写超过9,小心我让你自动关机呐.")
- AbilityBig = 100
- endif
- if (AbilityBig==0)
- help.messagebox("你疯了,不拿程序妹子当回事呐!\n写0也不行!\n再填写0,小心我让你自动关机呐.")
- AbilityBig = 100
- endif
- if (AbilityBig==AbilitySmall)
- help.messagebox("你疯了,不拿程序妹子当回事呐!\n两个技能键不能是同一个,你只放一个技能呐.脑残!\n再填写一样,小心我让你自动关机呐.")
- AbilityBig = 100
-
- endif
- if (AbilityBig==100)
- //等于100时属于情况蛋碎,所以什么也不执行.
- else
- // stopH=thread.beginthread("sb.stop","1")
- int color,x,y,Ability_12
- int AbilityX= AbilityBig-AbilitySmall
- int AbilityI = 0
- bool pickup=false
- while (start_while_I==0)
- bool ifok=color.findrectpixelcolor(121,53,121+1,53+1,#3C6374,0,x,y)
- if(ifok)
- //help.messagebox("找到该颜色,坐标值为:"+convert.inttostr(x)+" "+convert.inttostr(y))
- pickup=true
- drivekeyboard.keypress(AbilityLoop[AbilitySmall+AbilityI],1)
- AbilityI=AbilityI+1
-
- if (AbilityI>AbilityX)
- AbilityI=0
- endif
-
- else
- //help.messagebox("你当前没有选怪吧")
- drivekeyboard.keypress (90,1)
- if (pickup==true)
- drivekeyboard.keypress(32,1)
- help.sleep(100)
- drivekeyboard.keypress(32,1)
- help.sleep(100)
- drivekeyboard.keypress(32,1)
- help.sleep(100)
- drivekeyboard.keypress(32,1)
- endif
-
- endif
- help.sleep(1500)
-
- endwhile
-
- endif
- return true
- //函数返回语句
- endfunction
- function bool hotkey1_onhotkey()
- //这里添加你要执行的代码
- help.messagebox("我要退出了")
- // help.messagebox(convert.inttostr(healH))
- // help.messagebox(convert.inttostr(startH))
-
- thread.closethread(healH)
- thread.closethread(startH)
- return true
- endfunction
- function bool hotkey0_onhotkey()
- //这里添加你要执行的代码
- int name
- string wowname
- name=window.findwindow("CABAL")
- //help.messagebox(convert.inttostr(name))
- //name=330886
- if(name==0)
- help.messagebox("窗口没有找到")
- else
- //help.messagebox("寻找到后的"+convert.inttostr(name))
- window.setwindowpos(name,0,0) //Move To Window of 0,0
- window.activate(name) //Activate
- endif
- //help.messagebox(convert.inttostr(start_while_I))
- //help.messagebox(convert.inttostr(heal_while_i))
- heal_while_i=0
- start_while_I=0
- startH=thread.beginthread("sb.start","")
- help.sleep(1000)
- healH=thread.beginthread("sb.heal","")
- return true
- endfunction
- endnamespace
- //空间结束语句
复制代码
|
|